aboutsummaryrefslogtreecommitdiff
path: root/src/mailman_pgp/pgp/mime.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman_pgp/pgp/mime.py')
-rw-r--r--src/mailman_pgp/pgp/mime.py16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/mailman_pgp/pgp/mime.py b/src/mailman_pgp/pgp/mime.py
index bdb7943..33ec93e 100644
--- a/src/mailman_pgp/pgp/mime.py
+++ b/src/mailman_pgp/pgp/mime.py
@@ -24,7 +24,7 @@ from email.mime.application import MIMEApplication
from email.utils import collapse_rfc2231_value
from mailman.email.message import Message, MultipartDigestMessage
-from pgpy import PGPKey, PGPMessage, PGPSignature
+from pgpy import PGPDetachedSignature, PGPKey, PGPMessage
from pgpy.constants import HashAlgorithm, SymmetricKeyAlgorithm
from public import public
@@ -98,13 +98,14 @@ class MIMEWrapper:
"""
:return:
- :rtype: typing.Generator[pgpy.PGPSignature]
+ :rtype: typing.Generator[pgpy.PGPDetachedSignature]
"""
try:
- msg = PGPSignature.from_blob(self.msg.get_payload(1).get_payload())
+ sig = PGPDetachedSignature.from_blob(
+ self.msg.get_payload(1).get_payload())
except:
return
- yield msg
+ yield sig
def is_encrypted(self):
"""
@@ -229,6 +230,13 @@ class MIMEWrapper:
return 'pgp-' + algs[hash_algo]
def _wrap_signed(self, msg, signature):
+ """
+ As per RFC1847 and RFC3156.
+
+ :param msg:
+ :param signature:
+ :return:
+ """
micalg = self._micalg(signature.hash_algorithm)
out = MultipartDigestMessage('signed', micalg=micalg,
protocol=MIMEWrapper._signed_type)