aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ08nY2017-12-17 20:16:16 +0100
committerJ08nY2017-12-17 22:55:45 +0100
commit878bd3fb19c5f876c6852ca5274186850b3c189f (patch)
tree172c60b0cd9190ff539e57e2d506598663bc604d
parent04237935d3577eed75efaf0e2fec69e1cdad35e4 (diff)
downloadecgen-878bd3fb19c5f876c6852ca5274186850b3c189f.tar.gz
ecgen-878bd3fb19c5f876c6852ca5274186850b3c189f.tar.zst
ecgen-878bd3fb19c5f876c6852ca5274186850b3c189f.zip
-rw-r--r--.travis.yml7
-rw-r--r--src/exhaustive/brainpool.c7
-rw-r--r--src/gen/seed.c4
-rw-r--r--src/util/bits.c2
-rw-r--r--test/src/exhaustive/test_brainpool.c2
-rw-r--r--test/src/test/default.c2
6 files changed, 16 insertions, 8 deletions
diff --git a/.travis.yml b/.travis.yml
index 55210a0..7df44e2 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -24,7 +24,12 @@ before_install:
- wget mirrors.kernel.org/ubuntu/pool/universe/p/pari/libpari-dev_2.9.3-1_amd64.deb
- wget mirrors.kernel.org/ubuntu/pool/universe/p/pari/pari-gp_2.9.3-1_amd64.deb
- wget mirrors.kernel.org/ubuntu/pool/main/r/readline/libreadline7_7.0-0ubuntu2_amd64.deb
- - sudo dpkg --force-all -i libreadline7_7.0-0ubuntu2_amd64.deb libpari-gmp-tls5_2.9.3-1_amd64.deb libpari-dev_2.9.3-1_amd64.deb pari-gp_2.9.3-1_amd64.deb
+ - wget mirrors.kernel.org/ubuntu/pool/main/n/ncurses/libtinfo5_6.0%2B20160625-1ubuntu1_amd64.deb
+ - wget http://pari.math.u-bordeaux.fr/pub/pari/packages/seadata.tgz
+ - sudo dpkg --force-all -i libtinfo5_6.0+20160625-1ubuntu1_amd64.deb libreadline7_7.0-0ubuntu2_amd64.deb libpari-gmp-tls5_2.9.3-1_amd64.deb libpari-dev_2.9.3-1_amd64.deb pari-gp_2.9.3-1_amd64.deb
+ - DATADIR=$(echo "default(datadir)" | gp -q | cut -d\" -f2)
+ - echo $DATADIR
+ - sudo tar --strip-components=1 -C ${DATADIR} -xzvf seadata.tgz data/
script: # Test, clean, build for release
- TEST=1 make unittest
diff --git a/src/exhaustive/brainpool.c b/src/exhaustive/brainpool.c
index c45d0d5..fdabd6f 100644
--- a/src/exhaustive/brainpool.c
+++ b/src/exhaustive/brainpool.c
@@ -109,7 +109,11 @@ GENERATOR(brainpool_gen_field) {
GEN c = bits_to_i(p_bits);
bits_free(&p_bits);
GEN p = c;
+ pari_sp bbtop = avma;
do {
+ if (p != c) {//yes, check ptr identity here
+ avma = bbtop;
+ }
p = nextprime(addii(p, gen_1));
} while (mod4(p) != 3);
@@ -127,7 +131,7 @@ GENERATOR(brainpool_gen_field) {
continue;
}
- curve->field = p;
+ curve->field = gcopy(p);
gerepileall(btop, 1, &curve->field);
break;
} while (true);
@@ -156,6 +160,7 @@ GENERATOR(brainpool_gen_equation) {
avma = btop;
continue;
}
+
GEN z;
z = Fp_sqrtn(Fp_muls(am, -3, curve->field), stoi(4), curve->field,
NULL);
diff --git a/src/gen/seed.c b/src/gen/seed.c
index 7c1b61e..ad56b18 100644
--- a/src/gen/seed.c
+++ b/src/gen/seed.c
@@ -36,9 +36,7 @@ seed_t *seed_new_clone(const seed_t *src) {
void seed_free(seed_t **seed) {
if (*seed) {
- if ((*seed)->seed) {
- bits_free(&(*seed)->seed);
- }
+ bits_free(&(*seed)->seed);
if ((*seed)->hash20) {
try_free((*seed)->hash20);
}
diff --git a/src/util/bits.c b/src/util/bits.c
index 5e6a95e..a0a3795 100644
--- a/src/util/bits.c
+++ b/src/util/bits.c
@@ -151,7 +151,7 @@ GEN bits_to_i(const bits_t *bits) {
if (GET_BIT(bits->bits, i) != 0)
result = addii(result, int2n(bits->bitlen - i - 1));
}
- return gerepileupto(ltop, result);
+ return gerepilecopy(ltop, result);
}
char *bits_to_hex(const bits_t *bits) {
diff --git a/test/src/exhaustive/test_brainpool.c b/test/src/exhaustive/test_brainpool.c
index d5fefe2..80c11e3 100644
--- a/test/src/exhaustive/test_brainpool.c
+++ b/test/src/exhaustive/test_brainpool.c
@@ -75,7 +75,7 @@ Test(brainpool, test_brainpool_field) {
int ret = brainpool_gen_field(&curve, NULL, OFFSET_FIELD);
cr_assert_eq(ret, 1, );
cr_assert_not_null(curve.field, );
- cr_assert(isprime(curve.field), );
+ cr_assert(isprime(gcopy(curve.field)), );
cr_assert_eq(mod4(curve.field), 3, );
}
diff --git a/test/src/test/default.c b/test/src/test/default.c
index 27f9525..5a30e79 100644
--- a/test/src/test/default.c
+++ b/test/src/test/default.c
@@ -9,7 +9,7 @@
void default_setup(void) {
memset(cfg, 0, sizeof(config_t));
- pari_init(200000000, 1000000); // 200MB memory, 1M primes
+ pari_init(200000000, 4000000); // 200MB memory, 4M primes
// set_mem_funcs(cr_malloc, cr_simple_calloc, cr_realloc, cr_free);
}