aboutsummaryrefslogtreecommitdiff
path: root/src/mailman_pgp/utils
diff options
context:
space:
mode:
authorJ08nY2017-07-17 21:21:38 +0200
committerJ08nY2017-07-17 21:21:38 +0200
commit2703337c99eb62cb1ae8b516789f41732a4171d7 (patch)
treeeb42c6ab55466352db20f35e7e44a73510147d21 /src/mailman_pgp/utils
parent20317c3444e0b11d8d4676dec23c34222d4d7340 (diff)
downloadmailman-pgp-2703337c99eb62cb1ae8b516789f41732a4171d7.tar.gz
mailman-pgp-2703337c99eb62cb1ae8b516789f41732a4171d7.tar.zst
mailman-pgp-2703337c99eb62cb1ae8b516789f41732a4171d7.zip
Diffstat (limited to 'src/mailman_pgp/utils')
-rw-r--r--src/mailman_pgp/utils/email.py5
-rw-r--r--src/mailman_pgp/utils/moderation.py3
-rw-r--r--src/mailman_pgp/utils/pgp.py49
3 files changed, 56 insertions, 1 deletions
diff --git a/src/mailman_pgp/utils/email.py b/src/mailman_pgp/utils/email.py
index 4d08d8a..4541313 100644
--- a/src/mailman_pgp/utils/email.py
+++ b/src/mailman_pgp/utils/email.py
@@ -16,7 +16,10 @@
# this program. If not, see <http://www.gnu.org/licenses/>.
""""""
+from public import public
+
+@public
def copy_headers(from_msg, to_msg, overwrite=False):
"""
Copy the headers and unixfrom from a message to another one.
@@ -32,4 +35,4 @@ def copy_headers(from_msg, to_msg, overwrite=False):
if key not in to_msg:
to_msg[key] = value
if to_msg.get_unixfrom() is None:
- to_msg.set_unixfrom(from_msg.get_unixfrom()) \ No newline at end of file
+ to_msg.set_unixfrom(from_msg.get_unixfrom())
diff --git a/src/mailman_pgp/utils/moderation.py b/src/mailman_pgp/utils/moderation.py
index a27ec48..850f885 100644
--- a/src/mailman_pgp/utils/moderation.py
+++ b/src/mailman_pgp/utils/moderation.py
@@ -16,7 +16,10 @@
# this program. If not, see <http://www.gnu.org/licenses/>.
""""""
+from public import public
+
+@public
def record_action(msg, msgdata, action, sender, reason):
"""
diff --git a/src/mailman_pgp/utils/pgp.py b/src/mailman_pgp/utils/pgp.py
new file mode 100644
index 0000000..7b2f958
--- /dev/null
+++ b/src/mailman_pgp/utils/pgp.py
@@ -0,0 +1,49 @@
+# Copyright (C) 2017 Jan Jancar
+#
+# This file is a part of the Mailman PGP plugin.
+#
+# This program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free
+# Software Foundation, either version 3 of the License, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program. If not, see <http://www.gnu.org/licenses/>.
+
+"""Miscellaneous PGP utilities."""
+from public import public
+
+
+@public
+def verifies(verifications):
+ """
+
+ :param verifications:
+ :type verifications: Sequence[pgpy.types.SignatureVerification]
+ :return: bool
+ """
+ return all(bool(verification) and
+ all(not sigsubj.signature.is_expired
+ for sigsubj in verification.good_signatures) for
+ verification in verifications)
+
+
+@public
+def hashes(verifications):
+ """
+
+ :param verifications:
+ :return:
+ :rtype: Generator[str]
+ """
+ for verification in verifications:
+ for sigsubj in verification.good_signatures:
+ data = sigsubj.signature.hashdata(sigsubj.subject)
+ hasher = sigsubj.signature.hash_algorithm.hasher
+ hasher.update(data)
+ yield hasher.digest()