aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ08nY2018-07-13 18:37:12 +0200
committerJ08nY2018-07-13 18:37:12 +0200
commit77d2fb233cbd77f27b25756dccf71cdba86cf93e (patch)
tree2d72e799cc37f635c7fca4576cbd0ba78ea83768
parent2fe66f44550b47f8622946f7d8673c4f8bc5c73c (diff)
downloadecgen-77d2fb233cbd77f27b25756dccf71cdba86cf93e.tar.gz
ecgen-77d2fb233cbd77f27b25756dccf71cdba86cf93e.tar.zst
ecgen-77d2fb233cbd77f27b25756dccf71cdba86cf93e.zip
-rw-r--r--src/cm/cm.c8
-rwxr-xr-xtest/ecgen.sh3
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() {