From: ryndia <68096721+ryndia@users.noreply.github.com> Date: Wed, 7 Sep 2022 16:16:20 +0000 (+0400) Subject: Update arc4random.c X-Git-Tag: release-1.17.0rc1~22^2^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F749%2Fhead;p=thirdparty%2Funbound.git Update arc4random.c --- diff --git a/compat/arc4random.c b/compat/arc4random.c index b536d3143..ae342d3a4 100644 --- a/compat/arc4random.c +++ b/compat/arc4random.c @@ -22,7 +22,7 @@ /* * ChaCha based random number generator for OpenBSD. */ - +#define REKEY_BASE (1024*1024) //base 2 #include #include #include @@ -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