Struct mls_crypto_provider::CryptoKeystore
source · pub struct CryptoKeystore { /* private fields */ }
Implementations§
source§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 wipe(self) -> Result<(), CryptoKeystoreError>
pub async fn close(self) -> Result<(), CryptoKeystoreError>
pub async fn new_transaction(&self) -> Result<(), CryptoKeystoreError>
pub async fn commit_transaction(&self) -> Result<(), CryptoKeystoreError>
pub async fn rollback_transaction(&self) -> Result<(), CryptoKeystoreError>
pub async fn child_groups<E>( &self, entity: E, ) -> Result<Vec<E>, CryptoKeystoreError>
pub async fn save<E>(&self, entity: E) -> Result<E, CryptoKeystoreError>
pub async fn remove<E, S>(&self, id: S) -> Result<(), CryptoKeystoreError>
pub async fn cred_delete_by_credential( &self, cred: Vec<u8>, ) -> Result<(), CryptoKeystoreError>
Trait Implementations§
source§impl Clone for Connection
impl Clone for Connection
source§fn clone(&self) -> Connection
fn clone(&self) -> Connection
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl CryptoKeystoreMls for Connection
impl CryptoKeystoreMls for Connection
source§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
source§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
source§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 moresource§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 moresource§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 moresource§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 moresource§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 moresource§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 moresource§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
source§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
source§impl CryptoKeystoreProteus for Connection
impl CryptoKeystoreProteus for Connection
fn proteus_store_prekey<'life0, 'life1, 'async_trait>(
&'life0 self,
id: u16,
prekey: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<(), CryptoKeystoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Connection: 'async_trait,
source§impl Debug for Connection
impl Debug for Connection
source§impl FetchFromDatabase for Connection
impl FetchFromDatabase for Connection
fn find<'life0, 'life1, 'async_trait, E>(
&'life0 self,
id: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<Option<E>, CryptoKeystoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
E: 'async_trait + Entity<ConnectionType = SqlCipherConnection>,
Connection: 'async_trait,
fn find_unique<'life0, 'async_trait, U>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<U, CryptoKeystoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
U: 'async_trait + UniqueEntity,
Connection: 'async_trait,
fn find_all<'life0, 'async_trait, E>(
&'life0 self,
params: EntityFindParams,
) -> Pin<Box<dyn Future<Output = Result<Vec<E>, CryptoKeystoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
E: 'async_trait + Entity<ConnectionType = SqlCipherConnection>,
Connection: 'async_trait,
fn find_many<'life0, 'life1, 'async_trait, E>(
&'life0 self,
ids: &'life1 [Vec<u8>],
) -> Pin<Box<dyn Future<Output = Result<Vec<E>, CryptoKeystoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
E: 'async_trait + Entity<ConnectionType = SqlCipherConnection>,
Connection: 'async_trait,
fn count<'life0, 'async_trait, E>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<usize, CryptoKeystoreError>> + Send + 'async_trait>>where
'life0: 'async_trait,
E: 'async_trait + Entity<ConnectionType = SqlCipherConnection>,
Connection: 'async_trait,
source§impl OpenMlsKeyStore for Connection
impl OpenMlsKeyStore for Connection
source§type Error = CryptoKeystoreError
type Error = CryptoKeystoreError
The error type returned by the [
OpenMlsKeyStore
].source§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,
source§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 moresource§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 moresource§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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)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