-
-
Notifications
You must be signed in to change notification settings - Fork 102
Key-contacts #6796
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Key-contacts #6796
Conversation
7acd920
to
280e5dd
Compare
7e5dab4
to
479879a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just 3 small things I was wondering while skimming over
ebe2a09
to
cac8d20
Compare
a way to know if a chat is an encrypted chat is missing, currently there is only "isPgpContact" that can be used to mark contacts/1:1 chat but for unencrypted groups/threads of classic email non-pgp contacts there is no API to recognize such chats and also put the "classic email" marker as for classic email contacts |
625f8f4
to
c87c241
Compare
fb034c4
to
ea48d78
Compare
918277f
to
9cf065a
Compare
1cff5d4
to
907628e
Compare
dbade62
to
b7284c0
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another day, another set of review comments
There is a problem with 1:1 chat assignment. If there is no Autocrypt-Gossip on outgoing message, then to_id gets converted to email contact. If there is also a Chat-Verified header, receive_imf fails with an error like |
Previously, messages were not rewritten. This meant that all messages stayed with the old email-identified contact. #6916 made it very obvious that all messages sent into a group before the PGP-contacts migration got the email avatar. With this PR, all encrypted messages are rewritten to the PGP-contact identified by the current autocrypt key. It is not possible to find out which key was actually used to sign the message. --------- Co-authored-by: iequidoo <117991069+iequidoo@users.noreply.github.com>
5298146
to
b647868
Compare
/me accidentally added and removed a commit here to fix "golden test", i wanted to add that to #6938 only ... |
…n the CHANGELOG, the api seems not to be exposed or used otherwise
key contacts, address contacts
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't do another full review, but I reviewed a few weeks ago and then reviewed all the individual added commits, so, can be merged from my side!
This change introduces a new type of contacts identified by their public key fingerprint rather than an e-mail address. Encrypted chats now stay encrypted and unencrypted chats stay unencrypted. For example, 1:1 chats with key-contacts are encrypted and 1:1 chats with address-contacts are unencrypted. Groups that have a group ID are encrypted and can only contain key-contacts while groups that don't have a group ID ("adhoc groups") are unencrypted and can only contain address-contacts. JSON-RPC API `reset_contact_encryption` is removed. Python API `Contact.reset_encryption` is removed. "Group tracking plugin" in legacy Python API was removed because it relied on parsing email addresses from system messages with regexps. Co-authored-by: Hocuri <hocuri@gmx.de> Co-authored-by: iequidoo <dgreshilov@gmail.com> Co-authored-by: B. Petersen <r10s@b44t.com>
This change introduces a new type of contacts
identified by their public key fingerprint
rather than an e-mail address.
Encrypted chats now stay encrypted
and unencrypted chats stay unencrypted.
For example, 1:1 chats with key-contacts
are encrypted and 1:1 chats with address-contacts
are unencrypted.
Groups that have a group ID are encrypted
and can only contain key-contacts
while group that don't have a group ID ("adhoc groups")
are unencrypted and can only contain address-contacts.
JSON-RPC:
reset_contact_encryption
API is removed.In deltachat-rpc-client API
Contact.reset_encryption
is removed."Group tracking plugin" in legacy Python API was removed because it relied on parsing email addresses from system messages with regexps.
Known multi-device (non-)issue: pinning a 1:1 chat from legacy client pins email chat via sync message.
Still missing, not all of this should be fixed before merging but at least CI should pass:
Chat-Group-Member-Fpr
header.test_prefer_encrypt_mutual_if_encrypted
has TODOs for assigning to chat by issuer fingerprint. This should also work if the key is attached and no Autocrypt header is sent.Signed-only messages should probably go to PGP-chat without a padlock. Fixing this is out of scope of this PR.Signed-only messages to to email-contact. If Thunderbird is configured to send Autocrypt header, chatting should work, this is already tested.is_encrypted
, this adds database calls. Could be optimized.Chat-Group-Member-Fpr
format should be fixed before release.