From f8ed605da2d96d2d17e33d80ab1b0e38955c016c Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Sat, 15 Dec 2018 03:25:12 -0300 Subject: [PATCH] adds a way to verify detached signatures --- lbrynet/schema/validator.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/lbrynet/schema/validator.py b/lbrynet/schema/validator.py index 77b01fca4..d344ecc80 100644 --- a/lbrynet/schema/validator.py +++ b/lbrynet/schema/validator.py @@ -76,6 +76,25 @@ class Validator: from ecdsa import BadSignatureError raise BadSignatureError + def validate_detached_claim_signature(self, claim, claim_address, name): + decoded_address = decode_address(claim_address) + + # extract and serialize the stream from the claim, then check the signature + signature = claim.detached_signature.raw_signature + + if signature is None: + raise Exception("No signature to validate") + + name = name.lower().encode() + + to_sign = bytearray() + to_sign.extend(name) + to_sign.extend(decoded_address) + to_sign.extend(claim.serialized_no_signature) + to_sign.extend(binascii.unhexlify(self.certificate_claim_id)) + + return self.validate_signature(self.HASHFUNC(to_sign).digest(), signature) + def validate_claim_signature(self, claim, claim_address): decoded_address = decode_address(claim_address)