Skip to content

Commit d12590c

Browse files
committed
Even more Kyber key fallbacks.
1 parent db4082c commit d12590c

1 file changed

Lines changed: 23 additions & 1 deletion

File tree

crates/presage-store-bitpart/src/protocol.rs

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)