]> Git Repo - secp256k1.git/commitdiff
add `secp256k1_ge_set_all_gej_var` test which deals with many infinite points
authorAndrew Poelstra <[email protected]>
Wed, 17 Oct 2018 19:50:37 +0000 (19:50 +0000)
committerAndrew Poelstra <[email protected]>
Fri, 9 Nov 2018 00:20:53 +0000 (00:20 +0000)
src/tests.c

index 3414a0f4cee3c869be7284712fcea9686ff9fa96..61bb7fce8727e9ef617202e0d6c88df4338bebb4 100644 (file)
@@ -2113,6 +2113,22 @@ void test_ge(void) {
         free(zr);
     }
 
+    /* Test batch gej -> ge conversion with many infinities. */
+    for (i = 0; i < 4 * runs + 1; i++) {
+        random_group_element_test(&ge[i]);
+        /* randomly set half the points to infinitiy */
+        if(secp256k1_fe_is_odd(&ge[i].x)) {
+            secp256k1_ge_set_infinity(&ge[i]);
+        }
+        secp256k1_gej_set_ge(&gej[i], &ge[i]);
+    }
+    /* batch invert */
+    secp256k1_ge_set_all_gej_var(ge, gej, 4 * runs + 1);
+    /* check result */
+    for (i = 0; i < 4 * runs + 1; i++) {
+        ge_equals_gej(&ge[i], &gej[i]);
+    }
+
     free(ge);
     free(gej);
     free(zinv);
This page took 0.032143 seconds and 4 git commands to generate.