Commit 98333dcd authored by Niels Möller's avatar Niels Möller

Fixed window-based ecc_mul_a_eh.

parent 7fa54ac5
2014-08-02 Niels Möller <nisse@lysator.liu.se>
* ecc-internal.h (ECC_MUL_A_EH_WBITS): Set to 4, to enable
window-based scalar multiplication.
* ecc-mul-a-eh.c (table_init) [ECC_MUL_A_EH_WBITS > 0]: Fixed
initialization of TABLE(1).
2014-07-29 Niels Möller <nisse@lysator.liu.se> 2014-07-29 Niels Möller <nisse@lysator.liu.se>
* ecc-internal.h (ECC_MUL_A_EH_WBITS): New constant. * ecc-internal.h (ECC_MUL_A_EH_WBITS): New constant.
......
...@@ -68,11 +68,12 @@ ...@@ -68,11 +68,12 @@
/* Window size for ecc_mul_a. Using 4 bits seems like a good choice, /* Window size for ecc_mul_a. Using 4 bits seems like a good choice,
for both Intel x86_64 and ARM Cortex A9. For the larger curves, of for both Intel x86_64 and ARM Cortex A9. For the larger curves, of
384 and 521 bits, we could improve seepd by a few percent if we go 384 and 521 bits, we could improve speed by a few percent if we go
up to 5 bits, but I don't think that's worth doubling the up to 5 bits, but I don't think that's worth doubling the
storage. */ storage. */
#define ECC_MUL_A_WBITS 4 #define ECC_MUL_A_WBITS 4
#define ECC_MUL_A_EH_WBITS 0 /* And for ecc_mul_a_eh */
#define ECC_MUL_A_EH_WBITS 4
/* Reduces from 2*ecc->size to ecc->size. */ /* Reduces from 2*ecc->size to ecc->size. */
......
...@@ -91,8 +91,6 @@ ecc_mul_a_eh (const struct ecc_curve *ecc, ...@@ -91,8 +91,6 @@ ecc_mul_a_eh (const struct ecc_curve *ecc,
} }
#else /* ECC_MUL_A_EH_WBITS > 1 */ #else /* ECC_MUL_A_EH_WBITS > 1 */
#error Not yet working
#define TABLE_SIZE (1U << ECC_MUL_A_EH_WBITS) #define TABLE_SIZE (1U << ECC_MUL_A_EH_WBITS)
#define TABLE_MASK (TABLE_SIZE - 1) #define TABLE_MASK (TABLE_SIZE - 1)
...@@ -111,7 +109,6 @@ table_init (const struct ecc_curve *ecc, ...@@ -111,7 +109,6 @@ table_init (const struct ecc_curve *ecc,
TABLE(0)[ecc->size] = TABLE(0)[2*ecc->size] = 1; TABLE(0)[ecc->size] = TABLE(0)[2*ecc->size] = 1;
ecc_a_to_eh (ecc, TABLE(1), p, scratch); ecc_a_to_eh (ecc, TABLE(1), p, scratch);
mpn_copyi (TABLE(1), p, 3*ecc->size);
for (j = 2; j < size; j += 2) for (j = 2; j < size; j += 2)
{ {
......
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