aboutsummaryrefslogtreecommitdiff
path: root/test/src/gen/test_gp.c
diff options
context:
space:
mode:
authorJ08nY2018-03-03 01:02:08 +0100
committerJ08nY2018-03-03 01:02:08 +0100
commitac60f78a253efde94cab36264b0555b0691fdd8a (patch)
tree12ce2bfdee1f13f0b6e56a017c3c29979475fe02 /test/src/gen/test_gp.c
parent40cbb213ac910ddcaf22a26a247d2a9eeddca1fc (diff)
downloadecgen-ac60f78a253efde94cab36264b0555b0691fdd8a.tar.gz
ecgen-ac60f78a253efde94cab36264b0555b0691fdd8a.tar.zst
ecgen-ac60f78a253efde94cab36264b0555b0691fdd8a.zip
Rewrite generator and point generation code.
Diffstat (limited to 'test/src/gen/test_gp.c')
-rw-r--r--test/src/gen/test_gp.c249
1 files changed, 0 insertions, 249 deletions
diff --git a/test/src/gen/test_gp.c b/test/src/gen/test_gp.c
deleted file mode 100644
index 9e3e1a9..0000000
--- a/test/src/gen/test_gp.c
+++ /dev/null
@@ -1,249 +0,0 @@
-/*
- * ecgen, tool for generating Elliptic curve domain parameters
- * Copyright (C) 2017 J08nY
- */
-#include <criterion/criterion.h>
-#include "gen/gp.h"
-#include "test/default.h"
-#include "util/bits.h"
-
-TestSuite(gp, .init = default_setup, .fini = default_teardown);
-
-Test(gp, test_gp_gen_seed) {
- curve_t curve = {0};
- arg_t arg = {.args = "() -> { return(Vecsmall([1,0])); }", .nargs = 1};
-
- int ret = gp_gen(&curve, &arg, OFFSET_SEED);
- cr_assert_eq(ret, 1, );
- cr_assert_not_null(curve.seed, );
- cr_assert_not_null(curve.seed->seed, );
- cr_assert(bits_eq(curve.seed->seed, bits_from_bin("10")), );
-}
-
-Test(gp, test_gp_gen_field) {
- curve_t curve = {0};
- arg_t arg = {.args = "(seed) -> { return(19); }", .nargs = 1};
-
- int ret = gp_gen(&curve, &arg, OFFSET_FIELD);
- cr_assert_eq(ret, 1, );
- cr_assert(gequal(curve.field, stoi(19)), );
-}
-
-Test(gp, test_gp_gen_a) {
- curve_t curve = {.field = stoi(19)};
- arg_t arg = {.args = "(seed, field) -> { return(Mod(3,field)); }",
- .nargs = 1};
-
- int ret = gp_gen(&curve, &arg, OFFSET_A);
- cr_assert_eq(ret, 1, );
- cr_assert(gequal(curve.a, mkintmodu(3, 19)), );
-}
-
-Test(gp, test_gp_gen_b) {
- curve_t curve = {.field = stoi(19), .a = mkintmodu(3, 19)};
- arg_t arg = {.args = "(seed, field, a) -> { return(a * 2); }", .nargs = 1};
-
- int ret = gp_gen(&curve, &arg, OFFSET_B);
- cr_assert_eq(ret, 1, );
- cr_assert(gequal(curve.b, mkintmodu(6, 19)), );
-}
-
-Test(gp, test_gp_gen_curve) {
- curve_t curve = {
- .field = stoi(19), .a = mkintmodu(3, 19), .b = mkintmodu(6, 19)};
- arg_t arg = {
- .args = "(seed, field, a, b) -> { return(ellinit([a,b], field)); }",
- .nargs = 1};
-
- int ret = gp_gen(&curve, &arg, OFFSET_CURVE);
- cr_assert_eq(ret, 1, );
- cr_assert(gequal(curve.curve,
- ellinit(mkvec2(curve.a, curve.b), curve.field, 0)), );
-}
-
-Test(gp, test_gp_gen_order) {
- curve_t curve = {.field = stoi(19),
- .a = mkintmodu(3, 19),
- .b = mkintmodu(6, 19),
- .curve = ellinit(mkvec2(stoi(3), stoi(6)), stoi(19), 0)};
- arg_t arg = {
- .args = "(seed, field, a, b, curve) -> { return(ellsea(curve)); }",
- .nargs = 1};
-
- int ret = gp_gen(&curve, &arg, OFFSET_ORDER);
- cr_assert_eq(ret, 1, );
- cr_assert(gequal(ellsea(curve.curve, 0), curve.order), );
-}
-
-Test(gp, test_gp_gen_generators) {
- curve_t curve = {.field = stoi(19),
- .a = mkintmodu(3, 19),
- .b = mkintmodu(6, 19),
- .curve = ellinit(mkvec2(stoi(3), stoi(6)), stoi(19), 0),
- .order = stoi(16)};
- arg_t arg = {.args =
- "(seed, field, a, b, curve, order) -> { "
- "return(ellgenerators(curve)); }",
- .nargs = 1};
-
- int ret = gp_gen(&curve, &arg, OFFSET_GENERATORS);
- cr_assert_eq(ret, 1, );
-
- GEN ellgens = ellgenerators(curve.curve);
- long len = glength(ellgens);
- cr_assert_eq(len, curve.ngens, );
- for (long i = 1; i <= len; ++i) {
- cr_assert(gequal(gel(ellgens, i), curve.generators[i - 1]->point), );
- }
-}
-
-Test(gp, test_gp_gen_points) {
- curve_t curve = {
- .field = stoi(19),
- .a = mkintmodu(3, 19),
- .b = mkintmodu(6, 19),
- .curve = ellinit(mkvec2(stoi(3), stoi(6)), stoi(19), 0),
- .order = stoi(16),
- };
- point_t gen = {.point = mkvec2(mkintmodu(4, 19), mkintmodu(14, 19))};
- point_t *generators[1] = {&gen};
- curve.generators = generators;
- curve.ngens = 1;
-
- arg_t arg = {.args =
- "(seed, field, a, b, curve, order, gens) -> { "
- "return([ellmul(curve,gens[1],2)]); }",
- .nargs = 1};
-
- int ret = gp_gen(&curve, &arg, OFFSET_POINTS);
- cr_assert_eq(ret, 1, );
- cr_assert_eq(curve.npoints, 1, );
- cr_assert(gequal(curve.points[0]->point,
- ellmul(curve.curve, gen.point, stoi(2))), );
-}
-
-Test(gp, test_gp_check_seed) {
- seed_t seed = {.seed = bits_from_hex("ff")};
- curve_t curve = {.seed = &seed};
-
- arg_t arg = {.args = "(seed) -> { return(1);}"};
-
- int ret = gp_check(&curve, &arg, OFFSET_SEED);
- cr_assert_eq(ret, 1, );
-}
-
-Test(gp, test_gp_check_field) {
- seed_t seed = {.seed = bits_from_hex("ff")};
- curve_t curve = {.seed = &seed, .field = stoi(19)};
-
- arg_t arg = {.args = "(seed, field) -> { if(field == 19, return(1));}"};
-
- int ret = gp_check(&curve, &arg, OFFSET_FIELD);
- cr_assert_eq(ret, 1, );
-}
-
-Test(gp, test_gp_check_a) {
- seed_t seed = {.seed = bits_from_hex("ff")};
- curve_t curve = {.seed = &seed, .field = stoi(19), .a = mkintmodu(3, 19)};
-
- arg_t arg = {.args =
- "(seed, field, a) -> { if(a == Mod(3,19), return(1));}"};
-
- int ret = gp_check(&curve, &arg, OFFSET_A);
- cr_assert_eq(ret, 1, );
-}
-
-Test(gp, test_gp_check_b) {
- seed_t seed = {.seed = bits_from_hex("ff")};
- curve_t curve = {.seed = &seed,
- .field = stoi(19),
- .a = mkintmodu(3, 19),
- .b = mkintmodu(5, 19)};
-
- arg_t arg = {
- .args = "(seed, field, a, b) -> { if(b == Mod(5,19), return(1));}"};
-
- int ret = gp_check(&curve, &arg, OFFSET_B);
- cr_assert_eq(ret, 1, );
-}
-
-Test(gp, test_gp_check_curve) {
- seed_t seed = {.seed = bits_from_hex("ff")};
- curve_t curve = {.seed = &seed,
- .field = stoi(19),
- .a = mkintmodu(3, 19),
- .b = mkintmodu(5, 19),
- .curve = ellinit(mkvec2(stoi(3), stoi(5)), stoi(19), 0)};
-
- arg_t arg = {.args =
- "(seed, field, a, b, curve) -> { if(curve == ellinit([3, "
- "5], 19), return(1));}"};
-
- int ret = gp_check(&curve, &arg, OFFSET_CURVE);
- cr_assert_eq(ret, 1, );
-}
-
-Test(gp, test_gp_check_order) {
- seed_t seed = {.seed = bits_from_hex("ff")};
- curve_t curve = {.seed = &seed,
- .field = stoi(19),
- .a = mkintmodu(3, 19),
- .b = mkintmodu(5, 19),
- .curve = ellinit(mkvec2(stoi(3), stoi(5)), stoi(19), 0),
- .order = stoi(16)};
-
- arg_t arg = {.args =
- "(seed, field, a, b, curve, order) -> { if(order == 16, "
- "return(1));}"};
-
- int ret = gp_check(&curve, &arg, OFFSET_ORDER);
- cr_assert_eq(ret, 1, );
-}
-
-Test(gp, test_gp_check_generators) {
- seed_t seed = {.seed = bits_from_hex("ff")};
- curve_t curve = {
- .seed = &seed,
- .field = stoi(19),
- .a = mkintmodu(3, 19),
- .b = mkintmodu(6, 19),
- .curve = ellinit(mkvec2(stoi(3), stoi(6)), stoi(19), 0),
- .order = stoi(16),
- };
- point_t gen = {.point = mkvec2(mkintmodu(4, 19), mkintmodu(14, 19))};
- point_t *generators[1] = {&gen};
- curve.generators = generators;
- curve.ngens = 1;
-
- arg_t arg = {.args =
- "(seed, field, a, b, curve, order, gens) -> { if(gens == "
- "ellgenerators(curve), return(1));}"};
-
- int ret = gp_check(&curve, &arg, OFFSET_GENERATORS);
- cr_assert_eq(ret, 1, );
-}
-
-Test(gp, test_gp_check_points) {
- seed_t seed = {.seed = bits_from_hex("ff")};
- curve_t curve = {
- .seed = &seed,
- .field = stoi(19),
- .a = mkintmodu(3, 19),
- .b = mkintmodu(6, 19),
- .curve = ellinit(mkvec2(stoi(3), stoi(6)), stoi(19), 0),
- .order = stoi(16),
- };
- point_t gen = {.point = mkvec2(mkintmodu(4, 19), mkintmodu(14, 19))};
- point_t *generators[1] = {&gen};
- curve.generators = generators;
- curve.ngens = 1;
- curve.points = generators;
- curve.npoints = 1;
-
- arg_t arg = {.args =
- "(seed, field, a, b, curve, order, gens, points) -> { "
- "if(points == ellgenerators(curve), return(1));}"};
-
- int ret = gp_check(&curve, &arg, OFFSET_POINTS);
- cr_assert_eq(ret, 1, );
-} \ No newline at end of file