Skip to main content

KyberPreKeyStore

Trait KyberPreKeyStore 

Source
pub trait KyberPreKeyStore {
    // Required methods
    fn get_kyber_pre_key<'life0, 'async_trait>(
        &'life0 self,
        kyber_prekey_id: KyberPreKeyId,
    ) -> Pin<Box<dyn Future<Output = Result<KyberPreKeyRecord>> + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn save_kyber_pre_key<'life0, 'life1, 'async_trait>(
        &'life0 mut self,
        kyber_prekey_id: KyberPreKeyId,
        record: &'life1 KyberPreKeyRecord,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn mark_kyber_pre_key_used<'life0, 'life1, 'async_trait>(
        &'life0 mut self,
        kyber_prekey_id: KyberPreKeyId,
        ec_prekey_id: SignedPreKeyId,
        base_key: &'life1 PublicKey,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
}
Expand description

Interface for storing signed Kyber pre-keys downloaded from a server.

NB: libsignal makes no distinction between one-time and last-resort pre-keys.

Required Methods§

Source

fn get_kyber_pre_key<'life0, 'async_trait>( &'life0 self, kyber_prekey_id: KyberPreKeyId, ) -> Pin<Box<dyn Future<Output = Result<KyberPreKeyRecord>> + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Look up the signed kyber pre-key corresponding to kyber_prekey_id.

Source

fn save_kyber_pre_key<'life0, 'life1, 'async_trait>( &'life0 mut self, kyber_prekey_id: KyberPreKeyId, record: &'life1 KyberPreKeyRecord, ) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Set the entry for kyber_prekey_id to the value of record.

Source

fn mark_kyber_pre_key_used<'life0, 'life1, 'async_trait>( &'life0 mut self, kyber_prekey_id: KyberPreKeyId, ec_prekey_id: SignedPreKeyId, base_key: &'life1 PublicKey, ) -> Pin<Box<dyn Future<Output = Result<()>> + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Mark the entry for kyber_prekey_id as “used”.

A one-time Kyber pre-key should be deleted after this point. A last-resort pre-key should not immediately be deleted, but should check whether the same combination of pre-keys was used with the given base key before, and produce an error if so.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§