summaryrefslogtreecommitdiff
path: root/ecc-internal.h
diff options
context:
space:
mode:
authorNiels Möller <nisse@lysator.liu.se>2014-09-23 14:04:25 +0200
committerNiels Möller <nisse@lysator.liu.se>2014-09-23 14:04:25 +0200
commit8b6cd994fe5a4d88a467fa93ab1596e1b445582a (patch)
treeac1beb8e28ae7aae35344312f6896777db8af06c /ecc-internal.h
parentbf52911d41f394f69edd3ae8acf8d9d261e16d27 (diff)
downloadnettle-8b6cd994fe5a4d88a467fa93ab1596e1b445582a.tar.gz
curve25519: Use powering to compute modp inverses, 5.5 times faster than ecc_mod_inv.
Diffstat (limited to 'ecc-internal.h')
-rw-r--r--ecc-internal.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/ecc-internal.h b/ecc-internal.h
index fe9acfb3..c07fdcfc 100644
--- a/ecc-internal.h
+++ b/ecc-internal.h
@@ -107,6 +107,7 @@ struct ecc_modulo
unsigned short size;
unsigned short B_size;
unsigned short redc_size;
+ unsigned short invert_itch;
const mp_limb_t *m;
/* B^size mod m. Expected to have at least 32 leading zeros
@@ -265,7 +266,7 @@ curve25519_eh_to_x (mp_limb_t *xp, const mp_limb_t *p,
/* Current scratch needs: */
#define ECC_MOD_INV_ITCH(size) (2*(size))
#define ECC_J_TO_A_ITCH(size) (5*(size))
-#define ECC_EH_TO_A_ITCH(size) (4*(size))
+#define ECC_EH_TO_A_ITCH(size, inv) (2*(size)+(inv))
#define ECC_DUP_JJ_ITCH(size) (5*(size))
#define ECC_DUP_EH_ITCH(size) (5*(size))
#define ECC_ADD_JJA_ITCH(size) (6*(size))