aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ08nY2017-06-29 18:09:42 +0200
committerJ08nY2017-06-29 18:09:42 +0200
commitafd6dede602510f576e8f52ec50d67b2f3894f84 (patch)
tree686a1d48bb8e798c969bc0626b022c08e77e7b30
parent53163c823de985beb416ba0d4c7d31148984dcff (diff)
downloadmailman-pgp-afd6dede602510f576e8f52ec50d67b2f3894f84.tar.gz
mailman-pgp-afd6dede602510f576e8f52ec50d67b2f3894f84.tar.zst
mailman-pgp-afd6dede602510f576e8f52ec50d67b2f3894f84.zip
Add test data for mime encrypted messages.
-rw-r--r--src/mailman_pgp/pgp/mime.py7
-rw-r--r--src/mailman_pgp/pgp/tests/data/mime_encrypted.eml37
-rw-r--r--src/mailman_pgp/pgp/tests/data/mime_encrypted_signed.eml50
-rw-r--r--src/mailman_pgp/pgp/tests/test_mime.py19
-rw-r--r--src/mailman_pgp/pgp/tests/test_wrapper.py2
5 files changed, 110 insertions, 5 deletions
diff --git a/src/mailman_pgp/pgp/mime.py b/src/mailman_pgp/pgp/mime.py
index 31dcdf3..ecddbb0 100644
--- a/src/mailman_pgp/pgp/mime.py
+++ b/src/mailman_pgp/pgp/mime.py
@@ -205,7 +205,12 @@ class MIMEWrapper:
pmsg = PGPMessage()
pmsg.parse(msg_text)
decrypted = key.decrypt(pmsg)
- out = message_from_string(decrypted.message, _class=Message)
+
+ dmsg = decrypted.message
+ if isinstance(dmsg, bytearray):
+ dmsg = dmsg.decode('utf-8')
+
+ out = message_from_string(dmsg, _class=Message)
copy_headers(self.msg, out)
return out
diff --git a/src/mailman_pgp/pgp/tests/data/mime_encrypted.eml b/src/mailman_pgp/pgp/tests/data/mime_encrypted.eml
new file mode 100644
index 0000000..3199526
--- /dev/null
+++ b/src/mailman_pgp/pgp/tests/data/mime_encrypted.eml
@@ -0,0 +1,37 @@
+To: nobody@example.org
+From: RSA 1024b example <RSA-1024b@example.org>
+Subject: Some subject.
+Message-ID: <76a591ed-bfc4-d08b-73d3-fc2489148fd7@example.org>
+Date: Wed, 21 Jun 2017 13:50:59 +0200
+User-Agent: Mutt/1.7.2 (2016-11-26)
+MIME-Version: 1.0
+Content-Type: multipart/encrypted; protocol="application/pgp-encrypted";
+ boundary="abjqkjsfwqsfa546qw2wfq6sdq2sqwr56qqs"
+
+This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
+--abjqkjsfwqsfa546qw2wfq6sdq2sqwr56qqs
+Content-Type: application/pgp-encrypted
+Content-Description: PGP/MIME version identification
+
+Version: 1
+
+--abjqkjsfwqsfa546qw2wfq6sdq2sqwr56qqs
+Content-Type: application/octet-stream; name="encrypted.asc"
+Content-Description: OpenPGP encrypted message
+Content-Disposition: inline; filename="encrypted.asc"
+
+-----BEGIN PGP MESSAGE-----
+
+hIwD9aW4UkhFqMoBA/9lJ2392oyF+IISelZ9CWe6/FZJyud9L4DNozXkoRMMCRuD
+T29mRzgWrq2lUaBGk0xDTILoB+sETEZX5SRH7VgOpNA7kJFF4aU9P+Vls95OG0RF
+WFN3l7Ttc7LfZcvXMl3C8JilPh9xbmoKFDcRAgJx8eYitLXuwfoRQZocYjNEUtLA
+XQHNppO34566Eb/b8xFWi+ZMBra+VCE2aX3yOMCO3Gd2NeXy/hQBf8NnSBzhsYOe
+OGzNzT7vyKATvZ7dPbMHS/bbKU8RDfzgEv4QicB02Wjt6N/3ogI5rXSKp5NTVsHJ
+tn83LEWQnLA+75QdppZZoFi8pcmJvcSQFHnlWD5NWnPvC+zsc+4CkrEVecmK8bfX
+2JPmt2fx1eIUqMKsJDss1T32EttrKb7awZMFGfGLiEvXjQ5qvib876cm4JdLZvYB
+C3n27D5n4yfQEkfeTZ4CfFOfY9CRb9meNV+sYI/V2dWWj2Hdbrx3UuMnWfOR44oS
+248jpSsiAQBwjY8JNZDq2GZ7OcpaZuc25Ktv4/by01FjLLuaVmkOzk4NK2AZBg==
+=sSzJ
+-----END PGP MESSAGE-----
+
+--abjqkjsfwqsfa546qw2wfq6sdq2sqwr56qqs-- \ No newline at end of file
diff --git a/src/mailman_pgp/pgp/tests/data/mime_encrypted_signed.eml b/src/mailman_pgp/pgp/tests/data/mime_encrypted_signed.eml
new file mode 100644
index 0000000..2a350ab
--- /dev/null
+++ b/src/mailman_pgp/pgp/tests/data/mime_encrypted_signed.eml
@@ -0,0 +1,50 @@
+To: nobody@example.org
+From: RSA 1024b example <RSA-1024b@example.org>
+Subject: Some subject.
+Message-ID: <76a591ed-bfc4-d08b-73d3-fc2489148fd7@example.org>
+Date: Wed, 21 Jun 2017 13:50:59 +0200
+User-Agent: Mutt/1.7.2 (2016-11-26)
+MIME-Version: 1.0
+Content-Type: multipart/encrypted; protocol="application/pgp-encrypted";
+ boundary="abjqkjsfwqsfa546qw2wfq6sdq2sqwr56qqs"
+
+This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
+--abjqkjsfwqsfa546qw2wfq6sdq2sqwr56qqs
+Content-Type: application/pgp-encrypted
+Content-Description: PGP/MIME version identification
+
+Version: 1
+
+--abjqkjsfwqsfa546qw2wfq6sdq2sqwr56qqs
+Content-Type: application/octet-stream; name="encrypted.asc"
+Content-Description: OpenPGP encrypted message
+Content-Disposition: inline; filename="encrypted.asc"
+
+-----BEGIN PGP MESSAGE-----
+
+hIwD9aW4UkhFqMoBA/9QSX57wRXFQ21pc92xOHeOPJSt/rv1dK2EowZnNuMQyIrR
+uYXn0B5KxAHoSQRqEX+rs7HJDMDNd1QKouc45PZwuI/ZGF3jBA0P2fWni3gNeWOR
+T/jeuvomGe+pXOGq8IsJfq7ks/pA5nmcgKEPjjlHkD8hNjFmgyWc5Fv38MBgStLp
+AWk/tCOTfSR+64sETL7+42+kCAKigwQOBikvT7UaZ+3lI1IRNuPd4ndvoL1NxiaG
+kAV6DRwQMV8uSj4NefXyIBz47T0IzRCHMVKInkkGibjIxeUBUxJfG1ZbBtNXTTOJ
+sGr5Kvsj+47bt6m+ExmgeumVjyvbcBESw41WwKsIdxxc7PenfLfQY0dnLvPEfNAC
+cKyUn1Nr8jqiKd2NBy4RxINmWZ8u1SUeYNpO6UqtvKU3kgNfpezW1gpdNM2UYFeV
+8Hy8ksQJGz1qcGf9Id0bBld+uno6N9PAKEslIYOlwEqX3LntrtzSg5kv+blOBQlD
+zrYH3Nwp2IcFJjxZgLqfn1CpG3fVvocosEnagDrLEAoly7vVL0ZExFVSye7oLfw/
+NFHHujU9SXqplHzSJwnJrgyA38xEjvJrWS+jbFKOLdUMWE/cu4lOQSBlL5ObBgUq
+PIn17BUyTglU7A5XbOS3X/VEYoQglFXWz8oPb1urxUnwlJKRwt4bDHgZmlAzUP82
+cuA3ZCEXgE8qvYGZuXN0KQ4FBJbTsyPR+p6wHPPR/iyyozuP4G5oBww8Ed4locCn
+AsCL8XNK5ceL9qkh6gFPb+z/Bvh7ODBawayaaqjkK8pYjR4TE+CcV8fizZ1EATZR
+mgCbJOmMexIlvRjaDDWZ/+TFiVhKtxfXCStQUc1uTxzAqhA1MsFm5afkLk2/c1P3
+VzPXOpNRAm3A4la+3tcP7faqgJ2lDKKBOu/a0L13KPbf/pLSVcyFbGglmrr/u711
+PHYcEAlD1RRjoHKj2E3CBN0d8N+8SCtohtI3BMSG3IVlGQrxNPka4Lron4clJy3m
+8sm2YBFk458OPCcuKsbiWZtKPDIsFsxu6bbLo2jdrWjb2DZO8xKRM0WOChyus45N
+dIyCpEqK6VB3p5rcr3KYm5KFIBeogGxsHWTt5xKjbmG9jVAqzOaSGRVhV+QYcrda
+5eT1cvFUTkUddmq4j6i1d3dtQ6cYpHq8ehdHezcaqN8Wn7pzTauNB9WzeNgynNat
+BMyVvVgmfwa+NCb0s3zO78ysmeYXlayIa2aE0AXE83h8xfQw/zrV52NZ/xT2Sz2u
+AzxUkYEXmU0Utb6B3/AzYwzNpQ3RhnHzfg0/OYtgNQlfgLGlJt5adLdozyoxZY46
+BSIZcJxQUQVSlkMz
+=Q354
+-----END PGP MESSAGE-----
+
+--abjqkjsfwqsfa546qw2wfq6sdq2sqwr56qqs-- \ No newline at end of file
diff --git a/src/mailman_pgp/pgp/tests/test_mime.py b/src/mailman_pgp/pgp/tests/test_mime.py
index 16109eb..34b6fad 100644
--- a/src/mailman_pgp/pgp/tests/test_mime.py
+++ b/src/mailman_pgp/pgp/tests/test_mime.py
@@ -72,8 +72,14 @@ class TestSigning(MIMEWrapperTestCase):
class TestEncryption(MIMEWrapperTestCase):
- def test_is_encrypted(self):
- pass
+ @parameterized.expand([
+ (load_message('data/mime_encrypted.eml'),
+ True),
+ (load_message('data/mime_encrypted_signed.eml'),
+ True)
+ ])
+ def test_is_encrypted(self, message, encrypted):
+ super().is_encrypted(message, encrypted)
@parameterized.expand([
(load_message('data/clear.eml'),
@@ -99,8 +105,13 @@ class TestEncryption(MIMEWrapperTestCase):
def test_encrypt_decrypt(self, message, pub, priv):
super().encrypt_decrypt(message, pub, priv)
- def test_decrypt(self):
- pass
+ @parameterized.expand([
+ (load_message('data/mime_encrypted.eml'),
+ load_key('data/rsa_1024.priv.asc'),
+ 'Some encrypted text.\n')
+ ])
+ def test_decrypt(self, message, key, clear):
+ super().decrypt(message, key, clear)
class TestKeys(MIMEWrapperTestCase):
diff --git a/src/mailman_pgp/pgp/tests/test_wrapper.py b/src/mailman_pgp/pgp/tests/test_wrapper.py
index 476b5bc..66fc9a9 100644
--- a/src/mailman_pgp/pgp/tests/test_wrapper.py
+++ b/src/mailman_pgp/pgp/tests/test_wrapper.py
@@ -79,6 +79,8 @@ class TestEncryption(PGPWrapperTestCase):
@parameterized.expand([
(load_message('data/inline_encrypted.eml'),
True),
+ (load_message('data/mime_encrypted_signed.eml'),
+ True),
(load_message('data/inline_cleartext_signed.eml'),
False),
(load_message('data/inline_cleartext_signed_invalid.eml'),