From 74fd868ca67bdeefdb588046b1ee948a8661eaa3 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 5 May 2017 19:24:06 +0200 Subject: [PATCH] RSA: wipe more stack buffers MGF mask and PSS salt are not highly sensitive, but wipe them anyway for good hygiene. --- library/rsa.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/library/rsa.c b/library/rsa.c index 250f96fcd..ca99ccbc8 100644 --- a/library/rsa.c +++ b/library/rsa.c @@ -496,6 +496,8 @@ static void mgf_mask( unsigned char *dst, size_t dlen, unsigned char *src, dlen -= use_len; } + + mbedtls_zeroize( mask, sizeof( mask ) ); } #endif /* MBEDTLS_PKCS1_V21 */ @@ -1010,6 +1012,7 @@ int mbedtls_rsa_rsassa_pss_sign( mbedtls_rsa_context *ctx, if( ( ret = mbedtls_md_setup( &md_ctx, md_info, 0 ) ) != 0 ) { mbedtls_md_free( &md_ctx ); + /* No need to zeroize salt: we didn't use it. */ return( ret ); } @@ -1020,6 +1023,7 @@ int mbedtls_rsa_rsassa_pss_sign( mbedtls_rsa_context *ctx, mbedtls_md_update( &md_ctx, hash, hashlen ); mbedtls_md_update( &md_ctx, salt, slen ); mbedtls_md_finish( &md_ctx, p ); + mbedtls_zeroize( salt, sizeof( salt ) ); // Compensate for boundary condition when applying mask //