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

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

This reverts commit f658f345ca.
This commit is contained in:
default 2023-04-16 20:27:38 +02:00
parent f658f345ca
commit 3ccf4e3759
3 changed files with 9 additions and 8 deletions

View File

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

2
snac.c
View File

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

View File

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