Add random delay function to platform_utils

Add delay function to platform_utils. The function will delay
program execution by incrementing local variable randomised number of
times.
This commit is contained in:
Arto Kinnunen 2019-12-02 15:01:41 +02:00
parent 7d2434fac2
commit 4c63b98e94
2 changed files with 38 additions and 0 deletions

View file

@ -165,6 +165,29 @@ uint32_t mbedtls_platform_random_in_range( size_t num )
#endif
}
int mbedtls_platform_random_delay( size_t max_rand )
{
#if !defined(MBEDTLS_ENTROPY_HARDWARE_ALT)
(void) max_rand;
return -1;
#else
size_t random_number;
volatile size_t i = 0;
if( max_rand == 0 || max_rand > INT_MAX )
{
return -1;
}
random_number = mbedtls_platform_random_in_range( max_rand );
do {
i++;
} while ( i < random_number );
return (int) i;
#endif /* !MBEDTLS_ENTROPY_HARDWARE_ALT */
}
/* Some compilers (armcc 5 for example) optimize away successive reads from a
* volatile local variable (which we use as a counter-measure to fault
* injection attacks), unless there is a call to an external function between