1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-19 14:08:11 +00:00
trezor-firmware/embed/unix/rng.c

25 lines
493 B
C
Raw Normal View History

/*
* Copyright (c) Pavol Rusnak, SatoshiLabs
*
* Licensed under TREZOR License
* see LICENSE file for details
*/
2017-12-15 15:56:08 +00: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;
}