Initial entropy run should be context specific

Otherwise test influence each other.
Is a change to the context but only if the NV seed feature is enabled
This commit is contained in:
Paul Bakker 2016-06-01 15:25:50 +01:00 committed by Simon Butcher
parent 66fdf34e81
commit fc9c7c8bf4
2 changed files with 5 additions and 6 deletions

View File

@ -134,6 +134,9 @@ typedef struct
#if defined(MBEDTLS_THREADING_C)
mbedtls_threading_mutex_t mutex; /*!< mutex */
#endif
#if defined(MBEDTLS_ENTROPY_NV_SEED)
int initial_entropy_run;
#endif
}
mbedtls_entropy_context;

View File

@ -54,10 +54,6 @@ static void mbedtls_zeroize( void *v, size_t n ) {
volatile unsigned char *p = v; while( n-- ) *p++ = 0;
}
#if defined(MBEDTLS_ENTROPY_NV_SEED)
static int initial_entropy_run = 0;
#endif
#define ENTROPY_MAX_LOOP 256 /**< Maximum amount to loop before error */
void mbedtls_entropy_init( mbedtls_entropy_context *ctx )
@ -290,9 +286,9 @@ int mbedtls_entropy_func( void *data, unsigned char *output, size_t len )
/* Update the NV entropy seed before generating any entropy for outside
* use.
*/
if( initial_entropy_run == 0 )
if( ctx->initial_entropy_run == 0 )
{
initial_entropy_run = 1;
ctx->initial_entropy_run = 1;
if( ( ret = mbedtls_entropy_update_nv_seed( ctx ) ) != 0 )
return( ret );
}