From ebdb8f4903c13a60953ea11d3621633acf58edc4 Mon Sep 17 00:00:00 2001 From: Tim Ruffing Date: Wed, 5 May 2021 09:38:22 +0200 Subject: [PATCH] tests: Improve secp256k1_ge_set_all_gej_var for some infinity inputs --- src/tests.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/tests.c b/src/tests.c index 55a0b3d587..2be002329a 100644 --- a/src/tests.c +++ b/src/tests.c @@ -3103,8 +3103,13 @@ void test_ge(void) { for (i = 0; i < 4 * runs + 1; i++) { random_group_element_test(&ge[i]); /* randomly set half the points to infinity */ - if(secp256k1_fe_is_odd(&ge[i].x)) { - secp256k1_ge_set_infinity(&ge[i]); + if (secp256k1_fe_is_odd(&ge[i].x) == i % 2) { + secp256k1_ge_set_infinity(&ge[i]); + } + int odd = secp256k1_fe_is_odd(&ge[i].x); + CHECK(odd == 0 || odd == 1); + if (!!secp256k1_fe_is_odd(&ge[i].x) == i % 2) { + secp256k1_ge_set_infinity(&ge[i]); } secp256k1_gej_set_ge(&gej[i], &ge[i]); }