replace user rand by platform rand in ecc delays
Signed-off-by: Shelly Liberman <shelly.liberman@arm.com>
diff --git a/include/mbedtls/platform_util.h b/include/mbedtls/platform_util.h
index 68b4887..b44be23 100644
--- a/include/mbedtls/platform_util.h
+++ b/include/mbedtls/platform_util.h
@@ -300,6 +300,15 @@
*/
void mbedtls_platform_random_delay( void );
+/**
+ * \brief RNG-function for getting a random buffer.
+ *
+ * \param buf Buffer for random data
+ * \param len Length of the buffer in bytes
+ *
+ */
+void mbedtls_platform_random_buf( uint8_t *buf, size_t len);
+
#if defined(MBEDTLS_HAVE_TIME_DATE)
/**
* \brief Platform-specific implementation of gmtime_r()
diff --git a/library/platform_util.c b/library/platform_util.c
index d620396..458dfc9 100644
--- a/library/platform_util.c
+++ b/library/platform_util.c
@@ -319,6 +319,25 @@
mbedtls_platform_random_uint16() );
}
+void mbedtls_platform_random_buf( uint8_t *buf, size_t len )
+{
+ uint16_t val;
+
+ while( len > 1 )
+ {
+ val = mbedtls_platform_random_uint16();
+ buf[len-1] = (uint8_t)val;
+ buf[len-2] = (uint8_t)(val>>8);
+ len -= 2;
+ }
+ if( len == 1 )
+ {
+ buf[0] = (uint8_t)mbedtls_platform_random_uint16();
+ }
+
+ return;
+}
+
uint32_t mbedtls_platform_random_in_range( uint32_t num )
{
uint32_t result;
diff --git a/tinycrypt/ecc.c b/tinycrypt/ecc.c
index bf54fe8..aeb6447 100644
--- a/tinycrypt/ecc.c
+++ b/tinycrypt/ecc.c
@@ -67,6 +67,7 @@
#include "mbedtls/platform_util.h"
#include "mbedtls/sha256.h"
#include <string.h>
+#include "mbedtls/platform_util.h"
/* Parameters for curve NIST P-256 aka secp256r1 */
const uECC_word_t curve_p[NUM_ECC_WORDS] = {
@@ -427,7 +428,7 @@
return;
ws->i = 0;
- g_rng_function(ws->delays, sizeof(ws->delays));
+ mbedtls_platform_random_buf(ws->delays, sizeof(ws->delays));
}
/* Computes result = left * right. Result must be 2 * num_words long.