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_
tests testing
Structs§
- Backup
Decryption Key - The private part of a backup key.
- Backup
Keys - Stored versions of the backup keys.
- Changes
- Aggregated changes to be saved in the database.
- Cross
Signing KeyExport - A struct containing private cross signing keys that can be backed up or uploaded to the secret store.
- Dehydrated
Device Key - The pickle key used to safely store the dehydrated device pickle.
- Device
Changes - Device
Updates - Updates about
Device
s which got received over the/keys/query
endpoint. - Gossip
Request - A struct describing an outgoing key request.
- Identity
Changes - This struct is used to remember whether an identity has undergone a change or remains the same as the one we already know about.
- Identity
Updates - Updates about
UserIdentity
s which got received over the/keys/query
endpoint. - Lockable
Crypto Store - A crypto store that implements primitives for cross-process locking.
- Memory
Store - An in-memory only store that will forget all the E2EE key once it’s dropped.
- Pending
Changes - Aggregated changes to be saved in the database.
- Room
KeyCounts - Struct holding info about how many room keys the store has.
- Room
KeyInfo - Information on a room key that has been received or imported.
- Room
KeyWithheld Info - Information on a room key that has been withheld
- Room
Settings - Room encryption settings which are modified by state events or user options
- Store
- A wrapper for our CryptoStore trait object.
- Store
Transaction - A temporary transaction (that implies a write) to the underlying store.
- Tracked
User - A user for which we are tracking the list of devices.
Enums§
- Crypto
Store Error - The crypto store’s error type.
- Secret
Import Error - Error describing what went wrong when importing private cross signing keys or the key backup key.
- Secret
Info - An enum over the various secret request types we can have.
- Secrets
Bundle Export Error - Error describing what went wrong when exporting a
SecretsBundle
.
Traits§
- Crypto
Store - Represents a store that the
OlmMachine
uses to store E2EE data (such as cryptographic keys). - Into
Crypto Store - A type that can be type-erased into
Arc<DynCryptoStore>
.
Type Aliases§
- DynCrypto
Store - A type-erased
CryptoStore
. - Result
- A
CryptoStore
specific result type.