X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/9f8f8b1e1d553774865f2c177191c359c3dc652c..28ec221002d755d33c41fa4b5d9673eee0abef9d:/sbr/m_rand.c diff --git a/sbr/m_rand.c b/sbr/m_rand.c index 4d248886..a05bb4ab 100644 --- a/sbr/m_rand.c +++ b/sbr/m_rand.c @@ -1,21 +1,25 @@ -/* - * m_rand -- provides pseudorandom bytes +/* m_rand.c -- provides pseudorandom bytes * * This code is Copyright (c) 2012, by the authors of nmh. See the * COPYRIGHT file in the root directory of the nmh distribution for * complete copyright information. */ -#include /* for abs(), srand(), rand() */ +#include /* for abs(), srand(), rand(), arc4random() */ #include /* for fopen(), fread(), fclose() */ #include /* for getpid() */ #include /* for time() */ +#include + +#if !HAVE_ARC4RANDOM static int seeded = 0; +#endif int m_rand (unsigned char *buf, size_t n) { +#if !HAVE_ARC4RANDOM if (! seeded) { FILE *devurandom; unsigned int seed; @@ -46,6 +50,9 @@ m_rand (unsigned char *buf, size_t n) { *buf++ = *rndp++; } } +#else + arc4random_buf(buf, n); +#endif return 0; }