diff options
| author | J08nY | 2018-07-13 18:37:12 +0200 |
|---|---|---|
| committer | J08nY | 2018-07-13 18:37:12 +0200 |
| commit | 77d2fb233cbd77f27b25756dccf71cdba86cf93e (patch) | |
| tree | 2d72e799cc37f635c7fca4576cbd0ba78ea83768 | |
| parent | 2fe66f44550b47f8622946f7d8673c4f8bc5c73c (diff) | |
| download | ecgen-77d2fb233cbd77f27b25756dccf71cdba86cf93e.tar.gz ecgen-77d2fb233cbd77f27b25756dccf71cdba86cf93e.tar.zst ecgen-77d2fb233cbd77f27b25756dccf71cdba86cf93e.zip | |
| -rw-r--r-- | src/cm/cm.c | 8 | ||||
| -rwxr-xr-x | test/ecgen.sh | 3 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/cm/cm.c b/src/cm/cm.c index c604876..a3a70a2 100644 --- a/src/cm/cm.c +++ b/src/cm/cm.c @@ -181,6 +181,14 @@ static int cm_init(exhaustive_t *setup) { fprintf(err, "Order requested not a number: %s\n", cfg->cm_order); return 1; } + long ord_log = logint0(order, gen_2, NULL); + if (ord_log > cfg->bits) { + pari_fprintf(err, + "Order requested does not fit(2^%li) into requested " + "bitsize(2^%li): %Pi\n", + ord_log, cfg->bits, order); + return 1; + } if (delims == 0) { ord_prime = (bool)isprime(order); } else { diff --git a/test/ecgen.sh b/test/ecgen.sh index ef734d8..e9a1d85 100755 --- a/test/ecgen.sh +++ b/test/ecgen.sh @@ -162,9 +162,10 @@ function hex() { function cm() { start_test assert_raises "${ecgen} --fp --order=2147483723 32" - assert_raises "${ecgen} --fp --order=123456789012345678901234567890123456789012345678901234568197 137" + assert_raises "${ecgen} --fp --order=123456789012345678901234567890123456789012345678901234568197 196" assert_raises "${ecgen} --fp --order=46874566546,3546,3125 64" assert_raises "${ecgen} --fp --order=0 16" 1 + assert_raises "${ecgen} --fp --order=0x1000 8" 1 } function secg() { |
