def test_decryption(self): """ Decrypt our descriptor and validate its content. """ desc = HiddenServiceDescriptorV3.from_str(HS_DESC_STR) inner_layer = desc.decrypt(HS_ADDRESS) self.assertEqual(INNER_LAYER_STR, str(inner_layer)) self.assertEqual(OUTER_LAYER_STR.rstrip('\x00'), str(inner_layer.outer))
def __init__(self, desc_text, onion_address): """ Parse a descriptor in 'desc_text' and return an ReceivedDescriptor object. Raises BadDescriptor if the descriptor cannot be used. """ try: v3_desc = HiddenServiceDescriptorV3.from_str(desc_text) v3_desc.decrypt(onion_address) except ValueError as err: logger.warning("Descriptor is corrupted (%s).", err) raise BadDescriptor self.received_ts = datetime.datetime.utcnow() logger.debug("Successfuly decrypted descriptor for %s!", onion_address) super().__init__(onion_address, v3_desc)