@@ -3093,6 +3093,7 @@ static void run_field_misc(void) {
30933093 secp256k1_fe y ;
30943094 secp256k1_fe z ;
30953095 secp256k1_fe q ;
3096+ int v ;
30963097 secp256k1_fe fe5 = SECP256K1_FE_CONST (0 , 0 , 0 , 0 , 0 , 0 , 0 , 5 );
30973098 int i , j ;
30983099 for (i = 0 ; i < 1000 * COUNT ; i ++ ) {
@@ -3103,6 +3104,14 @@ static void run_field_misc(void) {
31033104 random_fe_test (& x );
31043105 }
31053106 random_fe_non_zero (& y );
3107+ v = secp256k1_testrand_bits (15 );
3108+ /* Test that fe_add_int is equivalent to fe_set_int + fe_add. */
3109+ secp256k1_fe_set_int (& q , v ); /* q = v */
3110+ z = x ; /* z = x */
3111+ secp256k1_fe_add (& z , & q ); /* z = x+v */
3112+ q = x ; /* q = x */
3113+ secp256k1_fe_add_int (& q , v ); /* q = x+v */
3114+ CHECK (check_fe_equal (& q , & z ));
31063115 /* Test the fe equality and comparison operations. */
31073116 CHECK (secp256k1_fe_cmp_var (& x , & x ) == 0 );
31083117 CHECK (secp256k1_fe_equal_var (& x , & x ));
@@ -3279,7 +3288,7 @@ static void run_sqrt(void) {
32793288 int i ;
32803289
32813290 /* Check sqrt(0) is 0 */
3282- secp256k1_fe_set_int (& x , 0 );
3291+ secp256k1_fe_clear (& x );
32833292 secp256k1_fe_sqr (& s , & x );
32843293 test_sqrt (& s , & x );
32853294
@@ -3371,7 +3380,7 @@ static void test_inverse_field(secp256k1_fe* out, const secp256k1_fe* x, int var
33713380 (var ? secp256k1_fe_inv_var : secp256k1_fe_inv )(& r , & r ); /* r = 1/(x-1) */
33723381 secp256k1_fe_add (& l , & fe_minus_one ); /* l = 1/x-1 */
33733382 (var ? secp256k1_fe_inv_var : secp256k1_fe_inv )(& l , & l ); /* l = 1/(1/x-1) */
3374- secp256k1_fe_add (& l , & secp256k1_fe_one ); /* l = 1/(1/x-1)+1 */
3383+ secp256k1_fe_add_int (& l , 1 ); /* l = 1/(1/x-1)+1 */
33753384 secp256k1_fe_add (& l , & r ); /* l = 1/(1/x-1)+1 + 1/(x-1) */
33763385 CHECK (secp256k1_fe_normalizes_to_zero_var (& l )); /* l == 0 */
33773386}
0 commit comments