trezor-core/embed/unix/rng.c

18 lines
374 B
C
Raw Normal View History

2017-12-15 07:56:08 -08:00
#include <stdio.h>
#include <stdlib.h>
#include "common.h"
#include "rng.h"
uint32_t rng_get(void)
{
static FILE *frand = NULL;
if (!frand) {
frand = fopen("/dev/urandom", "r");
}
ensure(sectrue * (frand != NULL), "fopen failed");
uint32_t r;
ensure(sectrue * (sizeof(r) == fread(&r, 1, sizeof(r), frand)), "fread failed");
return r;
}