Add a method to create an ExportedRoomKey from a BackedUpRoomKey

This commit is contained in:
Damir Jelić
2023-10-03 13:19:31 +02:00
parent bc5b190509
commit 44bb9a3d8f
2 changed files with 22 additions and 8 deletions
+4 -8
View File
@@ -575,15 +575,11 @@ impl BackupMachine {
for (room_id, room_keys) in room_keys {
for (session_id, room_key) in room_keys {
let room_key = ExportedRoomKey {
algorithm: room_key.algorithm,
room_id: room_id.to_owned(),
sender_key: room_key.sender_key,
let room_key = ExportedRoomKey::from_backed_up_room_key(
room_id.to_owned(),
session_id,
session_key: room_key.session_key,
sender_claimed_keys: room_key.sender_claimed_keys,
forwarding_curve25519_key_chain: room_key.forwarding_curve25519_key_chain,
};
room_key,
);
decrypted_room_keys.push(room_key);
}
@@ -97,6 +97,24 @@ pub struct ExportedRoomKey {
pub forwarding_curve25519_key_chain: Vec<Curve25519PublicKey>,
}
impl ExportedRoomKey {
pub(crate) fn from_backed_up_room_key(
room_id: OwnedRoomId,
session_id: String,
room_key: BackedUpRoomKey,
) -> Self {
Self {
algorithm: room_key.algorithm,
room_id,
sender_key: room_key.sender_key,
session_id,
session_key: room_key.session_key,
sender_claimed_keys: room_key.sender_claimed_keys,
forwarding_curve25519_key_chain: room_key.forwarding_curve25519_key_chain,
}
}
}
/// A backed up version of an `InboundGroupSession`
///
/// This can be used to backup the `InboundGroupSession` to the server.