Added a function to generate a random 6 digit number, this number could be used as the bluetooth pairing code
This commit is contained in:
parent
2206b6f2fb
commit
a550c52c39
@ -1,5 +1,6 @@
|
||||
#include "app_utils.h"
|
||||
#include "app_log.h"
|
||||
#include "wm_crypto_hard.h""
|
||||
|
||||
static uint32_t _elapsed_ms = 0;
|
||||
|
||||
@ -70,3 +71,22 @@ uint32_t elapsed_ms(void)
|
||||
{
|
||||
return _elapsed_ms;
|
||||
}
|
||||
|
||||
uint32_t random_gen_6_digit(void)
|
||||
{
|
||||
unsigned char random_buf[6] = {0};
|
||||
uint32_t output_num = 0;
|
||||
|
||||
tls_crypto_random_init(0x19031998, CRYPTO_RNG_SWITCH_16);
|
||||
tls_crypto_random_bytes(random_buf, sizeof random_buf);
|
||||
tls_crypto_random_stop();
|
||||
|
||||
for(uint8_t i = 0; i < sizeof random_buf; i++)
|
||||
{
|
||||
// Ensures the last digit is not 0
|
||||
if(i == (sizeof random_buf) - 1 && random_buf[i] % 10 == 0)random_buf[i]++;
|
||||
output_num += (random_buf[i] % 10) * pow(10, i);
|
||||
}
|
||||
|
||||
return output_num;
|
||||
}
|
||||
|
@ -31,4 +31,11 @@ void ms_increment(uint32_t increment);
|
||||
*/
|
||||
uint32_t elapsed_ms(void);
|
||||
|
||||
/**
|
||||
* @brief Generates a 6 digit random number using the hardware RNG IP.
|
||||
*
|
||||
* @return uint32_t the 6 digit random number generated
|
||||
*/
|
||||
uint32_t random_gen_6_digit(void);
|
||||
|
||||
#endif //APP_UTILS_H
|
Loading…
Reference in New Issue
Block a user