@@ -3706,11 +3706,12 @@ static void test_ge(void) {
3706
3706
secp256k1_ge_clear (& ge [0 ]);
3707
3707
secp256k1_ge_set_gej_var (& ge [0 ], & gej [0 ]);
3708
3708
for (i = 0 ; i < runs ; i ++ ) {
3709
- int j ;
3709
+ int j , k ;
3710
3710
secp256k1_ge g ;
3711
3711
random_group_element_test (& g );
3712
3712
if (i >= runs - 2 ) {
3713
3713
secp256k1_ge_mul_lambda (& g , & ge [1 ]);
3714
+ CHECK (!secp256k1_ge_eq_var (& g , & ge [1 ]));
3714
3715
}
3715
3716
if (i >= runs - 1 ) {
3716
3717
secp256k1_ge_mul_lambda (& g , & g );
@@ -3730,6 +3731,16 @@ static void test_ge(void) {
3730
3731
random_gej_y_magnitude (& gej [1 + j + 4 * i ]);
3731
3732
random_gej_z_magnitude (& gej [1 + j + 4 * i ]);
3732
3733
}
3734
+
3735
+ for (j = 0 ; j < 4 ; ++ j ) {
3736
+ for (k = 0 ; k < 4 ; ++ k ) {
3737
+ int expect_equal = (j >> 1 ) == (k >> 1 );
3738
+ CHECK (secp256k1_ge_eq_var (& ge [1 + j + 4 * i ], & ge [1 + k + 4 * i ]) == expect_equal );
3739
+ CHECK (secp256k1_gej_eq_var (& gej [1 + j + 4 * i ], & gej [1 + k + 4 * i ]) == expect_equal );
3740
+ CHECK (secp256k1_gej_eq_ge_var (& gej [1 + j + 4 * i ], & ge [1 + k + 4 * i ]) == expect_equal );
3741
+ CHECK (secp256k1_gej_eq_ge_var (& gej [1 + k + 4 * i ], & ge [1 + j + 4 * i ]) == expect_equal );
3742
+ }
3743
+ }
3733
3744
}
3734
3745
3735
3746
/* Generate random zf, and zfi2 = 1/zf^2, zfi3 = 1/zf^3 */
@@ -3759,7 +3770,7 @@ static void test_ge(void) {
3759
3770
3760
3771
/* Test gej + ge with Z ratio result (var). */
3761
3772
secp256k1_gej_add_ge_var (& resj , & gej [i1 ], & ge [i2 ], secp256k1_gej_is_infinity (& gej [i1 ]) ? NULL : & zr );
3762
- ge_equals_gej ( & ref , & resj );
3773
+ CHECK ( secp256k1_gej_eq_ge_var ( & resj , & ref ) );
3763
3774
if (!secp256k1_gej_is_infinity (& gej [i1 ]) && !secp256k1_gej_is_infinity (& resj )) {
3764
3775
secp256k1_fe zrz ; secp256k1_fe_mul (& zrz , & zr , & gej [i1 ].z );
3765
3776
CHECK (secp256k1_fe_equal (& zrz , & resj .z ));
@@ -3773,31 +3784,31 @@ static void test_ge(void) {
3773
3784
random_ge_x_magnitude (& ge2_zfi );
3774
3785
random_ge_y_magnitude (& ge2_zfi );
3775
3786
secp256k1_gej_add_zinv_var (& resj , & gej [i1 ], & ge2_zfi , & zf );
3776
- ge_equals_gej ( & ref , & resj );
3787
+ CHECK ( secp256k1_gej_eq_ge_var ( & resj , & ref ) );
3777
3788
}
3778
3789
3779
3790
/* Test gej + ge (const). */
3780
3791
if (i2 != 0 ) {
3781
3792
/* secp256k1_gej_add_ge does not support its second argument being infinity. */
3782
3793
secp256k1_gej_add_ge (& resj , & gej [i1 ], & ge [i2 ]);
3783
- ge_equals_gej ( & ref , & resj );
3794
+ CHECK ( secp256k1_gej_eq_ge_var ( & resj , & ref ) );
3784
3795
}
3785
3796
3786
3797
/* Test doubling (var). */
3787
3798
if ((i1 == 0 && i2 == 0 ) || ((i1 + 3 )/4 == (i2 + 3 )/4 && ((i1 + 3 )%4 )/2 == ((i2 + 3 )%4 )/2 )) {
3788
3799
secp256k1_fe zr2 ;
3789
3800
/* Normal doubling with Z ratio result. */
3790
3801
secp256k1_gej_double_var (& resj , & gej [i1 ], & zr2 );
3791
- ge_equals_gej ( & ref , & resj );
3802
+ CHECK ( secp256k1_gej_eq_ge_var ( & resj , & ref ) );
3792
3803
/* Check Z ratio. */
3793
3804
secp256k1_fe_mul (& zr2 , & zr2 , & gej [i1 ].z );
3794
3805
CHECK (secp256k1_fe_equal (& zr2 , & resj .z ));
3795
3806
/* Normal doubling. */
3796
3807
secp256k1_gej_double_var (& resj , & gej [i2 ], NULL );
3797
- ge_equals_gej ( & ref , & resj );
3808
+ CHECK ( secp256k1_gej_eq_ge_var ( & resj , & ref ) );
3798
3809
/* Constant-time doubling. */
3799
3810
secp256k1_gej_double (& resj , & gej [i2 ]);
3800
- ge_equals_gej ( & ref , & resj );
3811
+ CHECK ( secp256k1_gej_eq_ge_var ( & resj , & ref ) );
3801
3812
}
3802
3813
3803
3814
/* Test adding opposites. */
@@ -3809,12 +3820,12 @@ static void test_ge(void) {
3809
3820
if (i1 == 0 ) {
3810
3821
CHECK (secp256k1_ge_is_infinity (& ge [i1 ]));
3811
3822
CHECK (secp256k1_gej_is_infinity (& gej [i1 ]));
3812
- ge_equals_gej ( & ref , & gej [i2 ]);
3823
+ CHECK ( secp256k1_gej_eq_ge_var ( & gej [i2 ], & ref ) );
3813
3824
}
3814
3825
if (i2 == 0 ) {
3815
3826
CHECK (secp256k1_ge_is_infinity (& ge [i2 ]));
3816
3827
CHECK (secp256k1_gej_is_infinity (& gej [i2 ]));
3817
- ge_equals_gej ( & ref , & gej [i1 ]);
3828
+ CHECK ( secp256k1_gej_eq_ge_var ( & gej [i1 ], & ref ) );
3818
3829
}
3819
3830
}
3820
3831
}
@@ -3849,7 +3860,7 @@ static void test_ge(void) {
3849
3860
secp256k1_fe s ;
3850
3861
random_fe_non_zero (& s );
3851
3862
secp256k1_gej_rescale (& gej [i ], & s );
3852
- ge_equals_gej ( & ge_set_all [i ], & gej [i ]);
3863
+ CHECK ( secp256k1_gej_eq_ge_var ( & gej [i ], & ge_set_all [i ]) );
3853
3864
}
3854
3865
free (ge_set_all );
3855
3866
}
@@ -3893,7 +3904,7 @@ static void test_ge(void) {
3893
3904
secp256k1_ge_set_all_gej_var (ge , gej , 4 * runs + 1 );
3894
3905
/* check result */
3895
3906
for (i = 0 ; i < 4 * runs + 1 ; i ++ ) {
3896
- ge_equals_gej ( & ge [i ], & gej [i ]);
3907
+ CHECK ( secp256k1_gej_eq_ge_var ( & gej [i ], & ge [i ]) );
3897
3908
}
3898
3909
3899
3910
/* Test batch gej -> ge conversion with all infinities. */
@@ -3992,15 +4003,15 @@ static void test_add_neg_y_diff_x(void) {
3992
4003
3993
4004
secp256k1_gej_add_var (& resj , & aj , & bj , NULL );
3994
4005
secp256k1_ge_set_gej (& res , & resj );
3995
- ge_equals_gej ( & res , & sumj );
4006
+ CHECK ( secp256k1_gej_eq_ge_var ( & sumj , & res ) );
3996
4007
3997
4008
secp256k1_gej_add_ge (& resj , & aj , & b );
3998
4009
secp256k1_ge_set_gej (& res , & resj );
3999
- ge_equals_gej ( & res , & sumj );
4010
+ CHECK ( secp256k1_gej_eq_ge_var ( & sumj , & res ) );
4000
4011
4001
4012
secp256k1_gej_add_ge_var (& resj , & aj , & b , NULL );
4002
4013
secp256k1_ge_set_gej (& res , & resj );
4003
- ge_equals_gej ( & res , & sumj );
4014
+ CHECK ( secp256k1_gej_eq_ge_var ( & sumj , & res ) );
4004
4015
}
4005
4016
4006
4017
static void run_ge (void ) {
@@ -4293,10 +4304,10 @@ static void test_point_times_order(const secp256k1_gej *point) {
4293
4304
CHECK (secp256k1_ge_is_infinity (& res3 ));
4294
4305
secp256k1_ecmult (& res1 , point , & secp256k1_scalar_one , & secp256k1_scalar_zero );
4295
4306
secp256k1_ge_set_gej (& res3 , & res1 );
4296
- ge_equals_gej ( & res3 , point );
4307
+ CHECK ( secp256k1_gej_eq_ge_var ( point , & res3 ) );
4297
4308
secp256k1_ecmult (& res1 , point , & secp256k1_scalar_zero , & secp256k1_scalar_one );
4298
4309
secp256k1_ge_set_gej (& res3 , & res1 );
4299
- ge_equals_ge ( & res3 , & secp256k1_ge_const_g );
4310
+ CHECK ( secp256k1_ge_eq_var ( & secp256k1_ge_const_g , & res3 ) );
4300
4311
}
4301
4312
4302
4313
/* These scalars reach large (in absolute value) outputs when fed to secp256k1_scalar_split_lambda.
@@ -4424,7 +4435,7 @@ static void ecmult_const_random_mult(void) {
4424
4435
secp256k1_ecmult_const (& b , & a , & xn );
4425
4436
4426
4437
CHECK (secp256k1_ge_is_valid_var (& a ));
4427
- ge_equals_gej ( & expected_b , & b );
4438
+ CHECK ( secp256k1_gej_eq_ge_var ( & b , & expected_b ) );
4428
4439
}
4429
4440
4430
4441
static void ecmult_const_commutativity (void ) {
@@ -4445,7 +4456,7 @@ static void ecmult_const_commutativity(void) {
4445
4456
secp256k1_ecmult_const (& res2 , & mid2 , & a );
4446
4457
secp256k1_ge_set_gej (& mid1 , & res1 );
4447
4458
secp256k1_ge_set_gej (& mid2 , & res2 );
4448
- ge_equals_ge ( & mid1 , & mid2 );
4459
+ CHECK ( secp256k1_ge_eq_var ( & mid1 , & mid2 ) );
4449
4460
}
4450
4461
4451
4462
static void ecmult_const_mult_zero_one (void ) {
@@ -4472,13 +4483,13 @@ static void ecmult_const_mult_zero_one(void) {
4472
4483
/* 1*point */
4473
4484
secp256k1_ecmult_const (& res1 , & point , & secp256k1_scalar_one );
4474
4485
secp256k1_ge_set_gej (& res2 , & res1 );
4475
- ge_equals_ge ( & res2 , & point );
4486
+ CHECK ( secp256k1_ge_eq_var ( & res2 , & point ) );
4476
4487
4477
4488
/* -1*point */
4478
4489
secp256k1_ecmult_const (& res1 , & point , & negone );
4479
4490
secp256k1_gej_neg (& res1 , & res1 );
4480
4491
secp256k1_ge_set_gej (& res2 , & res1 );
4481
- ge_equals_ge ( & res2 , & point );
4492
+ CHECK ( secp256k1_ge_eq_var ( & res2 , & point ) );
4482
4493
}
4483
4494
4484
4495
static void ecmult_const_check_result (const secp256k1_ge * A , const secp256k1_scalar * q , const secp256k1_gej * res ) {
@@ -4487,7 +4498,7 @@ static void ecmult_const_check_result(const secp256k1_ge *A, const secp256k1_sca
4487
4498
secp256k1_gej_set_ge (& pointj , A );
4488
4499
secp256k1_ecmult (& res2j , & pointj , q , & secp256k1_scalar_zero );
4489
4500
secp256k1_ge_set_gej (& res2 , & res2j );
4490
- ge_equals_gej ( & res2 , res );
4501
+ CHECK ( secp256k1_gej_eq_ge_var ( res , & res2 ) );
4491
4502
}
4492
4503
4493
4504
static void ecmult_const_edges (void ) {
@@ -4595,7 +4606,7 @@ static void ecmult_const_chain_multiply(void) {
4595
4606
secp256k1_ecmult_const (& point , & tmp , & scalar );
4596
4607
}
4597
4608
secp256k1_ge_set_gej (& res , & point );
4598
- ge_equals_gej ( & res , & expected_point );
4609
+ CHECK ( secp256k1_gej_eq_ge_var ( & expected_point , & res ) );
4599
4610
}
4600
4611
4601
4612
static void run_ecmult_const_tests (void ) {
@@ -5403,11 +5414,11 @@ static void test_ecmult_accumulate(secp256k1_sha256* acc, const secp256k1_scalar
5403
5414
secp256k1_ecmult_multi_var (NULL , scratch , & rj5 , & secp256k1_scalar_zero , test_ecmult_accumulate_cb , (void * )x , 1 );
5404
5415
secp256k1_ecmult_const (& rj6 , & secp256k1_ge_const_g , x );
5405
5416
secp256k1_ge_set_gej_var (& r , & rj1 );
5406
- ge_equals_gej ( & r , & rj2 );
5407
- ge_equals_gej ( & r , & rj3 );
5408
- ge_equals_gej ( & r , & rj4 );
5409
- ge_equals_gej ( & r , & rj5 );
5410
- ge_equals_gej ( & r , & rj6 );
5417
+ CHECK ( secp256k1_gej_eq_ge_var ( & rj2 , & r ) );
5418
+ CHECK ( secp256k1_gej_eq_ge_var ( & rj3 , & r ) );
5419
+ CHECK ( secp256k1_gej_eq_ge_var ( & rj4 , & r ) );
5420
+ CHECK ( secp256k1_gej_eq_ge_var ( & rj5 , & r ) );
5421
+ CHECK ( secp256k1_gej_eq_ge_var ( & rj6 , & r ) );
5411
5422
if (secp256k1_ge_is_infinity (& r )) {
5412
5423
/* Store infinity as 0x00 */
5413
5424
const unsigned char zerobyte [1 ] = {0 };
@@ -5561,7 +5572,7 @@ static void test_ecmult_gen_blind(void) {
5561
5572
CHECK (!gej_xyz_equals_gej (& pgej , & pgej2 ));
5562
5573
CHECK (!gej_xyz_equals_gej (& i , & CTX -> ecmult_gen_ctx .initial ));
5563
5574
secp256k1_ge_set_gej (& pge , & pgej );
5564
- ge_equals_gej ( & pge , & pgej2 );
5575
+ CHECK ( secp256k1_gej_eq_ge_var ( & pgej2 , & pge ) );
5565
5576
}
5566
5577
5567
5578
static void test_ecmult_gen_blind_reset (void ) {
@@ -5952,7 +5963,7 @@ static void run_ec_pubkey_parse_test(void) {
5952
5963
SECP256K1_CHECKMEM_CHECK (& ge .x , sizeof (ge .x ));
5953
5964
SECP256K1_CHECKMEM_CHECK (& ge .y , sizeof (ge .y ));
5954
5965
SECP256K1_CHECKMEM_CHECK (& ge .infinity , sizeof (ge .infinity ));
5955
- ge_equals_ge ( & secp256k1_ge_const_g , & ge );
5966
+ CHECK ( secp256k1_ge_eq_var ( & ge , & secp256k1_ge_const_g ) );
5956
5967
/* secp256k1_ec_pubkey_serialize illegal args. */
5957
5968
len = 65 ;
5958
5969
CHECK_ILLEGAL (CTX , secp256k1_ec_pubkey_serialize (CTX , NULL , & len , & pubkey , SECP256K1_EC_UNCOMPRESSED ));
@@ -6521,7 +6532,7 @@ static void test_random_pubkeys(void) {
6521
6532
CHECK (secp256k1_eckey_pubkey_serialize (& elem , in , & size , 0 ));
6522
6533
CHECK (size == 65 );
6523
6534
CHECK (secp256k1_eckey_pubkey_parse (& elem2 , in , size ));
6524
- ge_equals_ge ( & elem , & elem2 );
6535
+ CHECK ( secp256k1_ge_eq_var ( & elem2 , & elem ) );
6525
6536
/* Check that the X9.62 hybrid type is checked. */
6526
6537
in [0 ] = secp256k1_testrand_bits (1 ) ? 6 : 7 ;
6527
6538
res = secp256k1_eckey_pubkey_parse (& elem2 , in , size );
@@ -6533,7 +6544,7 @@ static void test_random_pubkeys(void) {
6533
6544
}
6534
6545
}
6535
6546
if (res ) {
6536
- ge_equals_ge ( & elem ,& elem2 );
6547
+ CHECK ( secp256k1_ge_eq_var ( & elem , & elem2 ) );
6537
6548
CHECK (secp256k1_eckey_pubkey_serialize (& elem , out , & size , 0 ));
6538
6549
CHECK (secp256k1_memcmp_var (& in [1 ], & out [1 ], 64 ) == 0 );
6539
6550
}
0 commit comments