SledCryptoStore

Struct SledCryptoStore 

Source
pub struct SledCryptoStore { /* private fields */ }
Expand description

A sled based cryptostore.

Implementations§

Source§

impl SledCryptoStore

Source

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.

Source

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.

Source

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

Source§

fn clone(&self) -> SledCryptoStore

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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

Is the given user already tracked.
Source§

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>

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>

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

Get the backup keys we have stored.
Source§

impl Debug for SledCryptoStore

Source§

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

Formats the value using the given formatter. Read more

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
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoCryptoStore for T
where T: CryptoStore + 'static,

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> AsyncTraitDeps for T

Source§

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

Source§

impl<T> SendOutsideWasm for T
where T: Send,

Source§

impl<T> SyncOutsideWasm for T
where T: Sync,