Lines Matching defs:fortuna_state
104 static struct fortuna_state {
120 } fortuna_state;
292 fortuna_state.fs_minpoolsize = RANDOM_FORTUNA_DEFPOOLSIZE;
294 fortuna_state.fs_lasttime = 0;
302 &fortuna_state.fs_minpoolsize, RANDOM_FORTUNA_DEFPOOLSIZE,
305 KASSERT(fortuna_state.fs_minpoolsize > 0, ("random: Fortuna threshold must be > 0 at startup"));
319 randomdev_hash_init(&fortuna_state.fs_pool[i].fsp_hash);
320 fortuna_state.fs_pool[i].fsp_length = 0;
322 fortuna_state.fs_reseedcount = 0;
328 fortuna_state.fs_counter = UINT128_ZERO;
329 explicit_bzero(&fortuna_state.fs_key, sizeof(fortuna_state.fs_key));
373 randomdev_hash_iterate(&fortuna_state.fs_pool[pl].fsp_hash,
375 randomdev_hash_iterate(&fortuna_state.fs_pool[pl].fsp_hash,
383 fortuna_state.fs_pool[pl].fsp_length = MIN(RANDOM_FORTUNA_MAXPOOLSIZE,
384 fortuna_state.fs_pool[pl].fsp_length +
411 randomdev_getkey(&fortuna_state.fs_key, &keymaterial, &keysz);
429 randomdev_encrypt_init(&fortuna_state.fs_key, hash);
432 if (uint128_is_zero(fortuna_state.fs_counter))
434 uint128_increment(&fortuna_state.fs_counter);
454 KASSERT(fortuna_state.fs_minpoolsize > 0, ("random: Fortuna threshold must be > 0"));
461 if (fortuna_state.fs_pool[0].fsp_length < fortuna_state.fs_minpoolsize
467 || (__predict_true(fortuna_state.fs_lasttime != 0) &&
468 now - fortuna_state.fs_lasttime <= SBT_1S/10)
488 fortuna_state.fs_lasttime = now;
492 fortuna_state.fs_reseedcount++;
496 if ((fortuna_state.fs_reseedcount % (1 << i)) == 0) {
502 randomdev_hash_finish(&fortuna_state.fs_pool[i].fsp_hash, temp);
503 randomdev_hash_init(&fortuna_state.fs_pool[i].fsp_hash);
504 fortuna_state.fs_pool[i].fsp_length = 0;
512 SDT_PROBE2(random, fortuna, event_processor, debug, fortuna_state.fs_reseedcount, fortuna_state.fs_pool);
708 KASSERT(!uint128_is_zero(fortuna_state.fs_counter), ("FS&K: C != 0"));
714 memcpy(&counter_copy, &fortuna_state.fs_counter, sizeof(counter_copy));
715 memcpy(&key_copy, &fortuna_state.fs_key, sizeof(key_copy));
722 uint128_add64(&fortuna_state.fs_counter, blockcount);
732 randomdev_keystream(&fortuna_state.fs_key, &fortuna_state.fs_counter,
734 randomdev_encrypt_init(&fortuna_state.fs_key, newkey);
770 KASSERT(!uint128_is_zero(fortuna_state.fs_counter), ("FS&K: C != 0"));
773 &fortuna_state.fs_counter, &fortuna_state.fs_key, FORTUNA_LOCKED);
793 return (!uint128_is_zero(fortuna_state.fs_counter));