]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
Update arc4random.c 749/head
authorryndia <68096721+ryndia@users.noreply.github.com>
Wed, 7 Sep 2022 16:16:20 +0000 (20:16 +0400)
committerGitHub <noreply@github.com>
Wed, 7 Sep 2022 16:16:20 +0000 (20:16 +0400)
compat/arc4random.c

index b536d3143d422120900557ce03f3dde8f240ad94..ae342d3a46c5bc34997faad53996a4b7b93bfc21 100644 (file)
@@ -22,7 +22,7 @@
 /*
  * ChaCha based random number generator for OpenBSD.
  */
-
+#define REKEY_BASE (1024*1024) //base 2
 #include <fcntl.h>
 #include <limits.h>
 #include <signal.h>
@@ -179,7 +179,7 @@ static void
 _rs_stir(void)
 {
        u_char rnd[KEYSZ + IVSZ];
-
+       uint32_t rekey_fuzz = 0;
        if (getentropy(rnd, sizeof rnd) == -1) {
                if(errno != ENOSYS ||
                        fallback_getentropy_urandom(rnd, sizeof rnd) == -1) {
@@ -201,7 +201,9 @@ _rs_stir(void)
        rs->rs_have = 0;
        memset(rsx->rs_buf, 0, sizeof(rsx->rs_buf));
 
-       rs->rs_count = 1600000;
+       /*rs->rs_count = 1600000;*/
+       chacha_encrypt_bytes(&rsx->rs_chacha, (uint8_t *)&rekey_fuzz,(uint8_t *)&rekey_fuzz, sizeof(rekey_fuzz));
+        rs->rs_count = REKEY_BASE + (rekey_fuzz % REKEY_BASE);
 }
 
 static inline void