From b9af2db4cfb6e3ce1a3004c48d991bb91b6f3eec Mon Sep 17 00:00:00 2001 From: Paul Elliott Date: Wed, 9 Mar 2022 15:34:37 +0000 Subject: [PATCH] Add accessor for timing final delay Signed-off-by: Paul Elliott --- include/mbedtls/timing.h | 11 +++++++++++ library/timing.c | 20 ++++++++++++++++++-- tests/suites/test_suite_ssl.function | 11 +++++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) diff --git a/include/mbedtls/timing.h b/include/mbedtls/timing.h index 25db1c6aa7..652548d971 100644 --- a/include/mbedtls/timing.h +++ b/include/mbedtls/timing.h @@ -90,6 +90,17 @@ void mbedtls_timing_set_delay( void *data, uint32_t int_ms, uint32_t fin_ms ); */ int mbedtls_timing_get_delay( void *data ); +/** + * \brief Get the final timing delay + * + * \param data Pointer to timing data + * Must point to a valid \c mbedtls_timing_delay_context struct. + * + * \return Final timing delay in milliseconds. + */ +uint32_t mbedtls_timing_get_final_delay( + const mbedtls_timing_delay_context *data ); + #ifdef __cplusplus } #endif diff --git a/library/timing.c b/library/timing.c index d66e11e262..a65bc99406 100644 --- a/library/timing.c +++ b/library/timing.c @@ -158,13 +158,28 @@ int mbedtls_timing_get_delay( void *data ) return( 0 ); } -#else -int mbedtls_timing_get_delay( void *data ) + +/* + * Get the final delay. + */ +uint32_t mbedtls_timing_get_final_delay( + const mbedtls_timing_delay_context *data ) +{ + return( data->fin_ms ); +} +#else /* MBEDTLS_HAVE_TIME */ +uint32_t mbedtls_timing_get_final_delay( + const mbedtls_timing_delay_context *data ) { (void) data; return( 0 ); } +int mbedtls_timing_get_delay( void *data ) +{ + (void) data; + return( 0 ); +} void mbedtls_timing_set_delay( void *data, uint32_t int_ms, uint32_t fin_ms ) { (void) data; @@ -178,6 +193,7 @@ unsigned long mbedtls_timing_get_timer( struct mbedtls_timing_hr_time *val, int (void) reset; return( 0 ); } + #endif /* MBEDTLS_HAVE_TIME */ #endif /* !MBEDTLS_TIMING_ALT */ #endif /* MBEDTLS_TIMING_C */ diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 67f4d6ec1f..bda2a96742 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -5277,3 +5277,14 @@ void conf_group() mbedtls_ssl_config_free( &conf ); } /* END_CASE */ + +/* BEGIN_CASE depends_on:MBEDTLS_TIMING_C:MBEDTLS_HAVE_TIME */ +void timing_accessor( ) +{ + mbedtls_timing_delay_context delay_context; + + mbedtls_timing_set_delay( &delay_context, 50, 100 ); + + TEST_ASSERT( mbedtls_timing_get_final_delay( &delay_context ) == 100 ); +} +/* END_CASE */