From 7e793a518cdacf3e84c910a1f0600d98d4a0cc48 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Wed, 14 Oct 2020 22:25:58 +0200 Subject: [PATCH] priorize e2ee_guaranteed over Reset should_encrypt() shall return Ok(false) on peerstate=EncryptPreference::Reset only for opportunistic groups. for verified/protected groups (e2ee_guaranteed set), Ok(true) or Error() should be returned. this bug was introduced by #1946 (Require quorum to enable encryption). --- src/e2ee.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/e2ee.rs b/src/e2ee.rs index 0693c57d9..7dec2c27b 100644 --- a/src/e2ee.rs +++ b/src/e2ee.rs @@ -57,7 +57,7 @@ impl EncryptHelper { /// preferences, even if message copy is not sent to self. /// /// `e2ee_guaranteed` should be set to true for replies to encrypted messages (as required by - /// Autocrypt Level 1, version 1.1) and for messages sent in verified groups. + /// Autocrypt Level 1, version 1.1) and for messages sent in protected groups. /// /// Returns an error if `e2ee_guaranteed` is true, but one or more keys are missing. /// @@ -84,7 +84,11 @@ impl EncryptHelper { match peerstate.prefer_encrypt { EncryptPreference::NoPreference => {} EncryptPreference::Mutual => prefer_encrypt_count += 1, - EncryptPreference::Reset => return Ok(false), + EncryptPreference::Reset => { + if !e2ee_guaranteed { + return Ok(false); + } + } }; } None => {