@@ -226,6 +226,10 @@ static int block_cipher_df( unsigned char *output,
226
226
227
227
mbedtls_aes_free ( & aes_ctx );
228
228
229
+ mbedtls_zeroize ( buf , sizeof ( buf ) );
230
+ mbedtls_zeroize ( tmp , sizeof ( tmp ) );
231
+ mbedtls_zeroize ( key , sizeof ( key ) );
232
+ mbedtls_zeroize ( chain , sizeof ( chain ) );
229
233
return ( 0 );
230
234
}
231
235
@@ -264,6 +268,7 @@ static int ctr_drbg_update_internal( mbedtls_ctr_drbg_context *ctx,
264
268
mbedtls_aes_setkey_enc ( & ctx -> aes_ctx , tmp , MBEDTLS_CTR_DRBG_KEYBITS );
265
269
memcpy ( ctx -> counter , tmp + MBEDTLS_CTR_DRBG_KEYSIZE , MBEDTLS_CTR_DRBG_BLOCKSIZE );
266
270
271
+ mbedtls_zeroize ( tmp , sizeof ( tmp ) );
267
272
return ( 0 );
268
273
}
269
274
@@ -281,6 +286,7 @@ void mbedtls_ctr_drbg_update( mbedtls_ctr_drbg_context *ctx,
281
286
282
287
block_cipher_df ( add_input , additional , add_len );
283
288
ctr_drbg_update_internal ( ctx , add_input );
289
+ mbedtls_zeroize ( add_input , sizeof ( add_input ) );
284
290
}
285
291
}
286
292
@@ -327,6 +333,7 @@ int mbedtls_ctr_drbg_reseed( mbedtls_ctr_drbg_context *ctx,
327
333
ctr_drbg_update_internal ( ctx , seed );
328
334
ctx -> reseed_counter = 1 ;
329
335
336
+ mbedtls_zeroize ( seed , sizeof ( seed ) );
330
337
return ( 0 );
331
338
}
332
339
@@ -393,6 +400,8 @@ int mbedtls_ctr_drbg_random_with_add( void *p_rng,
393
400
394
401
ctx -> reseed_counter ++ ;
395
402
403
+ mbedtls_zeroize ( add_input , sizeof ( add_input ) );
404
+ mbedtls_zeroize ( tmp , sizeof ( tmp ) );
396
405
return ( 0 );
397
406
}
398
407
0 commit comments