From e93a0640f1cac59b6fef35a164112dcec74c431c Mon Sep 17 00:00:00 2001 From: toddouska Date: Tue, 3 Sep 2013 13:13:13 -0700 Subject: [PATCH] break up huge math into individual parts so can add piece by piece, e.g., ECC256 --- configure.ac | 4 +- ctaocrypt/src/asm.c | 118 ++++++++++++++++++++++++--------- ctaocrypt/src/fp_sqr_comba_3.i | 2 +- ctaocrypt/src/fp_sqr_comba_4.i | 2 +- cyassl/ctaocrypt/tfm.h | 4 +- 5 files changed, 94 insertions(+), 36 deletions(-) diff --git a/configure.ac b/configure.ac index 4cd647524..444c1c5c2 100644 --- a/configure.ac +++ b/configure.ac @@ -95,7 +95,7 @@ LT_LIB_M OPTIMIZE_CFLAGS="-Os -fomit-frame-pointer" OPTIMIZE_FAST_CFLAGS="-O2 -fomit-frame-pointer" -OPTIMIZE_HUGE_CFLAGS="-funroll-loops -DTFM_SMALL_SET" +OPTIMIZE_HUGE_CFLAGS="-funroll-loops -DTFM_SMALL_SET -DTFM_HUGE_SET" DEBUG_CFLAGS="-g -DDEBUG -DDEBUG_CYASSL" @@ -557,7 +557,7 @@ AC_ARG_ENABLE([ecc], if test "$ENABLED_ECC" = "yes" then - AM_CFLAGS="$AM_CFLAGS -DHAVE_ECC" + AM_CFLAGS="$AM_CFLAGS -DHAVE_ECC -DTFM_ECC256" fi AM_CONDITIONAL([BUILD_ECC], [test "x$ENABLED_ECC" = "xyes"]) diff --git a/ctaocrypt/src/asm.c b/ctaocrypt/src/asm.c index 9b05161ce..e19410e8a 100644 --- a/ctaocrypt/src/asm.c +++ b/ctaocrypt/src/asm.c @@ -1018,21 +1018,50 @@ __asm__( \ #endif #ifdef TFM_SMALL_SET -#include "fp_sqr_comba_small_set.i" -#include "fp_sqr_comba_3.i" -#include "fp_sqr_comba_4.i" -#include "fp_sqr_comba_6.i" -#include "fp_sqr_comba_7.i" -#include "fp_sqr_comba_8.i" -#include "fp_sqr_comba_9.i" -#include "fp_sqr_comba_12.i" -#include "fp_sqr_comba_17.i" -#include "fp_sqr_comba_20.i" -#include "fp_sqr_comba_24.i" -#include "fp_sqr_comba_28.i" -#include "fp_sqr_comba_32.i" -#include "fp_sqr_comba_48.i" -#include "fp_sqr_comba_64.i" + #include "fp_sqr_comba_small_set.i" +#endif + +#if defined(TFM_SQR3) + #include "fp_sqr_comba_3.i" +#endif +#if defined(TFM_SQR4) + #include "fp_sqr_comba_4.i" +#endif +#if defined(TFM_SQR6) + #include "fp_sqr_comba_6.i" +#endif +#if defined(TFM_SQR7) + #include "fp_sqr_comba_7.i" +#endif +#if defined(TFM_SQR8) + #include "fp_sqr_comba_8.i" +#endif +#if defined(TFM_SQR9) + #include "fp_sqr_comba_9.i" +#endif +#if defined(TFM_SQR12) + #include "fp_sqr_comba_12.i" +#endif +#if defined(TFM_SQR17) + #include "fp_sqr_comba_17.i" +#endif +#if defined(TFM_SQR20) + #include "fp_sqr_comba_20.i" +#endif +#if defined(TFM_SQR24) + #include "fp_sqr_comba_24.i" +#endif +#if defined(TFM_SQR28) + #include "fp_sqr_comba_28.i" +#endif +#if defined(TFM_SQR32) + #include "fp_sqr_comba_32.i" +#endif +#if defined(TFM_SQR48) + #include "fp_sqr_comba_48.i" +#endif +#if defined(TFM_SQR64) + #include "fp_sqr_comba_64.i" #endif /* end fp_sqr_comba.c asm */ @@ -1291,21 +1320,50 @@ ____asm__( \ #ifdef TFM_SMALL_SET -#include "fp_mul_comba_small_set.i" -#include "fp_mul_comba_3.i" -#include "fp_mul_comba_4.i" -#include "fp_mul_comba_6.i" -#include "fp_mul_comba_7.i" -#include "fp_mul_comba_8.i" -#include "fp_mul_comba_9.i" -#include "fp_mul_comba_12.i" -#include "fp_mul_comba_17.i" -#include "fp_mul_comba_20.i" -#include "fp_mul_comba_24.i" -#include "fp_mul_comba_28.i" -#include "fp_mul_comba_32.i" -#include "fp_mul_comba_48.i" -#include "fp_mul_comba_64.i" + #include "fp_mul_comba_small_set.i" +#endif + +#if defined(TFM_MUL3) + #include "fp_mul_comba_3.i" +#endif +#if defined(TFM_MUL4) + #include "fp_mul_comba_4.i" +#endif +#if defined(TFM_MUL6) + #include "fp_mul_comba_6.i" +#endif +#if defined(TFM_MUL7) + #include "fp_mul_comba_7.i" +#endif +#if defined(TFM_MUL8) + #include "fp_mul_comba_8.i" +#endif +#if defined(TFM_MUL9) + #include "fp_mul_comba_9.i" +#endif +#if defined(TFM_MUL12) + #include "fp_mul_comba_12.i" +#endif +#if defined(TFM_MUL17) + #include "fp_mul_comba_17.i" +#endif +#if defined(TFM_MUL20) + #include "fp_mul_comba_20.i" +#endif +#if defined(TFM_MUL24) + #include "fp_mul_comba_24.i" +#endif +#if defined(TFM_MUL28) + #include "fp_mul_comba_28.i" +#endif +#if defined(TFM_MUL32) + #include "fp_mul_comba_32.i" +#endif +#if defined(TFM_MUL48) + #include "fp_mul_comba_48.i" +#endif +#if defined(TFM_MUL64) + #include "fp_mul_comba_64.i" #endif /* end fp_mul_comba.c asm */ diff --git a/ctaocrypt/src/fp_sqr_comba_3.i b/ctaocrypt/src/fp_sqr_comba_3.i index 5d1221c47..6cf7faf1a 100644 --- a/ctaocrypt/src/fp_sqr_comba_3.i +++ b/ctaocrypt/src/fp_sqr_comba_3.i @@ -23,7 +23,7 @@ #ifdef TFM_SQR3 void fp_sqr_comba3(fp_int *A, fp_int *B) { - fp_digit *a, b[6], c0, c1, c2, sc0, sc1, sc2; + fp_digit *a, b[6], c0, c1, c2; a = A->dp; COMBA_START; diff --git a/ctaocrypt/src/fp_sqr_comba_4.i b/ctaocrypt/src/fp_sqr_comba_4.i index 5233e2883..71c3c87af 100644 --- a/ctaocrypt/src/fp_sqr_comba_4.i +++ b/ctaocrypt/src/fp_sqr_comba_4.i @@ -23,7 +23,7 @@ #ifdef TFM_SQR4 void fp_sqr_comba4(fp_int *A, fp_int *B) { - fp_digit *a, b[8], c0, c1, c2, sc0, sc1, sc2; + fp_digit *a, b[8], c0, c1, c2; a = A->dp; COMBA_START; diff --git a/cyassl/ctaocrypt/tfm.h b/cyassl/ctaocrypt/tfm.h index b161dfde2..636507eb4 100644 --- a/cyassl/ctaocrypt/tfm.h +++ b/cyassl/ctaocrypt/tfm.h @@ -293,7 +293,7 @@ typedef struct { #define TFM_MUL12 #define TFM_MUL17 #endif -#ifdef TFM_SMALL_SET +#ifdef TFM_HUGE_SET #define TFM_MUL20 #define TFM_MUL24 #define TFM_MUL28 @@ -316,7 +316,7 @@ typedef struct { #define TFM_SQR12 #define TFM_SQR17 #endif -#ifdef TFM_SMALL_SET +#ifdef TFM_HUGE_SET #define TFM_SQR20 #define TFM_SQR24 #define TFM_SQR28