commit f658f34

default  ·  2023-04-16 18:19:25 +0000 UTC
parent 8205159
Replaced random() with arc4random().
3 files changed,  +8, -9
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] = random() % 0xffffffff;
 6-        data[1] = random() % 0xffffffff;
 7-        data[2] = random() % 0xffffffff;
 8-        data[3] = random() % 0xffffffff;
 9+        data[0] = arc4random();
10+        data[1] = arc4random();
11+        data[2] = arc4random();
12+        data[3] = arc4random();
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", random());
6+        d_nonce = xs_fmt("%08x", arc4random());
7         nonce = d_nonce;
8     }
9 
+3, -4
 1@@ -198,10 +198,9 @@ void new_password(const char *uid, d_char **clear_pwd, d_char **hashed_pwd)
 2 {
 3     int rndbuf[3];
 4 
 5-    srandom(time(NULL) ^ getpid());
 6-    rndbuf[0] = random() & 0xffffffff;
 7-    rndbuf[1] = random() & 0xffffffff;
 8-    rndbuf[2] = random() & 0xffffffff;
 9+    rndbuf[0] = arc4random();
10+    rndbuf[1] = arc4random();
11+    rndbuf[2] = arc4random();
12 
13     *clear_pwd  = xs_base64_enc((char *)rndbuf, sizeof(rndbuf));
14     *hashed_pwd = hash_password(uid, *clear_pwd, NULL);