From 50cd4b842b02c1a6d3052121f64e7b6b7dce6fd4 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Thu, 24 Nov 2022 17:08:13 +0000 Subject: [PATCH] Bignum Mod: Restrict residue setup In theory we could allow residues to have more allocated limbs than the modulus, but we might or might not need it in the end. Go for the simpler option for now and we can extend it later if we really need it. Signed-off-by: Janos Follath --- library/bignum_mod.c | 2 +- tests/suites/test_suite_bignum_mod.data | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 1b3aff6a3a..4303efefa6 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -39,7 +39,7 @@ int mbedtls_mpi_mod_residue_setup( mbedtls_mpi_mod_residue *r, mbedtls_mpi_uint *p, size_t p_limbs ) { - if( p_limbs < m->limbs || !mbedtls_mpi_core_lt_ct( p, m->p, m->limbs ) ) + if( p_limbs != m->limbs || !mbedtls_mpi_core_lt_ct( p, m->p, m->limbs ) ) return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); r->limbs = m->limbs; diff --git a/tests/suites/test_suite_bignum_mod.data b/tests/suites/test_suite_bignum_mod.data index 02bc9f7931..ba7d5779ff 100644 --- a/tests/suites/test_suite_bignum_mod.data +++ b/tests/suites/test_suite_bignum_mod.data @@ -56,17 +56,17 @@ mpi_residue_setup:"fe":"01":0 Test mbedtls_mpi_residue_setup #2 r == m - 1 mpi_residue_setup:"ff":"fe":0 -Test mbedtls_mpi_residue_setup #3 m->limbs > r-> limbs && m > r -mpi_residue_setup:"000000000000000000000000000000007dfe5c6beb35a2d6":"fe":MBEDTLS_ERR_MPI_BAD_INPUT_DATA +Test mbedtls_mpi_residue_setup #3 m->limbs = r-> limbs && m > r +mpi_residue_setup:"7dfe5c6":"fe":0 Test mbedtls_mpi_residue_setup #4 m->limbs = r-> limbs && m > r mpi_residue_setup:"7ffffffffffffffffffffffffffffffffffffffffffffff1":"0000000000000000000000000000000000000000000000fe":0 -Test mbedtls_mpi_residue_setup #5 m->limbs < r-> limbs && m > r -mpi_residue_setup:"7ffffffff0000000":"000000000000000fe":0 +Test mbedtls_mpi_residue_setup #5 m->limbs > r-> limbs && m > r +mpi_residue_setup:"7ffffffff00000000":"fe":MBEDTLS_ERR_MPI_BAD_INPUT_DATA Test mbedtls_mpi_residue_setup #6 m->limbs < r-> limbs && m > r -mpi_residue_setup:"ff":"000000000000000000000000000000000000000000000001":0 +mpi_residue_setup:"ff":"000000000000000000000000000000000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA Test mbedtls_mpi_residue_setup #7 r == m mpi_residue_setup:"fe":"fe":-4