deltachat-core-rust icon indicating copy to clipboard operation
deltachat-core-rust copied to clipboard

reset encryption for a contact not using DC/Autocrypt anymore

Open hpk42 opened this issue 1 year ago • 3 comments

Problem: As a long-time delta chat user i have several contacts that once tried delta chat on their regular e-mail account but have since moved to a dedicated account or stopped using delta chat. If i message them now, they will receive an unreadable message and i'd like to avoid that (after a year contacting someone with an unreadable message is annoying for them).

Solution1: I'd like to be able to go to their contact profile and have a way to manually "reset" or "clear" encryption for this contact. While resetting autocrypt state should be easy enough, it could also affect verified groups where a member is part of. I think as a first step, it's fine to just clear the autocrypt key state for a contact but leave the verified key intact -- those verified groups will (in my cases) not be used anymore. Once a core API is there for clearing autocrypt keys for a contact, UIs could gradually offer calling it in the contact profile page.

Solution2: it's also arguably a bug with implementing the autocrypt spec which mandates that after 35 days the recommendation is to not encrypt -- it might be that our "reply encrypted to encrypted last message" policy is too eager but should actually only be strict when "quote-replying" but not for regular standalone messages?

hpk42 avatar Jun 09 '23 08:06 hpk42

wouldn't be simpler to allow users to force sending with/without encryption? that will also solve a lot of other requests from users and that also I miss, like a way to have more control / safety about the encryption state of the message I am about to send, like in other autocrypt clients like k9mail where you have control if you want to send the message encrypted or not

adbenitez avatar Jun 09 '23 10:06 adbenitez

While resetting autocrypt state should be easy enough, it could also affect verified groups where a member is part of.

This is not the case currently. Encryption preference (Peerstate.prefer_encrypt) only affects Autocrypt. In verified group the verified key is used regardless of whether prefer_encrypt is NoPreference, Mutual or Reset. Just setting Peerstate.prefer_encrypt to Reset already does what you describe in "solution 1", and this is what Peerstate.degrade_encryption() does.

it's also arguably a bug with implementing the autocrypt spec which mandates that after 35 days the recommendation is to not encrypt.

IIRC this rule was never implemented in Delta Chat. It might make sense for 1:1 chats, but I definitely do not want it for large groups with many inactive users, because they will then become unencrypted after some time even though we treat encryption preference in groups as a majority vote (#1946).

If we consider implementing "35 days" rule for 1:1 chats, it should be aligned with #4188 and encryption should not just silently drop without any warning.

it might be that our "reply encrypted to encrypted last message" policy is too eager but should actually only be strict when "quote-replying" but not for regular standalone messages?

This is already the case since quoting was implemented in #1975.

link2xt avatar Jun 10 '23 00:06 link2xt

Removed "bug", this issue is actually a feature request.

link2xt avatar Jun 10 '23 00:06 link2xt