From mboxrd@z Thu Jan 1 00:00:00 1970 From: Theodore Ts'o Subject: Re: [PATCH v4 2/5] random: Add and use arch_get_rng_seed Date: Tue, 22 Jul 2014 09:59:15 -0400 Message-ID: <20140722135915.GB25291@thunk.org> References: <9c2a0549519b4eb5eee2d5d480f8e83a574273df.1405620944.git.luto@amacapital.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: kvm@vger.kernel.org, "H. Peter Anvin" , linux-kernel@vger.kernel.org, Kees Cook , x86@kernel.org, Daniel Borkmann , Srivatsa Vaddagiri , Raghavendra K T , Gleb Natapov , Paolo Bonzini , bsd@redhat.com, Andrew Honig To: Andy Lutomirski Return-path: Content-Disposition: inline In-Reply-To: <9c2a0549519b4eb5eee2d5d480f8e83a574273df.1405620944.git.luto@amacapital.net> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org 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