diff options
| -rw-r--r-- | Makefile | 6 | ||||
| -rw-r--r-- | README.md | 15 | ||||
| -rw-r--r-- | docs/points.md (renamed from docs/points.mkd) | 0 | ||||
| -rw-r--r-- | src/ecgen.c | 8 | ||||
| -rw-r--r-- | src/exhaustive/exhaustive.c | 5 | ||||
| -rw-r--r-- | src/exhaustive/exhaustive.h | 4 | ||||
| -rw-r--r-- | src/gen/seed.c | 1 | ||||
| -rw-r--r-- | src/invalid/invalid.c | 14 | ||||
| -rw-r--r-- | src/invalid/invalid_thread.c | 11 | ||||
| -rw-r--r-- | src/invalid/invalid_thread.h | 2 | ||||
| -rw-r--r-- | src/io/output.c | 8 | ||||
| -rw-r--r-- | src/misc/config.h | 12 | ||||
| -rw-r--r-- | src/misc/types.h | 4 | ||||
| -rw-r--r-- | test/Makefile | 5 | ||||
| -rw-r--r-- | test/src/Makefile | 7 | ||||
| -rw-r--r-- | test/src/exhaustive/test_ansi.c | 1 | ||||
| -rw-r--r-- | test/src/gen/test_gp.c | 175 | ||||
| -rw-r--r-- | test/src/math/test_subgroups.c | 1 | ||||
| -rw-r--r-- | test/src/test/memory.h | 2 | ||||
| -rw-r--r-- | test/src/util/test_bits.c | 1 |
20 files changed, 177 insertions, 105 deletions
@@ -19,6 +19,10 @@ clean-all: rm -rf *.gcov rm -rf doc/* +format: + +$(MAKE) -C src format + +$(MAKE) -C test format + docs: doxygen Doxyfile @@ -45,7 +49,7 @@ help: .PHONY: all clean clean-all docs test unittest help -ifeq (, $(filter all clean clean-all docs test unittest help, $(MAKECMDGOALS))) +ifeq (, $(filter all clean clean-all format docs test unittest help, $(MAKECMDGOALS))) # Just pass all targets to a Makefile in src $(MAKECMDGOALS): +$(MAKE) -C src $@ @@ -137,20 +137,33 @@ Three different EC curve parameters generation methods are implemented. ### Build +ecgen can be built using Make or CMake. + +#### Make + git clone https://github.com/J08nY/ecgen.git cd ecgen git submodule update --init make +#### CMake + + git clone https://github.com/J08nY/ecgen.git + cd ecgen + git submodule update --init + mkdir build && cd build && cmake .. && make + ### Requirements - PARI/GP - + - gcc / clang ecgen uses the [PARI/GP](http://pari.math.u-bordeaux.fr/) library for elliptic curve arithmetic and it's SEA point counting algorithm implementation. It also requires the additional [seadata](http://pari.math.u-bordeaux.fr/packages.html) package (seadata and seadata-big recommended for large curves). +ecgen uses some extensions supported by the gcc and clang compilers, namely `__thread`-local storage. + ### Libraries - `lib/parson` *©MIT* diff --git a/docs/points.mkd b/docs/points.md index f931bb4..f931bb4 100644 --- a/docs/points.mkd +++ b/docs/points.md diff --git a/src/ecgen.c b/src/ecgen.c index 713ebbe..685d35f 100644 --- a/src/ecgen.c +++ b/src/ecgen.c @@ -24,12 +24,12 @@ * @copyright GPL v2.0 */ #include <pari/pari.h> -#include "misc/config.h" #include "cm/cm.h" #include "exhaustive/exhaustive.h" #include "invalid/invalid.h" #include "io/input.h" #include "io/output.h" +#include "misc/config.h" #include "util/timeout.h" const char *argp_program_version = @@ -70,10 +70,10 @@ bool init(void) { pari_ENDCATCH avma = ltop; // open outfile - if (!output_init(cfg)) return false; + if (!output_init()) return false; // open infile - if (!input_init(cfg)) return false; + if (!input_init()) return false; return true; } @@ -137,7 +137,7 @@ int quit(int status) { */ int main(int argc, char *argv[]) { // Parse cli args - memset(cfg, 0, sizeof(cfg_s)); + memset(cfg, 0, sizeof(config_t)); argp_parse(&argp, argc, argv, 0, 0, cfg); if (!init()) { diff --git a/src/exhaustive/exhaustive.c b/src/exhaustive/exhaustive.c index 81ca834..5bfdffb 100644 --- a/src/exhaustive/exhaustive.c +++ b/src/exhaustive/exhaustive.c @@ -195,7 +195,8 @@ void exhaustive_uinit(unroll_f *unrolls) { } int exhaustive_gen_retry(curve_t *curve, const exhaustive_t *setup, - offset_e start_offset, offset_e end_offset, int retry) { + offset_e start_offset, offset_e end_offset, + int retry) { if (start_offset == end_offset) { return 2; } @@ -291,7 +292,7 @@ int exhaustive_gen_retry(curve_t *curve, const exhaustive_t *setup, } int exhaustive_gen(curve_t *curve, const exhaustive_t *setup, - offset_e start_offset, offset_e end_offset) { + offset_e start_offset, offset_e end_offset) { return exhaustive_gen_retry(curve, setup, start_offset, end_offset, 0); } diff --git a/src/exhaustive/exhaustive.h b/src/exhaustive/exhaustive.h index d212e64..720dab9 100644 --- a/src/exhaustive/exhaustive.h +++ b/src/exhaustive/exhaustive.h @@ -41,7 +41,7 @@ void exhaustive_uinit(unroll_f *unrolls); * @return */ int exhaustive_gen_retry(curve_t *curve, const exhaustive_t *setup, - offset_e start_offset, offset_e end_offset, int retry); + offset_e start_offset, offset_e end_offset, int retry); /** * @@ -52,7 +52,7 @@ int exhaustive_gen_retry(curve_t *curve, const exhaustive_t *setup, * @return */ int exhaustive_gen(curve_t *curve, const exhaustive_t *setup, - offset_e start_offset, offset_e end_offset); + offset_e start_offset, offset_e end_offset); /** * diff --git a/src/gen/seed.c b/src/gen/seed.c index f349982..a13588e 100644 --- a/src/gen/seed.c +++ b/src/gen/seed.c @@ -4,7 +4,6 @@ */ #include "seed.h" -#include <misc/types.h> #include "util/bits.h" #include "util/memory.h" diff --git a/src/invalid/invalid.c b/src/invalid/invalid.c index e908aa4..4533020 100644 --- a/src/invalid/invalid.c +++ b/src/invalid/invalid.c @@ -92,8 +92,8 @@ static size_t invalid_primes(GEN order, pari_ulong **primes) { } static size_t invalid_curves_single(const curve_t *curve, pari_ulong *primes, - size_t nprimes, curve_t **curves, - exhaustive_t *setup) { + size_t nprimes, curve_t **curves, + exhaustive_t *setup) { arg_t *invalid_argss[OFFSET_END] = {NULL}; exhaustive_t invalid_setup = {.generators = setup->generators, .validators = setup->validators, @@ -129,7 +129,8 @@ static size_t invalid_curves_single(const curve_t *curve, pari_ulong *primes, if (total > 0) { if (!exhaustive_gen_retry(invalid, setup, OFFSET_GENERATORS, OFFSET_POINTS, 1)) { - curve_unroll(invalid, avma, btop); // necessary to free the ellinit + curve_unroll(invalid, avma, + btop); // necessary to free the ellinit avma = btop; continue; } @@ -156,8 +157,7 @@ static size_t invalid_curves_single(const curve_t *curve, pari_ulong *primes, * generate prime order points, this is expensive (order needs to be * factorised, so only do it if we want the curve) */ - exhaustive_gen(invalid, &invalid_setup, OFFSET_POINTS, - OFFSET_END); + exhaustive_gen(invalid, &invalid_setup, OFFSET_POINTS, OFFSET_END); size_t count = 0; for (size_t i = nprimes; i-- > 0;) { @@ -209,8 +209,8 @@ static size_t invalid_curves_single(const curve_t *curve, pari_ulong *primes, } static size_t invalid_curves_threaded(const curve_t *curve, pari_ulong *primes, - size_t nprimes, curve_t **curves, - exhaustive_t *setup) { + size_t nprimes, curve_t **curves, + exhaustive_t *setup) { pthread_t pthreads[cfg->threads]; thread_t threads[cfg->threads]; struct pari_thread pari_threads[cfg->threads]; diff --git a/src/invalid/invalid_thread.c b/src/invalid/invalid_thread.c index 8967d31..255c61f 100644 --- a/src/invalid/invalid_thread.c +++ b/src/invalid/invalid_thread.c @@ -23,8 +23,7 @@ void *invalid_thread(void *arg) { while (*thread->generated < thread->nprimes) { pari_sp btop = avma; - exhaustive_gen(invalid, thread->setup, OFFSET_B, - OFFSET_GENERATORS); + exhaustive_gen(invalid, thread->setup, OFFSET_B, OFFSET_GENERATORS); size_t ndivides = 0; for (size_t i = thread->nprimes; i-- > 0;) { if (dvdis(invalid->order, thread->primes[i])) { @@ -34,8 +33,8 @@ void *invalid_thread(void *arg) { } if (ndivides > 0 && - exhaustive_gen_retry(invalid, &invalid_setup, - OFFSET_GENERATORS, OFFSET_POINTS, 1)) { + exhaustive_gen_retry(invalid, &invalid_setup, OFFSET_GENERATORS, + OFFSET_POINTS, 1)) { pthread_mutex_lock(thread->mutex_state); size_t nfree = 0; // can be up to ndivides, but also lower... @@ -54,8 +53,8 @@ void *invalid_thread(void *arg) { if (nfree > 0) { arg_t prime_divisors = {primes, nprimes}; invalid_argss[OFFSET_POINTS] = &prime_divisors; - exhaustive_gen(invalid, &invalid_setup, - OFFSET_POINTS, OFFSET_END); + exhaustive_gen(invalid, &invalid_setup, OFFSET_POINTS, + OFFSET_END); pthread_mutex_lock(thread->mutex_state); size_t count = 0; diff --git a/src/invalid/invalid_thread.h b/src/invalid/invalid_thread.h index e93bbda..d05c29a 100644 --- a/src/invalid/invalid_thread.h +++ b/src/invalid/invalid_thread.h @@ -8,8 +8,8 @@ #ifndef ECGEN_INVALID_THREAD_H #define ECGEN_INVALID_THREAD_H -#include <exhaustive/exhaustive.h> #include <pthread.h> +#include "exhaustive/exhaustive.h" #include "misc/types.h" typedef enum { STATE_FREE, STATE_GENERATING, STATE_GENERATED } state_e; diff --git a/src/io/output.c b/src/io/output.c index 2b6358f..01332b2 100644 --- a/src/io/output.c +++ b/src/io/output.c @@ -250,9 +250,7 @@ char *output_sjson(curve_t *curve) { return result; } -char *output_sjson_separator() { - return output_malloc(",\n"); -} +char *output_sjson_separator() { return output_malloc(",\n"); } char *output_sjson_begin() { return output_malloc("[\n"); } @@ -266,9 +264,7 @@ void output_f(FILE *out, curve_t *curve) { } } -void output_o(curve_t *curve) { - output_f(out, curve); -} +void output_o(curve_t *curve) { output_f(out, curve); } void output_f_separator(FILE *out) { char *s = output_s_separator(); diff --git a/src/misc/config.h b/src/misc/config.h index 0a534ef..2ad6736 100644 --- a/src/misc/config.h +++ b/src/misc/config.h @@ -48,7 +48,8 @@ typedef struct { bool random; /** @brief Whether the curves should have prime order. */ bool prime; - /** @brief Whether the curves should be generated as invalid, for some curve. */ + /** @brief Whether the curves should be generated as invalid, for some + * curve. */ bool invalid; /** @brief Whether the Complex Multiplication method should be used. */ bool cm; @@ -65,7 +66,8 @@ typedef struct { seed_e seed_algo; /** @brief What seed to use, if any, to generate the curves. */ char *seed; - /** @brief Whether the curves should be uniquely generated (one generator). */ + /** @brief Whether the curves should be uniquely generated (one generator). + */ bool unique; /** @brief What points to generate on the curves. */ struct points_s points; @@ -74,11 +76,13 @@ typedef struct { char *datadir; /** @brief How much memory to allocate for the PARI stack. */ unsigned long memory; - /** @brief How many threads to use, only useful for invalid generation(atm). */ + /** @brief How many threads to use, only useful for invalid generation(atm). + */ unsigned long threads; /** @brief How much memory to allocate for the PARI stack, per thread. */ unsigned long thread_memory; - /** @brief How long of a timeout interval, if any, to give to parameter generation. */ + /** @brief How long of a timeout interval, if any, to give to parameter + * generation. */ unsigned long timeout; /** @brief What output format to use. */ diff --git a/src/misc/types.h b/src/misc/types.h index 3cb3fd4..aecf207 100644 --- a/src/misc/types.h +++ b/src/misc/types.h @@ -118,7 +118,7 @@ typedef struct { * @param state The current generation state * @return state diff */ -#define GENERATOR(gen_name) \ +#define GENERATOR(gen_name) \ int gen_name(curve_t *curve, arg_t *args, offset_e state) typedef GENERATOR((*gen_f)); @@ -130,7 +130,7 @@ typedef GENERATOR((*gen_f)); * @param to * @return */ -#define UNROLL(unroll_name) \ +#define UNROLL(unroll_name) \ int unroll_name(curve_t *curve, pari_sp from, pari_sp to) typedef UNROLL((*unroll_f)); diff --git a/test/Makefile b/test/Makefile index 825aa4f..0823862 100644 --- a/test/Makefile +++ b/test/Makefile @@ -24,4 +24,7 @@ clean: clean-all: cd lib/criterion && rm -rf build - +$(MAKE) -C src clean-all
\ No newline at end of file + +$(MAKE) -C src clean-all + +format: + +$(MAKE) -C src format
\ No newline at end of file diff --git a/test/src/Makefile b/test/src/Makefile index 33e4bdf..5005303 100644 --- a/test/src/Makefile +++ b/test/src/Makefile @@ -17,6 +17,7 @@ INCLUDES = -I. -I../../src -I../../lib -I../lib/criterion/include LIBS = -lrt -lpari -lpthread -lparson -lsha1 -lcriterion TEST_SRC = $(wildcard *.c) $(wildcard */*.c) +TEST_HDR = $(wildcard */*.h) TEST_OBJ = $(patsubst %.c,%.o, $(TEST_SRC)) TESTS = $(patsubst %.c,%, $(TEST_SRC)) @@ -41,4 +42,8 @@ clean: clean-cov: find . -type f -name '*.gcda' -exec rm {} + find . -type f -name '*.gcno' -exec rm {} + - find . -type f -name '*.gcov' -exec rm {} +
\ No newline at end of file + find . -type f -name '*.gcov' -exec rm {} + + +format: + clang-format -i $(TEST_SRC) + clang-format -i $(TEST_HDR)
\ No newline at end of file diff --git a/test/src/exhaustive/test_ansi.c b/test/src/exhaustive/test_ansi.c index 370cf7e..94c89eb 100644 --- a/test/src/exhaustive/test_ansi.c +++ b/test/src/exhaustive/test_ansi.c @@ -5,7 +5,6 @@ #include <criterion/criterion.h> #include <criterion/parameterized.h> -#include <misc/config.h> #include "exhaustive/ansi.h" #include "gen/field.h" #include "gen/seed.h" diff --git a/test/src/gen/test_gp.c b/test/src/gen/test_gp.c index 8ec5e2c..9e3e1a9 100644 --- a/test/src/gen/test_gp.c +++ b/test/src/gen/test_gp.c @@ -3,7 +3,6 @@ * Copyright (C) 2017 J08nY */ #include <criterion/criterion.h> -#include <misc/types.h> #include "gen/gp.h" #include "test/default.h" #include "util/bits.h" @@ -15,10 +14,10 @@ Test(gp, test_gp_gen_seed) { 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")),); + 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) { @@ -26,17 +25,18 @@ Test(gp, test_gp_gen_field) { 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)),); + 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}; + 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)),); + cr_assert_eq(ret, 1, ); + cr_assert(gequal(curve.a, mkintmodu(3, 19)), ); } Test(gp, test_gp_gen_b) { @@ -44,155 +44,206 @@ Test(gp, test_gp_gen_b) { 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)),); + 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}; + 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)),); + 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}; + 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),); + 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}; + 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,); + cr_assert_eq(ret, 1, ); GEN ellgens = ellgenerators(curve.curve); long len = glength(ellgens); - cr_assert_eq(len, curve.ngens,); + cr_assert_eq(len, curve.ngens, ); for (long i = 1; i <= len; ++i) { - cr_assert(gequal(gel(ellgens, i), curve.generators[i - 1]->point),); + 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), + 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 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}; + 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))),); + 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);}"}; + arg_t arg = {.args = "(seed) -> { return(1);}"}; int ret = gp_check(&curve, &arg, OFFSET_SEED); - cr_assert_eq(ret, 1,); + 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));}"}; + arg_t arg = {.args = "(seed, field) -> { if(field == 19, return(1));}"}; int ret = gp_check(&curve, &arg, OFFSET_FIELD); - cr_assert_eq(ret, 1,); + 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));}"}; + 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,); + 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)}; + 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));}"}; + 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,); + 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)}; + 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));}"}; + 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,); + 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)}; + 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));}"}; + 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,); + 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), + 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 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));}"}; + 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,); + 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), + 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 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));}"}; + 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,); + cr_assert_eq(ret, 1, ); }
\ No newline at end of file diff --git a/test/src/math/test_subgroups.c b/test/src/math/test_subgroups.c index a4de20e..f944a4f 100644 --- a/test/src/math/test_subgroups.c +++ b/test/src/math/test_subgroups.c @@ -3,7 +3,6 @@ * Copyright (C) 2017 J08nY */ #include <criterion/criterion.h> -#include <misc/config.h> #include "gen/point.h" #include "math/subgroups.h" #include "test/default.h" diff --git a/test/src/test/memory.h b/test/src/test/memory.h index f155789..630aeb5 100644 --- a/test/src/test/memory.h +++ b/test/src/test/memory.h @@ -13,4 +13,4 @@ void *cr_memdup(const void *str, size_t len); void *cr_simple_calloc(size_t size); -#endif //ECGEN_TEST_MEMORY_H +#endif // ECGEN_TEST_MEMORY_H diff --git a/test/src/util/test_bits.c b/test/src/util/test_bits.c index 752cd59..70060c9 100644 --- a/test/src/util/test_bits.c +++ b/test/src/util/test_bits.c @@ -5,7 +5,6 @@ #include <criterion/criterion.h> #include <criterion/parameterized.h> -#include <misc/types.h> #include "test/default.h" #include "test/memory.h" #include "util/bits.h" |
