aboutsummaryrefslogtreecommitdiff
path: root/src/exhaustive
diff options
context:
space:
mode:
authorJ08nY2017-09-19 19:24:21 +0200
committerJ08nY2017-09-20 16:49:45 +0200
commit79d34c9e7a42dc796ec02eb0e1fb4e84aa5340f7 (patch)
tree01b529689c3b58bad7f257fd898e1a183fabe3a4 /src/exhaustive
parent6b638ddf30cfc15a68c5421126a35ffe7f8f5854 (diff)
downloadecgen-79d34c9e7a42dc796ec02eb0e1fb4e84aa5340f7.tar.gz
ecgen-79d34c9e7a42dc796ec02eb0e1fb4e84aa5340f7.tar.zst
ecgen-79d34c9e7a42dc796ec02eb0e1fb4e84aa5340f7.zip
Move some enums around, make a general seed_unroll.
Diffstat (limited to 'src/exhaustive')
-rw-r--r--src/exhaustive/ansi.c5
-rw-r--r--src/exhaustive/ansi.h10
-rw-r--r--src/exhaustive/exhaustive.c35
3 files changed, 22 insertions, 28 deletions
diff --git a/src/exhaustive/ansi.c b/src/exhaustive/ansi.c
index 444828e..bbdf24e 100644
--- a/src/exhaustive/ansi.c
+++ b/src/exhaustive/ansi.c
@@ -122,11 +122,6 @@ static bits_t *seed_process(seed_t *seed, const bits_t *first) {
return result;
}
-UNROLL(ansi_unroll_seed) {
- seed_free(&curve->seed);
- return -1;
-}
-
static GENERATOR(ansi_gen_equation_fp) {
pari_sp ltop = avma;
bits_t *c0 = bits_from_raw(curve->seed->hash20, 160);
diff --git a/src/exhaustive/ansi.h b/src/exhaustive/ansi.h
index fbe9a3f..7c6e7b7 100644
--- a/src/exhaustive/ansi.h
+++ b/src/exhaustive/ansi.h
@@ -41,16 +41,6 @@ GENERATOR(ansi_gen_seed_input);
/**
* @brief
- * @param curve
- * @param cfg
- * @param from
- * @param to
- * @return
- */
-UNROLL(ansi_unroll_seed);
-
-/**
- * @brief
* @param curve A curve_t being generated
* @param cfg An application config
* @param args unused
diff --git a/src/exhaustive/exhaustive.c b/src/exhaustive/exhaustive.c
index 22e4f6f..e1044f9 100644
--- a/src/exhaustive/exhaustive.c
+++ b/src/exhaustive/exhaustive.c
@@ -11,23 +11,32 @@
#include "gen/gens.h"
#include "gen/order.h"
#include "gen/point.h"
+#include "gen/seed.h"
#include "io/output.h"
#include "util/memory.h"
static void exhaustive_ginit(gen_t *generators, const config_t *cfg) {
- if (cfg->ansi) {
- // setup ANSI X9.62 generators
- if (cfg->seed) {
- generators[OFFSET_SEED] = &ansi_gen_seed_argument;
- } else {
- if (cfg->random) {
- generators[OFFSET_SEED] = &ansi_gen_seed_random;
- } else {
- generators[OFFSET_SEED] = &ansi_gen_seed_input;
+ if (cfg->seed_algo) {
+ switch (cfg->seed_algo) {
+ case SEED_ANSI: {
+ // setup ANSI X9.62 generators
+ if (cfg->seed) {
+ generators[OFFSET_SEED] = &ansi_gen_seed_argument;
+ } else {
+ if (cfg->random) {
+ generators[OFFSET_SEED] = &ansi_gen_seed_random;
+ } else {
+ generators[OFFSET_SEED] = &ansi_gen_seed_input;
+ }
+ }
+ generators[OFFSET_A] = &gen_skip;
+ generators[OFFSET_B] = &ansi_gen_equation;
}
+ case SEED_BRAINPOOL:break;
+ case SEED_BRAINPOOL_RFC:break;
+ case SEED_FIPS:break;
+ default:break;
}
- generators[OFFSET_A] = &gen_skip;
- generators[OFFSET_B] = &ansi_gen_equation;
generators[OFFSET_CURVE] = &curve_gen_nonzero;
generators[OFFSET_ORDER] = &order_gen_any;
} else {
@@ -143,8 +152,8 @@ static void exhaustive_ainit(arg_t **argss, const config_t *cfg) {
}
void exhaustive_uinit(unroll_t *unrolls, const config_t *cfg) {
- if (cfg->ansi) {
- unrolls[OFFSET_SEED] = &ansi_unroll_seed;
+ if (cfg->seed_algo) {
+ unrolls[OFFSET_SEED] = &seed_unroll;
} else {
unrolls[OFFSET_SEED] = &unroll_skip;
}