Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
pub_key = private.public()
secret = private.secret
if not k:
if use_rfc6979 and USE_FASTECDSA:
rfc6979 = RFC6979(tx_hash, secret, secp256k1_n, hashlib.sha256)
k = rfc6979.gen_nonce()
else:
global rfc6979_warning_given
if not USE_FASTECDSA and not rfc6979_warning_given:
_logger.warning("RFC6979 only supported when fastecdsa library is used")
rfc6979_warning_given = True
k = random.SystemRandom().randint(1, secp256k1_n - 1)
if USE_FASTECDSA:
r, s = _ecdsa.sign(
tx_hash,
str(secret),
str(k),
str(secp256k1_p),
str(secp256k1_a),
str(secp256k1_b),
str(secp256k1_n),
str(secp256k1_Gx),
str(secp256k1_Gy)
)
if int(s) > secp256k1_n / 2:
s = secp256k1_n - int(s)
return Signature(r, s, tx_hash, secret, public_key=pub_key, k=k)
else:
sk = ecdsa.SigningKey.from_string(private.private_byte, curve=ecdsa.SECP256k1)
tx_hash_bytes = to_bytes(tx_hash)