diff options
| author | J08nY | 2017-12-17 20:16:16 +0100 |
|---|---|---|
| committer | J08nY | 2017-12-17 22:55:45 +0100 |
| commit | 878bd3fb19c5f876c6852ca5274186850b3c189f (patch) | |
| tree | 172c60b0cd9190ff539e57e2d506598663bc604d /src | |
| parent | 04237935d3577eed75efaf0e2fec69e1cdad35e4 (diff) | |
| download | ecgen-878bd3fb19c5f876c6852ca5274186850b3c189f.tar.gz ecgen-878bd3fb19c5f876c6852ca5274186850b3c189f.tar.zst ecgen-878bd3fb19c5f876c6852ca5274186850b3c189f.zip | |
Diffstat (limited to 'src')
| -rw-r--r-- | src/exhaustive/brainpool.c | 7 | ||||
| -rw-r--r-- | src/gen/seed.c | 4 | ||||
| -rw-r--r-- | src/util/bits.c | 2 |
3 files changed, 8 insertions, 5 deletions
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) { |
