Check for InvalidSignature in network.server and characters when calling

verify_from
pull/360/head
tuxxy 2018-07-13 16:20:49 -06:00
parent 52abfb7e8b
commit e313fb6c15
2 changed files with 12 additions and 12 deletions

View File

@ -863,7 +863,6 @@ class Bob(Character):
def join_policy(self, label, alice_pubkey_sig, def join_policy(self, label, alice_pubkey_sig,
node_list=None, verify_sig=True): node_list=None, verify_sig=True):
hrac = keccak_digest(bytes(alice_pubkey_sig) + bytes(self.stamp) + label)
if node_list: if node_list:
self._node_ids_to_learn_about_immediately.update(node_list) self._node_ids_to_learn_about_immediately.update(node_list)
treasure_map = self.get_treasure_map(alice_pubkey_sig, label) treasure_map = self.get_treasure_map(alice_pubkey_sig, label)
@ -887,15 +886,15 @@ class Bob(Character):
cfrags = self.get_reencrypted_cfrags(work_order) cfrags = self.get_reencrypted_cfrags(work_order)
message_kit.capsule.attach_cfrag(cfrags[0]) message_kit.capsule.attach_cfrag(cfrags[0])
verified, delivered_cleartext = self.verify_from(data_source, try:
message_kit, delivered_cleartext = self.verify_from(data_source,
decrypt=True, message_kit,
delegator_signing_key=alice_verifying_key) decrypt=True,
delegator_signing_key=alice_verifying_key)
if verified: except self.InvalidSignature as e:
cleartexts.append(delivered_cleartext) raise RuntimeError(e)
else: else:
raise RuntimeError("Not verified - replace this with real message.") # TODO: Actually raise an error in verify_from instead of here 358 cleartexts.append(delivered_cleartext)
return cleartexts return cleartexts

View File

@ -226,11 +226,12 @@ class ProxyRESTServer:
alice = self._alice_class.from_public_keys({SigningPower: policy_message_kit.sender_pubkey_sig}) alice = self._alice_class.from_public_keys({SigningPower: policy_message_kit.sender_pubkey_sig})
verified, cleartext = self.verify_from(alice, policy_message_kit, decrypt=True) try:
verified, cleartext = self.verify_from(alice, policy_message_kit, decrypt=True)
if not verified: except self.InvalidSignature:
# TODO: What do we do if the Policy isn't signed properly? # TODO: What do we do if the Policy isn't signed properly?
pass pass
# #
# alices_signature, policy_payload =BytestringSplitter(Signature)(cleartext, return_remainder=True) # alices_signature, policy_payload =BytestringSplitter(Signature)(cleartext, return_remainder=True)