commit 3ccf4e3

default  ·  2023-04-16 18:27:38 +0000 UTC
parent f658f34
arc4random() does not exist in not-so-old systems, so revert this.

Revert "Replaced random() with arc4random()."

This reverts commit f658f345cac7b24d6fa61f08b4ec09823d28b11a.
3 files changed,  +9, -8
M snac.c
+4, -4
 1@@ -21,10 +21,10 @@ static xs_str *random_str(void)
 2         fclose(f);
 3     }
 4     else {
 5-        data[0] = arc4random();
 6-        data[1] = arc4random();
 7-        data[2] = arc4random();
 8-        data[3] = arc4random();
 9+        data[0] = random() % 0xffffffff;
10+        data[1] = random() % 0xffffffff;
11+        data[2] = random() % 0xffffffff;
12+        data[3] = random() % 0xffffffff;
13     }
14 
15     return xs_hex_enc((char *)data, sizeof(data));
M snac.c
+1, -1
1@@ -123,7 +123,7 @@ d_char *hash_password(const char *uid, const char *passwd, const char *nonce)
2     xs *hash;
3 
4     if (nonce == NULL) {
5-        d_nonce = xs_fmt("%08x", arc4random());
6+        d_nonce = xs_fmt("%08x", random());
7         nonce = d_nonce;
8     }
9 
+4, -3
 1@@ -198,9 +198,10 @@ void new_password(const char *uid, d_char **clear_pwd, d_char **hashed_pwd)
 2 {
 3     int rndbuf[3];
 4 
 5-    rndbuf[0] = arc4random();
 6-    rndbuf[1] = arc4random();
 7-    rndbuf[2] = arc4random();
 8+    srandom(time(NULL) ^ getpid());
 9+    rndbuf[0] = random() & 0xffffffff;
10+    rndbuf[1] = random() & 0xffffffff;
11+    rndbuf[2] = random() & 0xffffffff;
12 
13     *clear_pwd  = xs_base64_enc((char *)rndbuf, sizeof(rndbuf));
14     *hashed_pwd = hash_password(uid, *clear_pwd, NULL);