Skip to content

Commit 039a8b7

Browse files
committed
fix: lookup self by address if there is no fingerprint or gossip
1 parent 779f58a commit 039a8b7

File tree

3 files changed

+113
-0
lines changed

3 files changed

+113
-0
lines changed

src/receive_imf.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3747,6 +3747,9 @@ async fn add_or_lookup_key_contacts_by_address_list(
37473747
fp.hex()
37483748
} else if let Some(key) = gossiped_keys.get(addr) {
37493749
key.dc_fingerprint().hex()
3750+
} else if context.is_self_addr(addr).await? {
3751+
contact_ids.push(Some(ContactId::SELF));
3752+
continue;
37503753
} else {
37513754
contact_ids.push(None);
37523755
continue;

src/receive_imf/receive_imf_tests.rs

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5302,3 +5302,48 @@ async fn test_outgoing_unencrypted_chat_assignment() {
53025302
let chat = alice.create_email_chat(bob).await;
53035303
assert_eq!(received.chat_id, chat.id);
53045304
}
5305+
5306+
/// Tests Bob receiving a message from Alice
5307+
/// in a new group she just created
5308+
/// with only Alice and Bob.
5309+
///
5310+
/// The message has no Autocrypt-Gossip
5311+
/// headers and no Chat-Group-Member-Fpr header.
5312+
/// Such messages were created by core 1.159.5
5313+
/// when Alice has bcc_self disabled
5314+
/// as Chat-Group-Member-Fpr header did not exist
5315+
/// yet and Autocrypt-Gossip is not sent
5316+
/// as there is only one recipient
5317+
/// (Bob, and no additional Alice devices).
5318+
///
5319+
/// Bob should recognize self as being
5320+
/// a member of the group by just the e-mail address.
5321+
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
5322+
async fn test_group_introduction_no_gossip() -> Result<()> {
5323+
let mut tcm = TestContextManager::new();
5324+
let bob = &tcm.bob().await;
5325+
5326+
let received = receive_imf(
5327+
bob,
5328+
include_bytes!("../../test-data/message/group-introduction-no-gossip.eml"),
5329+
false,
5330+
)
5331+
.await
5332+
.unwrap()
5333+
.unwrap();
5334+
let msg = Message::load_from_db(bob, *received.msg_ids.last().unwrap())
5335+
.await
5336+
.unwrap();
5337+
assert_eq!(msg.text, "I created a group");
5338+
let chat = Chat::load_from_db(bob, msg.chat_id).await.unwrap();
5339+
assert_eq!(chat.typ, Chattype::Group);
5340+
assert_eq!(chat.blocked, Blocked::Request);
5341+
assert_eq!(chat.name, "Group!");
5342+
assert!(chat.is_encrypted(bob).await.unwrap());
5343+
5344+
let contacts = get_chat_contacts(bob, chat.id).await?;
5345+
assert_eq!(contacts.len(), 2);
5346+
assert!(chat.is_self_in_chat(bob).await?);
5347+
5348+
Ok(())
5349+
}
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
Content-Type: multipart/encrypted; protocol="application/pgp-encrypted";
2+
boundary="18566fe03178296e_f40510c3b59ace3_ecf843ae3ccd2b17"
3+
MIME-Version: 1.0
4+
5+
6+
Subject: [...]
7+
Date: Mon, 28 Jul 2025 14:15:14 +0000
8+
Message-ID: <48b9e9cc-2bae-4d41-89b4-a409e2c60c28@localhost>
9+
References: <48b9e9cc-2bae-4d41-89b4-a409e2c60c28@localhost>
10+
Chat-Version: 1.0
11+
Autocrypt: addr=[email protected]; prefer-encrypt=mutual; keydata=mDMEXlh13RYJKwYBBAHaRw8BAQdAzfVIAleCXMJrq8VeLlEVof6ITCviMktKjmcBKAu4m5
12+
C0GUFsaWNlIDxhbGljZUBleGFtcGxlLm9yZz7CkgQQFggAOgUCaIeF8RYhBC5vossjtTLXKGNLWGSw
13+
j2Gp7ZRDAhsDAh4BBQsJCAcCBhUKCQgLAgQWAgMBAScCGQEACgkQZLCPYantlEM66gD/b9qi1/H1Cr
14+
UwwlW2akVX86Q0gX6isyKfuNu/CdTdzaQBAIHRxvwlBNZr56qMGL7CyVy6LmBslLlbQwAdclM9t9UE
15+
uDgEXlh13RIKKwYBBAGXVQEFAQEHQAbtyNbLZIUBTwqeW2W5tVbrusWLJ+nTUmtF7perLbYdAwEIB8
16+
J4BBgWCAAgBQJoh4XxAhsMFiEELm+iyyO1MtcoY0tYZLCPYantlEMACgkQZLCPYantlEPG2QD8DthL
17+
48j1wnjw+Kby7CmAm/M+Me82izk8dGNPn442jJ4A/2r+YmqfUPK2XDXPRwvVBAIz5bL44fe7gNkUUu
18+
XMnzkP
19+
20+
21+
--18566fe03178296e_f40510c3b59ace3_ecf843ae3ccd2b17
22+
Content-Type: application/pgp-encrypted; charset="utf-8"
23+
Content-Description: PGP/MIME version identification
24+
Content-Transfer-Encoding: 7bit
25+
26+
Version: 1
27+
28+
--18566fe03178296e_f40510c3b59ace3_ecf843ae3ccd2b17
29+
Content-Type: application/octet-stream; name="encrypted.asc";
30+
charset="utf-8"
31+
Content-Description: OpenPGP encrypted message
32+
Content-Disposition: inline; filename="encrypted.asc";
33+
Content-Transfer-Encoding: 7bit
34+
35+
-----BEGIN PGP MESSAGE-----
36+
37+
wV4D5tq63hTeebASAQdAg7f2cyYQy+7Xrrlq4j3ik2Ba7L2sbh7Tt398Kke65Rkw
38+
sUscOFFConkBj7T5D8XS3e9dX5Bnf1z5jTj15OUZx/2iPTRQFtoVoRB6k6vt/qwq
39+
wcBMA+PY3JvEjuMiAQf/U9yB7kWhDMmFI7pMoktqqIvO8woKQG0dx2v1tzjIdtY/
40+
KlqMW8qpAqMHHalInGjj0LDDv4iWnNf8yTh71FyGQgipqH4FnYmbRoFW8iicMixN
41+
0ps6c6tBiZmyWDq2Ub9SIs9L/W2+vDlbyvFnow08MitOniZLC79KXB2ZRFwp7kOm
42+
1gqsZVvsy9fSM7oxXrxAtu2VNyp18emd6jAFWYAz2ISl2KuWYlmSJVexSvQWMRz/
43+
IkKWf9kOVAEuIeUnNo45S/DVb9uWQN3M1TrIdJ1BC+nEDBJokCWUGES6kchJc823
44+
EkLWpn6JDyRYV/7S9tmYrXodO3x4bSL02OnFbyUjutLCRwEduCtRzg5yrw4IAvJO
45+
1ujWf7CaAYE+49oh530HZ/gnBJb03nJhj1SOV0qO9ZquczaW0lhSEtfQF1lVWAVc
46+
BCE44YoR9sBqiJEJ0Msj/WLlso5RZHvHa64JrNJ7Jvisgn5vCMSfInzQ4zIZ7LfD
47+
sR444bJS9V6MNDSuhKmvPvu4wCFZgNQPs4V51yBX8Rjpn/3xws+NpUtisTt5J+ji
48+
KOQg3Thy/9NaNmuXHRbPBxzJKdHzL0bctzVxxDyZPcg6Z2Iteea4gQLEwp5HHw2R
49+
VMX97vtamsjp++tMihXRnrwX/a7x9MCAFuzZted4fB87VjHIdhf+CN2KshWsX+X5
50+
rPR3+oB6EBVXt8IroGMYLTtmMBS4SzEyiGmNFe/Z4tQSU6pEH+Aeo/FmUhUaMhln
51+
BAgRRmhw1Mt9nnuRzLwstpN4W5+mnmccNVg0T6kZz9D7Rbjd7FdzgF8d5K1cJiY/
52+
Nv5aajaFKSEwAO9TNHNoP3LD5KxMPiCkRh888V3YhCOwTUfwJG8riWgeyFCN6Xor
53+
7k6qHhd3T+1u8QTQkooLWSR7UYu9upQzExvmRPNyAXFyLrZUYjlymC1vn9PfH3Pd
54+
31aCGYaYPMdyenoAWTwy7VVSR3wpJuzwHHMeowzCA4TklD/tr2mZSpUrgeBqvS6s
55+
k68Pi5WjMs/kH/3Wl5Octb8XYN++DiG7RH5JzWYRchURen8jgPjzJPIUI5t+C8w0
56+
vXycuP1PdJcSfKTgxkaQgLs5cUoKEAgO5fA9bUPmjEcizb89im6SoObB+6o7hfwa
57+
AIr0TjpOmkdL3TANYA5448gTR4Kq+FwhsxX+fHU6OxwxLBozMcBzvjReKdJko8D+
58+
joaTEZBFxyvQUub5/MXmuulTEDhwURgGMbIN0TukdYlhUBfvyJ/wl/U9aHWvk+dz
59+
3OJ6d9SqTKPPyluTPV7p3GEDy1AwAex5FrP8SxRGRHiMjVhlbwrQB89ZcUX376ge
60+
5MPc4wBn44baPluklYcQtk6kp62KuLpfuLT8VbiLDfKT2FoZzoAnUnw=
61+
=HN9M
62+
-----END PGP MESSAGE-----
63+
64+
65+
--18566fe03178296e_f40510c3b59ace3_ecf843ae3ccd2b17--

0 commit comments

Comments
 (0)