Re: [PATCH] KEYS: asym_tpm: Switch to get_random_bytes()

From: James Bottomley
Date: Wed Oct 16 2019 - 15:10:35 EST


On Wed, 2019-10-16 at 19:25 +0300, Jarkko Sakkinen wrote:
> On Wed, Oct 16, 2019 at 08:34:12AM -0400, James Bottomley wrote:
> > reversible ciphers are generally frowned upon in random number
> > generation, that's why the krng uses chacha20. In general I think
> > we shouldn't try to code our own mixing and instead should get the
> > krng to do it for us using whatever the algorithm du jour that the
> > crypto guys have blessed is. That's why I proposed adding the TPM
> > output to the krng as entropy input and then taking the output of
> > the krng.
>
> It is already registered as hwrng. What else?

It only contributes entropy once at start of OS.

> Was the issue that it is only used as seed when the rng is init'd
> first? I haven't at this point gone to the internals of krng.

Basically it was similar to your xor patch except I got the kernel rng
to do the mixing, so it would use the chacha20 cipher at the moment
until they decide that's unsafe and change it to something else:

https://lore.kernel.org/linux-crypto/1570227068.17537.4.camel@xxxxxxxxxxxxxxxxxxxxx/

It uses add_hwgenerator_randomness() to do the mixing. It also has an
unmixed source so that read of the TPM hwrng device works as expected.

James