aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ08nY2017-06-26 23:36:29 +0200
committerJ08nY2017-06-26 23:36:29 +0200
commit1e7fcefa467e32ab54967e78ffc8485a46d3eaeb (patch)
tree24d9d5e58823f25120b2f7daaf5d5bb4ea5a8349
parente071f25345dbb8e52c4f22c93da7b1eb7d330793 (diff)
downloadmailman-pgp-1e7fcefa467e32ab54967e78ffc8485a46d3eaeb.tar.gz
mailman-pgp-1e7fcefa467e32ab54967e78ffc8485a46d3eaeb.tar.zst
mailman-pgp-1e7fcefa467e32ab54967e78ffc8485a46d3eaeb.zip
-rw-r--r--src/mailman_pgp/pgp/mime.py5
-rw-r--r--src/mailman_pgp/pgp/wrapper.py3
2 files changed, 7 insertions, 1 deletions
diff --git a/src/mailman_pgp/pgp/mime.py b/src/mailman_pgp/pgp/mime.py
index 92ee72b..c36cc37 100644
--- a/src/mailman_pgp/pgp/mime.py
+++ b/src/mailman_pgp/pgp/mime.py
@@ -171,6 +171,8 @@ class MIMEWrapper:
:rtype: mailman.email.message.Message
"""
payload = self.msg.as_string()
+ # Wrap payload in PGPMessage with cleartext=True to get a signature
+ # of a canonical document.
pmsg = PGPMessage.new(payload, cleartext=True)
signature = key.sign(pmsg, hash=hash)
@@ -203,7 +205,8 @@ class MIMEWrapper:
:rtype: mailman.email.message.Message
"""
msg_text = self.msg.get_payload(1).get_payload()
- pmsg = PGPMessage.from_blob(msg_text)
+ pmsg = PGPMessage()
+ pmsg.parse(msg_text)
decrypted = key.decrypt(pmsg)
out = message_from_string(decrypted.message, _class=Message)
copy_headers(self.msg, out)
diff --git a/src/mailman_pgp/pgp/wrapper.py b/src/mailman_pgp/pgp/wrapper.py
index 2b18134..bc0a3c6 100644
--- a/src/mailman_pgp/pgp/wrapper.py
+++ b/src/mailman_pgp/pgp/wrapper.py
@@ -79,6 +79,9 @@ class PGPWrapper():
elif self.is_inline_signed():
yield from self.inline.verify(key)
+ def verifies(self, key):
+ return all(bool(verification) for verification in self.verify(key))
+
def is_mime_encrypted(self):
return self.mime.is_encrypted()