From d8a6d22ad110c22929873d716735e6bede1e7441 Mon Sep 17 00:00:00 2001 From: Nicholas Tay Date: Tue, 11 Jan 2022 19:55:23 +1100 Subject: BSD support for getentropy() --- passgen.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/passgen.c b/passgen.c index cf9fb89..c43ae8b 100644 --- a/passgen.c +++ b/passgen.c @@ -5,9 +5,20 @@ #include #include +#if defined (__linux__) \ + || defined (__APPLE__) \ + || defined (__FreeBSD__) \ + || defined (__OpenBSD__) +# define USE_GETENTROPY 1 +#endif + /* getentropy() vs rand()+time()+getpid() */ +#ifdef USE_GETENTROPY #if defined (__linux__) || defined (__APPLE__) -#include +# include +#else +# include +#endif #else #include @@ -76,7 +87,7 @@ int main(int argc, char *argv[]) } password[grammar_size] = 0; -#if ! defined (__linux__) && ! defined (__APPLE__) +#ifndef USE_GETENTROPY /* * TODO: seed better RNG * this isn't very good, but it's enough(?) for now @@ -113,7 +124,7 @@ int main(int argc, char *argv[]) } do { -#if defined (__linux__) || defined (__APPLE__) +#ifdef USE_GETENTROPY unsigned int r; getentropy(&r, sizeof(r)); #else -- cgit