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

Modules

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

Structs

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

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<DynCryptoStore>.

Type Aliases