diff options
| author | J08nY | 2017-02-10 01:24:48 +0100 |
|---|---|---|
| committer | J08nY | 2017-02-10 01:24:48 +0100 |
| commit | de90c5cd76bcd45c82f34d1f3d60b529b7d5a86d (patch) | |
| tree | 6d5b6923cf7443e14004e779258b4c546cf769b5 /src/random | |
| parent | 79b29481b1c4d13063dd8b6ee6a1d0d70a54faab (diff) | |
| download | ecgen-de90c5cd76bcd45c82f34d1f3d60b529b7d5a86d.tar.gz ecgen-de90c5cd76bcd45c82f34d1f3d60b529b7d5a86d.tar.zst ecgen-de90c5cd76bcd45c82f34d1f3d60b529b7d5a86d.zip | |
Properly split into submodules
Diffstat (limited to 'src/random')
| -rw-r--r-- | src/random/generators.c | 54 | ||||
| -rw-r--r-- | src/random/generators.h | 25 | ||||
| -rw-r--r-- | src/random/seed.c | 70 | ||||
| -rw-r--r-- | src/random/seed.h | 44 |
4 files changed, 0 insertions, 193 deletions
diff --git a/src/random/generators.c b/src/random/generators.c deleted file mode 100644 index 9769166..0000000 --- a/src/random/generators.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * ecgen, tool for generating Elliptic curve domain parameters - * Copyright (C) 2017 J08nY - */ -#include "generators.h" -#include "math/curve.h" -#include "math/equation.h" -#include "math/field.h" -#include "random/seed.h" - -int gen_skip(curve_t *curve, config_t *config, ...) { return 1; } - -void gen_init(gen_t generators[], config_t *config) { - if (config->from_seed) { - if (config->seed) { - generators[OFFSET_SEED] = &seed_argument; - } else { - if (config->random) { - generators[OFFSET_SEED] = &seed_random; - } else { - generators[OFFSET_SEED] = &seed_input; - } - } - generators[OFFSET_A] = &a_seed; - generators[OFFSET_B] = &b_seed; - generators[OFFSET_CURVE] = &curve_seed; - } else { - generators[OFFSET_SEED] = &gen_skip; - - if (config->random) { - generators[OFFSET_A] = &a_random; - generators[OFFSET_B] = &b_random; - } else { - generators[OFFSET_A] = &a_input; - generators[OFFSET_B] = &b_input; - } - - if (config->koblitz) { - generators[OFFSET_A] = &a_zero; - } - - if (config->prime) { - generators[OFFSET_CURVE] = &curve_prime; - } else { - generators[OFFSET_CURVE] = &curve_nonzero; - } - } - - if (config->random) { - generators[OFFSET_FIELD] = &field_random; - } else { - generators[OFFSET_FIELD] = &field_input; - } -}
\ No newline at end of file diff --git a/src/random/generators.h b/src/random/generators.h deleted file mode 100644 index 87e599b..0000000 --- a/src/random/generators.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * ecgen, tool for generating Elliptic curve domain parameters - * Copyright (C) 2017 J08nY - */ -#ifndef ECGEN_GENERATORS_H -#define ECGEN_GENERATORS_H - -#include "types.h" - -enum gen_offset { - OFFSET_SEED, - OFFSET_FIELD, - OFFSET_A, - OFFSET_B, - OFFSET_CURVE, - OFFSET_POINTS -}; - -/** - * - * @param generators - */ -void gen_init(gen_t generators[], config_t *config); - -#endif // ECGEN_GENERATORS_H diff --git a/src/random/seed.c b/src/random/seed.c deleted file mode 100644 index a78ff24..0000000 --- a/src/random/seed.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * ecgen, tool for generating Elliptic curve domain parameters - * Copyright (C) 2017 J08nY - */ -#include "seed.h" -#include "io/input.h" - -seed_t *seed_new() { - seed_t *seed = pari_malloc(sizeof(seed_t)); - if (!seed) { - perror("Couldn't malloc."); - exit(1); - } - memset(seed, 0, sizeof(seed_t)); - return seed; -} - -void seed_free(seed_t **seed) { - if (*seed) { - pari_free(*seed); - *seed = NULL; - } -} - -GEN seed_stoi(const char *cstr) { - pari_sp ltop = avma; - GEN seed = gen_0; - - size_t len = strlen(cstr); - for (size_t i = 0; i < len; ++i) { - pari_sp btop = avma; - GEN s = stoi(cstr[i]); - s = shifti(s, (len - i - 1) * 8); - seed = addii(seed, s); - if (gc_needed(btop, 1)) gerepileall(btop, 1, seed); - } - - return gerepilecopy(ltop, seed); -} - -int seed_random(curve_t *curve, config_t *config, ...) { - curve->seed = seed_new(); - curve->seed->seed = random_int(160); - return 1; -} - -int seed_argument(curve_t *curve, config_t *config, ...) { - curve->seed = seed_new(); - curve->seed->seed = seed_stoi(config->seed); - return 1; -} - -int seed_input(curve_t *curve, config_t *config, ...) { - pari_sp ltop = avma; - - GEN str = fread_string(in, "seed:", '\n'); - const char *cstr = GSTR(str); - if (strlen(cstr) < 20) { - fprintf(stderr, "SEED must be at least 160 bits(20 characters).\n"); - avma = ltop; - return 0; - } - - GEN seed = seed_stoi(cstr); - gerepileall(ltop, 1, &seed); - - curve->seed = seed_new(); - curve->seed->seed = seed; - return 1; -}
\ No newline at end of file diff --git a/src/random/seed.h b/src/random/seed.h deleted file mode 100644 index 998bdcd..0000000 --- a/src/random/seed.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * ecgen, tool for generating Elliptic curve domain parameters - * Copyright (C) 2017 J08nY - */ -#ifndef ECGEN_SEED_H -#define ECGEN_SEED_H - -#include "io/cli.h" -#include "types.h" - -/** - * - * @param seed - */ -void seed_free(seed_t **seed); - -/** - * - * @param curve - * @param config - * @param ... - * @return - */ -int seed_random(curve_t *curve, config_t *config, ...); - -/** - * - * @param curve - * @param config - * @param ... - * @return - */ -int seed_argument(curve_t *curve, config_t *config, ...); - -/** - * - * @param curve - * @param config - * @param ... - * @return - */ -int seed_input(curve_t *curve, config_t *config, ...); - -#endif // ECGEN_SEED_H |
