硬件随机数能频繁调用吗

如果软件中每秒调用一次硬件随机数的接口获取随机数,这样会不会出问题

。软件可能每秒调用一次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, &paramTrng);
            if (!handleTrng) {
                while (1)
                    ;
            }
        }
    }
    

    // TRNG_close(handleTrng);
}
void init_generateRandom(uint8_t size)
{
    
    TRNG_init();
    CryptoKeyPlaintext_initBlankKey(&entropyKey, keyLocationBuffer, size);

    TRNG_Params_init(&paramTrng);
    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, &paramTrng);
    if (!handleTrng) {
        while (1)
            ;
    }
    myCOM_generateRandomBytes();
}

11 个回复