diff --git a/random.c b/random.c index 8f75cc10..b9b51885 100644 --- a/random.c +++ b/random.c @@ -29,6 +29,7 @@ void random_state_init(struct random_state *state) { get_random_seed(rnd, sizeof(rnd)); chacha_keysetup(&state->ctx, rnd); chacha_ivsetup(&state->ctx, rnd + CHACHA_KEY_SIZE); + explicit_bzero(rnd, CHACHA_KEY_SIZE + CHACHA_IV_SIZE); state->index = RANDOM_CACHE_SIZE; state->reseed = 0; } @@ -38,6 +39,7 @@ void random_state_init_from_random_state(struct random_state *state, struct rand get_random_bytes(source, rnd, sizeof(rnd)); chacha_keysetup(&state->ctx, rnd); chacha_ivsetup(&state->ctx, rnd + CHACHA_KEY_SIZE); + explicit_bzero(rnd, CHACHA_KEY_SIZE + CHACHA_IV_SIZE); state->index = RANDOM_CACHE_SIZE; state->reseed = 0; }