diff --git a/library/ecp.c b/library/ecp.c index 91fbe3b9f..050a497e1 100644 --- a/library/ecp.c +++ b/library/ecp.c @@ -321,10 +321,10 @@ static int ecp_drbg_random( void *p_rng, unsigned char *output, size_t output_le ecp_drbg_context *ctx = p_rng; int ret; size_t len_done = 0; + uint8_t tmp[HASH_BLOCK_BYTES]; while( len_done < output_len ) { - uint8_t tmp[HASH_BLOCK_BYTES]; uint8_t use_len; /* We don't need to draw more that 255 blocks, so don't bother with @@ -346,6 +346,8 @@ static int ecp_drbg_random( void *p_rng, unsigned char *output, size_t output_le len_done += use_len; } + mbedtls_platform_zeroize( tmp, sizeof( tmp ) ); + return( 0 ); }