Fix rasperry pi hwGetentropy() (#856)
This commit is contained in:
@@ -20,7 +20,6 @@
|
|||||||
#include "MyHwLinuxGeneric.h"
|
#include "MyHwLinuxGeneric.h"
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <linux/random.h>
|
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@@ -31,6 +30,7 @@
|
|||||||
#include "log.h"
|
#include "log.h"
|
||||||
|
|
||||||
static SoftEeprom eeprom = SoftEeprom(MY_LINUX_CONFIG_FILE, 1024); // ATMega328 has 1024 bytes
|
static SoftEeprom eeprom = SoftEeprom(MY_LINUX_CONFIG_FILE, 1024); // ATMega328 has 1024 bytes
|
||||||
|
static FILE *randomFp;
|
||||||
|
|
||||||
bool hwInit(void)
|
bool hwInit(void)
|
||||||
{
|
{
|
||||||
@@ -43,6 +43,10 @@ bool hwInit(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
if (!(randomFp = fopen("/dev/urandom", "r"))) {
|
||||||
|
logError("Cannot open '/dev/urandom'.\n");
|
||||||
|
exit(2);
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,8 +79,7 @@ void hwRandomNumberInit()
|
|||||||
|
|
||||||
ssize_t hwGetentropy(void *__buffer, size_t __length)
|
ssize_t hwGetentropy(void *__buffer, size_t __length)
|
||||||
{
|
{
|
||||||
// getrandom syscall
|
return(fread(__buffer, 1, __length, randomFp));
|
||||||
return syscall(SYS_getrandom, __buffer, __length, GRND_NONBLOCK);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned long hwMillis()
|
unsigned long hwMillis()
|
||||||
|
|||||||
Reference in New Issue
Block a user