mirror of
https://github.com/bitcoin/bips.git
synced 2025-05-12 12:03:29 +00:00
Fix test vector generation code after changing schnorrsig_sign api
This commit is contained in:
parent
ae7122822a
commit
fdf6e897d9
@ -2,7 +2,7 @@ import sys
|
|||||||
from reference import *
|
from reference import *
|
||||||
|
|
||||||
def vector0():
|
def vector0():
|
||||||
seckey = 1
|
seckey = bytes_from_int(1)
|
||||||
msg = bytes_from_int(0)
|
msg = bytes_from_int(0)
|
||||||
sig = schnorr_sign(msg, seckey)
|
sig = schnorr_sign(msg, seckey)
|
||||||
pubkey = pubkey_gen(seckey)
|
pubkey = pubkey_gen(seckey)
|
||||||
@ -11,10 +11,10 @@ def vector0():
|
|||||||
pubkey_point = point_from_bytes(pubkey)
|
pubkey_point = point_from_bytes(pubkey)
|
||||||
assert(pubkey_point[1] & 1 == 0)
|
assert(pubkey_point[1] & 1 == 0)
|
||||||
|
|
||||||
return (bytes_from_int(seckey), pubkey, msg, sig, "TRUE", None)
|
return (seckey, pubkey, msg, sig, "TRUE", None)
|
||||||
|
|
||||||
def vector1():
|
def vector1():
|
||||||
seckey = 0xB7E151628AED2A6ABF7158809CF4F3C762E7160F38B4DA56A784D9045190CFEF
|
seckey = bytes_from_int(0xB7E151628AED2A6ABF7158809CF4F3C762E7160F38B4DA56A784D9045190CFEF)
|
||||||
msg = bytes_from_int(0x243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89)
|
msg = bytes_from_int(0x243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89)
|
||||||
sig = schnorr_sign(msg, seckey)
|
sig = schnorr_sign(msg, seckey)
|
||||||
pubkey = pubkey_gen(seckey)
|
pubkey = pubkey_gen(seckey)
|
||||||
@ -23,10 +23,10 @@ def vector1():
|
|||||||
pubkey_point = point_from_bytes(pubkey)
|
pubkey_point = point_from_bytes(pubkey)
|
||||||
assert(pubkey_point[1] & 1 == 1)
|
assert(pubkey_point[1] & 1 == 1)
|
||||||
|
|
||||||
return (bytes_from_int(seckey), pubkey, msg, sig, "TRUE", None)
|
return (seckey, pubkey, msg, sig, "TRUE", None)
|
||||||
|
|
||||||
def vector2():
|
def vector2():
|
||||||
seckey = 0xC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B14E5C9
|
seckey = bytes_from_int(0xC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B14E5C9)
|
||||||
msg = bytes_from_int(0x5E2D58D8B3BCDF1ABADEC7829054F90DDA9805AAB56C77333024B9D0A508B75C)
|
msg = bytes_from_int(0x5E2D58D8B3BCDF1ABADEC7829054F90DDA9805AAB56C77333024B9D0A508B75C)
|
||||||
sig = schnorr_sign(msg, seckey)
|
sig = schnorr_sign(msg, seckey)
|
||||||
|
|
||||||
@ -35,18 +35,19 @@ def vector2():
|
|||||||
R = point_from_bytes(sig[0:32])
|
R = point_from_bytes(sig[0:32])
|
||||||
assert(not is_square(R[0]))
|
assert(not is_square(R[0]))
|
||||||
|
|
||||||
return (bytes_from_int(seckey), pubkey_gen(seckey), msg, sig, "TRUE", None)
|
return (seckey, pubkey_gen(seckey), msg, sig, "TRUE", None)
|
||||||
|
|
||||||
def vector3():
|
def vector3():
|
||||||
seckey = 0x0B432B2677937381AEF05BB02A66ECD012773062CF3FA2549E44F58ED2401710
|
seckey = bytes_from_int(0x0B432B2677937381AEF05BB02A66ECD012773062CF3FA2549E44F58ED2401710)
|
||||||
msg = bytes_from_int(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)
|
msg = bytes_from_int(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)
|
||||||
sig = schnorr_sign(msg, seckey)
|
sig = schnorr_sign(msg, seckey)
|
||||||
return (bytes_from_int(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. Results in an invalid signature if y(kG) is not a square
|
||||||
def schnorr_sign_fixed_nonce(msg, seckey0, k):
|
def 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)
|
||||||
if not (1 <= seckey0 <= n - 1):
|
if not (1 <= seckey0 <= n - 1):
|
||||||
raise ValueError('The secret key must be an integer in the range 1..n-1.')
|
raise ValueError('The secret key must be an integer in the range 1..n-1.')
|
||||||
P = point_mul(G, seckey0)
|
P = point_mul(G, seckey0)
|
||||||
@ -58,12 +59,12 @@ def schnorr_sign_fixed_nonce(msg, seckey0, k):
|
|||||||
# Creates a singature with a small x(R) by using k = 1/2
|
# Creates a singature with a small x(R) by using k = 1/2
|
||||||
def vector4():
|
def vector4():
|
||||||
one_half = 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0
|
one_half = 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0
|
||||||
seckey = 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 = 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 = 0xB7E151628AED2A6ABF7158809CF4F3C762E7160F38B4DA56A784D9045190CFEF
|
default_seckey = bytes_from_int(0xB7E151628AED2A6ABF7158809CF4F3C762E7160F38B4DA56A784D9045190CFEF)
|
||||||
default_msg = bytes_from_int(0x243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89)
|
default_msg = bytes_from_int(0x243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89)
|
||||||
|
|
||||||
def vector5():
|
def vector5():
|
||||||
|
Loading…
x
Reference in New Issue
Block a user