aboutsummaryrefslogtreecommitdiff
path: root/src/mailman_pgp/pgp/inline.py
diff options
context:
space:
mode:
authorJ08nY2017-07-27 19:23:14 +0200
committerJ08nY2017-07-27 19:23:14 +0200
commit7f7fa136794732d3b50ee2d1d7df73e01c1ff823 (patch)
tree11c0ae8af1cf0934eed6d9c68316e757eb3c53bf /src/mailman_pgp/pgp/inline.py
parentc401f2c6cc5f0aa4c6de245dcf252d3bbcc920fd (diff)
downloadmailman-pgp-7f7fa136794732d3b50ee2d1d7df73e01c1ff823.tar.gz
mailman-pgp-7f7fa136794732d3b50ee2d1d7df73e01c1ff823.tar.zst
mailman-pgp-7f7fa136794732d3b50ee2d1d7df73e01c1ff823.zip
Diffstat (limited to 'src/mailman_pgp/pgp/inline.py')
-rw-r--r--src/mailman_pgp/pgp/inline.py22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/mailman_pgp/pgp/inline.py b/src/mailman_pgp/pgp/inline.py
index d2ea05e..81e0839 100644
--- a/src/mailman_pgp/pgp/inline.py
+++ b/src/mailman_pgp/pgp/inline.py
@@ -91,10 +91,15 @@ class InlineWrapper:
"""
:return:
+ :rtype: typing.Generator[pgpy.PGPMessage]
"""
for part in walk(self.msg):
if not part.is_multipart() and self._is_signed(part):
- yield part.get_payload()
+ try:
+ msg = PGPMessage.from_blob(part.get_payload())
+ except:
+ continue
+ yield msg
def _is_encrypted(self, part):
try:
@@ -126,10 +131,15 @@ class InlineWrapper:
"""
:return:
+ :rtype: typing.Generator[pgpy.PGPMessage]
"""
for part in walk(self.msg):
if not part.is_multipart() and self._is_encrypted(part):
- yield part.get_payload()
+ try:
+ msg = PGPMessage.from_blob(part.get_payload())
+ except:
+ continue
+ yield msg
def _has_keys(self, part):
try:
@@ -178,10 +188,6 @@ class InlineWrapper:
continue
yield key
- def _verify(self, part, key):
- message = PGPMessage.from_blob(part.get_payload())
- return key.verify(message)
-
def verify(self, key):
"""
Verify the signatures of this message with key.
@@ -191,9 +197,7 @@ class InlineWrapper:
:return: The verified signatures.
:rtype: Generator[pgpy.types.SignatureVerification]
"""
- for part in walk(self.msg):
- if not part.is_multipart() and self._is_signed(part):
- yield self._verify(part, key)
+ yield from map(key.verify, self.get_signature())
def _sign(self, pmsg, key, hash):
smsg = copy.copy(pmsg)