diff options
Diffstat (limited to 'src/exhaustive/exhaustive.c')
| -rw-r--r-- | src/exhaustive/exhaustive.c | 24 |
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) { |
