Skip to content

Commit ffd3b34

Browse files
committed
add secp256k1_ge_set_all_gej_var test which deals with many infinite points
1 parent 84740ac commit ffd3b34

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

src/tests.c

+16
Original file line numberDiff line numberDiff line change
@@ -2113,6 +2113,22 @@ void test_ge(void) {
21132113
free(zr);
21142114
}
21152115

2116+
/* Test batch gej -> ge conversion with many infinities. */
2117+
for (i = 0; i < 4 * runs + 1; i++) {
2118+
random_group_element_test(&ge[i]);
2119+
/* randomly set half the points to infinitiy */
2120+
if(secp256k1_fe_is_odd(&ge[i].x)) {
2121+
secp256k1_ge_set_infinity(&ge[i]);
2122+
}
2123+
secp256k1_gej_set_ge(&gej[i], &ge[i]);
2124+
}
2125+
/* batch invert */
2126+
secp256k1_ge_set_all_gej_var(ge, gej, 4 * runs + 1);
2127+
/* check result */
2128+
for (i = 0; i < 4 * runs + 1; i++) {
2129+
ge_equals_gej(&ge[i], &gej[i]);
2130+
}
2131+
21162132
free(ge);
21172133
free(gej);
21182134
free(zinv);

0 commit comments

Comments
 (0)