mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-03-09 10:14:11 +00:00
Use exact-size buffers for inputs and outputs to library functions in tests
Signed-off-by: Gabor Mezei <gabor.mezei@arm.com>
This commit is contained in:
parent
821d15107b
commit
a7584888da
@ -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:
|
||||
;
|
||||
|
Loading…
x
Reference in New Issue
Block a user