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§
Sourcefn 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 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.
Sourcefn 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 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.
Sourcefn 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,
 
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.