From eceb4ccfc33105b2512f11e827d101da173d5109 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Fri, 2 Sep 2022 10:46:09 +0100 Subject: [PATCH] Rename variables and update comments in mpi_core_add_if test Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_mpi.function | 112 +++++++++++++++------------ 1 file changed, 61 insertions(+), 51 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 7ca21fa06..32e08a942 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1721,23 +1721,23 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_add_if( char * input_l, char * input_r, +void mpi_core_add_if( char * input_A, char * input_B, char * input_X4, int carry4, char * input_X8, int carry8 ) { - mbedtls_mpi X4, X8, l, r; - mbedtls_mpi_uint *la = NULL; - mbedtls_mpi_uint *ra = NULL; - mbedtls_mpi_uint *Xa = NULL; - mbedtls_mpi_uint *da = NULL; + mbedtls_mpi X4, X8, A, B; + mbedtls_mpi_uint *a = NULL; /* first value to add */ + mbedtls_mpi_uint *b = NULL; /* second value to add */ + mbedtls_mpi_uint *x = NULL; /* expected */ + mbedtls_mpi_uint *d = NULL; /* destination - the in/out first op */ + mbedtls_mpi_init( &A ); + mbedtls_mpi_init( &B ); mbedtls_mpi_init( &X4 ); mbedtls_mpi_init( &X8 ); - mbedtls_mpi_init( &l ); - mbedtls_mpi_init( &r ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &l, input_l ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &r, input_r ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi( &X4, input_X4 ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi( &X8, input_X8 ) ); @@ -1748,71 +1748,81 @@ void mpi_core_add_if( char * input_l, char * input_r, mbedtls_mpi_uint carry = ( sizeof(mbedtls_mpi_uint) == 4 ) ? carry4 : carry8; /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, l.s ); - TEST_EQUAL( 1, r.s ); + TEST_EQUAL( 1, A.s ); + TEST_EQUAL( 1, B.s ); TEST_EQUAL( 1, X->s ); - /* Test cases are such that l <= r, so #limbs should be <= */ - TEST_ASSERT( l.n <= r.n ); - TEST_ASSERT( X->n <= r.n ); + /* Test cases are such that A <= B, so #limbs should be <= */ + TEST_ASSERT( A.n <= B.n ); + TEST_ASSERT( X->n <= B.n ); /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ - la = mbedtls_calloc( r.n, sizeof(mbedtls_mpi_uint) ); - ra = mbedtls_calloc( r.n, sizeof(mbedtls_mpi_uint) ); - Xa = mbedtls_calloc( r.n, sizeof(mbedtls_mpi_uint) ); - da = mbedtls_calloc( r.n, sizeof(mbedtls_mpi_uint) ); - size_t bytes = r.n * sizeof(mbedtls_mpi_uint); + /* mbedtls_mpi_core_add_if() uses input arrays of mbedtls_mpi_uints which + * must be the same size. The MPIs we've read in will only have arrays + * large enough for the number they represent. Therefore we create new + * raw arrays of mbedtls_mpi_uints and populate them from the MPIs we've + * just read in. + * + * We generated test data such that B was always >= A, so that's how many + * limbs each of these need. + */ + a = mbedtls_calloc( B.n, sizeof(mbedtls_mpi_uint) ); + b = mbedtls_calloc( B.n, sizeof(mbedtls_mpi_uint) ); + x = mbedtls_calloc( B.n, sizeof(mbedtls_mpi_uint) ); + d = mbedtls_calloc( B.n, sizeof(mbedtls_mpi_uint) ); - TEST_ASSERT( la != NULL ); - TEST_ASSERT( ra != NULL ); - TEST_ASSERT( Xa != NULL ); - TEST_ASSERT( da != NULL ); + size_t bytes = B.n * sizeof(mbedtls_mpi_uint); + + TEST_ASSERT( a != NULL ); + TEST_ASSERT( b != NULL ); + TEST_ASSERT( x != NULL ); + TEST_ASSERT( d != NULL ); /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as * processed by mbedtls_mpi_core_add_if()) are little endian, we can just * copy what we have as long as MSBs are 0 (which they are from calloc()) */ - memcpy( la, l.p, l.n * sizeof(mbedtls_mpi_uint) ); - memcpy( ra, r.p, r.n * sizeof(mbedtls_mpi_uint) ); - memcpy( Xa, X->p, X->n * sizeof(mbedtls_mpi_uint) ); + memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); + memcpy( b, B.p, B.n * sizeof(mbedtls_mpi_uint) ); + memcpy( x, X->p, X->n * sizeof(mbedtls_mpi_uint) ); - /* 1a) a += b, cond = 0 => there should be no carry */ - memcpy( da, la, r.n * sizeof(mbedtls_mpi_uint) ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( da, ra, r.n, 0 ) ); + /* 1a) a + b: d = a; d += b, cond = 0 => there should be no carry */ + memcpy( d, a, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( d, b, B.n, 0 ) ); - /* 1b) and a should be unchanged */ - ASSERT_COMPARE( da, bytes, la, bytes ); + /* 1b) and d should be unchanged */ + ASSERT_COMPARE( d, bytes, a, bytes ); - /* 2a) a += b, cond = 1 => we should get the correct carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( da, ra, r.n, 1 ) ); + /* 2a) a + b: d = a; d += b, cond = 1 => we should get the correct carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, b, B.n, 1 ) ); - /* 2b) and a should have the correct result */ - ASSERT_COMPARE( da, bytes, Xa, bytes ); + /* 2b) and d should have the correct result */ + ASSERT_COMPARE( d, bytes, x, bytes ); - /* 3a) b += a, cond = 0 => there should be no carry */ - memcpy( da, ra, r.n * sizeof(mbedtls_mpi_uint) ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( da, la, r.n, 0 ) ); + /* 3a) b + a: d = b; d += a, cond = 0 => there should be no carry */ + memcpy( d, b, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( d, a, B.n, 0 ) ); - /* 3b) and b should be unchanged */ - ASSERT_COMPARE( da, bytes, ra, bytes ); + /* 3b) and d should be unchanged */ + ASSERT_COMPARE( d, bytes, b, bytes ); - /* 4a) b += a, cond = 1 => we should get the correct carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( da, la, r.n, 1 ) ); + /* 4a) b + a: d = b; d += a, cond = 1 => we should get the correct carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, a, B.n, 1 ) ); - /* 4b) and b should have the correct result */ - ASSERT_COMPARE( da, bytes, Xa, bytes ); + /* 4b) and d should have the correct result */ + ASSERT_COMPARE( d, bytes, x, bytes ); exit: - mbedtls_free( la ); - mbedtls_free( ra ); - mbedtls_free( Xa ); - mbedtls_free( da ); + mbedtls_free( a ); + mbedtls_free( b ); + mbedtls_free( x ); + mbedtls_free( d ); mbedtls_mpi_free( &X4 ); mbedtls_mpi_free( &X8 ); - mbedtls_mpi_free( &l ); - mbedtls_mpi_free( &r ); + mbedtls_mpi_free( &A ); + mbedtls_mpi_free( &B ); } /* END_CASE */