Module store

Source
Expand description

Types and traits to implement the storage layer for the OlmMachine

The storage layer for the OlmMachine can be customized using a trait. Implementing your own CryptoStore

An in-memory only store is provided as well as a SQLite-based one, depending on your needs and targets a custom store may be implemented, e.g. for wasm-unknown-unknown an indexeddb store would be needed

let store = Arc::new(MemoryStore::new());

let machine = OlmMachine::with_store(user_id, device_id, store, None);

Re-exports§

pub use crate::dehydrated_devices::DehydrationError;

Modules§

caches
Collection of small in-memory stores that can be used to cache Olm objects.
integration_teststesting

Structs§

BackupDecryptionKey
The private part of a backup key.
BackupKeys
Stored versions of the backup keys.
Changes
Aggregated changes to be saved in the database.
CrossSigningKeyExport
A struct containing private cross signing keys that can be backed up or uploaded to the secret store.
DehydratedDeviceKey
The pickle key used to safely store the dehydrated device pickle.
DeviceChanges
DeviceUpdates
Updates about Devices which got received over the /keys/query endpoint.
GossipRequest
A struct describing an outgoing key request.
IdentityChanges
This struct is used to remember whether an identity has undergone a change or remains the same as the one we already know about.
IdentityUpdates
Updates about UserIdentitys which got received over the /keys/query endpoint.
LockableCryptoStore
A crypto store that implements primitives for cross-process locking.
MemoryStore
An in-memory only store that will forget all the E2EE key once it’s dropped.
PendingChanges
Aggregated changes to be saved in the database.
RoomKeyCounts
Struct holding info about how many room keys the store has.
RoomKeyInfo
Information on a room key that has been received or imported.
RoomKeyWithheldInfo
Information on a room key that has been withheld
RoomSettings
Room encryption settings which are modified by state events or user options
Store
A wrapper for our CryptoStore trait object.
StoreTransaction
A temporary transaction (that implies a write) to the underlying store.
TrackedUser
A user for which we are tracking the list of devices.

Enums§

CryptoStoreError
The crypto store’s error type.
SecretImportError
Error describing what went wrong when importing private cross signing keys or the key backup key.
SecretInfo
An enum over the various secret request types we can have.
SecretsBundleExportError
Error describing what went wrong when exporting a SecretsBundle.

Traits§

CryptoStore
Represents a store that the OlmMachine uses to store E2EE data (such as cryptographic keys).
IntoCryptoStore
A type that can be type-erased into Arc<DynCryptoStore>.

Type Aliases§

DynCryptoStore
A type-erased CryptoStore.
Result
A CryptoStore specific result type.