aboutsummaryrefslogtreecommitdiff
path: root/src/exhaustive/exhaustive.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/exhaustive/exhaustive.c')
-rw-r--r--src/exhaustive/exhaustive.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/exhaustive/exhaustive.c b/src/exhaustive/exhaustive.c
index ea1dc63..f1b6b8b 100644
--- a/src/exhaustive/exhaustive.c
+++ b/src/exhaustive/exhaustive.c
@@ -6,6 +6,7 @@
#include "anomalous.h"
#include "ansi.h"
#include "check.h"
+#include "brainpool.h"
#include "gen/curve.h"
#include "gen/equation.h"
#include "gen/field.h"
@@ -53,15 +54,26 @@ static void exhaustive_ginit(gen_f *generators) {
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:
+ case SEED_BRAINPOOL: {
+ if (cfg->seed) {
+ generators[OFFSET_SEED] = &brainpool_gen_seed_argument;
+ } else {
+ if (cfg->random) {
+ generators[OFFSET_SEED] = &brainpool_gen_seed_random;
+ } else {
+ generators[OFFSET_SEED] = &brainpool_gen_seed_input;
+ }
+ }
+ generators[OFFSET_A] = &gen_skip;
+ generators[OFFSET_B] = &brainpool_gen_equation;
+ }
break;
+ case SEED_BRAINPOOL_RFC:break;
+ case SEED_FIPS:break;
+ default:break;
}
+
if (cfg->prime) {
generators[OFFSET_ORDER] = &order_gen_prime;
} else if (cfg->cofactor) {