1
0
mirror of https://github.com/bitcoin/bips.git synced 2025-05-12 12:03:29 +00:00

BIP 341: allow taproot_sign_key with no script tree

In contrast to taproot_output_script, taproot_sign_key was not able to deal with
a script_tree that is None. This commit fixes taproot_sign_key such that it can
sign for such outputs.

This commit avoids changing the behavior of the functions except
taproot_sign_key at the cost of having some code duplication. Alternatively, one
could let taproot_tree_helper deal with a None script_tree directly.
This commit is contained in:
Jonas Nick 2022-08-12 08:24:30 +00:00
parent 79bb53dde5
commit 3d243d8a49
No known key found for this signature in database
GPG Key ID: 4861DBF262123605

View File

@ -249,7 +249,10 @@ TapTweak = tagged_hash("TapTweak", p + ABCDE)
<source lang="python">
def taproot_sign_key(script_tree, internal_seckey, hash_type, bip340_aux_rand):
_, h = taproot_tree_helper(script_tree)
if script_tree is None:
h = bytes()
else:
_, h = taproot_tree_helper(script_tree)
output_seckey = taproot_tweak_seckey(internal_seckey, h)
sig = schnorr_sign(sighash(hash_type), output_seckey, bip340_aux_rand)
if hash_type != 0: