From 44bb9a3d8fc7535dc7eab7c679e1809237e7cc02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damir=20Jeli=C4=87?= Date: Tue, 3 Oct 2023 13:19:31 +0200 Subject: [PATCH] Add a method to create an ExportedRoomKey from a BackedUpRoomKey --- crates/matrix-sdk-crypto/src/backups/mod.rs | 12 ++++-------- .../src/olm/group_sessions/mod.rs | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/crates/matrix-sdk-crypto/src/backups/mod.rs b/crates/matrix-sdk-crypto/src/backups/mod.rs index bd62cfcf3..ed04478b0 100644 --- a/crates/matrix-sdk-crypto/src/backups/mod.rs +++ b/crates/matrix-sdk-crypto/src/backups/mod.rs @@ -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); } diff --git a/crates/matrix-sdk-crypto/src/olm/group_sessions/mod.rs b/crates/matrix-sdk-crypto/src/olm/group_sessions/mod.rs index 0a1484ec9..7037833c3 100644 --- a/crates/matrix-sdk-crypto/src/olm/group_sessions/mod.rs +++ b/crates/matrix-sdk-crypto/src/olm/group_sessions/mod.rs @@ -97,6 +97,24 @@ pub struct ExportedRoomKey { pub forwarding_curve25519_key_chain: Vec, } +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.