Re: [PATCH 3/8] random: trigger random_ready callback upon crng_init == 1

From: Stephan Müller
Date: Wed Jan 18 2017 - 12:10:29 EST


Am Dienstag, 17. Januar 2017, 23:12:50 CET schrieb Theodore Ts'o:

Hi Theodore,

> On Tue, Dec 27, 2016 at 11:39:57PM +0100, Stephan Müller wrote:
> > The random_ready callback mechanism is intended to replicate the
> > getrandom system call behavior to in-kernel users. As the getrandom
> > system call unblocks with crng_init == 1, trigger the random_ready
> > wakeup call at the same time.
>
> It was deliberate that random_ready would only get triggered with
> crng_init==2.
>
> In general I'm assuming kernel callers really want real randomness (as
> opposed to using prandom), where as there's a lot of b.s. userspace
> users of kernel randomness (for things that really don't require
> cryptographic randomness, e.g., for salting Python dictionaries,
> systemd/udev using /dev/urandom for non-cryptographic, non-security
> applications etc.)

Users of getrandom want to ensure that they get random data from a DRNG that
is seeded, just like in-kernel users may want if they choose the callback-
approach.

I do not understand why there should be different treatment of in-kernel vs
user space callers in that respect.

(And yes, I do not want to open a discussion whether crng_init==1 can
considered as a sufficiently seeded DRNG as such discussion will lead
nowhere.)

Ciao
Stephan