Re: [PATCH v4 2/5] random: Add and use arch_get_rng_seed

Theodore Ts'o
2014-07-22T13:59:15Z

On Thu, Jul 17, 2014 at 11:22:17AM -0700, Andy Lutomirski wrote:
> Currently, init_std_data contains its own logic for using arch
> random sources. This logic is a bit strange: it reads one long of
> arch random data per byte of internal state.

This isn't true. Check out the init_std_data() a bit more closely.

unsigned long rv;

...

for (i = r->poolinfo->poolbytes; i > 0; i -= sizeof(rv)) {
...

In particular, note the "i -= sizeof(rv)". We are reading one bit per
bit of internal state beeing seeded.

> Assuming the arch sources are perfect, this is the right thing to
> do. They're not, though, so the followup patch attempts to
> implement the correct logic on x86.

... and that's not a problem because we aren't giving any entropy
credit --- and this is deliberate, because we don't want to trust
un-auditable hardware. We are deliberately trying to be conservative
here.

So I don't think either this patch or the next one is needed. It adds
far more complexity than is warranted.

Regards,

- Ted