Zeroize tmp buf in mbedtls_mpi_fill_random()
diff --git a/library/bignum.c b/library/bignum.c
index d3a150c..bd8280b 100644
--- a/library/bignum.c
+++ b/library/bignum.c
@@ -63,6 +63,10 @@
volatile mbedtls_mpi_uint *p = v; while( n-- ) *p++ = 0;
}
+static void mbedtls_zeroize( void *v, size_t n ) {
+ volatile unsigned char *p = v; while( n-- ) *p++ = 0;
+}
+
#define ciL (sizeof(mbedtls_mpi_uint)) /* chars in limb */
#define biL (ciL << 3) /* bits in limb */
#define biH (ciL << 2) /* half limb size */
@@ -1882,6 +1886,8 @@
MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( X, buf, size ) );
cleanup:
+ mbedtls_zeroize( buf, sizeof( buf ) );
+
return( ret );
}