diff options
| author | J08nY | 2018-07-09 21:22:53 +0200 |
|---|---|---|
| committer | J08nY | 2018-07-09 21:22:53 +0200 |
| commit | 1be7218990f93c442fa71a073ab16e862092b205 (patch) | |
| tree | 641c2aaa240cd9df5c19f32807ac38036471e127 /src/cm/cm_prime.c | |
| parent | 0c97ff4a611c19efbd383f1a5ad63f3d26d3c627 (diff) | |
| download | ecgen-1be7218990f93c442fa71a073ab16e862092b205.tar.gz ecgen-1be7218990f93c442fa71a073ab16e862092b205.tar.zst ecgen-1be7218990f93c442fa71a073ab16e862092b205.zip | |
Diffstat (limited to 'src/cm/cm_prime.c')
| -rw-r--r-- | src/cm/cm_prime.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/cm/cm_prime.c b/src/cm/cm_prime.c index c7a931d..e3a6882 100644 --- a/src/cm/cm_prime.c +++ b/src/cm/cm_prime.c @@ -140,7 +140,7 @@ static void qdisc_free(cm_prime_qdisc_t *qdisc) { try_free(qdisc->Sp); } curve_t *cm_prime_curve(GEN order) { GEN e = NULL; - cm_prime_qdisc_t qdisc; + cm_prime_qdisc_t qdisc = {0}; qdisc_init(&qdisc, order); do { qdisc_next(&qdisc); @@ -164,4 +164,23 @@ curve_t *cm_prime_curve(GEN order) { result->ngens = 1; return result; +} + +GENERATOR(cm_gen_curve_prime) { + GEN order = strtoi(cfg->cm_order); + GEN e = NULL; + + cm_prime_qdisc_t qdisc = {0}; + qdisc_init(&qdisc, order); + do { + qdisc_next(&qdisc); + e = cm_construct_curve(order, qdisc.D, qdisc.p, true); + } while (e == NULL); + qdisc_free(&qdisc); + + curve->field = qdisc.p; + curve->a = ell_get_a4(e); + curve->b = ell_get_a6(e); + curve->curve = e; + return 1; }
\ No newline at end of file |
