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 Sled 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);

Modules

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

Structs

Stored versions of the backup keys.

A struct containing private cross signing keys that can be backed up or uploaded to the secret store.

A struct describing an outgoing key request.

An in-memory only store that will forget all the E2EE key once it’s dropped.

The private part of a backup key.

Struct holding info about how many room keys the store has.

A wrapper for our CryptoStore trait object.

Enums

The crypto store’s error type.

Error describing what went wrong when importing private cross signing keys or the key backup key.

An enum over the various secret request types we can have.

Traits

Represents a store that the OlmMachine uses to store E2EE data (such as cryptographic keys).

A type that can be type-erased into Arc<dyn CryptoStore>.

Type Definitions

A CryptoStore specific result type.