Lines Matching +full:no +full:- +full:chacha

14  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
23 * ChaCha based random number generator for OpenBSD.
70 chacha_ctx rs_chacha; /* chacha context for random keystream */
88 return -1; in fallback_gotdata()
110 if (fd == -1) { in fallback_getentropy_urandom()
121 size_t wanted = len - i; in fallback_getentropy_urandom()
124 if (ret == -1) { in fallback_getentropy_urandom()
139 return -1; in fallback_getentropy_urandom()
152 MAP_ANON|MAP_PRIVATE, -1, 0)) == MAP_FAILED) in _rs_init()
155 if (minherit(rs, sizeof(*rs), MAP_INHERIT_ZERO) == -1) in _rs_init()
167 MAP_ANON|MAP_PRIVATE, -1, 0)) == MAP_FAILED) in _rs_init()
176 chacha_keysetup(&rsx->rs_chacha, buf, KEYSZ * 8, 0); in _rs_init()
177 chacha_ivsetup(&rsx->rs_chacha, buf + KEYSZ); in _rs_init()
186 if (getentropy(rnd, sizeof rnd) == -1) { in _rs_stir()
188 fallback_getentropy_urandom(rnd, sizeof rnd) == -1) { in _rs_stir()
204 rs->rs_have = 0; in _rs_stir()
205 memset(rsx->rs_buf, 0, sizeof(rsx->rs_buf)); in _rs_stir()
208 chacha_encrypt_bytes(&rsx->rs_chacha, (uint8_t *)&rekey_fuzz, in _rs_stir()
210 rs->rs_count = REKEY_BASE + (rekey_fuzz % REKEY_BASE); in _rs_stir()
224 rs->rs_count = 0; in _rs_stir_if_needed()
227 if (!rs || rs->rs_count <= len) in _rs_stir_if_needed()
229 if (rs->rs_count <= len) in _rs_stir_if_needed()
230 rs->rs_count = 0; in _rs_stir_if_needed()
232 rs->rs_count -= len; in _rs_stir_if_needed()
239 memset(rsx->rs_buf, 0, sizeof(rsx->rs_buf)); in _rs_rekey()
242 chacha_encrypt_bytes(&rsx->rs_chacha, rsx->rs_buf, in _rs_rekey()
243 rsx->rs_buf, sizeof(rsx->rs_buf)); in _rs_rekey()
250 rsx->rs_buf[i] ^= dat[i]; in _rs_rekey()
253 _rs_init(rsx->rs_buf, KEYSZ + IVSZ); in _rs_rekey()
254 memset(rsx->rs_buf, 0, KEYSZ + IVSZ); in _rs_rekey()
255 rs->rs_have = sizeof(rsx->rs_buf) - KEYSZ - IVSZ; in _rs_rekey()
267 if (rs->rs_have > 0) { in _rs_random_buf()
268 m = arc4_min(n, rs->rs_have); in _rs_random_buf()
269 keystream = rsx->rs_buf + sizeof(rsx->rs_buf) in _rs_random_buf()
270 - rs->rs_have; in _rs_random_buf()
274 n -= m; in _rs_random_buf()
275 rs->rs_have -= m; in _rs_random_buf()
277 if (rs->rs_have == 0) in _rs_random_buf()
287 if (rs->rs_have < sizeof(*val)) in _rs_random_u32()
289 keystream = rsx->rs_buf + sizeof(rsx->rs_buf) - rs->rs_have; in _rs_random_u32()
292 rs->rs_have -= sizeof(*val); in _rs_random_u32()