如果软件中每秒调用一次硬件随机数的接口获取随机数,这样会不会出问题
。软件可能每秒调用一次myCOM_generateRandomBytes()
/* Generate random bytes in the provided buffer up to size using the TRNG */
void myCOM_generateRandomBytes(void) {
int_fast16_t result;
// if (canTrigTrng)
// {
// return;
// }
// canTrigTrng = true;
/* Generate some randomness in the provided buffer */
// if (handleTrng)
{
result = TRNG_generateEntropy(handleTrng, &entropyKey);
if (result != TRNG_STATUS_SUCCESS) {
TRNG_close(handleTrng);
handleTrng = TRNG_open(Board_TRNG0, ¶mTrng);
if (!handleTrng) {
while (1)
;
}
}
}
// TRNG_close(handleTrng);
}
void init_generateRandom(uint8_t size)
{
TRNG_init();
CryptoKeyPlaintext_initBlankKey(&entropyKey, keyLocationBuffer, size);
TRNG_Params_init(¶mTrng);
paramTrng.returnBehavior = TRNG_RETURN_BEHAVIOR_CALLBACK;
paramTrng.callbackFxn = trng_callback;
paramTrng.timeout = SemaphoreP_WAIT_FOREVER;
/* Open a TRNG_Handle with default parameters */
handleTrng = TRNG_open(Board_TRNG0, ¶mTrng);
if (!handleTrng) {
while (1)
;
}
myCOM_generateRandomBytes();
}