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

Make more clear that signing function in test vectors generation code isn't intended to be used anywhere else

This commit is contained in:
Jonas Nick 2019-11-02 12:17:17 +00:00 committed by Pieter Wuille
parent a6d2d42aa2
commit 301fef36de

View File

@ -43,8 +43,10 @@ def vector3():
sig = schnorr_sign(msg, seckey) sig = schnorr_sign(msg, seckey)
return (seckey, pubkey_gen(seckey), msg, sig, "TRUE", "test fails if msg is reduced modulo p or n") return (seckey, pubkey_gen(seckey), msg, sig, "TRUE", "test fails if msg is reduced modulo p or n")
# Signs with a given nonce. Results in an invalid signature if y(kG) is not a square # Signs with a given nonce. This can be INSECURE and is only INTENDED FOR
def schnorr_sign_fixed_nonce(msg, seckey0, k): # GENERATING TEST VECTORS. Results in an invalid signature if y(kG) is not
# square.
def insecure_schnorr_sign_fixed_nonce(msg, seckey0, k):
if len(msg) != 32: if len(msg) != 32:
raise ValueError('The message must be a 32-byte array.') raise ValueError('The message must be a 32-byte array.')
seckey0 = int_from_bytes(seckey0) seckey0 = int_from_bytes(seckey0)
@ -61,7 +63,7 @@ def vector4():
one_half = 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 one_half = 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0
seckey = bytes_from_int(0x763758E5CBEEDEE4F7D3FC86F531C36578933228998226672F13C4F0EBE855EB) seckey = bytes_from_int(0x763758E5CBEEDEE4F7D3FC86F531C36578933228998226672F13C4F0EBE855EB)
msg = bytes_from_int(0x4DF3C3F68FCC83B27E9D42C90431A72499F17875C81A599B566C9889B9696703) msg = bytes_from_int(0x4DF3C3F68FCC83B27E9D42C90431A72499F17875C81A599B566C9889B9696703)
sig = schnorr_sign_fixed_nonce(msg, seckey, one_half) sig = insecure_schnorr_sign_fixed_nonce(msg, seckey, one_half)
return (None, pubkey_gen(seckey), msg, sig, "TRUE", None) return (None, pubkey_gen(seckey), msg, sig, "TRUE", None)
default_seckey = bytes_from_int(0xB7E151628AED2A6ABF7158809CF4F3C762E7160F38B4DA56A784D9045190CFEF) default_seckey = bytes_from_int(0xB7E151628AED2A6ABF7158809CF4F3C762E7160F38B4DA56A784D9045190CFEF)
@ -82,7 +84,7 @@ def vector6():
seckey = default_seckey seckey = default_seckey
msg = default_msg msg = default_msg
k = 3 k = 3
sig = schnorr_sign_fixed_nonce(msg, seckey, k) sig = insecure_schnorr_sign_fixed_nonce(msg, seckey, k)
# Y coordinate of R is not a square # Y coordinate of R is not a square
R = point_mul(G, k) R = point_mul(G, k)
@ -118,7 +120,7 @@ def vector9():
k = 0 k = 0
bytes_from_point_tmp = bytes_from_point.__code__ bytes_from_point_tmp = bytes_from_point.__code__
bytes_from_point.__code__ = bytes_from_point_inf0.__code__ bytes_from_point.__code__ = bytes_from_point_inf0.__code__
sig = schnorr_sign_fixed_nonce(msg, seckey, k) sig = insecure_schnorr_sign_fixed_nonce(msg, seckey, k)
bytes_from_point.__code__ = bytes_from_point_tmp bytes_from_point.__code__ = bytes_from_point_tmp
return (None, pubkey_gen(seckey), msg, sig, "FALSE", "sG - eP is infinite. Test fails in single verification if has_square_y(inf) is defined as true and x(inf) as 0") return (None, pubkey_gen(seckey), msg, sig, "FALSE", "sG - eP is infinite. Test fails in single verification if has_square_y(inf) is defined as true and x(inf) as 0")
@ -137,7 +139,7 @@ def vector10():
k = 0 k = 0
bytes_from_point_tmp = bytes_from_point.__code__ bytes_from_point_tmp = bytes_from_point.__code__
bytes_from_point.__code__ = bytes_from_point_inf1.__code__ bytes_from_point.__code__ = bytes_from_point_inf1.__code__
sig = schnorr_sign_fixed_nonce(msg, seckey, k) sig = insecure_schnorr_sign_fixed_nonce(msg, seckey, k)
bytes_from_point.__code__ = bytes_from_point_tmp bytes_from_point.__code__ = bytes_from_point_tmp
return (None, pubkey_gen(seckey), msg, sig, "FALSE", "sG - eP is infinite. Test fails in single verification if has_square_y(inf) is defined as true and x(inf) as 1") return (None, pubkey_gen(seckey), msg, sig, "FALSE", "sG - eP is infinite. Test fails in single verification if has_square_y(inf) is defined as true and x(inf) as 1")