esp_random: Add some documentation about using before RF subsystem is on

This commit is contained in:
Angus Gratton
2017-07-11 11:23:33 +08:00
committed by Angus Gratton
parent 9b30f66fac
commit 3bb90bab97
2 changed files with 14 additions and 6 deletions

View File

@@ -98,7 +98,15 @@ uint32_t system_get_free_heap_size(void) __attribute__ ((deprecated));
/**
* @brief Get one random 32-bit word from hardware RNG
*
* @return random value between 0 and UINT32_MAX
* The hardware RNG is fully functional whenever an RF subsystem is running (ie Bluetooth or WiFi is enabled). For secure
* random values, call this function after WiFi or Bluetooth are started.
*
* When the app is running without an RF subsystem enabled, it should be considered a PRNG. To help improve this
* situation, the RNG is pre-seeded with entropy while the IDF bootloader is running. However no new entropy is
* available during the window of time between when the bootloader exits and an RF subsystem starts. It may be possible
* to discern a non-random pattern in a very large amount of output captured during this window of time.
*
* @return Random value between 0 and UINT32_MAX
*/
uint32_t esp_random(void);