File tree Expand file tree Collapse file tree
crates/presage-store-bitpart/src Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -462,7 +462,29 @@ impl<T: BitpartTrees> KyberPreKeyStore for BitpartProtocolStore<T> {
462462 error ! ( "Error deserializing old format kyber prekey: {:?}" , err) ;
463463 Err ( SignalProtocolError :: InvalidKyberPreKeyId )
464464 }
465- _ => Err ( SignalProtocolError :: InvalidKyberPreKeyId ) ,
465+ Ok ( None ) => {
466+ match self
467+ . store
468+ . get :: < [ u8 ; 4 ] , Vec < u8 > > (
469+ T :: kyber_pre_keys_last_resort ( ) ,
470+ kyber_prekey_id. store_key ( ) ,
471+ )
472+ . await
473+ {
474+ Ok ( Some ( buf) ) => KyberPreKeyRecord :: deserialize ( & buf) ,
475+ Err ( err) => {
476+ error ! (
477+ "Error deserializing old format kyber prekey (last resort): {:?}" ,
478+ err
479+ ) ;
480+ Err ( SignalProtocolError :: InvalidKyberPreKeyId )
481+ }
482+ Ok ( None ) => {
483+ error ! ( "Missing old format kyber prekey!" ) ;
484+ Err ( SignalProtocolError :: InvalidKyberPreKeyId )
485+ }
486+ }
487+ }
466488 }
467489 // let buf: Vec<u8> = self
468490 // .store
You can’t perform that action at this time.
0 commit comments