Commit 23f108fb authored by Niels Möller's avatar Niels Möller

Fixed ECC bug with overlapping arguments to mpn_mul_n.

parent f6360a08
2013-05-17 Niels Möller <nisse@lysator.liu.se>
* ecc-j-to-a.c (ecc_j_to_a): Fixed ecc_modp_mul call, to avoid
invalid overlap of arguments to mpn_mul_n. Problem tracked down by
Magnus Holmgren.
2013-05-16 Niels Möller <nisse@lysator.liu.se> 2013-05-16 Niels Möller <nisse@lysator.liu.se>
* arm/aes-encrypt-internal.asm: New file, for pre-v6 processors. * arm/aes-encrypt-internal.asm: New file, for pre-v6 processors.
......
...@@ -46,6 +46,7 @@ ecc_j_to_a (const struct ecc_curve *ecc, ...@@ -46,6 +46,7 @@ ecc_j_to_a (const struct ecc_curve *ecc,
#define up (scratch + ecc->size) #define up (scratch + ecc->size)
#define iz2p (scratch + ecc->size) #define iz2p (scratch + ecc->size)
#define iz3p (scratch + 2*ecc->size) #define iz3p (scratch + 2*ecc->size)
#define izBp (scratch + 3*ecc->size)
#define tp scratch #define tp scratch
mp_limb_t cy; mp_limb_t cy;
...@@ -72,11 +73,11 @@ ecc_j_to_a (const struct ecc_curve *ecc, ...@@ -72,11 +73,11 @@ ecc_j_to_a (const struct ecc_curve *ecc,
if (flags & 1) if (flags & 1)
{ {
/* Divide this common factor by B */ /* Divide this common factor by B */
mpn_copyi (iz3p, izp, ecc->size); mpn_copyi (izBp, izp, ecc->size);
mpn_zero (iz3p + ecc->size, ecc->size); mpn_zero (izBp + ecc->size, ecc->size);
ecc->redc (ecc, iz3p); ecc->redc (ecc, izBp);
ecc_modp_mul (ecc, iz2p, izp, iz3p); ecc_modp_mul (ecc, iz2p, izp, izBp);
} }
else else
ecc_modp_sqr (ecc, iz2p, izp); ecc_modp_sqr (ecc, iz2p, izp);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment