> On Nov 2, 2016, at 1:35 PM, Dominik Hassler <[email protected]> wrote: > > Hi, > > just a general question. Where does Omnios/Illumos get it's entropy from to > feed /dev/random. > > This is just out of curiosity since I can drain any /dev/random on e.g. a > linux system (w/o a HWRNG) easily by doing: > > $ cat /dev/random > > But on OmniOS it is not possible to drain the entropy pool at all on > /dev/random.
Use the source! http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/io/random.c#227 That's the /dev/random read() routine. Note how it calls kcf_rnd_get_bytes()? And note the block() parameter depends on how you open it? You'll get to rnd_get_bytes(), which calls rngprov_getbytes(), which then calls all of the random providers to get more. In this case, it's swrand. Here's the core routine: http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/crypto/io/swrand.c#swrand_get_entropy A lot comes from physical memory trolling, e.g.: http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/crypto/io/swrand.c#656 One could add another RNG provider using CPU features, but given recent revelations about the some of Intel ones, I'm not so sure how good of an idea that might be. Dan _______________________________________________ OmniOS-discuss mailing list [email protected] http://lists.omniti.com/mailman/listinfo/omnios-discuss
