Skip to content

Commit fd49049

Browse files
committed
use Blake2b for digest function
1 parent 0f61b6d commit fd49049

3 files changed

Lines changed: 8 additions & 4 deletions

File tree

pactus/crypto/secp256k1/private_key.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
from __future__ import annotations
22

33
import secp256k1
4+
import hashlib
45

56
from pactus.crypto.hrp import HRP
67
from pactus.utils import utils
8+
from functools import partial
79

810
from .public_key import PublicKey
911
from .signature import SIGNATURE_TYPE_SECP256K1, Signature
@@ -62,6 +64,7 @@ def public_key(self) -> PublicKey:
6264
return PublicKey(self.scalar.pubkey)
6365

6466
def sign(self, msg: bytes) -> Signature:
65-
sig = self.scalar.ecdsa_sign(msg)
67+
digest = partial(hashlib.blake2b, digest_size=32)
68+
sig = self.scalar.ecdsa_sign(msg, digest=digest)
6669
sig_compact = self.scalar.ecdsa_serialize_compact(sig)
6770
return Signature(sig_compact)

pactus/crypto/secp256k1/public_key.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
from __future__ import annotations
22

33
import hashlib
4-
54
import secp256k1
65
from ripemd.ripemd160 import ripemd160
6+
from functools import partial
77

88
from pactus.crypto.address import Address, AddressType
99
from pactus.crypto.hrp import HRP
@@ -58,9 +58,10 @@ def account_address(self) -> Address:
5858

5959
def verify(self, msg: bytes, sig: Signature) -> bool:
6060
try:
61+
digest = partial(hashlib.blake2b, digest_size=32)
6162
sig_compact = sig.raw_bytes()
6263
sig_deserialized = self.pub.ecdsa_deserialize_compact(sig_compact)
63-
return self.pub.ecdsa_verify(msg, sig_deserialized)
64+
return self.pub.ecdsa_verify(msg, sig_deserialized, digest=digest)
6465

6566
# ruff: noqa: BLE001 # unable to fix this issue
6667
except Exception:

tests/test_crypto_secp256k1.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def test_encoding(self):
2626

2727
msg = b"pactus"
2828
sig = Secp256k1Signature.from_string(
29-
"16e6f8bcdb92964a35773aae200628a5b470b6488d42ceef6538da0b4ffd3b42098dd821eea96f66ba02c9c4473443ab51c411ab78adfbb90d53b07ca1d6862b"
29+
"c86779676d217b04979434e5bd37eddd02b671e9a54b48d3a812c7862dcb539631bb5e8459fec007608f50ea5661e0a5215aac976705404cb4f36ee623e63199"
3030
)
3131

3232
self.assertTrue(pub.verify(msg, sig))

0 commit comments

Comments
 (0)