<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>