Struct mls_crypto_provider::CryptoKeystore
pub struct CryptoKeystore { /* private fields */ }
Implementations§
§impl Connection
impl Connection
pub async fn open_with_key( name: impl AsRef<str>, key: impl AsRef<str>, ) -> Result<Connection, CryptoKeystoreError>
pub async fn open_in_memory_with_key( name: impl AsRef<str>, key: impl AsRef<str>, ) -> Result<Connection, CryptoKeystoreError>
pub async fn borrow_conn( &self, ) -> Result<MutexGuard<'_, SqlCipherConnection>, CryptoKeystoreError>
pub async fn save<E>(&self, entity: E) -> Result<E, CryptoKeystoreError>where
E: Entity<ConnectionType = SqlCipherConnection>,
pub async fn insert<E>(
&self,
entity: E,
) -> Result<<E as EntityBase>::AutoGeneratedFields, CryptoKeystoreError>where
E: Entity<ConnectionType = SqlCipherConnection> + Sync,
pub async fn find<E>(
&self,
id: impl AsRef<[u8]>,
) -> Result<Option<E>, CryptoKeystoreError>where
E: Entity<ConnectionType = SqlCipherConnection>,
pub async fn find_all<E>(
&self,
params: EntityFindParams,
) -> Result<Vec<E>, CryptoKeystoreError>where
E: Entity<ConnectionType = SqlCipherConnection>,
pub async fn find_many<E, S>( &self, ids: &[S], ) -> Result<Vec<E>, CryptoKeystoreError>
pub async fn remove<E, S>(&self, id: S) -> Result<(), CryptoKeystoreError>
pub async fn count<E>(&self) -> Result<usize, CryptoKeystoreError>where
E: Entity<ConnectionType = SqlCipherConnection>,
pub async fn wipe(self) -> Result<(), CryptoKeystoreError>
pub async fn close(self) -> Result<(), CryptoKeystoreError>
Trait Implementations§
§impl CryptoKeystoreMls for Connection
impl CryptoKeystoreMls for Connection
§fn mls_fetch_keypackages<'life0, 'async_trait, V>(
&'life0 self,
count: u32,
) -> Pin<Box<dyn Future<Output = Result<Vec<V>, CryptoKeystoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
V: 'async_trait + MlsEntity,
Connection: 'async_trait,
fn mls_fetch_keypackages<'life0, 'async_trait, V>(
&'life0 self,
count: u32,
) -> Pin<Box<dyn Future<Output = Result<Vec<V>, CryptoKeystoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
V: 'async_trait + MlsEntity,
Connection: 'async_trait,
Fetches Keypackages Read more
§fn mls_group_persist<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
group_id: &'life1 [u8],
state: &'life2 [u8],
parent_group_id: Option<&'life3 [u8]>,
) -> Pin<Box<dyn Future<Output = Result<(), CryptoKeystoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Connection: 'async_trait,
fn mls_group_persist<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
group_id: &'life1 [u8],
state: &'life2 [u8],
parent_group_id: Option<&'life3 [u8]>,
) -> Pin<Box<dyn Future<Output = Result<(), CryptoKeystoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Connection: 'async_trait,
Persists a
MlsGroup
Read more§fn mls_group_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
group_id: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Connection: 'async_trait,
fn mls_group_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
group_id: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Connection: 'async_trait,
Checks if the given MLS group id exists in the keystore
Note: in case of any error, this will return false Read more
§fn mls_group_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
group_id: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<(), CryptoKeystoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Connection: 'async_trait,
fn mls_group_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
group_id: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<(), CryptoKeystoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Connection: 'async_trait,
Deletes
MlsGroups
from the database. Read more§fn mls_groups_restore<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<HashMap<Vec<u8>, (Option<Vec<u8>>, Vec<u8>)>, CryptoKeystoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Connection: 'async_trait,
fn mls_groups_restore<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<HashMap<Vec<u8>, (Option<Vec<u8>>, Vec<u8>)>, CryptoKeystoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Connection: 'async_trait,
Loads
MlsGroups
from the database. It will be returned as a HashMap
where the key is
the group/conversation id and the value the group state Read more§fn mls_pending_groups_save<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
group_id: &'life1 [u8],
mls_group: &'life2 [u8],
custom_configuration: &'life3 [u8],
parent_group_id: Option<&'life4 [u8]>,
) -> Pin<Box<dyn Future<Output = Result<(), CryptoKeystoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Connection: 'async_trait,
fn mls_pending_groups_save<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
group_id: &'life1 [u8],
mls_group: &'life2 [u8],
custom_configuration: &'life3 [u8],
parent_group_id: Option<&'life4 [u8]>,
) -> Pin<Box<dyn Future<Output = Result<(), CryptoKeystoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Connection: 'async_trait,
Saves a
MlsGroup
in a temporary table (typically used in scenarios where the group cannot
be committed until the backend acknowledges it, like external commits) Read more§fn mls_pending_groups_load<'life0, 'life1, 'async_trait>(
&'life0 self,
group_id: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<(Vec<u8>, Vec<u8>), CryptoKeystoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Connection: 'async_trait,
fn mls_pending_groups_load<'life0, 'life1, 'async_trait>(
&'life0 self,
group_id: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<(Vec<u8>, Vec<u8>), CryptoKeystoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Connection: 'async_trait,
Loads a temporary
MlsGroup
and its configuration from the database Read more§fn mls_pending_groups_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
group_id: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<(), CryptoKeystoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Connection: 'async_trait,
fn mls_pending_groups_delete<'life0, 'life1, 'async_trait>(
&'life0 self,
group_id: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<(), CryptoKeystoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Connection: 'async_trait,
Deletes a temporary
MlsGroup
from the database Read more§fn save_e2ei_enrollment<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 [u8],
content: &'life2 [u8],
) -> Pin<Box<dyn Future<Output = Result<(), CryptoKeystoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Connection: 'async_trait,
fn save_e2ei_enrollment<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 [u8],
content: &'life2 [u8],
) -> Pin<Box<dyn Future<Output = Result<(), CryptoKeystoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Connection: 'async_trait,
Persists an enrollment instance Read more
§fn pop_e2ei_enrollment<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, CryptoKeystoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Connection: 'async_trait,
fn pop_e2ei_enrollment<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, CryptoKeystoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Connection: 'async_trait,
Fetches and delete the enrollment instance Read more
§impl CryptoKeystoreProteus for Connection
impl CryptoKeystoreProteus for Connection
§impl Debug for Connection
impl Debug for Connection
§impl OpenMlsKeyStore for Connection
impl OpenMlsKeyStore for Connection
§fn store<'life0, 'life1, 'life2, 'async_trait, V>(
&'life0 self,
k: &'life1 [u8],
v: &'life2 V,
) -> Pin<Box<dyn Future<Output = Result<(), <Connection as OpenMlsKeyStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Connection: Sized + 'async_trait,
V: 'async_trait + MlsEntity + Sync,
fn store<'life0, 'life1, 'life2, 'async_trait, V>(
&'life0 self,
k: &'life1 [u8],
v: &'life2 V,
) -> Pin<Box<dyn Future<Output = Result<(), <Connection as OpenMlsKeyStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Connection: Sized + 'async_trait,
V: 'async_trait + MlsEntity + Sync,
§fn read<'life0, 'life1, 'async_trait, V>(
&'life0 self,
k: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Option<V>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Connection: Sized + 'async_trait,
V: 'async_trait + MlsEntity,
fn read<'life0, 'life1, 'async_trait, V>(
&'life0 self,
k: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Option<V>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Connection: Sized + 'async_trait,
V: 'async_trait + MlsEntity,
Read and return a value stored for ID
k
that implements the
[MlsEntity
] trait for deserialization. Read more§fn delete<'life0, 'life1, 'async_trait, V>(
&'life0 self,
k: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<(), <Connection as OpenMlsKeyStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
V: 'async_trait + MlsEntity,
Connection: 'async_trait,
fn delete<'life0, 'life1, 'async_trait, V>(
&'life0 self,
k: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<(), <Connection as OpenMlsKeyStore>::Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
V: 'async_trait + MlsEntity,
Connection: 'async_trait,
Delete a value stored for ID
k
. Read more§impl PreKeyStore for Connection
impl PreKeyStore for Connection
impl Send for Connection
impl Sync for Connection
Auto Trait Implementations§
impl Freeze for Connection
impl !RefUnwindSafe for Connection
impl Unpin for Connection
impl !UnwindSafe for Connection
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more