From 422dcad4982223045024458ce19f6eb75486688b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Tue, 14 Apr 2026 12:19:05 +0200 Subject: [PATCH] ecp: test mod_pXXX_raw() also without WITH_MPI_UINT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The functions being tested are now used regardless of whether MBEDTLS_ECP_WITH_MPI_UINT is defined, so they should also be tested regardless of that option. Signed-off-by: Manuel Pégourié-Gonnard --- tests/suites/test_suite_ecp.function | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_ecp.function b/tests/suites/test_suite_ecp.function index 50b9983fe1..e0ced66eff 100644 --- a/tests/suites/test_suite_ecp.function +++ b/tests/suites/test_suite_ecp.function @@ -1551,7 +1551,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS:MBEDTLS_ECP_WITH_MPI_UINT */ +/* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS */ void ecp_mod_p_generic_raw(int curve_id, char *input_N, char *input_X, @@ -1569,8 +1569,10 @@ void ecp_mod_p_generic_raw(int curve_id, size_t curve_bits; int (*curve_func)(mbedtls_mpi_uint *X, size_t X_limbs); +#if defined(MBEDTLS_ECP_WITH_MPI_UINT) mbedtls_mpi_mod_modulus m; mbedtls_mpi_mod_modulus_init(&m); +#endif TEST_EQUAL(mbedtls_test_read_mpi_core(&X, &limbs_X, input_X), 0); TEST_EQUAL(mbedtls_test_read_mpi_core(&N, &limbs_N, input_N), 0); @@ -1656,12 +1658,19 @@ void ecp_mod_p_generic_raw(int curve_id, TEST_EQUAL(limbs_X, limbs); TEST_EQUAL(limbs_res, limbs_N); - TEST_EQUAL(mbedtls_mpi_mod_modulus_setup( - &m, N, limbs_N), 0); TEST_EQUAL((*curve_func)(X, limbs_X), 0); +#if defined(MBEDTLS_ECP_WITH_MPI_UINT) + /* This is what we'll do in the future, based on bignum_mod_raw */ + TEST_EQUAL(mbedtls_mpi_mod_modulus_setup(&m, N, limbs_N), 0); mbedtls_mpi_mod_raw_fix_quasi_reduction(X, &m); +#else + /* This is what we're doing now, based on bignum_core, + * see ecp_modp() in ecp.c */ + mbedtls_mpi_uint c = mbedtls_mpi_core_sub(X, X, N, limbs_N); + (void) mbedtls_mpi_core_add_if(X, N, limbs_N, (unsigned) c); +#endif TEST_LE_U(mbedtls_mpi_core_bitlen(X, limbs_X), curve_bits); TEST_MEMORY_COMPARE(X, bytes, res, bytes); @@ -1669,7 +1678,9 @@ exit: mbedtls_free(X); mbedtls_free(res); +#if defined(MBEDTLS_ECP_WITH_MPI_UINT) mbedtls_mpi_mod_modulus_free(&m); +#endif mbedtls_free(N); } /* END_CASE */