From d4c3e2ee91ddd992ae155b9375e6bc25e98b22f1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se>
Date: Wed, 25 Dec 2019 11:33:08 +0100
Subject: [PATCH] Use add_hh rather than add_hhh for ecc_mul_a_eh.

* ecc-mul-a-eh.c (ecc_mul_a_eh) [ECC_MUL_A_EH_WBITS == 0]: Use
add_hh rather than add_hhh.
(table_init) [[ECC_MUL_A_EH_WBITS > 0]: Likewise.
* ecc-internal.h (ECC_MUL_A_EH_ITCH) [ECC_MUL_A_EH_WBITS == 0]:
Reduced from 13*n to 12*n.
---
 ChangeLog      | 8 ++++++++
 ecc-internal.h | 2 +-
 ecc-mul-a-eh.c | 6 +++---
 3 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index f463c5f7..a35dcdda 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2019-12-19  Niels Möller  <nisse@lysator.liu.se>
+
+	* ecc-mul-a-eh.c (ecc_mul_a_eh) [ECC_MUL_A_EH_WBITS == 0]: Use
+	add_hh rather than add_hhh.
+	(table_init) [[ECC_MUL_A_EH_WBITS > 0]: Likewise.
+	* ecc-internal.h (ECC_MUL_A_EH_ITCH) [ECC_MUL_A_EH_WBITS == 0]:
+	Reduced from 13*n to 12*n.
+
 2019-12-18  Niels Möller  <nisse@lysator.liu.se>
 
 	Rename add and dup functions for Edwards curves.
diff --git a/ecc-internal.h b/ecc-internal.h
index 000b812e..99ae3d3d 100644
--- a/ecc-internal.h
+++ b/ecc-internal.h
@@ -445,7 +445,7 @@ curve448_eh_to_x (mp_limb_t *xp, const mp_limb_t *p,
   (((3 << ECC_MUL_A_WBITS) + 11) * (size))
 #endif
 #if ECC_MUL_A_EH_WBITS == 0
-#define ECC_MUL_A_EH_ITCH(size) (13*(size))
+#define ECC_MUL_A_EH_ITCH(size) (12*(size))
 #else
 #define ECC_MUL_A_EH_ITCH(size) \
   (((3 << ECC_MUL_A_EH_WBITS) + 10) * (size))
diff --git a/ecc-mul-a-eh.c b/ecc-mul-a-eh.c
index e9b22cd4..d7765ebf 100644
--- a/ecc-mul-a-eh.c
+++ b/ecc-mul-a-eh.c
@@ -39,7 +39,7 @@
 #include "ecc-internal.h"
 
 /* Binary algorithm needs 6*ecc->p.size + scratch for ecc_add_ehh,
-   total 13 ecc->p.size
+   total 12 ecc->p.size
 
    Window algorithm needs (3<<w) * ecc->p.size for the table,
    3*ecc->p.size for a temporary point, and scratch for
@@ -76,7 +76,7 @@ ecc_mul_a_eh (const struct ecc_curve *ecc,
 	  int digit;
 
 	  ecc->dup (ecc, r, r, scratch_out);
-	  ecc->add_hhh (ecc, tp, r, pe, scratch_out);
+	  ecc->add_hh (ecc, tp, r, pe, scratch_out);
 
 	  digit = (w & bit) > 0;
 	  /* If we had a one-bit, use the sum. */
@@ -108,7 +108,7 @@ table_init (const struct ecc_curve *ecc,
   for (j = 2; j < size; j += 2)
     {
       ecc->dup (ecc, TABLE(j), TABLE(j/2), scratch);
-      ecc->add_hhh (ecc, TABLE(j+1), TABLE(j), TABLE(1), scratch);
+      ecc->add_hh (ecc, TABLE(j+1), TABLE(j), TABLE(1), scratch);
     }
 }
 
-- 
GitLab