matrix_sdk_indexeddb

Struct IndexeddbCryptoStore

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

An implementation of CryptoStore that uses IndexedDB for persistent storage.

Implementations§

Source§

impl IndexeddbCryptoStore

Source

pub async fn open() -> Result<Self, IndexeddbCryptoStoreError>

Open a new IndexeddbCryptoStore with default name and no passphrase

Source

pub async fn open_with_passphrase( prefix: &str, passphrase: &str, ) -> Result<Self, IndexeddbCryptoStoreError>

Open an IndexeddbCryptoStore with given name and passphrase.

If the store previously existed, the encryption cipher is initialised using the given passphrase and the details from the meta store. If the store did not previously exist, a new encryption cipher is derived from the passphrase, and the details are stored to the metastore.

The store is then opened, or a new one created, using the encryption cipher.

§Arguments
  • prefix - Common prefix for the names of the two IndexedDB stores.
  • passphrase - Passphrase which is used to derive a key to encrypt the key which is used to encrypt the store. Must be the same each time the store is opened.
Source

pub async fn open_with_key( prefix: &str, key: &[u8; 32], ) -> Result<Self, IndexeddbCryptoStoreError>

Open an IndexeddbCryptoStore with given name and key.

If the store previously existed, the encryption cipher is initialised using the given key and the details from the meta store. If the store did not previously exist, a new encryption cipher is derived from the passphrase, and the details are stored to the metastore.

The store is then opened, or a new one created, using the encryption cipher.

§Arguments
  • prefix - Common prefix for the names of the two IndexedDB stores.
  • key - Key with which to encrypt the key which is used to encrypt the store. Must be the same each time the store is opened.
Source

pub async fn open_with_name( name: &str, ) -> Result<Self, IndexeddbCryptoStoreError>

Open a new IndexeddbCryptoStore with given name and no passphrase

Trait Implementations§

Source§

impl Debug for IndexeddbCryptoStore

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Drop for IndexeddbCryptoStore

Source§

fn drop(&mut self)

Executes the destructor for this type. 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
§

impl<T> CompatExt for T

§

fn compat(self) -> Compat<T>

Applies the [Compat] adapter by value. Read more
§

fn compat_ref(&self) -> Compat<&T>

Applies the [Compat] adapter by shared reference. Read more
§

fn compat_mut(&mut self) -> Compat<&mut T>

Applies the [Compat] adapter by mutable reference. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

Source§

const WITNESS: W = W::MAKE

A constant of the type witness
Source§

impl<T> Identity for T
where T: ?Sized,

Source§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
Source§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
§

impl<T> Instrument for T

§

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

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

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Same for T

Source§

type Output = T

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

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

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

Source§

impl<T> MaybeSendSync for T