• J
    random: mix build-time latent entropy into pool at init · 1754abb3
    Jason A. Donenfeld 提交于
    Prior, the "input_pool_data" array needed no real initialization, and so
    it was easy to mark it with __latent_entropy to populate it during
    compile-time. In switching to using a hash function, this required us to
    specifically initialize it to some specific state, which means we
    dropped the __latent_entropy attribute. An unfortunate side effect was
    this meant the pool was no longer seeded using compile-time random data.
    In order to bring this back, we declare an array in rand_initialize()
    with __latent_entropy and call mix_pool_bytes() on that at init, which
    accomplishes the same thing as before. We make this __initconst, so that
    it doesn't take up space at runtime after init.
    
    Fixes: 6e8ec255 ("random: use computational hash for entropy extraction")
    Reviewed-by: NDominik Brodowski <linux@dominikbrodowski.net>
    Reviewed-by: NTheodore Ts'o <tytso@mit.edu>
    Signed-off-by: NJason A. Donenfeld <Jason@zx2c4.com>
    1754abb3
random.c 51.5 KB