From: Keith Packard <keithp@keithp.com>
To: Jason Cooper <jason@lakedaemon.net>
Cc: Herbert Xu <herbert@gondor.apana.org.au>,
linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] hwrng: core - Allow for multiple simultaneous active hwrng devices
Date: Tue, 09 Aug 2016 12:01:13 -0700 [thread overview]
Message-ID: <86shudrcli.fsf@hiro.keithp.com> (raw)
In-Reply-To: <20160809182620.GF2013@io.lakedaemon.net>
[-- Attachment #1: Type: text/plain, Size: 2188 bytes --]
Jason Cooper <jason@lakedaemon.net> writes:
> On another thread, regarding the ath9k-rng (actually just the adc
> registers), Henrique asked about per-source knobs. My suggestion
> follows from that.
I'd do that with the source-specific driver instead of attempting to
route controls through hwrng. Anything else seems like 'ioctl' to me.
> Sure, but /dev/hwrng is a user interface. Typically to rngd, but not
> necessarily. We need to make sure it's behavior is consistent with
> existing expectations.
Hrm. Maybe /dev/hwrng should use a different policy than how we feed
/dev/random -- we could use the existing behaviour for /dev/hwrng, but
use a round-robin for /dev/random. That way, the latest device would
always end up in /dev/hwrng (unless configured otherwise), and we'd
still use all of the available sources to help stir the kernel entropy
pool.
> We shouldn't attach first-probed to /dev/hwrng, because that may not be
> what the user is expecting. If I bought a raw entropy source, and knew
> nothing of the proposed multi-source interfaces, I'd expect the USB
> dongle to be attached to /dev/hwrng. Despite the fact that my pcie wifi
> card was probed first and has adc registers providing an entropy source.
That seems like a fragile interface as it depends on discovery order,
but it is what we have currently.
The chaoskey driver also exposes it's own device; that provides a simple
way to ensure that the application is getting bits from the desired
entropy source.
> I'm not sure how we ensure that. Perhaps an 'environmental' flag in the
> hw_random source attributes? Or a 'not-designed-to-be-an-rng' flag? :)
> Maybe those would be /dev/envrng[0-9]...
Or some set of query ioctls on /dev/hwrng[0-9]+ that would provide
information about the capabilities of the underlying device.
There are lots of things we could do, I guess the question I have is how
much of this would applications actually use effectively? You're
probably right that /dev/hwrng should point at a single source and not
change though; otherwise figuring out what the quality of the bits
you're getting isn't possible.x
--
-keith
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 810 bytes --]
next prev parent reply other threads:[~2016-08-09 19:01 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-25 20:07 [PATCH] hwrng: core - Allow for multiple simultaneous active hwrng devices Keith Packard
2016-08-09 9:50 ` Herbert Xu
2016-08-09 16:57 ` Jason Cooper
2016-08-09 17:58 ` Keith Packard
2016-08-09 18:26 ` Jason Cooper
2016-08-09 19:01 ` Keith Packard [this message]
2016-08-09 20:18 ` Henrique de Moraes Holschuh
2016-08-09 23:26 ` Keith Packard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=86shudrcli.fsf@hiro.keithp.com \
--to=keithp@keithp.com \
--cc=herbert@gondor.apana.org.au \
--cc=jason@lakedaemon.net \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.