1
0
Fork 0
mirror of https://github.com/bitcoin/bips.git synced 2025-03-04 11:08:05 +01:00

Replace taproot_tweak_pubkey assertion with exception and add it to taproot_tweak_seckey too

This commit is contained in:
Jonas Nick 2019-09-30 11:15:23 +00:00 committed by Pieter Wuille
parent afa5519ade
commit d112f5b035

View file

@ -187,7 +187,8 @@ For any byte string <code>h</code> it holds that <code>taproot_tweak_pubkey(pubk
<source lang="python"> <source lang="python">
def taproot_tweak_pubkey(pubkey, h): def taproot_tweak_pubkey(pubkey, h):
t = int_from_bytes(tagged_hash("TapTweak", pubkey + h)) t = int_from_bytes(tagged_hash("TapTweak", pubkey + h))
assert t < SECP256K1_ORDER if t >= SECP256K1_ORDER:
raise ValueError
Q = point_mul(point(pubkey), t) Q = point_mul(point(pubkey), t)
return bytes_from_int(x(Q)), is_quad(y(Q)) return bytes_from_int(x(Q)), is_quad(y(Q))
@ -195,6 +196,8 @@ def taproot_tweak_seckey(seckey0, h):
P = point_mul(G, int_from_bytes(seckey0)) P = point_mul(G, int_from_bytes(seckey0))
seckey = SECP256K1_ORDER - seckey0 if not is_quad(y(R)) else seckey seckey = SECP256K1_ORDER - seckey0 if not is_quad(y(R)) else seckey
t = int_from_bytes(tagged_hash("TapTweak", bytes_from_int(x(P)) + h)) t = int_from_bytes(tagged_hash("TapTweak", bytes_from_int(x(P)) + h))
if t >= SECP256K1_ORDER:
raise ValueError
return (seckey + t) % SECP256K1_ORDER return (seckey + t) % SECP256K1_ORDER
</source> </source>