diff options
| author | J08nY | 2017-06-29 18:09:42 +0200 |
|---|---|---|
| committer | J08nY | 2017-06-29 18:09:42 +0200 |
| commit | afd6dede602510f576e8f52ec50d67b2f3894f84 (patch) | |
| tree | 686a1d48bb8e798c969bc0626b022c08e77e7b30 | |
| parent | 53163c823de985beb416ba0d4c7d31148984dcff (diff) | |
| download | mailman-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.py | 7 | ||||
| -rw-r--r-- | src/mailman_pgp/pgp/tests/data/mime_encrypted.eml | 37 | ||||
| -rw-r--r-- | src/mailman_pgp/pgp/tests/data/mime_encrypted_signed.eml | 50 | ||||
| -rw-r--r-- | src/mailman_pgp/pgp/tests/test_mime.py | 19 | ||||
| -rw-r--r-- | src/mailman_pgp/pgp/tests/test_wrapper.py | 2 |
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'), |
