[tor-commits] [bridgedb/develop] Add whitelist attribute to bridgedb.Dist.EmailBasedDistributor.

isis at torproject.org isis at torproject.org
Tue Jul 8 13:05:03 UTC 2014


commit 2795e102abfa067516bab89b834949a191e88dd8
Author: Isis Lovecruft <isis at torproject.org>
Date:   Mon Jun 9 19:47:48 2014 +0000

    Add whitelist attribute to bridgedb.Dist.EmailBasedDistributor.
    
     * ADD bridgedb.Dist.EmailBasedDistributor.whitelist attribute which
       should hold the contents of the EMAIL_WHITELIST setting in
       bridgedb.conf.
    
     * CHANGE createBridgeRings() function in bridgedb.Main module to use
       the new email distributor whitelist attribute, and pass it the
       settings from the parsed config file.
---
 lib/bridgedb/Dist.py |    6 +++++-
 lib/bridgedb/Main.py |    3 ++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/lib/bridgedb/Dist.py b/lib/bridgedb/Dist.py
index 5c0cbac..0ba2233 100644
--- a/lib/bridgedb/Dist.py
+++ b/lib/bridgedb/Dist.py
@@ -348,7 +348,7 @@ class EmailBasedDistributor(Distributor):
     """
 
     def __init__(self, key, domainmap, domainrules,
-                 answerParameters=None):
+                 answerParameters=None, whitelist=None):
         """Create a bridge distributor which uses email.
 
         :type emailHmac: callable
@@ -359,6 +359,9 @@ class EmailBasedDistributor(Distributor):
             in `bridgedb.conf`.
         :param domainrules: DOCDOC
         :param answerParameters: DOCDOC
+        :type whitelist: dict or ``None``
+        :param whitelist: A dictionary that maps whitelisted email addresses
+            to GnuPG fingerprints.
         """
         key1 = getHMAC(key, "Map-Addresses-To-Ring")
         self.emailHmac = getHMACFunc(key1, hex=False)
@@ -367,6 +370,7 @@ class EmailBasedDistributor(Distributor):
         # XXXX clear the store when the period rolls over!
         self.domainmap = domainmap
         self.domainrules = domainrules
+        self.whitelist = whitelist or dict()
         self.answerParameters = answerParameters
 
         #XXX cache options not implemented
diff --git a/lib/bridgedb/Main.py b/lib/bridgedb/Main.py
index ccc844d..4f138f0 100644
--- a/lib/bridgedb/Main.py
+++ b/lib/bridgedb/Main.py
@@ -383,7 +383,8 @@ def createBridgeRings(cfg, proxyList, key):
             crypto.getHMAC(key, "Email-Dist-Key"),
             cfg.EMAIL_DOMAIN_MAP.copy(),
             cfg.EMAIL_DOMAIN_RULES.copy(),
-            answerParameters=ringParams)
+            answerParameters=ringParams,
+            whitelist=cfg.EMAIL_WHITELIST.copy())
         splitter.addRing(emailDistributor, "email", cfg.EMAIL_SHARE)
 
     # As appropriate, tell the splitter to leave some bridges unallocated.





More information about the tor-commits mailing list