summaryrefslogtreecommitdiff
path: root/ecc-j-to-a.c
diff options
context:
space:
mode:
authorNiels Möller <nisse@lysator.liu.se>2020-11-01 10:22:48 +0100
committerNiels Möller <nisse@lysator.liu.se>2020-11-01 10:22:48 +0100
commit172448b05931e791ce3470b45afe8de4cdffaaad (patch)
treecd7d238a5ba07568c71619a9bb7819e107cfe205 /ecc-j-to-a.c
parent98402b3b32b346a568c0d0d8e56a64f27116250c (diff)
downloadnettle-172448b05931e791ce3470b45afe8de4cdffaaad.tar.gz
Separate result area for ecc_mod_mul and ecc_mod_sqr.
* ecc-mod-arith.c (ecc_mod_mul, ecc_mod_sqr): Separate argument for scratch area, reducing required size of result area. Update all callers to naïvely keep using result in scratch area. (ecc_mod_pow_2k, ecc_mod_pow_2k_mul): Simplified, also reducing required size of result area.
Diffstat (limited to 'ecc-j-to-a.c')
-rw-r--r--ecc-j-to-a.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/ecc-j-to-a.c b/ecc-j-to-a.c
index 915c056b..882830c4 100644
--- a/ecc-j-to-a.c
+++ b/ecc-j-to-a.c
@@ -52,7 +52,7 @@ ecc_j_to_a (const struct ecc_curve *ecc,
mp_limb_t cy;
ecc->p.invert (&ecc->p, izp, p+2*ecc->p.size, izp + 2 * ecc->p.size);
- ecc_mod_sqr (&ecc->p, iz2p, izp);
+ ecc_mod_sqr (&ecc->p, iz2p, izp, iz2p);
if (ecc->use_redc)
{
@@ -63,7 +63,7 @@ ecc_j_to_a (const struct ecc_curve *ecc,
}
/* r_x <-- x / z^2 */
- ecc_mod_mul (&ecc->p, iz3p, iz2p, p);
+ ecc_mod_mul (&ecc->p, iz3p, iz2p, p, iz3p);
/* ecc_mod (and ecc_mod_mul) may return a value up to 2p - 1, so
do a conditional subtraction. */
cy = mpn_sub_n (r, iz3p, ecc->p.m, ecc->p.size);
@@ -82,8 +82,8 @@ ecc_j_to_a (const struct ecc_curve *ecc,
}
return;
}
- ecc_mod_mul (&ecc->p, iz3p, iz2p, izp);
- ecc_mod_mul (&ecc->p, tp, iz3p, p + ecc->p.size);
+ ecc_mod_mul (&ecc->p, iz3p, iz2p, izp, iz3p);
+ ecc_mod_mul (&ecc->p, tp, iz3p, p + ecc->p.size, tp);
/* And a similar subtraction. */
cy = mpn_sub_n (r + ecc->p.size, tp, ecc->p.m, ecc->p.size);
cnd_copy (cy, r + ecc->p.size, tp, ecc->p.size);