From 8bc75da6ede09929e212171c38ea356aeda387fc Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Thu, 10 Nov 2022 13:37:10 +0300 Subject: [PATCH] Use simpler arc4random instead of /dev/urandom --- CHANGES | 1 + dht-bootstrap.c | 26 +++----------------------- 2 files changed, 4 insertions(+), 23 deletions(-) diff --git a/CHANGES b/CHANGES index b903e72..1af4ef3 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,7 @@ * Ability to explicitly specify IP addresses to bind to * select() replaced with poll() + * arc4random instead of /dev/urandom reading 20 November 2011: dht-bootstrap-0.2 diff --git a/dht-bootstrap.c b/dht-bootstrap.c index e98cd6e..28f3fd2 100644 --- a/dht-bootstrap.c +++ b/dht-bootstrap.c @@ -354,9 +354,7 @@ send_request(struct circular_list *list, int dopop, int doping, int want) return send_ping((struct sockaddr *)&ss, sslen, ttid, 4); } else { unsigned char id[20]; - int i; - for (i = 0; i < 20; i++) - id[i] = random() & 0xFF; + arc4random_buf(id, sizeof id); make_tid(ttid, "fn", 0); debugf("Sending find_node.\n"); return send_find_node((struct sockaddr *)&ss, sslen, ttid, 4, id, want); @@ -442,26 +440,7 @@ main(int argc, char **argv) dht_socket6 = newSock(ipv6addr, port); } - int rc = 0; - { - int fd = open("/dev/urandom", O_RDONLY); - if (fd < 0) { - perror("open(random)"); - exit(1); - } - - rc = read(fd, myid, 20); - if (rc < 20) { - perror("open(random)"); - exit(1); - } - - unsigned int seed; - rc = read(fd, &seed, sizeof(seed)); - srandom(seed); - - close(fd); - } + arc4random_buf(myid, sizeof myid); memcpy(my_v, "1:v4:JB\0\0", 9); have_v = 1; @@ -469,6 +448,7 @@ main(int argc, char **argv) if (!quiet) dht_debug = stdout; + int rc = 0; unsigned char ttid[4]; while (i < argc) { -- 2.44.0