[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [bridgedb/develop] Add a bridgedb.bridges.Bridge.__str__ method.
commit fe405ac660ad1258fbc31d32f80aae550c31099b
Author: Isis Lovecruft <isis@xxxxxxxxxxxxxx>
Date: Sat Dec 6 01:10:10 2014 +0000
Add a bridgedb.bridges.Bridge.__str__ method.
---
lib/bridgedb/bridges.py | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/lib/bridgedb/bridges.py b/lib/bridgedb/bridges.py
index 100dd12..cb81dff 100644
--- a/lib/bridgedb/bridges.py
+++ b/lib/bridgedb/bridges.py
@@ -11,6 +11,7 @@
from __future__ import print_function
+import hashlib
import ipaddr
import logging
import os
@@ -465,6 +466,36 @@ class Bridge(object):
idDigest=id_digest,
orAddresses=or_addresses)
+ def __str__(self):
+ """Return a pretty string representation that identifies this Bridge.
+
+ .. warning:: With safelogging disabled, the returned string contains
+ the bridge's fingerprint, which should be handled with care.
+
+ If safelogging is enabled, the returned string will have the SHA-1
+ hash of the bridge's fingerprint (a.k.a. a hashed fingerprint).
+
+ Hashed fingerprints will be prefixed with ``'$$'``, and the real
+ fingerprints are prefixed with ``'$'``.
+
+ :rtype: str
+ :returns: A string in the form:
+ :data:`nickname```.$``:data:`fingerprint`.
+ """
+ nickname = self.nickname if self.nickname else 'Unnamed'
+ separator = '.$'
+ fingerprint = self.fingerprint
+
+ if safelog.safe_logging:
+ separator = '.$$'
+ if fingerprint:
+ fingerprint = hashlib.sha1(fingerprint).hexdigest()
+
+ if not fingerprint:
+ fingerprint = '0' * 40
+
+ return nickname + separator + fingerprint
+
def _backwardsCompatible(self, nickname=None, address=None, orPort=None,
fingerprint=None, idDigest=None,
orAddresses=None):
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits