Loading bridgedb/Bridges.py +1 −1 Original line number Diff line number Diff line Loading @@ -356,7 +356,7 @@ class BridgeRing(object): def dumpAssignments(self, f, description=""): logging.info("Dumping bridge assignments for %s..." % self.name) for b in self.bridges.itervalues(): for b in self.bridges.values(): desc = [ description ] for tp,val,_,subring in self.subrings: if subring.getBridgeByID(b.identity): Loading bridgedb/bridges.py +6 −5 Original line number Diff line number Diff line Loading @@ -240,7 +240,7 @@ class BridgeAddressBase(object): :param str value: The binary-encoded SHA-1 hash digest of the public half of this Bridge's identity key. """ self.fingerprint = toHex(value) self.fingerprint = toHex(value).decode('utf-8') @identity.deleter def identity(self): Loading Loading @@ -743,7 +743,7 @@ class BridgeBackwardsCompatibility(BridgeBase): if not fingerprint: if not len(idDigest) == 20: raise TypeError("Bridge with invalid ID") self.fingerprint = toHex(idDigest) self.fingerprint = toHex(idDigest).decode('utf-8') elif fingerprint: if not isValidFingerprint(fingerprint): raise TypeError("Bridge with invalid fingerprint (%r)" Loading Loading @@ -1665,7 +1665,7 @@ class Bridge(BridgeBackwardsCompatibility): logging.info("Verifying extrainfo signature for %s..." % self) # Get the bytes of the descriptor signature without the headers: document, signature = descriptor.get_bytes().split(TOR_BEGIN_SIGNATURE) document, signature = str(descriptor).split(TOR_BEGIN_SIGNATURE) signature = signature.replace(TOR_END_SIGNATURE, '') signature = signature.replace('\n', '') signature = signature.strip() Loading Loading @@ -1709,10 +1709,11 @@ class Bridge(BridgeBackwardsCompatibility): # This is the hexadecimal SHA-1 hash digest of the descriptor document # as it was signed: signedDigest = codecs.encode(unpadded, 'hex_codec') actualDigest = hashlib.sha1(document).hexdigest() signedDigest = codecs.encode(unpadded, 'hex_codec').decode('utf-8') actualDigest = hashlib.sha1(document.encode('utf-8')).hexdigest() except Exception as error: raise logging.debug("Error verifying extrainfo signature: %s" % error) raise InvalidExtraInfoSignature( "Extrainfo signature for %s couldn't be decoded: %s" % Loading bridgedb/test/test_Bridges.py +1 −1 Original line number Diff line number Diff line Loading @@ -149,7 +149,7 @@ class FixedBridgeSplitterTests(unittest.TestCase): f.seek(0) data = f.read() first = self.splitter.rings[0].bridges.values()[0].fingerprint first = list(self.splitter.rings[0].bridges.values())[0].fingerprint # The first bridge's fingerprint should be within the data somewhere self.assertIn(first, data) bridgedb/test/test_bridges.py +1 −1 Original line number Diff line number Diff line Loading @@ -970,7 +970,7 @@ class BridgeTests(unittest.TestCase): self.assertEqual( identifier, ''.join(['$$', hashlib.sha1(bridge.fingerprint).hexdigest().upper(), hashlib.sha1(bridge.fingerprint.encode('utf-8')).hexdigest().upper(), '~', bridge.nickname])) def test_Bridge_str_without_fingerprint(self): Loading Loading
bridgedb/Bridges.py +1 −1 Original line number Diff line number Diff line Loading @@ -356,7 +356,7 @@ class BridgeRing(object): def dumpAssignments(self, f, description=""): logging.info("Dumping bridge assignments for %s..." % self.name) for b in self.bridges.itervalues(): for b in self.bridges.values(): desc = [ description ] for tp,val,_,subring in self.subrings: if subring.getBridgeByID(b.identity): Loading
bridgedb/bridges.py +6 −5 Original line number Diff line number Diff line Loading @@ -240,7 +240,7 @@ class BridgeAddressBase(object): :param str value: The binary-encoded SHA-1 hash digest of the public half of this Bridge's identity key. """ self.fingerprint = toHex(value) self.fingerprint = toHex(value).decode('utf-8') @identity.deleter def identity(self): Loading Loading @@ -743,7 +743,7 @@ class BridgeBackwardsCompatibility(BridgeBase): if not fingerprint: if not len(idDigest) == 20: raise TypeError("Bridge with invalid ID") self.fingerprint = toHex(idDigest) self.fingerprint = toHex(idDigest).decode('utf-8') elif fingerprint: if not isValidFingerprint(fingerprint): raise TypeError("Bridge with invalid fingerprint (%r)" Loading Loading @@ -1665,7 +1665,7 @@ class Bridge(BridgeBackwardsCompatibility): logging.info("Verifying extrainfo signature for %s..." % self) # Get the bytes of the descriptor signature without the headers: document, signature = descriptor.get_bytes().split(TOR_BEGIN_SIGNATURE) document, signature = str(descriptor).split(TOR_BEGIN_SIGNATURE) signature = signature.replace(TOR_END_SIGNATURE, '') signature = signature.replace('\n', '') signature = signature.strip() Loading Loading @@ -1709,10 +1709,11 @@ class Bridge(BridgeBackwardsCompatibility): # This is the hexadecimal SHA-1 hash digest of the descriptor document # as it was signed: signedDigest = codecs.encode(unpadded, 'hex_codec') actualDigest = hashlib.sha1(document).hexdigest() signedDigest = codecs.encode(unpadded, 'hex_codec').decode('utf-8') actualDigest = hashlib.sha1(document.encode('utf-8')).hexdigest() except Exception as error: raise logging.debug("Error verifying extrainfo signature: %s" % error) raise InvalidExtraInfoSignature( "Extrainfo signature for %s couldn't be decoded: %s" % Loading
bridgedb/test/test_Bridges.py +1 −1 Original line number Diff line number Diff line Loading @@ -149,7 +149,7 @@ class FixedBridgeSplitterTests(unittest.TestCase): f.seek(0) data = f.read() first = self.splitter.rings[0].bridges.values()[0].fingerprint first = list(self.splitter.rings[0].bridges.values())[0].fingerprint # The first bridge's fingerprint should be within the data somewhere self.assertIn(first, data)
bridgedb/test/test_bridges.py +1 −1 Original line number Diff line number Diff line Loading @@ -970,7 +970,7 @@ class BridgeTests(unittest.TestCase): self.assertEqual( identifier, ''.join(['$$', hashlib.sha1(bridge.fingerprint).hexdigest().upper(), hashlib.sha1(bridge.fingerprint.encode('utf-8')).hexdigest().upper(), '~', bridge.nickname])) def test_Bridge_str_without_fingerprint(self): Loading