Use random.SystemRandom().randint

instead of toyecc.Random.secure_rand_int_between
This commit is contained in:
vnxme 2024-12-28 10:57:32 +03:00
parent 4c6ab80b09
commit 391d019a42

View File

@ -1,8 +1,7 @@
import random
import struct import struct
from sha256 import SHA256 from sha256 import SHA256
from toyecc import AffineCurvePoint, getcurvebyname, FieldElement,ECPrivateKey,ECPublicKey,Tools from toyecc import AffineCurvePoint, getcurvebyname, FieldElement,ECPrivateKey,ECPublicKey,Tools
from toyecc.Random import secure_rand_int_between
MIKRO_BASE64_CHARACTER_TABLE = b'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' MIKRO_BASE64_CHARACTER_TABLE = b'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
@ -167,7 +166,7 @@ def mikro_kcdsa_sign(data:bytes,private_key:bytes)->bytes:
private_key:ECPrivateKey = ECPrivateKey(Tools.bytestoint_le(private_key), curve) private_key:ECPrivateKey = ECPrivateKey(Tools.bytestoint_le(private_key), curve)
public_key:ECPublicKey = private_key.pubkey public_key:ECPublicKey = private_key.pubkey
while True: while True:
nonce_secret = secure_rand_int_between(1, curve.n - 1) nonce_secret = random.SystemRandom().randint(1, curve.n - 1)
nonce_point = nonce_secret * curve.G nonce_point = nonce_secret * curve.G
nonce = int(nonce_point.x) % curve.n nonce = int(nonce_point.x) % curve.n
nonce_hash = mikro_sha256(Tools.inttobytes_le(nonce,32)) nonce_hash = mikro_sha256(Tools.inttobytes_le(nonce,32))