summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar default2023-04-16 20:19:25 +0200
committerGravatar default2023-04-16 20:19:25 +0200
commitf658f345cac7b24d6fa61f08b4ec09823d28b11a (patch)
treebf24a9a43ff15e907e131fc78516b3bf03d3a913
parentReplaced strcpy() with strncpy(). (diff)
downloadsnac2-f658f345cac7b24d6fa61f08b4ec09823d28b11a.tar.gz
snac2-f658f345cac7b24d6fa61f08b4ec09823d28b11a.tar.xz
snac2-f658f345cac7b24d6fa61f08b4ec09823d28b11a.zip
Replaced random() with arc4random().
-rw-r--r--mastoapi.c8
-rw-r--r--snac.c2
-rw-r--r--utils.c7
3 files changed, 8 insertions, 9 deletions
diff --git a/mastoapi.c b/mastoapi.c
index af8fb27..c562203 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] = random() % 0xffffffff; 24 data[0] = arc4random();
25 data[1] = random() % 0xffffffff; 25 data[1] = arc4random();
26 data[2] = random() % 0xffffffff; 26 data[2] = arc4random();
27 data[3] = random() % 0xffffffff; 27 data[3] = arc4random();
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 a5b2080..f818dd8 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", random()); 126 d_nonce = xs_fmt("%08x", arc4random());
127 nonce = d_nonce; 127 nonce = d_nonce;
128 } 128 }
129 129
diff --git a/utils.c b/utils.c
index 24a6be6..24a2c66 100644
--- a/utils.c
+++ b/utils.c
@@ -198,10 +198,9 @@ 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 srandom(time(NULL) ^ getpid()); 201 rndbuf[0] = arc4random();
202 rndbuf[0] = random() & 0xffffffff; 202 rndbuf[1] = arc4random();
203 rndbuf[1] = random() & 0xffffffff; 203 rndbuf[2] = arc4random();
204 rndbuf[2] = random() & 0xffffffff;
205 204
206 *clear_pwd = xs_base64_enc((char *)rndbuf, sizeof(rndbuf)); 205 *clear_pwd = xs_base64_enc((char *)rndbuf, sizeof(rndbuf));
207 *hashed_pwd = hash_password(uid, *clear_pwd, NULL); 206 *hashed_pwd = hash_password(uid, *clear_pwd, NULL);