@@ -60,15 +60,15 @@ void test_xonly_pubkey(void) {
60
60
sk [0 ] = 1 ;
61
61
CHECK (secp256k1_ec_pubkey_create (ctx , & pk , sk ) == 1 );
62
62
CHECK (secp256k1_xonly_pubkey_from_pubkey (ctx , & xonly_pk , & pk_parity , & pk ) == 1 );
63
- CHECK (memcmp (& pk , & xonly_pk , sizeof (pk )) == 0 );
63
+ CHECK (secp256k1_memcmp_var (& pk , & xonly_pk , sizeof (pk )) == 0 );
64
64
CHECK (pk_parity == 0 );
65
65
66
66
/* Choose a secret key such that pubkey and xonly_pubkey are each others
67
67
* negation. */
68
68
sk [0 ] = 2 ;
69
69
CHECK (secp256k1_ec_pubkey_create (ctx , & pk , sk ) == 1 );
70
70
CHECK (secp256k1_xonly_pubkey_from_pubkey (ctx , & xonly_pk , & pk_parity , & pk ) == 1 );
71
- CHECK (memcmp (& xonly_pk , & pk , sizeof (xonly_pk )) != 0 );
71
+ CHECK (secp256k1_memcmp_var (& xonly_pk , & pk , sizeof (xonly_pk )) != 0 );
72
72
CHECK (pk_parity == 1 );
73
73
secp256k1_pubkey_load (ctx , & pk1 , & pk );
74
74
secp256k1_pubkey_load (ctx , & pk2 , (secp256k1_pubkey * ) & xonly_pk );
@@ -81,7 +81,7 @@ void test_xonly_pubkey(void) {
81
81
CHECK (secp256k1_xonly_pubkey_serialize (none , NULL , & xonly_pk ) == 0 );
82
82
CHECK (ecount == 1 );
83
83
CHECK (secp256k1_xonly_pubkey_serialize (none , buf32 , NULL ) == 0 );
84
- CHECK (memcmp (buf32 , zeros64 , 32 ) == 0 );
84
+ CHECK (secp256k1_memcmp_var (buf32 , zeros64 , 32 ) == 0 );
85
85
CHECK (ecount == 2 );
86
86
{
87
87
/* A pubkey filled with 0s will fail to serialize due to pubkey_load
@@ -104,17 +104,17 @@ void test_xonly_pubkey(void) {
104
104
CHECK (secp256k1_xonly_pubkey_from_pubkey (none , & xonly_pk , NULL , & pk ) == 1 );
105
105
CHECK (secp256k1_xonly_pubkey_serialize (ctx , buf32 , & xonly_pk ) == 1 );
106
106
CHECK (secp256k1_xonly_pubkey_parse (ctx , & xonly_pk_tmp , buf32 ) == 1 );
107
- CHECK (memcmp (& xonly_pk , & xonly_pk_tmp , sizeof (xonly_pk )) == 0 );
107
+ CHECK (secp256k1_memcmp_var (& xonly_pk , & xonly_pk_tmp , sizeof (xonly_pk )) == 0 );
108
108
109
109
/* Test parsing invalid field elements */
110
110
memset (& xonly_pk , 1 , sizeof (xonly_pk ));
111
111
/* Overflowing field element */
112
112
CHECK (secp256k1_xonly_pubkey_parse (none , & xonly_pk , ones32 ) == 0 );
113
- CHECK (memcmp (& xonly_pk , zeros64 , sizeof (xonly_pk )) == 0 );
113
+ CHECK (secp256k1_memcmp_var (& xonly_pk , zeros64 , sizeof (xonly_pk )) == 0 );
114
114
memset (& xonly_pk , 1 , sizeof (xonly_pk ));
115
115
/* There's no point with x-coordinate 0 on secp256k1 */
116
116
CHECK (secp256k1_xonly_pubkey_parse (none , & xonly_pk , zeros64 ) == 0 );
117
- CHECK (memcmp (& xonly_pk , zeros64 , sizeof (xonly_pk )) == 0 );
117
+ CHECK (secp256k1_memcmp_var (& xonly_pk , zeros64 , sizeof (xonly_pk )) == 0 );
118
118
/* If a random 32-byte string can not be parsed with ec_pubkey_parse
119
119
* (because interpreted as X coordinate it does not correspond to a point on
120
120
* the curve) then xonly_pubkey_parse should fail as well. */
@@ -125,7 +125,7 @@ void test_xonly_pubkey(void) {
125
125
if (!secp256k1_ec_pubkey_parse (ctx , & pk , rand33 , 33 )) {
126
126
memset (& xonly_pk , 1 , sizeof (xonly_pk ));
127
127
CHECK (secp256k1_xonly_pubkey_parse (ctx , & xonly_pk , & rand33 [1 ]) == 0 );
128
- CHECK (memcmp (& xonly_pk , zeros64 , sizeof (xonly_pk )) == 0 );
128
+ CHECK (secp256k1_memcmp_var (& xonly_pk , zeros64 , sizeof (xonly_pk )) == 0 );
129
129
} else {
130
130
CHECK (secp256k1_xonly_pubkey_parse (ctx , & xonly_pk , & rand33 [1 ]) == 1 );
131
131
}
@@ -170,15 +170,15 @@ void test_xonly_pubkey_tweak(void) {
170
170
CHECK (secp256k1_xonly_pubkey_tweak_add (verify , & output_pk , NULL , tweak ) == 0 );
171
171
CHECK (ecount == 4 );
172
172
/* NULL internal_xonly_pk zeroes the output_pk */
173
- CHECK (memcmp (& output_pk , zeros64 , sizeof (output_pk )) == 0 );
173
+ CHECK (secp256k1_memcmp_var (& output_pk , zeros64 , sizeof (output_pk )) == 0 );
174
174
CHECK (secp256k1_xonly_pubkey_tweak_add (verify , & output_pk , & internal_xonly_pk , NULL ) == 0 );
175
175
CHECK (ecount == 5 );
176
176
/* NULL tweak zeroes the output_pk */
177
- CHECK (memcmp (& output_pk , zeros64 , sizeof (output_pk )) == 0 );
177
+ CHECK (secp256k1_memcmp_var (& output_pk , zeros64 , sizeof (output_pk )) == 0 );
178
178
179
179
/* Invalid tweak zeroes the output_pk */
180
180
CHECK (secp256k1_xonly_pubkey_tweak_add (verify , & output_pk , & internal_xonly_pk , overflows ) == 0 );
181
- CHECK (memcmp (& output_pk , zeros64 , sizeof (output_pk )) == 0 );
181
+ CHECK (secp256k1_memcmp_var (& output_pk , zeros64 , sizeof (output_pk )) == 0 );
182
182
183
183
/* A zero tweak is fine */
184
184
CHECK (secp256k1_xonly_pubkey_tweak_add (verify , & output_pk , & internal_xonly_pk , zeros64 ) == 1 );
@@ -193,7 +193,7 @@ void test_xonly_pubkey_tweak(void) {
193
193
secp256k1_scalar_get_b32 (tweak , & scalar_tweak );
194
194
CHECK ((secp256k1_xonly_pubkey_tweak_add (verify , & output_pk , & internal_xonly_pk , sk ) == 0 )
195
195
|| (secp256k1_xonly_pubkey_tweak_add (verify , & output_pk , & internal_xonly_pk , tweak ) == 0 ));
196
- CHECK (memcmp (& output_pk , zeros64 , sizeof (output_pk )) == 0 );
196
+ CHECK (secp256k1_memcmp_var (& output_pk , zeros64 , sizeof (output_pk )) == 0 );
197
197
}
198
198
199
199
/* Invalid pk with a valid tweak */
@@ -202,7 +202,7 @@ void test_xonly_pubkey_tweak(void) {
202
202
ecount = 0 ;
203
203
CHECK (secp256k1_xonly_pubkey_tweak_add (verify , & output_pk , & internal_xonly_pk , tweak ) == 0 );
204
204
CHECK (ecount == 1 );
205
- CHECK (memcmp (& output_pk , zeros64 , sizeof (output_pk )) == 0 );
205
+ CHECK (secp256k1_memcmp_var (& output_pk , zeros64 , sizeof (output_pk )) == 0 );
206
206
207
207
secp256k1_context_destroy (none );
208
208
secp256k1_context_destroy (sign );
@@ -268,7 +268,7 @@ void test_xonly_pubkey_tweak_check(void) {
268
268
/* Overflowing tweak not allowed */
269
269
CHECK (secp256k1_xonly_pubkey_tweak_add_check (ctx , output_pk32 , pk_parity , & internal_xonly_pk , overflows ) == 0 );
270
270
CHECK (secp256k1_xonly_pubkey_tweak_add (ctx , & output_pk , & internal_xonly_pk , overflows ) == 0 );
271
- CHECK (memcmp (& output_pk , zeros64 , sizeof (output_pk )) == 0 );
271
+ CHECK (secp256k1_memcmp_var (& output_pk , zeros64 , sizeof (output_pk )) == 0 );
272
272
CHECK (ecount == 5 );
273
273
274
274
secp256k1_context_destroy (none );
@@ -329,23 +329,23 @@ void test_keypair(void) {
329
329
ecount = 0 ;
330
330
secp256k1_testrand256 (sk );
331
331
CHECK (secp256k1_keypair_create (none , & keypair , sk ) == 0 );
332
- CHECK (memcmp (zeros96 , & keypair , sizeof (keypair )) == 0 );
332
+ CHECK (secp256k1_memcmp_var (zeros96 , & keypair , sizeof (keypair )) == 0 );
333
333
CHECK (ecount == 1 );
334
334
CHECK (secp256k1_keypair_create (verify , & keypair , sk ) == 0 );
335
- CHECK (memcmp (zeros96 , & keypair , sizeof (keypair )) == 0 );
335
+ CHECK (secp256k1_memcmp_var (zeros96 , & keypair , sizeof (keypair )) == 0 );
336
336
CHECK (ecount == 2 );
337
337
CHECK (secp256k1_keypair_create (sign , & keypair , sk ) == 1 );
338
338
CHECK (secp256k1_keypair_create (sign , NULL , sk ) == 0 );
339
339
CHECK (ecount == 3 );
340
340
CHECK (secp256k1_keypair_create (sign , & keypair , NULL ) == 0 );
341
- CHECK (memcmp (zeros96 , & keypair , sizeof (keypair )) == 0 );
341
+ CHECK (secp256k1_memcmp_var (zeros96 , & keypair , sizeof (keypair )) == 0 );
342
342
CHECK (ecount == 4 );
343
343
344
344
/* Invalid secret key */
345
345
CHECK (secp256k1_keypair_create (sign , & keypair , zeros96 ) == 0 );
346
- CHECK (memcmp (zeros96 , & keypair , sizeof (keypair )) == 0 );
346
+ CHECK (secp256k1_memcmp_var (zeros96 , & keypair , sizeof (keypair )) == 0 );
347
347
CHECK (secp256k1_keypair_create (sign , & keypair , overflows ) == 0 );
348
- CHECK (memcmp (zeros96 , & keypair , sizeof (keypair )) == 0 );
348
+ CHECK (secp256k1_memcmp_var (zeros96 , & keypair , sizeof (keypair )) == 0 );
349
349
350
350
/* Test keypair_pub */
351
351
ecount = 0 ;
@@ -356,18 +356,18 @@ void test_keypair(void) {
356
356
CHECK (ecount == 1 );
357
357
CHECK (secp256k1_keypair_pub (none , & pk , NULL ) == 0 );
358
358
CHECK (ecount == 2 );
359
- CHECK (memcmp (zeros96 , & pk , sizeof (pk )) == 0 );
359
+ CHECK (secp256k1_memcmp_var (zeros96 , & pk , sizeof (pk )) == 0 );
360
360
361
361
/* Using an invalid keypair is fine for keypair_pub */
362
362
memset (& keypair , 0 , sizeof (keypair ));
363
363
CHECK (secp256k1_keypair_pub (none , & pk , & keypair ) == 1 );
364
- CHECK (memcmp (zeros96 , & pk , sizeof (pk )) == 0 );
364
+ CHECK (secp256k1_memcmp_var (zeros96 , & pk , sizeof (pk )) == 0 );
365
365
366
366
/* keypair holds the same pubkey as pubkey_create */
367
367
CHECK (secp256k1_ec_pubkey_create (sign , & pk , sk ) == 1 );
368
368
CHECK (secp256k1_keypair_create (sign , & keypair , sk ) == 1 );
369
369
CHECK (secp256k1_keypair_pub (none , & pk_tmp , & keypair ) == 1 );
370
- CHECK (memcmp (& pk , & pk_tmp , sizeof (pk )) == 0 );
370
+ CHECK (secp256k1_memcmp_var (& pk , & pk_tmp , sizeof (pk )) == 0 );
371
371
372
372
/** Test keypair_xonly_pub **/
373
373
ecount = 0 ;
@@ -379,21 +379,21 @@ void test_keypair(void) {
379
379
CHECK (secp256k1_keypair_xonly_pub (none , & xonly_pk , NULL , & keypair ) == 1 );
380
380
CHECK (secp256k1_keypair_xonly_pub (none , & xonly_pk , & pk_parity , NULL ) == 0 );
381
381
CHECK (ecount == 2 );
382
- CHECK (memcmp (zeros96 , & xonly_pk , sizeof (xonly_pk )) == 0 );
382
+ CHECK (secp256k1_memcmp_var (zeros96 , & xonly_pk , sizeof (xonly_pk )) == 0 );
383
383
/* Using an invalid keypair will set the xonly_pk to 0 (first reset
384
384
* xonly_pk). */
385
385
CHECK (secp256k1_keypair_xonly_pub (none , & xonly_pk , & pk_parity , & keypair ) == 1 );
386
386
memset (& keypair , 0 , sizeof (keypair ));
387
387
CHECK (secp256k1_keypair_xonly_pub (none , & xonly_pk , & pk_parity , & keypair ) == 0 );
388
- CHECK (memcmp (zeros96 , & xonly_pk , sizeof (xonly_pk )) == 0 );
388
+ CHECK (secp256k1_memcmp_var (zeros96 , & xonly_pk , sizeof (xonly_pk )) == 0 );
389
389
CHECK (ecount == 3 );
390
390
391
391
/** keypair holds the same xonly pubkey as pubkey_create **/
392
392
CHECK (secp256k1_ec_pubkey_create (sign , & pk , sk ) == 1 );
393
393
CHECK (secp256k1_xonly_pubkey_from_pubkey (none , & xonly_pk , & pk_parity , & pk ) == 1 );
394
394
CHECK (secp256k1_keypair_create (sign , & keypair , sk ) == 1 );
395
395
CHECK (secp256k1_keypair_xonly_pub (none , & xonly_pk_tmp , & pk_parity_tmp , & keypair ) == 1 );
396
- CHECK (memcmp (& xonly_pk , & xonly_pk_tmp , sizeof (pk )) == 0 );
396
+ CHECK (secp256k1_memcmp_var (& xonly_pk , & xonly_pk_tmp , sizeof (pk )) == 0 );
397
397
CHECK (pk_parity == pk_parity_tmp );
398
398
399
399
secp256k1_context_destroy (none );
@@ -429,12 +429,12 @@ void test_keypair_add(void) {
429
429
CHECK (secp256k1_keypair_xonly_tweak_add (verify , & keypair , NULL ) == 0 );
430
430
CHECK (ecount == 4 );
431
431
/* This does not set the keypair to zeroes */
432
- CHECK (memcmp (& keypair , zeros96 , sizeof (keypair )) != 0 );
432
+ CHECK (secp256k1_memcmp_var (& keypair , zeros96 , sizeof (keypair )) != 0 );
433
433
434
434
/* Invalid tweak zeroes the keypair */
435
435
CHECK (secp256k1_keypair_create (ctx , & keypair , sk ) == 1 );
436
436
CHECK (secp256k1_keypair_xonly_tweak_add (ctx , & keypair , overflows ) == 0 );
437
- CHECK (memcmp (& keypair , zeros96 , sizeof (keypair )) == 0 );
437
+ CHECK (secp256k1_memcmp_var (& keypair , zeros96 , sizeof (keypair )) == 0 );
438
438
439
439
/* A zero tweak is fine */
440
440
CHECK (secp256k1_keypair_create (ctx , & keypair , sk ) == 1 );
@@ -454,8 +454,8 @@ void test_keypair_add(void) {
454
454
secp256k1_scalar_get_b32 (tweak , & scalar_tweak );
455
455
CHECK ((secp256k1_keypair_xonly_tweak_add (ctx , & keypair , sk ) == 0 )
456
456
|| (secp256k1_keypair_xonly_tweak_add (ctx , & keypair_tmp , tweak ) == 0 ));
457
- CHECK (memcmp (& keypair , zeros96 , sizeof (keypair )) == 0
458
- || memcmp (& keypair_tmp , zeros96 , sizeof (keypair_tmp )) == 0 );
457
+ CHECK (secp256k1_memcmp_var (& keypair , zeros96 , sizeof (keypair )) == 0
458
+ || secp256k1_memcmp_var (& keypair_tmp , zeros96 , sizeof (keypair_tmp )) == 0 );
459
459
}
460
460
461
461
/* Invalid keypair with a valid tweak */
@@ -464,7 +464,7 @@ void test_keypair_add(void) {
464
464
ecount = 0 ;
465
465
CHECK (secp256k1_keypair_xonly_tweak_add (verify , & keypair , tweak ) == 0 );
466
466
CHECK (ecount == 1 );
467
- CHECK (memcmp (& keypair , zeros96 , sizeof (keypair )) == 0 );
467
+ CHECK (secp256k1_memcmp_var (& keypair , zeros96 , sizeof (keypair )) == 0 );
468
468
/* Only seckey part of keypair invalid */
469
469
CHECK (secp256k1_keypair_create (ctx , & keypair , sk ) == 1 );
470
470
memset (& keypair , 0 , 32 );
@@ -498,11 +498,11 @@ void test_keypair_add(void) {
498
498
/* Check that the resulting pubkey matches xonly_pubkey_tweak_add */
499
499
CHECK (secp256k1_keypair_pub (ctx , & output_pk_xy , & keypair ) == 1 );
500
500
CHECK (secp256k1_xonly_pubkey_tweak_add (ctx , & output_pk_expected , & internal_pk , tweak ) == 1 );
501
- CHECK (memcmp (& output_pk_xy , & output_pk_expected , sizeof (output_pk_xy )) == 0 );
501
+ CHECK (secp256k1_memcmp_var (& output_pk_xy , & output_pk_expected , sizeof (output_pk_xy )) == 0 );
502
502
503
503
/* Check that the secret key in the keypair is tweaked correctly */
504
504
CHECK (secp256k1_ec_pubkey_create (ctx , & output_pk_expected , & keypair .data [0 ]) == 1 );
505
- CHECK (memcmp (& output_pk_xy , & output_pk_expected , sizeof (output_pk_xy )) == 0 );
505
+ CHECK (secp256k1_memcmp_var (& output_pk_xy , & output_pk_expected , sizeof (output_pk_xy )) == 0 );
506
506
}
507
507
secp256k1_context_destroy (none );
508
508
secp256k1_context_destroy (sign );
0 commit comments