aboutsummaryrefslogtreecommitdiff
path: root/src/random
diff options
context:
space:
mode:
authorJ08nY2017-02-10 01:24:48 +0100
committerJ08nY2017-02-10 01:24:48 +0100
commitde90c5cd76bcd45c82f34d1f3d60b529b7d5a86d (patch)
tree6d5b6923cf7443e14004e779258b4c546cf769b5 /src/random
parent79b29481b1c4d13063dd8b6ee6a1d0d70a54faab (diff)
downloadecgen-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.c54
-rw-r--r--src/random/generators.h25
-rw-r--r--src/random/seed.c70
-rw-r--r--src/random/seed.h44
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