mirror of
https://github.com/matrix-org/matrix-rust-sdk.git
synced 2026-05-06 23:15:08 -04:00
fix(crypto): Load the recovery key from the sled store
This commit is contained in:
@@ -260,7 +260,6 @@ impl RecoveryKey {
|
||||
|
||||
/// Try to import a `RecoveryKey` from a previously exported pickle.
|
||||
pub fn from_pickle(
|
||||
&self,
|
||||
pickle: PickledRecoveryKey,
|
||||
pickle_key: &[u8],
|
||||
) -> Result<Self, UnpicklingError> {
|
||||
|
||||
@@ -917,11 +917,23 @@ impl CryptoStore for SledStore {
|
||||
.map(|v| serde_json::from_slice(&v))
|
||||
.transpose()?;
|
||||
|
||||
Ok(BackupKeys {
|
||||
backup_version: version,
|
||||
// TODO fetch the key as well.
|
||||
recovery_key: None,
|
||||
})
|
||||
#[cfg(feature = "backups_v1")]
|
||||
let recovery_key = {
|
||||
self.account
|
||||
.get("recovery_key_v1".encode())?
|
||||
.map(|p| serde_json::from_slice(&p))
|
||||
.transpose()?
|
||||
.map(|p| {
|
||||
crate::backups::RecoveryKey::from_pickle(p, self.get_pickle_key())
|
||||
.map_err(|_| CryptoStoreError::UnpicklingError)
|
||||
})
|
||||
.transpose()?
|
||||
};
|
||||
|
||||
#[cfg(not(feature = "backups_v1"))]
|
||||
let recovery_key = None;
|
||||
|
||||
Ok(BackupKeys { backup_version: version, recovery_key })
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user