aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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()