diff options
| author | J08nY | 2018-03-03 02:05:23 +0100 |
|---|---|---|
| committer | J08nY | 2018-03-03 02:05:23 +0100 |
| commit | 5a283c6e24682f706a5209a3f785980813fb0c3b (patch) | |
| tree | 981e44eeb0003e0aaeb2cb40b433ede41c10dcd8 /src/gen/order.c | |
| parent | 7cdbef7b9fb6af64b82193e765fb536078230540 (diff) | |
| download | ecgen-5a283c6e24682f706a5209a3f785980813fb0c3b.tar.gz ecgen-5a283c6e24682f706a5209a3f785980813fb0c3b.tar.zst ecgen-5a283c6e24682f706a5209a3f785980813fb0c3b.zip | |
Diffstat (limited to 'src/gen/order.c')
| -rw-r--r-- | src/gen/order.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/gen/order.c b/src/gen/order.c index da1eb48..1f0d829 100644 --- a/src/gen/order.c +++ b/src/gen/order.c @@ -4,6 +4,7 @@ */ #include "order.h" #include "exhaustive/arg.h" +#include "math/koblitz.h" #include "io/input.h" GENERATOR(order_gen_input) { @@ -77,6 +78,23 @@ GENERATOR(order_gen_prime) { } } +GENERATOR(order_gen_koblitz) { + pari_sp ltop = avma; + GEN order = koblitz_get_order(cfg->bits, itou(curve->a)); + if (order) { + curve->order = gerepilecopy(ltop, order); + } else { + GEN ord = ellff_get_card(curve->curve); + if (isclone(ord)) { + curve->order = gerepilecopy(ltop, ord); + } else { + avma = ltop; + curve->order = ord; + } + } + return 1; +} + CHECK(order_check_pohlig_hellman) { HAS_ARG(args); pari_sp ltop = avma; |
