Replace mbedtls_platform_enforce_volatile_reads
Replace function mbedtls_platform_enforce_volatile_reads() with
mbedtls_platform_random_delay().
diff --git a/tinycrypt/ecc.c b/tinycrypt/ecc.c
index a0333b0..d0519b4 100644
--- a/tinycrypt/ecc.c
+++ b/tinycrypt/ecc.c
@@ -168,7 +168,7 @@
}
/* i should be 32 */
- mbedtls_platform_enforce_volatile_reads();
+ mbedtls_platform_random_delay( 10 );
diff |= (unsigned char) i ^ 32;
return diff;
@@ -296,7 +296,7 @@
}
/* i should be -1 now */
- mbedtls_platform_enforce_volatile_reads();
+ mbedtls_platform_random_delay( 10 );
diff |= i ^ -1;
return diff;
@@ -1046,7 +1046,7 @@
if (problem != 0) {
return UECC_FAULT_DETECTED;
}
- mbedtls_platform_enforce_volatile_reads();
+ mbedtls_platform_random_delay( 50 );
if (problem != 0) {
return UECC_FAULT_DETECTED;
}
@@ -1058,7 +1058,7 @@
/* invalid input, can happen without fault */
return UECC_FAILURE;
}
- mbedtls_platform_enforce_volatile_reads();
+ mbedtls_platform_random_delay( 50 );
if (problem != 0) {
/* failure on second check means fault, though */
return UECC_FAULT_DETECTED;
@@ -1088,7 +1088,7 @@
r = UECC_FAULT_DETECTED;
goto clear_and_out;
}
- mbedtls_platform_enforce_volatile_reads();
+ mbedtls_platform_random_delay( 10 );
if (problem != 0) {
r = UECC_FAULT_DETECTED;
goto clear_and_out;
@@ -1101,7 +1101,7 @@
r = UECC_FAULT_DETECTED;
goto clear_and_out;
}
- mbedtls_platform_enforce_volatile_reads();
+ mbedtls_platform_random_delay( 10 );
if (problem != 0) {
r = UECC_FAULT_DETECTED;
goto clear_and_out;
@@ -1198,7 +1198,7 @@
/* Make sure that y^2 == x^3 + ax + b */
diff = uECC_vli_equal(tmp1, tmp2);
if (diff == 0) {
- mbedtls_platform_enforce_volatile_reads();
+ mbedtls_platform_random_delay( 10 );
if (diff == 0) {
return 0;
}
diff --git a/tinycrypt/ecc_dsa.c b/tinycrypt/ecc_dsa.c
index ca071f8..c19c73e 100644
--- a/tinycrypt/ecc_dsa.c
+++ b/tinycrypt/ecc_dsa.c
@@ -299,7 +299,7 @@
/* Accept only if v == r. */
diff = uECC_vli_equal(rx, r);
if (diff == 0) {
- mbedtls_platform_enforce_volatile_reads();
+ mbedtls_platform_random_delay( 50 );
if (diff == 0) {
return UECC_SUCCESS;
}