added zenroom fulfillment verification

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
This commit is contained in:
Jürgen Eckel 2022-06-14 13:45:09 +02:00
parent 3f28ddd990
commit ca4a9cf949

View File

@ -508,9 +508,21 @@ class Transaction(object):
ccffill = input_.fulfillment
try:
parsed_ffill = Fulfillment.from_uri(ccffill.serialize_uri())
except (TypeError, ValueError,
ParsingError, ASN1DecodeError, ASN1EncodeError):
return False
except TypeError as e:
print( f"Exception TypeError : {e}")
return False;
except ValueError as e:
print( f"Exception ValueError : {e}")
return False;
except ParsingError as e:
print( f"Exception ParsingError : {e}")
return False;
except ASN1DecodeError as e:
print( f"Exception ASN1DecodeError : {e}")
return False;
except ASN1EncodeError as e:
print( f"Exception ASN1EncodeError : {e}")
return False;
if operation == self.CREATE:
# NOTE: In the case of a `CREATE` transaction, the
@ -519,6 +531,10 @@ class Transaction(object):
else:
output_valid = output_condition_uri == ccffill.condition_uri
ffill_valid = False
if isinstance( parsed_ffill, ZenroomSha256 ):
ffill_valid = parsed_ffill.validate(message=message)
else:
message = sha3_256(message.encode())
if input_.fulfills:
message.update('{}{}'.format(