/*
* ChaCha based random number generator for OpenBSD.
*/
-
+#define REKEY_BASE (1024*1024) //base 2
#include <fcntl.h>
#include <limits.h>
#include <signal.h>
_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) {
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