Test mpi_core_table_lookup for constant timeness
Signed-off-by: Janos Follath <janos.follath@arm.com>
diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function
index 696d873..f4fd51c 100644
--- a/tests/suites/test_suite_bignum_core.function
+++ b/tests/suites/test_suite_bignum_core.function
@@ -966,12 +966,23 @@
for( size_t i = 0; i < count; i++ )
{
+ /*
+ * We shouldn't leak anything through timing.
+ * We need to set these in every loop as we need to make the loop
+ * variable public for the loop head and comparison macros make the
+ * rest public automatically.
+ */
+ TEST_CF_SECRET( &i, sizeof( i ) );
+ TEST_CF_SECRET( dest, limbs * sizeof( mbedtls_mpi_uint ) );
+ TEST_CF_SECRET( table, count * limbs * sizeof( mbedtls_mpi_uint ) );
+
memset( dest, 0x00, limbs * sizeof( *dest ) );
mbedtls_mpi_core_ct_uint_table_lookup( dest, table, limbs, count, i );
mbedtls_mpi_uint *current = table + i * limbs;
ASSERT_COMPARE( dest, limbs * sizeof( *dest ),
current, limbs * sizeof( *current ) );
+ TEST_CF_PUBLIC( &i, sizeof( i ) );
}
exit: