<pre style='margin:0'>
Chris Jones (cjones051073) pushed a commit to branch getentropy
in repository macports-legacy-support.

</pre>
<p><a href="https://github.com/macports/macports-legacy-support/commit/355747b2bdab256169cb78ed795021b3c0e4a82c">https://github.com/macports/macports-legacy-support/commit/355747b2bdab256169cb78ed795021b3c0e4a82c</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 355747b2bdab256169cb78ed795021b3c0e4a82c
</span>Author: Chris Jones <jonesc@hep.phy.cam.ac.uk>
AuthorDate: Tue Oct 12 14:12:45 2021 +0100

<span style='display:block; white-space:pre;color:#404040;'>    use system/macports getentropy
</span>---
 src/arc4random.c | 35 +++--------------------------------
 1 file changed, 3 insertions(+), 32 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/arc4random.c b/src/arc4random.c
</span><span style='display:block; white-space:pre;color:#808080;'>index 9a1dbae..14aa0e2 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/arc4random.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/arc4random.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -37,6 +37,7 @@
</span> #include <unistd.h>
 #include <sys/types.h>
 #include <sys/time.h>
<span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <sys/random.h>
</span> #include <assert.h>
 #include <pthread.h>
 #include <stdio.h>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -64,10 +65,6 @@ struct rand_state
</span> };
 typedef struct rand_state rand_state;
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/* kernel entropy */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extern int _getentropy(void* buf, size_t n);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> #define KEYSTREAM_ONLY
 
 typedef unsigned char u8;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -329,7 +326,7 @@ _rs_stir(rand_state* st)
</span>     u8 rnd[ARC4R_KEYSZ + ARC4R_IVSZ];
 
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    int r = _getentropy(rnd, sizeof rnd);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    int r = getentropy(rnd, sizeof rnd);
</span>     assert(r == 0);
 
     _rs_rekey(st, rnd, sizeof(rnd));
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -429,7 +426,7 @@ _screate()
</span>      * systems.
      */
     uint8_t buf[8];
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    _getentropy(buf, sizeof buf);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    getentropy(buf, sizeof buf);
</span> }
 
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -503,7 +500,6 @@ arc4random_buf(void* b, size_t n)
</span> 
 
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> /*
  * Calculate a uniformly distributed random number less than upper_bound
  * avoiding "modulo bias".
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -575,29 +571,4 @@ _randopen(const char* name)
</span> }
 
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-int
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-_getentropy(void* buf, size_t n)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    static int fd = -1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    uint8_t* b    = (uint8_t*)buf;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if (fd < 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        fd = _randopen("/dev/urandom");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    while (n > 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ssize_t m = (read)(fd, b, n);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if (m < 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if (errno == EINTR) continue;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            _error(1, errno, "Fatal read error while reading rand dev");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        b += m;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        n -= m;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    return 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> #endif /* __MP_LEGACY_SUPPORT_ARC4RANDOM__ */
</pre><pre style='margin:0'>

</pre>