mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2026-04-30 23:32:18 +02:00
Merge remote-tracking branch 'upstream/pr/2945' into baremetal
* upstream/pr/2945: Rename macro MBEDTLS_MAX_RAND_DELAY Update signature of mbedtls_platform_random_delay Replace mbedtls_platform_enforce_volatile_reads 2 Replace mbedtls_platform_enforce_volatile_reads Add more variation to random delay countermeasure Add random delay to enforce_volatile_reads Update comments of mbedtls_platform_random_delay Follow Mbed TLS coding style Add random delay function to platform_utils
This commit is contained in:
@@ -168,7 +168,7 @@ static int uECC_check_curve_integrity(void)
|
||||
}
|
||||
|
||||
/* i should be 32 */
|
||||
mbedtls_platform_enforce_volatile_reads();
|
||||
mbedtls_platform_random_delay();
|
||||
diff |= (unsigned char) i ^ 32;
|
||||
|
||||
return diff;
|
||||
@@ -296,7 +296,7 @@ uECC_word_t uECC_vli_equal(const uECC_word_t *left, const uECC_word_t *right)
|
||||
}
|
||||
|
||||
/* i should be -1 now */
|
||||
mbedtls_platform_enforce_volatile_reads();
|
||||
mbedtls_platform_random_delay();
|
||||
diff |= i ^ -1;
|
||||
|
||||
return diff;
|
||||
@@ -1043,7 +1043,7 @@ int EccPoint_mult_safer(uECC_word_t * result, const uECC_word_t * point,
|
||||
if (problem != 0) {
|
||||
return UECC_FAULT_DETECTED;
|
||||
}
|
||||
mbedtls_platform_enforce_volatile_reads();
|
||||
mbedtls_platform_random_delay();
|
||||
if (problem != 0) {
|
||||
return UECC_FAULT_DETECTED;
|
||||
}
|
||||
@@ -1055,7 +1055,7 @@ int EccPoint_mult_safer(uECC_word_t * result, const uECC_word_t * point,
|
||||
/* invalid input, can happen without fault */
|
||||
return UECC_FAILURE;
|
||||
}
|
||||
mbedtls_platform_enforce_volatile_reads();
|
||||
mbedtls_platform_random_delay();
|
||||
if (problem != 0) {
|
||||
/* failure on second check means fault, though */
|
||||
return UECC_FAULT_DETECTED;
|
||||
@@ -1085,7 +1085,7 @@ int EccPoint_mult_safer(uECC_word_t * result, const uECC_word_t * point,
|
||||
r = UECC_FAULT_DETECTED;
|
||||
goto clear_and_out;
|
||||
}
|
||||
mbedtls_platform_enforce_volatile_reads();
|
||||
mbedtls_platform_random_delay();
|
||||
if (problem != 0) {
|
||||
r = UECC_FAULT_DETECTED;
|
||||
goto clear_and_out;
|
||||
@@ -1098,7 +1098,7 @@ int EccPoint_mult_safer(uECC_word_t * result, const uECC_word_t * point,
|
||||
r = UECC_FAULT_DETECTED;
|
||||
goto clear_and_out;
|
||||
}
|
||||
mbedtls_platform_enforce_volatile_reads();
|
||||
mbedtls_platform_random_delay();
|
||||
if (problem != 0) {
|
||||
r = UECC_FAULT_DETECTED;
|
||||
goto clear_and_out;
|
||||
@@ -1195,7 +1195,7 @@ int uECC_valid_point(const uECC_word_t *point)
|
||||
/* 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();
|
||||
if (diff == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -279,7 +279,7 @@ int uECC_verify(const uint8_t *public_key, const uint8_t *message_hash,
|
||||
/* Accept only if v == r. */
|
||||
diff = uECC_vli_equal(rx, r);
|
||||
if (diff == 0) {
|
||||
mbedtls_platform_enforce_volatile_reads();
|
||||
mbedtls_platform_random_delay();
|
||||
if (diff == 0) {
|
||||
return UECC_SUCCESS;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user