summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mastoapi.c8
-rw-r--r--snac.c2
-rw-r--r--utils.c7
3 files changed, 9 insertions, 8 deletions
diff --git a/mastoapi.c b/mastoapi.c
index c562203..af8fb27 100644
--- a/mastoapi.c
+++ b/mastoapi.c
@@ -21,10 +21,10 @@ static xs_str *random_str(void)
21 fclose(f); 21 fclose(f);
22 } 22 }
23 else { 23 else {
24 data[0] = arc4random(); 24 data[0] = random() % 0xffffffff;
25 data[1] = arc4random(); 25 data[1] = random() % 0xffffffff;
26 data[2] = arc4random(); 26 data[2] = random() % 0xffffffff;
27 data[3] = arc4random(); 27 data[3] = random() % 0xffffffff;
28 } 28 }
29 29
30 return xs_hex_enc((char *)data, sizeof(data)); 30 return xs_hex_enc((char *)data, sizeof(data));
diff --git a/snac.c b/snac.c
index f818dd8..a5b2080 100644
--- a/snac.c
+++ b/snac.c
@@ -123,7 +123,7 @@ d_char *hash_password(const char *uid, const char *passwd, const char *nonce)
123 xs *hash; 123 xs *hash;
124 124
125 if (nonce == NULL) { 125 if (nonce == NULL) {
126 d_nonce = xs_fmt("%08x", arc4random()); 126 d_nonce = xs_fmt("%08x", random());
127 nonce = d_nonce; 127 nonce = d_nonce;
128 } 128 }
129 129
diff --git a/utils.c b/utils.c
index 24a2c66..24a6be6 100644
--- a/utils.c
+++ b/utils.c
@@ -198,9 +198,10 @@ void new_password(const char *uid, d_char **clear_pwd, d_char **hashed_pwd)
198{ 198{
199 int rndbuf[3]; 199 int rndbuf[3];
200 200
201 rndbuf[0] = arc4random(); 201 srandom(time(NULL) ^ getpid());
202 rndbuf[1] = arc4random(); 202 rndbuf[0] = random() & 0xffffffff;
203 rndbuf[2] = arc4random(); 203 rndbuf[1] = random() & 0xffffffff;
204 rndbuf[2] = random() & 0xffffffff;
204 205
205 *clear_pwd = xs_base64_enc((char *)rndbuf, sizeof(rndbuf)); 206 *clear_pwd = xs_base64_enc((char *)rndbuf, sizeof(rndbuf));
206 *hashed_pwd = hash_password(uid, *clear_pwd, NULL); 207 *hashed_pwd = hash_password(uid, *clear_pwd, NULL);