Browse Source

arc4random() does not exist in not-so-old systems, so revert this.

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

This reverts commit f658f345cac7b24d6fa61f08b4ec09823d28b11a.
default 2 years ago
parent
commit
3ccf4e3759
3 changed files with 9 additions and 8 deletions
  1. 4 4
      mastoapi.c
  2. 1 1
      snac.c
  3. 4 3
      utils.c

+ 4 - 4
mastoapi.c

@@ -21,10 +21,10 @@ static xs_str *random_str(void)
         fclose(f);
     }
     else {
-        data[0] = arc4random();
-        data[1] = arc4random();
-        data[2] = arc4random();
-        data[3] = arc4random();
+        data[0] = random() % 0xffffffff;
+        data[1] = random() % 0xffffffff;
+        data[2] = random() % 0xffffffff;
+        data[3] = random() % 0xffffffff;
     }
 
     return xs_hex_enc((char *)data, sizeof(data));

+ 1 - 1
snac.c

@@ -123,7 +123,7 @@ d_char *hash_password(const char *uid, const char *passwd, const char *nonce)
     xs *hash;
 
     if (nonce == NULL) {
-        d_nonce = xs_fmt("%08x", arc4random());
+        d_nonce = xs_fmt("%08x", random());
         nonce = d_nonce;
     }
 

+ 4 - 3
utils.c

@@ -198,9 +198,10 @@ void new_password(const char *uid, d_char **clear_pwd, d_char **hashed_pwd)
 {
     int rndbuf[3];
 
-    rndbuf[0] = arc4random();
-    rndbuf[1] = arc4random();
-    rndbuf[2] = arc4random();
+    srandom(time(NULL) ^ getpid());
+    rndbuf[0] = random() & 0xffffffff;
+    rndbuf[1] = random() & 0xffffffff;
+    rndbuf[2] = random() & 0xffffffff;
 
     *clear_pwd  = xs_base64_enc((char *)rndbuf, sizeof(rndbuf));
     *hashed_pwd = hash_password(uid, *clear_pwd, NULL);