def verify(self, signature, data, hash_context):
if not isinstance(hash_context, hashes.HashContext):
raise TypeError("hash_context must be an instance of hashes.HashContext.")
size = self.public_numbers.parameter_numbers.q.bit_length() // 8
r, s = (bytes_to_long(value) for value in read_content(signature, '{0}s{0}s'.format(size)))
# r, s = (bytes_to_long(value) for value in read_content(signature, '20s20s'))
verifier = self._key.verifier(encode_dss_signature(r, s), hashes.SHA256())
verifier._hash_ctx = hash_context
verifier.update(data)
try:
verifier.verify()
except InvalidSignature:
raise ValueError("invalid signature")
评论列表
文章目录