summaryrefslogtreecommitdiff
path: root/ecc-internal.h
diff options
context:
space:
mode:
authorNiels Möller <nisse@lysator.liu.se>2014-07-29 15:53:16 +0200
committerNiels Möller <nisse@lysator.liu.se>2014-07-29 15:53:16 +0200
commit7425b3588456ed1978c8bbcb6bc3c5e22dfd6af3 (patch)
treeeb6d79094627558e0bd8452d1a7cd46edd2ab136 /ecc-internal.h
parent5b19af35f506a493f6bf284477bce5931b4ba1f4 (diff)
downloadnettle-7425b3588456ed1978c8bbcb6bc3c5e22dfd6af3.tar.gz
Implemented ecc_a_to_eh and ecc_mul_a_eh, for curve25519.
Diffstat (limited to 'ecc-internal.h')
-rw-r--r--ecc-internal.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/ecc-internal.h b/ecc-internal.h
index 99f74169..e233b64f 100644
--- a/ecc-internal.h
+++ b/ecc-internal.h
@@ -72,6 +72,8 @@
up to 5 bits, but I don't think that's worth doubling the
storage. */
#define ECC_MUL_A_WBITS 4
+#define ECC_MUL_A_EH_WBITS 0
+
/* Reduces from 2*ecc->size to ecc->size. */
/* Required to return a result < 2q. This property is inherited by
@@ -238,6 +240,7 @@ sec_modinv (mp_limb_t *vp, mp_limb_t *ap, mp_size_t n,
#define ECC_MODINV_ITCH(size) (3*(size))
#define ECC_J_TO_A_ITCH(size) (5*(size))
#define ECC_EH_TO_A_ITCH(size) (5*(size))
+#define ECC_A_TO_EH_ITCH(size) (2*(size))
#define ECC_DUP_JJ_ITCH(size) (5*(size))
#define ECC_DUP_EH_ITCH(size) (5*(size))
#define ECC_ADD_JJA_ITCH(size) (6*(size))
@@ -252,6 +255,12 @@ sec_modinv (mp_limb_t *vp, mp_limb_t *ap, mp_size_t n,
#define ECC_MUL_A_ITCH(size) \
(((3 << ECC_MUL_A_WBITS) + 11) * (size))
#endif
+#if ECC_MUL_A_EH_WBITS == 0
+#define ECC_MUL_A_EH_ITCH(size) (13*(size))
+#else
+#define ECC_MUL_A_EH_ITCH(size) \
+ (((3 << ECC_MUL_A_EH_WBITS) + 10) * (size))
+#endif
#define ECC_ECDSA_SIGN_ITCH(size) (12*(size))
#define ECC_ECDSA_VERIFY_ITCH(size) \
(6*(size) + ECC_MUL_A_ITCH ((size)))