mbedtls: Re-apply MBEDTLS_BIGNUM_ALT & related macros for custom bignum functions

(IDF-specific patch.)
This commit is contained in:
Angus Gratton 2017-09-06 15:06:57 +10:00 committed by Mahavir Jain
parent aa1d4e0973
commit 49733cf7a0
2 changed files with 18 additions and 0 deletions

View File

@ -131,6 +131,8 @@
#define MBEDTLS_LN_2_DIV_LN_10_SCALE100 332 #define MBEDTLS_LN_2_DIV_LN_10_SCALE100 332
#define MBEDTLS_MPI_RW_BUFFER_SIZE ( ((MBEDTLS_MPI_MAX_BITS_SCALE100 + MBEDTLS_LN_2_DIV_LN_10_SCALE100 - 1) / MBEDTLS_LN_2_DIV_LN_10_SCALE100) + 10 + 6 ) #define MBEDTLS_MPI_RW_BUFFER_SIZE ( ((MBEDTLS_MPI_MAX_BITS_SCALE100 + MBEDTLS_LN_2_DIV_LN_10_SCALE100 - 1) / MBEDTLS_LN_2_DIV_LN_10_SCALE100) + 10 + 6 )
#if !defined(MBEDTLS_BIGNUM_ALT)
/* /*
* Define the base integer type, architecture-wise. * Define the base integer type, architecture-wise.
* *
@ -990,6 +992,9 @@ typedef enum {
int mbedtls_mpi_gen_prime( mbedtls_mpi *X, size_t nbits, int flags, int mbedtls_mpi_gen_prime( mbedtls_mpi *X, size_t nbits, int flags,
int (*f_rng)(void *, unsigned char *, size_t), int (*f_rng)(void *, unsigned char *, size_t),
void *p_rng ); void *p_rng );
#else /* MBEDTLS_BIGNUM_ALT */
#include "bignum_alt.h"
#endif /* MBEDTLS_BIGNUM_ALT */
#if defined(MBEDTLS_SELF_TEST) #if defined(MBEDTLS_SELF_TEST)

View File

@ -84,6 +84,8 @@
#define mbedtls_free free #define mbedtls_free free
#endif #endif
#if !defined(MBEDTLS_BIGNUM_ALT)
#define MPI_VALIDATE_RET( cond ) \ #define MPI_VALIDATE_RET( cond ) \
MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_MPI_BAD_INPUT_DATA ) MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_MPI_BAD_INPUT_DATA )
#define MPI_VALIDATE( cond ) \ #define MPI_VALIDATE( cond ) \
@ -1553,6 +1555,8 @@ int mbedtls_mpi_sub_int( mbedtls_mpi *X, const mbedtls_mpi *A, mbedtls_mpi_sint
return( mbedtls_mpi_sub_mpi( X, A, &_B ) ); return( mbedtls_mpi_sub_mpi( X, A, &_B ) );
} }
#if !defined(MBEDTLS_MPI_MUL_MPI_ALT) || !defined(MBEDTLS_MPI_EXP_MOD_ALT)
/* /*
* Helper for mbedtls_mpi multiplication * Helper for mbedtls_mpi multiplication
*/ */
@ -1564,6 +1568,7 @@ static
*/ */
__attribute__ ((noinline)) __attribute__ ((noinline))
#endif #endif
void mpi_mul_hlp( size_t i, mbedtls_mpi_uint *s, mbedtls_mpi_uint *d, mbedtls_mpi_uint b ) void mpi_mul_hlp( size_t i, mbedtls_mpi_uint *s, mbedtls_mpi_uint *d, mbedtls_mpi_uint b )
{ {
mbedtls_mpi_uint c = 0, t = 0; mbedtls_mpi_uint c = 0, t = 0;
@ -1625,6 +1630,9 @@ void mpi_mul_hlp( size_t i, mbedtls_mpi_uint *s, mbedtls_mpi_uint *d, mbedtls_mp
while( c != 0 ); while( c != 0 );
} }
#endif
#if !defined(MBEDTLS_MPI_MUL_MPI_ALT)
/* /*
* Baseline multiplication: X = A * B (HAC 14.12) * Baseline multiplication: X = A * B (HAC 14.12)
*/ */
@ -1676,6 +1684,7 @@ cleanup:
return( ret ); return( ret );
} }
#endif
/* /*
* Baseline multiplication: X = A * b * Baseline multiplication: X = A * b
@ -2013,6 +2022,8 @@ int mbedtls_mpi_mod_int( mbedtls_mpi_uint *r, const mbedtls_mpi *A, mbedtls_mpi_
return( 0 ); return( 0 );
} }
#if !defined(MBEDTLS_MPI_EXP_MOD_ALT)
/* /*
* Fast Montgomery initialization (thanks to Tom St Denis) * Fast Montgomery initialization (thanks to Tom St Denis)
*/ */
@ -2414,6 +2425,7 @@ cleanup:
return( ret ); return( ret );
} }
#endif
/* /*
* Greatest common divisor: G = gcd(A, B) (HAC 14.54) * Greatest common divisor: G = gcd(A, B) (HAC 14.54)
@ -3002,6 +3014,7 @@ cleanup:
} }
#endif /* MBEDTLS_GENPRIME */ #endif /* MBEDTLS_GENPRIME */
#endif /* MBEDTLS_BIGNUM_ALT */
#if defined(MBEDTLS_SELF_TEST) #if defined(MBEDTLS_SELF_TEST)