mirror of
https://github.com/chatmail/relay.git
synced 2026-05-21 13:28:05 +00:00
Fix OpenPGP payload check
Replace \r\r\n in literal.eml test with \r\n to make `test_filtermail_no_literal_packets` actually reach `check_openpgp_payload()` and make `check_openpgp_payload()` more strict.
This commit is contained in:
@@ -39,6 +39,9 @@
|
|||||||
- add IMAP capabilities instead of overwriting them
|
- add IMAP capabilities instead of overwriting them
|
||||||
([#413](https://github.com/deltachat/chatmail/pull/413))
|
([#413](https://github.com/deltachat/chatmail/pull/413))
|
||||||
|
|
||||||
|
- fix OpenPGP payload check
|
||||||
|
([#435](https://github.com/deltachat/chatmail/pull/435))
|
||||||
|
|
||||||
|
|
||||||
## 1.4.1 2024-07-31
|
## 1.4.1 2024-07-31
|
||||||
|
|
||||||
|
|||||||
@@ -60,10 +60,11 @@ def check_openpgp_payload(payload: bytes):
|
|||||||
i += body_len
|
i += body_len
|
||||||
|
|
||||||
if i == len(payload):
|
if i == len(payload):
|
||||||
if packet_type_id == 18:
|
# Last packet should be
|
||||||
# Last packet should be
|
# Symmetrically Encrypted and Integrity Protected Data Packet (SEIPD)
|
||||||
# Symmetrically Encrypted and Integrity Protected Data Packet (SEIPD)
|
#
|
||||||
return True
|
# This is the only place where this function may return `True`.
|
||||||
|
return packet_type_id == 18
|
||||||
elif packet_type_id not in [1, 3]:
|
elif packet_type_id not in [1, 3]:
|
||||||
# All packets except the last one must be either
|
# All packets except the last one must be either
|
||||||
# Public-Key Encrypted Session Key Packet (PKESK)
|
# Public-Key Encrypted Session Key Packet (PKESK)
|
||||||
@@ -71,13 +72,7 @@ def check_openpgp_payload(payload: bytes):
|
|||||||
# Symmetric-Key Encrypted Session Key Packet (SKESK)
|
# Symmetric-Key Encrypted Session Key Packet (SKESK)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
if i == 0:
|
return False
|
||||||
return False
|
|
||||||
|
|
||||||
if i > len(payload):
|
|
||||||
# Payload is truncated.
|
|
||||||
return False
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
def check_armored_payload(payload: str):
|
def check_armored_payload(payload: str):
|
||||||
|
|||||||
@@ -1,44 +1,44 @@
|
|||||||
From: {from_addr}
|
From: {from_addr}
|
||||||
|
To: {to_addr}
|
||||||
To: {to_addr}
|
Subject: ...
|
||||||
|
Date: Sun, 15 Oct 2023 16:43:21 +0000
|
||||||
Subject: ...
|
Message-ID: <Mr.UVyJWZmkCKM.hGzNc6glBE_@c2.testrun.org>
|
||||||
|
In-Reply-To: <Mr.MvmCz-GQbi_.6FGRkhDf05c@c2.testrun.org>
|
||||||
Date: Sun, 15 Oct 2023 16:43:21 +0000
|
References: <Mr.3gckbNy5bch.uK3Hd2Ws6-w@c2.testrun.org>
|
||||||
|
<Mr.MvmCz-GQbi_.6FGRkhDf05c@c2.testrun.org>
|
||||||
Message-ID: <Mr.UVyJWZmkCKM.hGzNc6glBE_@c2.testrun.org>
|
Chat-Version: 1.0
|
||||||
|
Autocrypt: addr={from_addr}; prefer-encrypt=mutual;
|
||||||
In-Reply-To: <Mr.MvmCz-GQbi_.6FGRkhDf05c@c2.testrun.org>
|
keydata=xjMEZSwWjhYJKwYBBAHaRw8BAQdAQBEhqeJh0GueHB6kF/DUQqYCxARNBVokg/AzT+7LqH
|
||||||
|
rNFzxiYXJiYXpAYzIudGVzdHJ1bi5vcmc+wosEEBYIADMCGQEFAmUsFo4CGwMECwkIBwYVCAkKCwID
|
||||||
References: <Mr.3gckbNy5bch.uK3Hd2Ws6-w@c2.testrun.org>
|
FgIBFiEEFTfUNvVnY3b9F7yHnmme1PfUhX8ACgkQnmme1PfUhX9A4AEAnHWHp49eBCMHK5t66gYPiW
|
||||||
|
XQuB1mwUjzGfYWB+0RXUoA/0xcQ3FbUNlGKW7Blp6eMFfViv6Mv2d3kNSXACB6nmcMzjgEZSwWjhIK
|
||||||
<Mr.MvmCz-GQbi_.6FGRkhDf05c@c2.testrun.org>
|
KwYBBAGXVQEFAQEHQBpY5L2M1XHo0uxf8SX1wNLBp/OVvidoWHQF2Jz+kJsUAwEIB8J4BBgWCAAgBQ
|
||||||
|
JlLBaOAhsMFiEEFTfUNvVnY3b9F7yHnmme1PfUhX8ACgkQnmme1PfUhX/INgEA37AJaNvruYsJVanP
|
||||||
Chat-Version: 1.0
|
IXnYw4CKd55UAwl8Zcy+M2diAbkA/0fHHcGV4r78hpbbL1Os52DPOdqYQRauIeJUeG+G6bQO
|
||||||
|
MIME-Version: 1.0
|
||||||
Autocrypt: addr={from_addr}; prefer-encrypt=mutual;
|
Content-Type: multipart/encrypted; protocol="application/pgp-encrypted";
|
||||||
|
boundary="YFrteb74qSXmggbOxZL9dRnhymywAi"
|
||||||
keydata=xjMEZSwWjhYJKwYBBAHaRw8BAQdAQBEhqeJh0GueHB6kF/DUQqYCxARNBVokg/AzT+7LqH
|
|
||||||
|
|
||||||
rNFzxiYXJiYXpAYzIudGVzdHJ1bi5vcmc+wosEEBYIADMCGQEFAmUsFo4CGwMECwkIBwYVCAkKCwID
|
--YFrteb74qSXmggbOxZL9dRnhymywAi
|
||||||
|
Content-Description: PGP/MIME version identification
|
||||||
FgIBFiEEFTfUNvVnY3b9F7yHnmme1PfUhX8ACgkQnmme1PfUhX9A4AEAnHWHp49eBCMHK5t66gYPiW
|
Content-Type: application/pgp-encrypted
|
||||||
|
|
||||||
XQuB1mwUjzGfYWB+0RXUoA/0xcQ3FbUNlGKW7Blp6eMFfViv6Mv2d3kNSXACB6nmcMzjgEZSwWjhIK
|
Version: 1
|
||||||
|
|
||||||
KwYBBAGXVQEFAQEHQBpY5L2M1XHo0uxf8SX1wNLBp/OVvidoWHQF2Jz+kJsUAwEIB8J4BBgWCAAgBQ
|
|
||||||
|
--YFrteb74qSXmggbOxZL9dRnhymywAi
|
||||||
JlLBaOAhsMFiEEFTfUNvVnY3b9F7yHnmme1PfUhX8ACgkQnmme1PfUhX/INgEA37AJaNvruYsJVanP
|
Content-Description: OpenPGP encrypted message
|
||||||
|
Content-Disposition: inline; filename="encrypted.asc";
|
||||||
IXnYw4CKd55UAwl8Zcy+M2diAbkA/0fHHcGV4r78hpbbL1Os52DPOdqYQRauIeJUeG+G6bQO
|
Content-Type: application/octet-stream; name="encrypted.asc"
|
||||||
|
|
||||||
MIME-Version: 1.0
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
Content-Type: multipart/encrypted; protocol="application/pgp-encrypted";
|
yxJiAAAAAABIZWxsbyB3b3JsZCE=
|
||||||
|
=1I/B
|
||||||
boundary="YFrteb74qSXmggbOxZL9dRnhymywAi"
|
-----END PGP MESSAGE-----
|
||||||
|
|
||||||
|
|
||||||
|
--YFrteb74qSXmggbOxZL9dRnhymywAi--
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user