diff options
author | NIIBE Yutaka <gniibe@fsij.org> | 2017-08-23 13:03:07 +0900 |
---|---|---|
committer | NIIBE Yutaka <gniibe@fsij.org> | 2017-08-23 13:03:07 +0900 |
commit | 8728d5e6cb18cc15f24d7188e7c4175913031977 (patch) | |
tree | 2f76ea7d9fc2b24200d6f193581db667cb15d3a4 | |
parent | 5bbe5e9505b93e7fac94cbaa8464b94a634faf5b (diff) | |
download | libgcrypt-gniibe-T3358.tar.gz |
ecc: Fix ec_mulm_25519.gniibe-T3358
* mpi/ec.c (ec_mulm_25519): Improve reduction to 25519.
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
-rw-r--r-- | mpi/ec.c | 7 |
1 files changed, 2 insertions, 5 deletions
@@ -455,13 +455,10 @@ ec_mulm_25519 (gcry_mpi_t w, gcry_mpi_t u, gcry_mpi_t v, mpi_ec_t ctx) m[LIMB_SIZE_25519] += cy; memset (m, 0, wsize * BYTES_PER_MPI_LIMB); - m[0] = m[LIMB_SIZE_25519] * 2 * 19; - cy = _gcry_mpih_add_n (wp, wp, m, wsize); - msb = (wp[LIMB_SIZE_25519-1] >> (255 % BITS_PER_MPI_LIMB)); - m[0] = (cy * 2 + msb) * 19; - _gcry_mpih_add_n (wp, wp, m, wsize); + m[0] = (m[LIMB_SIZE_25519] * 2 + msb) * 19; wp[LIMB_SIZE_25519-1] &= ~(1UL << (255 % BITS_PER_MPI_LIMB)); + _gcry_mpih_add_n (wp, wp, m, wsize); m[0] = 0; cy = _gcry_mpih_sub_n (wp, wp, ctx->p->d, wsize); |