diff --git a/pactus/crypto/secp256k1/private_key.py b/pactus/crypto/secp256k1/private_key.py index 6ba71ca..e95bec6 100644 --- a/pactus/crypto/secp256k1/private_key.py +++ b/pactus/crypto/secp256k1/private_key.py @@ -1,5 +1,8 @@ from __future__ import annotations +import hashlib +from functools import partial + import secp256k1 from pactus.crypto.hrp import HRP @@ -62,6 +65,7 @@ def public_key(self) -> PublicKey: return PublicKey(self.scalar.pubkey) def sign(self, msg: bytes) -> Signature: - sig = self.scalar.ecdsa_sign(msg) + digest = partial(hashlib.blake2b, digest_size=32) + sig = self.scalar.ecdsa_sign(msg, digest=digest) sig_compact = self.scalar.ecdsa_serialize_compact(sig) return Signature(sig_compact) diff --git a/pactus/crypto/secp256k1/public_key.py b/pactus/crypto/secp256k1/public_key.py index 12b5137..6970fed 100644 --- a/pactus/crypto/secp256k1/public_key.py +++ b/pactus/crypto/secp256k1/public_key.py @@ -1,6 +1,7 @@ from __future__ import annotations import hashlib +from functools import partial import secp256k1 from ripemd.ripemd160 import ripemd160 @@ -58,9 +59,10 @@ def account_address(self) -> Address: def verify(self, msg: bytes, sig: Signature) -> bool: try: + digest = partial(hashlib.blake2b, digest_size=32) sig_compact = sig.raw_bytes() sig_deserialized = self.pub.ecdsa_deserialize_compact(sig_compact) - return self.pub.ecdsa_verify(msg, sig_deserialized) + return self.pub.ecdsa_verify(msg, sig_deserialized, digest=digest) # ruff: noqa: BLE001 # unable to fix this issue except Exception: diff --git a/tests/test_crypto_secp256k1.py b/tests/test_crypto_secp256k1.py index 0a10b0c..9efc067 100644 --- a/tests/test_crypto_secp256k1.py +++ b/tests/test_crypto_secp256k1.py @@ -26,7 +26,7 @@ def test_encoding(self): msg = b"pactus" sig = Secp256k1Signature.from_string( - "16e6f8bcdb92964a35773aae200628a5b470b6488d42ceef6538da0b4ffd3b42098dd821eea96f66ba02c9c4473443ab51c411ab78adfbb90d53b07ca1d6862b" + "c86779676d217b04979434e5bd37eddd02b671e9a54b48d3a812c7862dcb539631bb5e8459fec007608f50ea5661e0a5215aac976705404cb4f36ee623e63199" ) self.assertTrue(pub.verify(msg, sig))