frostfs-sdk-python/frostfs_api/client/verifier.py
2025-02-11 10:03:29 +03:00

18 lines
572 B
Python

import ecdsa
from hashlib import sha256
class Verifier:
def verify_rfc6979(self, public_key: bytes, message: bytes, signature: bytes) -> bool:
if len(public_key) == 0 or public_key is None:
raise ValueError(f"Incorrect public key: {public_key}")
if message is None or signature is None:
return False
vk = ecdsa.VerifyingKey.from_string(public_key, curve=ecdsa.SECP256k1, hashfunc=sha256)
try:
return vk.verify(signature, message)
except ecdsa.BadSignatureError:
return False