We have a custom board design based on the MIMXRT1064-EVK.
We are encountering errors in the execution of the mbedtls_rsa_public function
from the MBEDTLS library when used to verify a certificate.
Calls to mbedtls_rsa_public( ctx, sig, encoded ) with identical input values of ctx and sig produce different values of encoded. In some cases the values are correct and match encoded_expected; in other cases they are incorrect and do not match encoded_expected.
Some of the incorrect values are identical.
The error arises in the modular exponentiation function mbedtls_mpi_exp_mod
Some of our board instances behave perfectly with no errors; other boards produce errors, either all the time or intermittently.
We noticed in testing that boards are typically error free for a short time after a "cold restart", ie after they have been rested; subsequently we found that applying a refrigerant spray to a "bad" board (to the area around the processor) causes the errors to disappear until the board warms up again.
Tests using the temperaturemonitor project from the SDK show that the processor is not running unduly hot (approx 40 C); this is confirmed with an IR temperature sensor.
I would not have expected a temperature issue to cause incorrect computation results.
All suggestions welcome.