[tor-commits] [bridgedb/develop] Move dkim function to new bridgedb.email.dkim module.

isis at torproject.org isis at torproject.org
Fri Jun 6 20:40:38 UTC 2014


commit 42e3702cd1cfdf78901c49fc6368998fce9e2dc5
Author: Isis Lovecruft <isis at torproject.org>
Date:   Mon Jun 2 20:20:48 2014 +0000

    Move dkim function to new bridgedb.email.dkim module.
---
 lib/bridgedb/email/dkim.py   |   55 ++++++++++++++++++++++++++++++++++++++++++
 lib/bridgedb/email/server.py |   35 ---------------------------
 2 files changed, 55 insertions(+), 35 deletions(-)

diff --git a/lib/bridgedb/email/dkim.py b/lib/bridgedb/email/dkim.py
new file mode 100644
index 0000000..311a03a
--- /dev/null
+++ b/lib/bridgedb/email/dkim.py
@@ -0,0 +1,55 @@
+# -*- coding: utf-8 ; test-case-name: bridgedb.test.test_email_dkim -*-
+#_____________________________________________________________________________
+#
+# This file is part of BridgeDB, a Tor bridge distribution system.
+#
+# :authors: Nick Mathewson <nickm at torproject.org>
+#           Isis Lovecruft <isis at torproject.org> 0xA3ADB67A2CDB8B35
+#           Matthew Finkel <sysrqb at torproject.org>
+#           please also see AUTHORS file
+# :copyright: (c) 2007-2014, The Tor Project, Inc.
+#             (c) 2013-2014, Isis Lovecruft
+# :license: see LICENSE for licensing information
+#_____________________________________________________________________________
+
+"""Functions for checking DKIM verification results in email headers."""
+
+from __future__ import unicode_literals
+
+import logging
+
+
+def checkDKIM(message, rules):
+    """Check the DKIM verification results header.
+
+    This check is only run if the incoming email, **message**, originated from
+    a domain for which we're configured (in the ``EMAIL_DOMAIN_RULES``
+    dictionary in the config file) to check DKIM verification results for.
+
+    :type message: :api:`twisted.mail.smtp.rfc822.Message`
+    :param message: The incoming client request email, including headers.
+    :param dict rules: The list of configured ``EMAIL_DOMAIN_RULES`` for the
+        canonical domain which the client's email request originated from.
+
+    :rtype: bool
+    :returns: ``False`` if:
+        1. We're supposed to expect and check the DKIM headers for the
+           client's email provider domain.
+        2. Those headers were *not* okay.
+        Otherwise, returns ``True``.
+    """
+    logging.info("Checking DKIM verification results...")
+    logging.debug("Domain has rules: %s" % ', '.join(rules))
+
+    if 'dkim' in rules:
+        # getheader() returns the last of a given kind of header; we want
+        # to get the first, so we use getheaders() instead.
+        dkimHeaders = message.getheaders("X-DKIM-Authentication-Results")
+        dkimHeader = "<no header>"
+        if dkimHeaders:
+            dkimHeader = dkimHeaders[0]
+        if not dkimHeader.startswith("pass"):
+            logging.info("Rejecting bad DKIM header on incoming email: %r "
+                         % dkimHeader)
+            return False
+    return True
diff --git a/lib/bridgedb/email/server.py b/lib/bridgedb/email/server.py
index 7904c36..f526b47 100644
--- a/lib/bridgedb/email/server.py
+++ b/lib/bridgedb/email/server.py
@@ -46,41 +46,6 @@ from bridgedb.parse.addr import UnsupportedDomain
 from bridgedb.parse.addr import canonicalizeEmailDomain
 
 
-def checkDKIM(message, rules):
-    """Check the DKIM verification results header.
-
-    This check is only run if the incoming email, **message**, originated from
-    a domain for which we're configured (in the ``EMAIL_DOMAIN_RULES``
-    dictionary in the config file) to check DKIM verification results for.
-
-    :type message: :api:`twisted.mail.smtp.rfc822.Message`
-    :param message: The incoming client request email, including headers.
-    :param dict rules: The list of configured ``EMAIL_DOMAIN_RULES`` for the
-        canonical domain which the client's email request originated from.
-
-    :rtype: bool
-    :returns: ``False`` if:
-        1. We're supposed to expect and check the DKIM headers for the
-           client's email provider domain.
-        2. Those headers were *not* okay.
-        Otherwise, returns ``True``.
-    """
-    logging.info("Checking DKIM verification results...")
-    logging.debug("Domain has rules: %s" % ', '.join(rules))
-
-    if 'dkim' in rules:
-        # getheader() returns the last of a given kind of header; we want
-        # to get the first, so we use getheaders() instead.
-        dkimHeaders = message.getheaders("X-DKIM-Authentication-Results")
-        dkimHeader = "<no header>"
-        if dkimHeaders:
-            dkimHeader = dkimHeaders[0]
-        if not dkimHeader.startswith("pass"):
-            logging.info("Rejecting bad DKIM header on incoming email: %r "
-                         % dkimHeader)
-            return False
-    return True
-
 def createResponseBody(lines, context, client, lang='en'):
     """Parse the **lines** from an incoming email request and determine how to
     respond.





More information about the tor-commits mailing list