@@ -122,13 +122,22 @@ typedef int (*secp256k1_nonce_function_hardened)(
122
122
*/
123
123
SECP256K1_API const secp256k1_nonce_function_hardened secp256k1_nonce_function_bip340 ;
124
124
125
+ /** First version of the extraparams struct. See `secp256k1_schnorrsig_extraparams` for the
126
+ latest version and its documentation.
127
+ */
128
+ typedef struct {
129
+ unsigned char magic [4 ];
130
+ secp256k1_nonce_function_hardened noncefp ;
131
+ void * ndata ;
132
+ } secp256k1_schnorrsig_extraparams_v0 ;
133
+
125
134
/** Data structure that contains additional arguments for schnorrsig_sign_custom.
126
135
*
127
136
* A schnorrsig_extraparams structure object can be initialized correctly by
128
137
* setting it to SECP256K1_SCHNORRSIG_EXTRAPARAMS_INIT.
129
138
*
130
139
* Members:
131
- * magic: set to SECP256K1_SCHNORRSIG_EXTRAPARAMS_MAGIC at initialization
140
+ * magic: set to SECP256K1_SCHNORRSIG_EXTRAPARAMS_MAGIC at initialization.
132
141
* and has no other function than making sure the object is
133
142
* initialized.
134
143
* noncefp: pointer to a nonce generation function. If NULL,
@@ -150,16 +159,28 @@ typedef struct {
150
159
void * ndata ;
151
160
secp256k1_schnorrsig_s2c_opening * s2c_opening ;
152
161
const unsigned char * s2c_data32 ;
153
- } secp256k1_schnorrsig_extraparams ;
162
+ } secp256k1_schnorrsig_extraparams_v1 ;
163
+
164
+ typedef secp256k1_schnorrsig_extraparams_v1 secp256k1_schnorrsig_extraparams ;
165
+
166
+ #define SECP256K1_SCHNORRSIG_EXTRAPARAMS_MAGIC_V0 { 0xda, 0x6f, 0xb3, 0x8c }
167
+ #define SECP256K1_SCHNORRSIG_EXTRAPARAMS_MAGIC_V1 { 0x05, 0x96, 0x5b, 0x5c }
168
+ #define SECP256K1_SCHNORRSIG_EXTRAPARAMS_MAGIC SECP256K1_SCHNORRSIG_EXTRAPARAMS_MAGIC_V1
169
+
170
+ #define SECP256K1_SCHNORRSIG_EXTRAPARAMS_INIT_V0 {\
171
+ SECP256K1_SCHNORRSIG_EXTRAPARAMS_MAGIC_V0,\
172
+ NULL,\
173
+ NULL\
174
+ }
154
175
155
- #define SECP256K1_SCHNORRSIG_EXTRAPARAMS_MAGIC { 0xda, 0x6f, 0xb3, 0x8c }
156
- #define SECP256K1_SCHNORRSIG_EXTRAPARAMS_INIT {\
157
- SECP256K1_SCHNORRSIG_EXTRAPARAMS_MAGIC,\
176
+ #define SECP256K1_SCHNORRSIG_EXTRAPARAMS_INIT_V1 {\
177
+ SECP256K1_SCHNORRSIG_EXTRAPARAMS_MAGIC_V1,\
158
178
NULL,\
159
179
NULL,\
160
180
NULL,\
161
181
NULL\
162
182
}
183
+ #define SECP256K1_SCHNORRSIG_EXTRAPARAMS_INIT SECP256K1_SCHNORRSIG_EXTRAPARAMS_INIT_V1
163
184
164
185
/** Create a Schnorr signature.
165
186
*
0 commit comments