diff options
Diffstat (limited to 'src/math/gens.c')
| -rw-r--r-- | src/math/gens.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/math/gens.c b/src/math/gens.c new file mode 100644 index 0000000..619eb25 --- /dev/null +++ b/src/math/gens.c @@ -0,0 +1,23 @@ + +#include "gens.h" +#include "point.h" + + +int gens_init(curve_t *curve, config_t *config, arg_t *args) { + // TODO stack code!!! + GEN generators = ellff_get_gens(curve->curve); + long len = glength(generators); + curve->generators = points_new((size_t)len); + curve->ngens = (size_t)len; + + for (long i = 1; i <= len; ++i) { + point_t *p = point_new(); + p->point = gel(generators, i); + p->order = ellorder(curve->curve, p->point, NULL); + p->cofactor = divii(curve->order, p->order); + curve->generators[i - 1] = p; + } + + return 1; +} + |
