mirror of
https://github.com/polhenarejos/pico-rng.git
synced 2026-04-09 17:25:51 +02:00
More comments
This commit is contained in:
@@ -539,7 +539,8 @@ void ep0_out_handler(uint8_t *buf, uint16_t len) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get random data using the onboard pico ADC.
|
||||
* @brief Get random data using the onboard pico ADC that essentially measure
|
||||
* environmental noise because it is assumed that it is not connected to anything.
|
||||
*
|
||||
* @param buf the buffer to store the random data in
|
||||
* @param len the length of the random data in bytes
|
||||
@@ -564,26 +565,6 @@ void get_random_data(char *buf, uint16_t len) {
|
||||
memcpy(&buf[i-1], (void*)&adc_result, 2);
|
||||
}
|
||||
|
||||
// The pico has a clock, use it as the seed because time always changes
|
||||
// https://raspberrypi.github.io/pico-sdk-doxygen/group__hardware__clocks.html
|
||||
|
||||
/**
|
||||
* In an attempt to make the rng even more random this will slow down the amount of data the
|
||||
* pico can generate. It appears to be more random, but not good enough for FIPS 140-2.
|
||||
**/
|
||||
/**
|
||||
//Use the ADC as a seed to the arm gnu stdlib random number generator
|
||||
srand((int)(adc_read() | (adc_read() << 16)));
|
||||
|
||||
memset(buf, 0, len);
|
||||
int rand_result;
|
||||
for(i = 0; i <= len-4; i=i+4)
|
||||
{
|
||||
rand_result = rand();
|
||||
memcpy(&buf[i], (void*)&rand_result, 4);
|
||||
}
|
||||
**/
|
||||
|
||||
gpio_put(25, 0);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user