@@ -43,8 +43,10 @@ def vector3():
43
43
sig = schnorr_sign (msg , seckey )
44
44
return (seckey , pubkey_gen (seckey ), msg , sig , "TRUE" , "test fails if msg is reduced modulo p or n" )
45
45
46
- # Signs with a given nonce. Results in an invalid signature if y(kG) is not a square
47
- def schnorr_sign_fixed_nonce (msg , seckey0 , k ):
46
+ # Signs with a given nonce. This can be INSECURE and is only INTENDED FOR
47
+ # GENERATING TEST VECTORS. Results in an invalid signature if y(kG) is not
48
+ # square.
49
+ def insecure_schnorr_sign_fixed_nonce (msg , seckey0 , k ):
48
50
if len (msg ) != 32 :
49
51
raise ValueError ('The message must be a 32-byte array.' )
50
52
seckey0 = int_from_bytes (seckey0 )
@@ -61,7 +63,7 @@ def vector4():
61
63
one_half = 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0
62
64
seckey = bytes_from_int (0x763758E5CBEEDEE4F7D3FC86F531C36578933228998226672F13C4F0EBE855EB )
63
65
msg = bytes_from_int (0x4DF3C3F68FCC83B27E9D42C90431A72499F17875C81A599B566C9889B9696703 )
64
- sig = schnorr_sign_fixed_nonce (msg , seckey , one_half )
66
+ sig = insecure_schnorr_sign_fixed_nonce (msg , seckey , one_half )
65
67
return (None , pubkey_gen (seckey ), msg , sig , "TRUE" , None )
66
68
67
69
default_seckey = bytes_from_int (0xB7E151628AED2A6ABF7158809CF4F3C762E7160F38B4DA56A784D9045190CFEF )
@@ -82,7 +84,7 @@ def vector6():
82
84
seckey = default_seckey
83
85
msg = default_msg
84
86
k = 3
85
- sig = schnorr_sign_fixed_nonce (msg , seckey , k )
87
+ sig = insecure_schnorr_sign_fixed_nonce (msg , seckey , k )
86
88
87
89
# Y coordinate of R is not a square
88
90
R = point_mul (G , k )
@@ -118,7 +120,7 @@ def vector9():
118
120
k = 0
119
121
bytes_from_point_tmp = bytes_from_point .__code__
120
122
bytes_from_point .__code__ = bytes_from_point_inf0 .__code__
121
- sig = schnorr_sign_fixed_nonce (msg , seckey , k )
123
+ sig = insecure_schnorr_sign_fixed_nonce (msg , seckey , k )
122
124
bytes_from_point .__code__ = bytes_from_point_tmp
123
125
124
126
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():
137
139
k = 0
138
140
bytes_from_point_tmp = bytes_from_point .__code__
139
141
bytes_from_point .__code__ = bytes_from_point_inf1 .__code__
140
- sig = schnorr_sign_fixed_nonce (msg , seckey , k )
142
+ sig = insecure_schnorr_sign_fixed_nonce (msg , seckey , k )
141
143
bytes_from_point .__code__ = bytes_from_point_tmp
142
144
143
145
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" )
0 commit comments