diff --git a/tests/suites/test_suite_ecp.function b/tests/suites/test_suite_ecp.function index 3f810d2e8a..69cd4e5adc 100644 --- a/tests/suites/test_suite_ecp.function +++ b/tests/suites/test_suite_ecp.function @@ -1611,7 +1611,8 @@ exit: /* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS */ void ecp_mod_add_sub(char *input_A, char *input_B, int id, int ctype) { - size_t p_limbs; + size_t p_A_limbs; + size_t p_B_limbs; size_t bytes; mbedtls_mpi_mod_modulus m; mbedtls_mpi_mod_residue rA; @@ -1623,25 +1624,28 @@ void ecp_mod_add_sub(char *input_A, char *input_B, int id, int ctype) mbedtls_mpi_mod_modulus_init(&m); - TEST_EQUAL(mbedtls_test_read_mpi_core(&p_A, &p_limbs, input_A), 0); - TEST_EQUAL(mbedtls_test_read_mpi_core(&p_B, &p_limbs, input_B), 0); + TEST_EQUAL(mbedtls_test_read_mpi_core(&p_A, &p_A_limbs, input_A), 0); + TEST_EQUAL(mbedtls_test_read_mpi_core(&p_B, &p_B_limbs, input_B), 0); TEST_ASSERT(mbedtls_ecp_modulus_setup(&m, id, ctype) == 0); - /* Test for limb sizes */ - TEST_EQUAL(m.limbs, p_limbs); - bytes = p_limbs * sizeof(mbedtls_mpi_uint); + /* Test for limb sizes for two input value and modulus */ + TEST_EQUAL(p_A_limbs, p_B_limbs); + TEST_EQUAL(m.limbs, p_A_limbs); + bytes = p_A_limbs * ciL; - ASSERT_ALLOC(p_S, p_limbs); + ASSERT_ALLOC(p_S, p_A_limbs); - TEST_EQUAL(mbedtls_mpi_mod_residue_setup(&rA, &m, p_A, p_limbs), 0); - TEST_EQUAL(mbedtls_mpi_mod_residue_setup(&rB, &m, p_B, p_limbs), 0); - TEST_EQUAL(mbedtls_mpi_mod_residue_setup(&rS, &m, p_S, p_limbs), 0); + TEST_EQUAL(mbedtls_mpi_mod_residue_setup(&rA, &m, p_A, p_A_limbs), 0); + TEST_EQUAL(mbedtls_mpi_mod_residue_setup(&rB, &m, p_B, p_B_limbs), 0); + TEST_EQUAL(mbedtls_mpi_mod_residue_setup(&rS, &m, p_S, p_A_limbs), 0); + /* Firstly add A and B to get the summary S, then subtract B, + * the difference should be equal to A*/ TEST_EQUAL(0, mbedtls_mpi_mod_add(&rS, &rA, &rB, &m)); TEST_EQUAL(0, mbedtls_mpi_mod_sub(&rS, &rS, &rB, &m)); - /* Compare output byte-by-byte */ + /* Compare difference with rA byte-by-byte */ ASSERT_COMPARE(rA.p, bytes, rS.p, bytes); exit: