diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 7a87c0738..6118efc58 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -768,14 +768,19 @@ void mpi_core_cond_assign( data_t * input_X, data_t * input_Y ) { #define MAX_LEN 64 - mbedtls_mpi_uint X[MAX_LEN]; - mbedtls_mpi_uint Y[MAX_LEN]; + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *Y = NULL; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t len_X_byte = len_X * sizeof( mbedtls_mpi_uint ); + size_t len_Y_byte = len_Y * sizeof( mbedtls_mpi_uint ); TEST_ASSERT( len_X <= MAX_LEN ); TEST_ASSERT( len_Y <= MAX_LEN ); + ASSERT_ALLOC( X, len_X_byte ); + ASSERT_ALLOC( Y, len_Y_byte ); + TEST_ASSERT( mbedtls_mpi_core_read_be( X, len_X, input_X->x, input_X->len ) == 0 ); @@ -783,28 +788,26 @@ void mpi_core_cond_assign( data_t * input_X, == 0 ); /* condition is false */ - TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( X, len_X_byte ); + TEST_CF_SECRET( Y, len_Y_byte ); mbedtls_mpi_core_cond_assign( X, Y, len_Y, 0 ); - TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( X, len_X_byte ); + TEST_CF_PUBLIC( Y, len_Y_byte ); - TEST_ASSERT( memcmp( X, Y, MIN( len_X, len_Y ) * - sizeof( mbedtls_mpi_uint ) ) != 0 ); + TEST_ASSERT( memcmp( X, Y, MIN( len_X_byte, len_Y_byte ) ) != 0 ); /* condition is true */ - TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( X, len_X_byte ); + TEST_CF_SECRET( Y, len_Y_byte ); mbedtls_mpi_core_cond_assign( X, Y, len_Y, 1 ); - TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( X, len_X_byte ); + TEST_CF_PUBLIC( Y, len_Y_byte ); - ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), - Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( X, len_Y_byte, Y, len_Y_byte ); exit: ; @@ -818,53 +821,56 @@ void mpi_core_cond_swap( data_t * input_X, data_t * input_Y ) { #define MAX_LEN 64 - mbedtls_mpi_uint tmp_X[MAX_LEN]; - mbedtls_mpi_uint tmp_Y[MAX_LEN]; - mbedtls_mpi_uint X[MAX_LEN]; - mbedtls_mpi_uint Y[MAX_LEN]; + mbedtls_mpi_uint *tmp_X = NULL; + mbedtls_mpi_uint *tmp_Y = NULL; + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *Y = NULL; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t len_X_byte = len_X * sizeof( mbedtls_mpi_uint ); + size_t len_Y_byte = len_Y * sizeof( mbedtls_mpi_uint ); TEST_ASSERT( len_X <= MAX_LEN ); TEST_ASSERT( len_Y <= MAX_LEN ); + ASSERT_ALLOC( tmp_X, len_X_byte ); + ASSERT_ALLOC( tmp_Y, len_Y_byte ); + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, len_X, input_X->x, input_X->len ) == 0 ); - memcpy( X, tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + ASSERT_ALLOC( X, len_X_byte ); + memcpy( X, tmp_X, len_X_byte ); TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, len_Y, input_Y->x, input_Y->len ) == 0 ); - memcpy( Y, tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_ALLOC( Y, len_Y_byte ); + memcpy( Y, tmp_Y, len_Y_byte ); /* condition is false */ - TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( X, len_X_byte ); + TEST_CF_SECRET( Y, len_Y_byte ); mbedtls_mpi_core_cond_swap( X, Y, len_X, 0 ); - TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( X, len_X_byte ); + TEST_CF_PUBLIC( Y, len_Y_byte ); - ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), - tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), - tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( X, len_X_byte, tmp_X, len_X_byte ); + ASSERT_COMPARE( Y, len_Y_byte, tmp_Y, len_Y_byte ); /* condition is true */ - TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( X, len_X_byte ); + TEST_CF_SECRET( Y, len_Y_byte ); mbedtls_mpi_core_cond_swap( X, Y, len_X, 1 ); - TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( X, len_X_byte ); + TEST_CF_PUBLIC( Y, len_Y_byte ); - ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), - tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, len_X * sizeof( mbedtls_mpi_uint ), - tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( X, len_Y_byte, tmp_Y, len_Y_byte ); + ASSERT_COMPARE( Y, len_X_byte, tmp_X, len_X_byte ); exit: ; @@ -878,21 +884,25 @@ void mpi_mod_raw_cond_assign( data_t * input_X, data_t * input_Y ) { #define MAX_LEN 64 - mbedtls_mpi_uint X[MAX_LEN]; - mbedtls_mpi_uint Y[MAX_LEN]; + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *Y = NULL; mbedtls_mpi_uint buff_m[MAX_LEN]; mbedtls_mpi_mod_modulus m; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t len_X_byte = len_X * sizeof( mbedtls_mpi_uint ); + size_t len_Y_byte = len_Y * sizeof( mbedtls_mpi_uint ); TEST_ASSERT( len_X <= MAX_LEN ); TEST_ASSERT( len_Y <= MAX_LEN ); + ASSERT_ALLOC( X, len_X_byte ); + ASSERT_ALLOC( Y, len_Y_byte ); + memset( buff_m, 0, MAX_LEN * sizeof( mbedtls_mpi_uint ) ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( - &m, buff_m, - len_X <= len_Y ? len_X : len_Y, + &m, buff_m, len_Y, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) == 0 ); @@ -906,27 +916,26 @@ void mpi_mod_raw_cond_assign( data_t * input_X, == 0 ); /* condition is false */ - TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( X, len_X_byte ); + TEST_CF_SECRET( Y, len_Y_byte ); mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 0 ); - TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( X, len_X_byte ); + TEST_CF_PUBLIC( Y, len_Y_byte ); TEST_ASSERT( memcmp( X, Y, m.limbs * sizeof( mbedtls_mpi_uint ) ) != 0 ); /* condition is true */ - TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( X, len_X_byte ); + TEST_CF_SECRET( Y, len_Y_byte ); mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 1 ); - TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( X, len_X_byte ); + TEST_CF_PUBLIC( Y, len_Y_byte ); - ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), - Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( X, len_Y_byte, Y, len_Y_byte ); exit: ; @@ -940,62 +949,65 @@ void mpi_mod_raw_cond_swap( data_t * input_X, data_t * input_Y ) { #define MAX_LEN 64 - mbedtls_mpi_uint tmp_X[MAX_LEN]; - mbedtls_mpi_uint tmp_Y[MAX_LEN]; - mbedtls_mpi_uint X[MAX_LEN]; - mbedtls_mpi_uint Y[MAX_LEN]; + mbedtls_mpi_uint *tmp_X = NULL; + mbedtls_mpi_uint *tmp_Y = NULL; + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *Y = NULL; mbedtls_mpi_uint buff_m[MAX_LEN]; mbedtls_mpi_mod_modulus m; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t len_X_byte = len_X * sizeof( mbedtls_mpi_uint ); + size_t len_Y_byte = len_Y * sizeof( mbedtls_mpi_uint ); + size_t len_m_byte = len_X_byte; TEST_ASSERT( len_X <= MAX_LEN ); TEST_ASSERT( len_Y <= MAX_LEN ); + ASSERT_ALLOC( tmp_X, len_X_byte ); + ASSERT_ALLOC( tmp_Y, len_Y_byte ); + memset( buff_m, 0, MAX_LEN * sizeof( mbedtls_mpi_uint ) ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( - &m, buff_m, - len_X <= len_Y ? len_X : len_Y, + &m, buff_m, len_X, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) == 0 ); TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, len_X, input_X->x, input_X->len ) == 0 ); - memcpy( X, tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + ASSERT_ALLOC( X, len_X_byte ); + memcpy( X, tmp_X, len_X_byte ); TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, len_Y, input_Y->x, input_Y->len ) == 0 ); - memcpy( Y, tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_ALLOC( Y, len_Y_byte ); + memcpy( Y, tmp_Y, len_Y_byte ); /* condition is false */ - TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( X, len_X_byte ); + TEST_CF_SECRET( Y, len_Y_byte ); mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 0 ); - TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( X, len_X_byte ); + TEST_CF_PUBLIC( Y, len_Y_byte ); - ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), - tmp_X, m.limbs * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), - tmp_Y, m.limbs * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( X, len_X_byte, tmp_X, len_X_byte ); + ASSERT_COMPARE( Y, len_Y_byte, tmp_Y, len_Y_byte ); /* condition is true */ - TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( X, len_X_byte ); + TEST_CF_SECRET( Y, len_Y_byte ); mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 1 ); - TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( X, len_X_byte ); + TEST_CF_PUBLIC( Y, len_Y_byte ); - ASSERT_COMPARE( X, m.limbs * sizeof( mbedtls_mpi_uint ), - tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, m.limbs * sizeof( mbedtls_mpi_uint ), - tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( X, len_m_byte, tmp_Y, len_Y_byte ); + ASSERT_COMPARE( Y, len_m_byte, tmp_X, len_X_byte ); exit: ;