diff options
| -rw-r--r-- | src/mailman_pgp/pgp/mime.py | 5 | ||||
| -rw-r--r-- | src/mailman_pgp/pgp/wrapper.py | 3 |
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() |
