mirror of
https://github.com/chatmail/core.git
synced 2026-05-22 16:26:31 +03:00
fix: lookup self by address if there is no fingerprint or gossip
This commit is contained in:
@@ -3747,6 +3747,9 @@ async fn add_or_lookup_key_contacts_by_address_list(
|
|||||||
fp.hex()
|
fp.hex()
|
||||||
} else if let Some(key) = gossiped_keys.get(addr) {
|
} else if let Some(key) = gossiped_keys.get(addr) {
|
||||||
key.dc_fingerprint().hex()
|
key.dc_fingerprint().hex()
|
||||||
|
} else if context.is_self_addr(addr).await? {
|
||||||
|
contact_ids.push(Some(ContactId::SELF));
|
||||||
|
continue;
|
||||||
} else {
|
} else {
|
||||||
contact_ids.push(None);
|
contact_ids.push(None);
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
@@ -5302,3 +5302,48 @@ async fn test_outgoing_unencrypted_chat_assignment() {
|
|||||||
let chat = alice.create_email_chat(bob).await;
|
let chat = alice.create_email_chat(bob).await;
|
||||||
assert_eq!(received.chat_id, chat.id);
|
assert_eq!(received.chat_id, chat.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Tests Bob receiving a message from Alice
|
||||||
|
/// in a new group she just created
|
||||||
|
/// with only Alice and Bob.
|
||||||
|
///
|
||||||
|
/// The message has no Autocrypt-Gossip
|
||||||
|
/// headers and no Chat-Group-Member-Fpr header.
|
||||||
|
/// Such messages were created by core 1.159.5
|
||||||
|
/// when Alice has bcc_self disabled
|
||||||
|
/// as Chat-Group-Member-Fpr header did not exist
|
||||||
|
/// yet and Autocrypt-Gossip is not sent
|
||||||
|
/// as there is only one recipient
|
||||||
|
/// (Bob, and no additional Alice devices).
|
||||||
|
///
|
||||||
|
/// Bob should recognize self as being
|
||||||
|
/// a member of the group by just the e-mail address.
|
||||||
|
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
|
||||||
|
async fn test_group_introduction_no_gossip() -> Result<()> {
|
||||||
|
let mut tcm = TestContextManager::new();
|
||||||
|
let bob = &tcm.bob().await;
|
||||||
|
|
||||||
|
let received = receive_imf(
|
||||||
|
bob,
|
||||||
|
include_bytes!("../../test-data/message/group-introduction-no-gossip.eml"),
|
||||||
|
false,
|
||||||
|
)
|
||||||
|
.await
|
||||||
|
.unwrap()
|
||||||
|
.unwrap();
|
||||||
|
let msg = Message::load_from_db(bob, *received.msg_ids.last().unwrap())
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
assert_eq!(msg.text, "I created a group");
|
||||||
|
let chat = Chat::load_from_db(bob, msg.chat_id).await.unwrap();
|
||||||
|
assert_eq!(chat.typ, Chattype::Group);
|
||||||
|
assert_eq!(chat.blocked, Blocked::Request);
|
||||||
|
assert_eq!(chat.name, "Group!");
|
||||||
|
assert!(chat.is_encrypted(bob).await.unwrap());
|
||||||
|
|
||||||
|
let contacts = get_chat_contacts(bob, chat.id).await?;
|
||||||
|
assert_eq!(contacts.len(), 2);
|
||||||
|
assert!(chat.is_self_in_chat(bob).await?);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|||||||
65
test-data/message/group-introduction-no-gossip.eml
Normal file
65
test-data/message/group-introduction-no-gossip.eml
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
Content-Type: multipart/encrypted; protocol="application/pgp-encrypted";
|
||||||
|
boundary="18566fe03178296e_f40510c3b59ace3_ecf843ae3ccd2b17"
|
||||||
|
MIME-Version: 1.0
|
||||||
|
From: <alice@example.org>
|
||||||
|
To: <bob@example.net>
|
||||||
|
Subject: [...]
|
||||||
|
Date: Mon, 28 Jul 2025 14:15:14 +0000
|
||||||
|
Message-ID: <48b9e9cc-2bae-4d41-89b4-a409e2c60c28@localhost>
|
||||||
|
References: <48b9e9cc-2bae-4d41-89b4-a409e2c60c28@localhost>
|
||||||
|
Chat-Version: 1.0
|
||||||
|
Autocrypt: addr=alice@example.org; prefer-encrypt=mutual; keydata=mDMEXlh13RYJKwYBBAHaRw8BAQdAzfVIAleCXMJrq8VeLlEVof6ITCviMktKjmcBKAu4m5
|
||||||
|
C0GUFsaWNlIDxhbGljZUBleGFtcGxlLm9yZz7CkgQQFggAOgUCaIeF8RYhBC5vossjtTLXKGNLWGSw
|
||||||
|
j2Gp7ZRDAhsDAh4BBQsJCAcCBhUKCQgLAgQWAgMBAScCGQEACgkQZLCPYantlEM66gD/b9qi1/H1Cr
|
||||||
|
UwwlW2akVX86Q0gX6isyKfuNu/CdTdzaQBAIHRxvwlBNZr56qMGL7CyVy6LmBslLlbQwAdclM9t9UE
|
||||||
|
uDgEXlh13RIKKwYBBAGXVQEFAQEHQAbtyNbLZIUBTwqeW2W5tVbrusWLJ+nTUmtF7perLbYdAwEIB8
|
||||||
|
J4BBgWCAAgBQJoh4XxAhsMFiEELm+iyyO1MtcoY0tYZLCPYantlEMACgkQZLCPYantlEPG2QD8DthL
|
||||||
|
48j1wnjw+Kby7CmAm/M+Me82izk8dGNPn442jJ4A/2r+YmqfUPK2XDXPRwvVBAIz5bL44fe7gNkUUu
|
||||||
|
XMnzkP
|
||||||
|
|
||||||
|
|
||||||
|
--18566fe03178296e_f40510c3b59ace3_ecf843ae3ccd2b17
|
||||||
|
Content-Type: application/pgp-encrypted; charset="utf-8"
|
||||||
|
Content-Description: PGP/MIME version identification
|
||||||
|
Content-Transfer-Encoding: 7bit
|
||||||
|
|
||||||
|
Version: 1
|
||||||
|
|
||||||
|
--18566fe03178296e_f40510c3b59ace3_ecf843ae3ccd2b17
|
||||||
|
Content-Type: application/octet-stream; name="encrypted.asc";
|
||||||
|
charset="utf-8"
|
||||||
|
Content-Description: OpenPGP encrypted message
|
||||||
|
Content-Disposition: inline; filename="encrypted.asc";
|
||||||
|
Content-Transfer-Encoding: 7bit
|
||||||
|
|
||||||
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
|
wV4D5tq63hTeebASAQdAg7f2cyYQy+7Xrrlq4j3ik2Ba7L2sbh7Tt398Kke65Rkw
|
||||||
|
sUscOFFConkBj7T5D8XS3e9dX5Bnf1z5jTj15OUZx/2iPTRQFtoVoRB6k6vt/qwq
|
||||||
|
wcBMA+PY3JvEjuMiAQf/U9yB7kWhDMmFI7pMoktqqIvO8woKQG0dx2v1tzjIdtY/
|
||||||
|
KlqMW8qpAqMHHalInGjj0LDDv4iWnNf8yTh71FyGQgipqH4FnYmbRoFW8iicMixN
|
||||||
|
0ps6c6tBiZmyWDq2Ub9SIs9L/W2+vDlbyvFnow08MitOniZLC79KXB2ZRFwp7kOm
|
||||||
|
1gqsZVvsy9fSM7oxXrxAtu2VNyp18emd6jAFWYAz2ISl2KuWYlmSJVexSvQWMRz/
|
||||||
|
IkKWf9kOVAEuIeUnNo45S/DVb9uWQN3M1TrIdJ1BC+nEDBJokCWUGES6kchJc823
|
||||||
|
EkLWpn6JDyRYV/7S9tmYrXodO3x4bSL02OnFbyUjutLCRwEduCtRzg5yrw4IAvJO
|
||||||
|
1ujWf7CaAYE+49oh530HZ/gnBJb03nJhj1SOV0qO9ZquczaW0lhSEtfQF1lVWAVc
|
||||||
|
BCE44YoR9sBqiJEJ0Msj/WLlso5RZHvHa64JrNJ7Jvisgn5vCMSfInzQ4zIZ7LfD
|
||||||
|
sR444bJS9V6MNDSuhKmvPvu4wCFZgNQPs4V51yBX8Rjpn/3xws+NpUtisTt5J+ji
|
||||||
|
KOQg3Thy/9NaNmuXHRbPBxzJKdHzL0bctzVxxDyZPcg6Z2Iteea4gQLEwp5HHw2R
|
||||||
|
VMX97vtamsjp++tMihXRnrwX/a7x9MCAFuzZted4fB87VjHIdhf+CN2KshWsX+X5
|
||||||
|
rPR3+oB6EBVXt8IroGMYLTtmMBS4SzEyiGmNFe/Z4tQSU6pEH+Aeo/FmUhUaMhln
|
||||||
|
BAgRRmhw1Mt9nnuRzLwstpN4W5+mnmccNVg0T6kZz9D7Rbjd7FdzgF8d5K1cJiY/
|
||||||
|
Nv5aajaFKSEwAO9TNHNoP3LD5KxMPiCkRh888V3YhCOwTUfwJG8riWgeyFCN6Xor
|
||||||
|
7k6qHhd3T+1u8QTQkooLWSR7UYu9upQzExvmRPNyAXFyLrZUYjlymC1vn9PfH3Pd
|
||||||
|
31aCGYaYPMdyenoAWTwy7VVSR3wpJuzwHHMeowzCA4TklD/tr2mZSpUrgeBqvS6s
|
||||||
|
k68Pi5WjMs/kH/3Wl5Octb8XYN++DiG7RH5JzWYRchURen8jgPjzJPIUI5t+C8w0
|
||||||
|
vXycuP1PdJcSfKTgxkaQgLs5cUoKEAgO5fA9bUPmjEcizb89im6SoObB+6o7hfwa
|
||||||
|
AIr0TjpOmkdL3TANYA5448gTR4Kq+FwhsxX+fHU6OxwxLBozMcBzvjReKdJko8D+
|
||||||
|
joaTEZBFxyvQUub5/MXmuulTEDhwURgGMbIN0TukdYlhUBfvyJ/wl/U9aHWvk+dz
|
||||||
|
3OJ6d9SqTKPPyluTPV7p3GEDy1AwAex5FrP8SxRGRHiMjVhlbwrQB89ZcUX376ge
|
||||||
|
5MPc4wBn44baPluklYcQtk6kp62KuLpfuLT8VbiLDfKT2FoZzoAnUnw=
|
||||||
|
=HN9M
|
||||||
|
-----END PGP MESSAGE-----
|
||||||
|
|
||||||
|
|
||||||
|
--18566fe03178296e_f40510c3b59ace3_ecf843ae3ccd2b17--
|
||||||
Reference in New Issue
Block a user