1 files changed, 7 insertions, 0 deletions
diff --git a/src/Olm.cpp b/src/Olm.cpp
index 05eefce4..c0360e1c 100644
--- a/src/Olm.cpp
+++ b/src/Olm.cpp
@@ -835,6 +835,13 @@ import_inbound_megolm_session(
data.sender_claimed_ed25519_key = roomKey.content.sender_claimed_ed25519_key;
// may have come from online key backup, so we can't trust it...
data.trusted = false;
+ // if we got it forwarded from the sender, assume it is trusted. They may still have
+ // used key backup, but it is unlikely.
+ if (roomKey.content.forwarding_curve25519_key_chain.size() == 1 &&
+ roomKey.content.forwarding_curve25519_key_chain.back() ==
+ roomKey.content.sender_key) {
+ data.trusted = true;
+ }
cache::saveInboundMegolmSession(index, std::move(megolm_session), data);
} catch (const lmdb::error &e) {
|