diff --git a/RNS/Identity.py b/RNS/Identity.py index a2512efe..988d3a43 100644 --- a/RNS/Identity.py +++ b/RNS/Identity.py @@ -556,7 +556,8 @@ class Identity: if signal_blackholed: return "blackholed" else: return False - if announced_identity.pub != None and announced_identity.validate(signature, signed_data): + if announced_identity.pub != None and (packet.announce_signature_validated or announced_identity.validate(signature, signed_data)): + packet.announce_signature_validated = True if only_validate_signature: del announced_identity return True diff --git a/RNS/Packet.py b/RNS/Packet.py index 6ff842f4..9357adc0 100755 --- a/RNS/Packet.py +++ b/RNS/Packet.py @@ -117,7 +117,8 @@ class Packet: __slots__ = "hops", "header", "header_type", "packet_type", "transport_type", "context", "context_flag", "destination" __slots__ += "transport_id", "data", "flags", "raw", "packed", "sent", "create_receipt", "receipt", "fromPacked", "MTU" __slots__ += "sent_at", "packet_hash", "ratchet_id", "attached_interface", "receiving_interface", "rssi", "snr", "q" - __slots__ += "ciphertext", "plaintext", "destination_hash", "destination_type", "link", "map_hash", "is_outbound_pr", "traffic_class" + __slots__ += "ciphertext", "plaintext", "destination_hash", "destination_type", "link", "map_hash", "is_outbound_pr" + __slots__ += "traffic_class", "announce_signature_validated" def __init__(self, destination, data, packet_type = DATA, context = NONE, transport_type = RNS.Transport.BROADCAST, header_type = HEADER_1, transport_id = None, attached_interface = None, create_receipt = True, context_flag=FLAG_UNSET): @@ -160,6 +161,7 @@ class Packet: self.ratchet_id = None self.traffic_class = None + self.announce_signature_validated = None self.attached_interface = attached_interface self.receiving_interface = None self.is_outbound_pr = False