Skip to main content

StoredHpkePrivateKey

Struct StoredHpkePrivateKey 

Source
pub struct StoredHpkePrivateKey {
    pub sk: Vec<u8>,
    pub pk: Vec<u8>,
}
Expand description

Entity representing a persisted HpkePrivateKey (related to LeafNode Private keys that the client is aware of)

This entity cannot be updated in the DB: the primary key is the public half of the keypair whose private half it stores, and OpenMLS only ever writes one at key package generation, from a freshly generated pair. A second save under the same public key with a different secret would mean the two halves had come apart, so it reports CryptoKeystoreError::AlreadyExists rather than overwriting.

Fields§

§sk: Vec<u8>§pk: Vec<u8>

Trait Implementations§

Source§

impl BorrowPrimaryKey for StoredHpkePrivateKey

Source§

type BorrowedPrimaryKey<'a> = &'a [u8]

Source§

fn borrow_primary_key(&self) -> Self::BorrowedPrimaryKey<'_>

Borrow this entity’s primary key without copying any data. Read more
Source§

impl Clone for StoredHpkePrivateKey

Source§

fn clone(&self) -> StoredHpkePrivateKey

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for StoredHpkePrivateKey

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for StoredHpkePrivateKey

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Entity for StoredHpkePrivateKey

Source§

const TABLE_NAME: &'static str = "mls_hpke_private_keys"

The name of the SQL table for this entity
Source§

fn get(conn: &Connection, key: &Vec<u8>) -> CryptoKeystoreResult<Option<Self>>

Get an entity by its primary key. Read more
Source§

fn count(conn: &Connection) -> CryptoKeystoreResult<u32>

Count the number of entities of this type in the database.
Source§

fn load_all(conn: &Connection) -> CryptoKeystoreResult<Vec<Self>>

Retrieve all entities of this type from the database.
Source§

impl EntityDatabaseMutation for StoredHpkePrivateKey

Source§

fn save<'a, Tx>(&self, tx: &'a Tx) -> CryptoKeystoreResult<()>

Save this entity to the database in the context of this transaction. Read more
Source§

fn delete<'a, Tx>(tx: &'a Tx, id: &Vec<u8>) -> CryptoKeystoreResult<bool>

Use the transaction’s inteface to delete this entity from the database. Read more
Source§

impl EntityDeleteBorrowed for StoredHpkePrivateKey

Source§

fn delete_borrowed<'a, Tx>(tx: &'a Tx, id: &[u8]) -> CryptoKeystoreResult<bool>

Delete an entity by a borrowed form of its primary key.
Source§

impl EntityGetBorrowed for StoredHpkePrivateKey

Source§

fn get_borrowed( conn: &Connection, key: &[u8], ) -> CryptoKeystoreResult<Option<Self>>

Get an entity by a borrowed form of its primary key.
Source§

impl PartialEq for StoredHpkePrivateKey

Source§

fn eq(&self, other: &StoredHpkePrivateKey) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PrimaryKey for StoredHpkePrivateKey

Source§

type PrimaryKey = Vec<u8>

Each distinct PrimaryKey uniquely identifies either 0 or 1 instance. Read more
Source§

fn primary_key(&self) -> Vec<u8>

Get this entity’s primary key. Read more
Source§

impl Serialize for StoredHpkePrivateKey

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl ToValue for StoredHpkePrivateKey

Source§

fn to_value(&self) -> Value<'_>

Perform the conversion.
Source§

impl Zeroize for StoredHpkePrivateKey

Source§

fn zeroize(&mut self)

Zero out this object from memory using Rust intrinsics which ensure the zeroization operation is not “optimized away” by the compiler.
Source§

impl Eq for StoredHpkePrivateKey

Source§

impl StructuralPartialEq for StoredHpkePrivateKey

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> Serialize for T
where T: Serialize + ?Sized,

Source§

fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

Source§

fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T