On Thu, Sep 12, 2019 at 9:25 AM Theodore Y. Ts'o <tytso@xxxxxxx> wrote: > > Hmm, one thought might be GRND_FAILSAFE, which will wait up to two > minutes before returning "best efforts" randomness and issuing a huge > massive warning if it is triggered? Yeah, based on (by now) _years_ of experience with people mis-using "get me random numbers", I think the sense of a new flag needs to be "yeah, I'm willing to wait for it". Because most people just don't want to wait for it, and most people don't think about it, and we need to make the default be for that "don't think about it" crowd, with the people who ask for randomness sources for a secure key having to very clearly and very explicitly say "Yes, I understand that this can take minutes and can only be done long after boot". Even then people will screw that up because they copy code, or some less than gifted rodent writes a library and decides "my library is so important that I need that waiting sooper-sekrit-secure random number", and then people use that broken library by mistake without realizing that it's not going to be reliable at boot time. An alternative might be to make getrandom() just return an error instead of waiting. Sure, fill the buffer with "as random as we can" stuff, but then return -EINVAL because you called us too early. Linus