mirror of
https://github.com/polhenarejos/pico-keys-sdk
synced 2026-05-28 00:51:25 +02:00
Harmonizing coding style.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
@@ -22,43 +22,49 @@
|
||||
#include "hwrng.h"
|
||||
|
||||
#define RANDOM_BYTES_LENGTH 32
|
||||
static uint32_t random_word[RANDOM_BYTES_LENGTH/sizeof (uint32_t)];
|
||||
static uint32_t random_word[RANDOM_BYTES_LENGTH/sizeof(uint32_t)];
|
||||
|
||||
void random_init(void) {
|
||||
void random_init(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
neug_init(random_word, RANDOM_BYTES_LENGTH/sizeof (uint32_t));
|
||||
neug_init(random_word, RANDOM_BYTES_LENGTH/sizeof(uint32_t));
|
||||
|
||||
for (i = 0; i < NEUG_PRE_LOOP; i++)
|
||||
for (i = 0; i < NEUG_PRE_LOOP; i++) {
|
||||
neug_get();
|
||||
}
|
||||
}
|
||||
|
||||
void random_fini(void) {
|
||||
neug_fini ();
|
||||
void random_fini(void)
|
||||
{
|
||||
neug_fini();
|
||||
}
|
||||
|
||||
/*
|
||||
* Return pointer to random 32-byte
|
||||
*/
|
||||
void random_bytes_free (const uint8_t *p);
|
||||
void random_bytes_free(const uint8_t *p);
|
||||
#define MAX_RANDOM_BUFFER 1024
|
||||
const uint8_t * random_bytes_get(size_t len) {
|
||||
if (len > MAX_RANDOM_BUFFER)
|
||||
const uint8_t *random_bytes_get(size_t len)
|
||||
{
|
||||
if (len > MAX_RANDOM_BUFFER) {
|
||||
return NULL;
|
||||
}
|
||||
static uint32_t return_word[MAX_RANDOM_BUFFER/sizeof(uint32_t)];
|
||||
for (int ix = 0; ix < len; ix += RANDOM_BYTES_LENGTH) {
|
||||
neug_wait_full();
|
||||
memcpy(return_word+ix/sizeof(uint32_t), random_word, RANDOM_BYTES_LENGTH);
|
||||
random_bytes_free((const uint8_t *)random_word);
|
||||
random_bytes_free((const uint8_t *) random_word);
|
||||
}
|
||||
return (const uint8_t *)return_word;
|
||||
return (const uint8_t *) return_word;
|
||||
}
|
||||
|
||||
/*
|
||||
* Free pointer to random 32-byte
|
||||
*/
|
||||
void random_bytes_free(const uint8_t *p) {
|
||||
(void)p;
|
||||
void random_bytes_free(const uint8_t *p)
|
||||
{
|
||||
(void) p;
|
||||
memset(random_word, 0, RANDOM_BYTES_LENGTH);
|
||||
neug_flush();
|
||||
}
|
||||
@@ -66,21 +72,23 @@ void random_bytes_free(const uint8_t *p) {
|
||||
/*
|
||||
* Return 4-byte salt
|
||||
*/
|
||||
void random_get_salt(uint8_t *p) {
|
||||
void random_get_salt(uint8_t *p)
|
||||
{
|
||||
uint32_t rnd;
|
||||
|
||||
rnd = neug_get();
|
||||
memcpy(p, &rnd, sizeof (uint32_t));
|
||||
memcpy(p, &rnd, sizeof(uint32_t));
|
||||
rnd = neug_get();
|
||||
memcpy(p + sizeof (uint32_t), &rnd, sizeof (uint32_t));
|
||||
memcpy(p + sizeof(uint32_t), &rnd, sizeof(uint32_t));
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Random byte iterator
|
||||
*/
|
||||
int random_gen(void *arg, unsigned char *out, size_t out_len) {
|
||||
uint8_t *index_p = (uint8_t *)arg;
|
||||
int random_gen(void *arg, unsigned char *out, size_t out_len)
|
||||
{
|
||||
uint8_t *index_p = (uint8_t *) arg;
|
||||
uint8_t index = index_p ? *index_p : 0;
|
||||
size_t n;
|
||||
|
||||
@@ -88,22 +96,24 @@ int random_gen(void *arg, unsigned char *out, size_t out_len) {
|
||||
neug_wait_full();
|
||||
|
||||
n = RANDOM_BYTES_LENGTH - index;
|
||||
if (n > out_len)
|
||||
n = out_len;
|
||||
if (n > out_len) {
|
||||
n = out_len;
|
||||
}
|
||||
|
||||
memcpy(out, ((unsigned char *)random_word) + index, n);
|
||||
memcpy(out, ((unsigned char *) random_word) + index, n);
|
||||
out += n;
|
||||
out_len -= n;
|
||||
index += n;
|
||||
|
||||
if (index >= RANDOM_BYTES_LENGTH) {
|
||||
index = 0;
|
||||
neug_flush();
|
||||
}
|
||||
index = 0;
|
||||
neug_flush();
|
||||
}
|
||||
}
|
||||
|
||||
if (index_p)
|
||||
if (index_p) {
|
||||
*index_p = index;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user