]> git.codecow.com Git - Monocypher.git/commitdiff
Elligator tests: overlapping I/O
authorLoup Vaillant <loup@loup-vaillant.fr>
Mon, 9 Mar 2020 21:40:52 +0000 (22:40 +0100)
committerLoup Vaillant <loup@loup-vaillant.fr>
Mon, 9 Mar 2020 21:40:52 +0000 (22:40 +0100)
tests/test.c

index c2be3cf14766c36663b21fbd293ca10f6cfaf83a..f23ce22fa6ba90010d915646147c5e0e2d1f1bd8 100644 (file)
@@ -864,6 +864,23 @@ static int p_elligator_direct_msb()
     return status;
 }
 
+static int p_elligator_direct_overlap()
+{
+    int status = 0;
+    FOR (i, 0, 62) {
+        u8 overlapping[94];
+        u8 seperate[32];
+        RANDOM_INPUT(r, 32);
+        memcpy(overlapping + 31, r, 32);
+        crypto_elligator2_direct(overlapping + i, overlapping + 31);
+        crypto_elligator2_direct(seperate, r);
+        status |= memcmp(seperate, overlapping + i, 32);
+    }
+    printf("%s: elligator direct (overlapping i/o)\n",
+           status != 0 ? "FAILED" : "OK");
+    return status;
+}
+
 #define TEST(name, nb_inputs) vector_test(name, #name, nb_inputs, \
                                           nb_##name##_vectors,    \
                                           name##_vectors,         \
@@ -927,6 +944,7 @@ int main(int argc, char *argv[])
     status |= p_eddsa_incremental();
     status |= p_aead();
     status |= p_elligator_direct_msb();
+    status |= p_elligator_direct_overlap();
     printf("\n%s\n\n", status != 0 ? "SOME TESTS FAILED" : "All tests OK!");
     return status;
 }