@@ -160,9 +160,7 @@ static void secp256k1_gej_set_ge(secp256k1_gej_t *r, const secp256k1_ge_t *a) {
160160static int secp256k1_gej_eq_x_var (const secp256k1_fe_t * x , const secp256k1_gej_t * a ) {
161161 VERIFY_CHECK (!a -> infinity );
162162 secp256k1_fe_t r ; secp256k1_fe_sqr (& r , & a -> z ); secp256k1_fe_mul (& r , & r , x );
163- secp256k1_fe_t r2 = a -> x ;
164- secp256k1_fe_normalize_weak (& r );
165- secp256k1_fe_normalize_weak (& r2 );
163+ secp256k1_fe_t r2 = a -> x ; secp256k1_fe_normalize_weak (& r2 );
166164 return secp256k1_fe_equal_var (& r , & r2 );
167165}
168166
@@ -257,16 +255,16 @@ static void secp256k1_gej_add_var(secp256k1_gej_t *r, const secp256k1_gej_t *a,
257255 secp256k1_fe_t u2 ; secp256k1_fe_mul (& u2 , & b -> x , & z12 );
258256 secp256k1_fe_t s1 ; secp256k1_fe_mul (& s1 , & a -> y , & z22 ); secp256k1_fe_mul (& s1 , & s1 , & b -> z );
259257 secp256k1_fe_t s2 ; secp256k1_fe_mul (& s2 , & b -> y , & z12 ); secp256k1_fe_mul (& s2 , & s2 , & a -> z );
260- if (secp256k1_fe_equal_var (& u1 , & u2 )) {
261- if (secp256k1_fe_equal_var (& s1 , & s2 )) {
258+ secp256k1_fe_t h ; secp256k1_fe_negate (& h , & u1 , 1 ); secp256k1_fe_add (& h , & u2 );
259+ secp256k1_fe_t i ; secp256k1_fe_negate (& i , & s1 , 1 ); secp256k1_fe_add (& i , & s2 );
260+ if (secp256k1_fe_normalizes_to_zero (& h )) {
261+ if (secp256k1_fe_normalizes_to_zero (& i )) {
262262 secp256k1_gej_double_var (r , a );
263263 } else {
264264 r -> infinity = 1 ;
265265 }
266266 return ;
267267 }
268- secp256k1_fe_t h ; secp256k1_fe_negate (& h , & u1 , 1 ); secp256k1_fe_add (& h , & u2 );
269- secp256k1_fe_t i ; secp256k1_fe_negate (& i , & s1 , 1 ); secp256k1_fe_add (& i , & s2 );
270268 secp256k1_fe_t i2 ; secp256k1_fe_sqr (& i2 , & i );
271269 secp256k1_fe_t h2 ; secp256k1_fe_sqr (& h2 , & h );
272270 secp256k1_fe_t h3 ; secp256k1_fe_mul (& h3 , & h , & h2 );
@@ -296,16 +294,16 @@ static void secp256k1_gej_add_ge_var(secp256k1_gej_t *r, const secp256k1_gej_t *
296294 secp256k1_fe_t u2 ; secp256k1_fe_mul (& u2 , & b -> x , & z12 );
297295 secp256k1_fe_t s1 = a -> y ; secp256k1_fe_normalize_weak (& s1 );
298296 secp256k1_fe_t s2 ; secp256k1_fe_mul (& s2 , & b -> y , & z12 ); secp256k1_fe_mul (& s2 , & s2 , & a -> z );
299- if (secp256k1_fe_equal_var (& u1 , & u2 )) {
300- if (secp256k1_fe_equal_var (& s1 , & s2 )) {
297+ secp256k1_fe_t h ; secp256k1_fe_negate (& h , & u1 , 1 ); secp256k1_fe_add (& h , & u2 );
298+ secp256k1_fe_t i ; secp256k1_fe_negate (& i , & s1 , 1 ); secp256k1_fe_add (& i , & s2 );
299+ if (secp256k1_fe_normalizes_to_zero (& h )) {
300+ if (secp256k1_fe_normalizes_to_zero (& i )) {
301301 secp256k1_gej_double_var (r , a );
302302 } else {
303303 r -> infinity = 1 ;
304304 }
305305 return ;
306306 }
307- secp256k1_fe_t h ; secp256k1_fe_negate (& h , & u1 , 1 ); secp256k1_fe_add (& h , & u2 );
308- secp256k1_fe_t i ; secp256k1_fe_negate (& i , & s1 , 1 ); secp256k1_fe_add (& i , & s2 );
309307 secp256k1_fe_t i2 ; secp256k1_fe_sqr (& i2 , & i );
310308 secp256k1_fe_t h2 ; secp256k1_fe_sqr (& h2 , & h );
311309 secp256k1_fe_t h3 ; secp256k1_fe_mul (& h3 , & h , & h2 );
@@ -360,8 +358,7 @@ static void secp256k1_gej_add_ge(secp256k1_gej_t *r, const secp256k1_gej_t *a, c
360358 secp256k1_fe_add (& rr , & t ); /* rr = R = T^2-U1*U2 (3) */
361359 secp256k1_fe_sqr (& t , & rr ); /* t = R^2 (1) */
362360 secp256k1_fe_mul (& r -> z , & m , & z ); /* r->z = M*Z (1) */
363- secp256k1_fe_normalize (& r -> z );
364- int infinity = secp256k1_fe_is_zero (& r -> z ) * (1 - a -> infinity );
361+ int infinity = secp256k1_fe_normalizes_to_zero (& r -> z ) * (1 - a -> infinity );
365362 secp256k1_fe_mul_int (& r -> z , 2 * (1 - a -> infinity )); /* r->z = Z3 = 2*M*Z (2) */
366363 r -> x = t ; /* r->x = R^2 (1) */
367364 secp256k1_fe_negate (& q , & q , 1 ); /* q = -Q (2) */
0 commit comments