diff options
| -rw-r--r-- | mastoapi.c | 8 | ||||
| -rw-r--r-- | snac.c | 2 | ||||
| -rw-r--r-- | utils.c | 7 |
3 files changed, 9 insertions, 8 deletions
| @@ -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)); |
| @@ -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 | ||
| @@ -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); |