pub struct SledCryptoStore { /* private fields */ }Expand description
A sled based cryptostore.
Implementations§
Source§impl SledCryptoStore
impl SledCryptoStore
Sourcepub fn open_with_passphrase(
path: impl AsRef<Path>,
passphrase: Option<&str>,
) -> Result<Self, OpenStoreError>
pub fn open_with_passphrase( path: impl AsRef<Path>, passphrase: Option<&str>, ) -> Result<Self, OpenStoreError>
Open the sled-based crypto store at the given path using the given passphrase to encrypt private data.
Sourcepub fn open_with_database(
db: Db,
passphrase: Option<&str>,
) -> Result<Self, OpenStoreError>
pub fn open_with_database( db: Db, passphrase: Option<&str>, ) -> Result<Self, OpenStoreError>
Create a sled-based crypto store using the given sled database. The given passphrase will be used to encrypt private data.
Sourcepub async fn save_tracked_users(
&self,
tracked_users: &[(&UserId, bool)],
) -> Result<(), CryptoStoreError>
pub async fn save_tracked_users( &self, tracked_users: &[(&UserId, bool)], ) -> Result<(), CryptoStoreError>
Save a batch of tracked users.
§Arguments
tracked_users- A list of tuples. The first element of the tuple is the user ID, the second element is if the user should be considered to be dirty.
Trait Implementations§
Source§impl Clone for SledCryptoStore
impl Clone for SledCryptoStore
Source§fn clone(&self) -> SledCryptoStore
fn clone(&self) -> SledCryptoStore
Returns a duplicate 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 CryptoStore for SledCryptoStore
impl CryptoStore for SledCryptoStore
Source§fn load_account<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<ReadOnlyAccount>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn load_account<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<ReadOnlyAccount>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Load an account that was previously stored.
Source§fn save_account<'life0, 'async_trait>(
&'life0 self,
account: ReadOnlyAccount,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn save_account<'life0, 'async_trait>(
&'life0 self,
account: ReadOnlyAccount,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Save the given account in the store. Read more
Source§fn load_identity<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<PrivateCrossSigningIdentity>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn load_identity<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<PrivateCrossSigningIdentity>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Try to load a private cross signing identity, if one is stored.
Source§fn save_changes<'life0, 'async_trait>(
&'life0 self,
changes: Changes,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn save_changes<'life0, 'async_trait>(
&'life0 self,
changes: Changes,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Save the set of changes to the store. Read more
Source§fn get_sessions<'life0, 'life1, 'async_trait>(
&'life0 self,
sender_key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Arc<Mutex<Vec<Session>>>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_sessions<'life0, 'life1, 'async_trait>(
&'life0 self,
sender_key: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Arc<Mutex<Vec<Session>>>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get all the sessions that belong to the given sender key. Read more
Source§fn get_inbound_group_session<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
room_id: &'life1 RoomId,
sender_key: &'life2 str,
session_id: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<Option<InboundGroupSession>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn get_inbound_group_session<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
room_id: &'life1 RoomId,
sender_key: &'life2 str,
session_id: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<Option<InboundGroupSession>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Get the inbound group session from our store. Read more
Source§fn get_inbound_group_sessions<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<InboundGroupSession>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_inbound_group_sessions<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<InboundGroupSession>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get all the inbound group sessions we have stored.
Source§fn inbound_group_session_counts<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<RoomKeyCounts>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn inbound_group_session_counts<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<RoomKeyCounts>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get the number inbound group sessions we have and how many of them are
backed up.
Source§fn inbound_group_sessions_for_backup<'life0, 'async_trait>(
&'life0 self,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<InboundGroupSession>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn inbound_group_sessions_for_backup<'life0, 'async_trait>(
&'life0 self,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<InboundGroupSession>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get all the inbound group sessions we have not backed up yet.
Source§fn reset_backup_state<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn reset_backup_state<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Reset the backup state of all the stored inbound group sessions.
Source§fn get_outbound_group_sessions<'life0, 'life1, 'async_trait>(
&'life0 self,
room_id: &'life1 RoomId,
) -> Pin<Box<dyn Future<Output = Result<Option<OutboundGroupSession>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_outbound_group_sessions<'life0, 'life1, 'async_trait>(
&'life0 self,
room_id: &'life1 RoomId,
) -> Pin<Box<dyn Future<Output = Result<Option<OutboundGroupSession>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get the outbound group sessions we have stored that is used for the
given room.
Source§fn is_user_tracked(&self, user_id: &UserId) -> bool
fn is_user_tracked(&self, user_id: &UserId) -> bool
Is the given user already tracked.
Source§fn has_users_for_key_query(&self) -> bool
fn has_users_for_key_query(&self) -> bool
Are there any tracked users that are marked as dirty.
Source§fn users_for_key_query(&self) -> HashSet<OwnedUserId>
fn users_for_key_query(&self) -> HashSet<OwnedUserId>
Set of users that we need to query keys for. This is a subset of
the tracked users.
Source§fn tracked_users(&self) -> HashSet<OwnedUserId>
fn tracked_users(&self) -> HashSet<OwnedUserId>
Get all tracked users we know about.
Source§fn update_tracked_user<'life0, 'life1, 'async_trait>(
&'life0 self,
user: &'life1 UserId,
dirty: bool,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update_tracked_user<'life0, 'life1, 'async_trait>(
&'life0 self,
user: &'life1 UserId,
dirty: bool,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Add an user for tracking. Read more
Source§fn get_device<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
user_id: &'life1 UserId,
device_id: &'life2 DeviceId,
) -> Pin<Box<dyn Future<Output = Result<Option<ReadOnlyDevice>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_device<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
user_id: &'life1 UserId,
device_id: &'life2 DeviceId,
) -> Pin<Box<dyn Future<Output = Result<Option<ReadOnlyDevice>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Get the device for the given user with the given device ID. Read more
Source§fn get_user_devices<'life0, 'life1, 'async_trait>(
&'life0 self,
user_id: &'life1 UserId,
) -> Pin<Box<dyn Future<Output = Result<HashMap<OwnedDeviceId, ReadOnlyDevice>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_user_devices<'life0, 'life1, 'async_trait>(
&'life0 self,
user_id: &'life1 UserId,
) -> Pin<Box<dyn Future<Output = Result<HashMap<OwnedDeviceId, ReadOnlyDevice>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get all the devices of the given user. Read more
Source§fn get_user_identity<'life0, 'life1, 'async_trait>(
&'life0 self,
user_id: &'life1 UserId,
) -> Pin<Box<dyn Future<Output = Result<Option<ReadOnlyUserIdentities>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_user_identity<'life0, 'life1, 'async_trait>(
&'life0 self,
user_id: &'life1 UserId,
) -> Pin<Box<dyn Future<Output = Result<Option<ReadOnlyUserIdentities>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get the user identity that is attached to the given user id. Read more
Source§fn is_message_known<'life0, 'life1, 'async_trait>(
&'life0 self,
message_hash: &'life1 OlmMessageHash,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn is_message_known<'life0, 'life1, 'async_trait>(
&'life0 self,
message_hash: &'life1 OlmMessageHash,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Check if a hash for an Olm message stored in the database.
Source§fn get_outgoing_secret_requests<'life0, 'life1, 'async_trait>(
&'life0 self,
request_id: &'life1 TransactionId,
) -> Pin<Box<dyn Future<Output = Result<Option<GossipRequest>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_outgoing_secret_requests<'life0, 'life1, 'async_trait>(
&'life0 self,
request_id: &'life1 TransactionId,
) -> Pin<Box<dyn Future<Output = Result<Option<GossipRequest>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get an outgoing secret request that we created that matches the given
request id. Read more
Source§fn get_secret_request_by_info<'life0, 'life1, 'async_trait>(
&'life0 self,
key_info: &'life1 SecretInfo,
) -> Pin<Box<dyn Future<Output = Result<Option<GossipRequest>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_secret_request_by_info<'life0, 'life1, 'async_trait>(
&'life0 self,
key_info: &'life1 SecretInfo,
) -> Pin<Box<dyn Future<Output = Result<Option<GossipRequest>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get an outgoing key request that we created that matches the given
requested key info. Read more
Source§fn get_unsent_secret_requests<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<GossipRequest>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_unsent_secret_requests<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<GossipRequest>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get all outgoing secret requests that we have in the store.
Source§fn delete_outgoing_secret_requests<'life0, 'life1, 'async_trait>(
&'life0 self,
request_id: &'life1 TransactionId,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_outgoing_secret_requests<'life0, 'life1, 'async_trait>(
&'life0 self,
request_id: &'life1 TransactionId,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Delete an outgoing key request that we created that matches the given
request id. Read more
Source§fn load_backup_keys<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<BackupKeys>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn load_backup_keys<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<BackupKeys>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get the backup keys we have stored.
Auto Trait Implementations§
impl Freeze for SledCryptoStore
impl !RefUnwindSafe for SledCryptoStore
impl Send for SledCryptoStore
impl Sync for SledCryptoStore
impl Unpin for SledCryptoStore
impl !UnwindSafe for SledCryptoStore
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