]> git.ipfire.org Git - thirdparty/systemd.git/commit
random-util: make use of GRND_INSECURE when it is defined
authorLennart Poettering <lennart@poettering.net>
Sun, 10 May 2020 09:15:16 +0000 (11:15 +0200)
committerLennart Poettering <lennart@poettering.net>
Sun, 10 May 2020 09:15:16 +0000 (11:15 +0200)
commit0497c4c28ae2446a58ec0869f5993305bc8e29e0
treee48d786d838feec55865df10362f42243da464d1
parente2b55464523adbb3732eb632ac2a21b685935642
random-util: make use of GRND_INSECURE when it is defined

kernel 5.6 added support for a new flag for getrandom(): GRND_INSECURE.
If we set it we can get some random data out of the kernel random pool,
even if it is not yet initializated. This is great for us to initialize
hash table seeds and such, where it is OK if they are crap initially. We
used RDRAND for these cases so far, but RDRAND is only available on
newer CPUs and some archs. Let's now use GRND_INSECURE for these cases
as well, which means we won't needlessly delay boot anymore even on
archs/CPUs that do not have RDRAND.

Of course we never set this flag when generating crypto keys or uuids.
Which makes it different from RDRAND for us (and is the reason I think
we should keep explicit RDRAND support in): RDRAND we don't trust enough
for crypto keys. But we do trust it enough for UUIDs.
src/basic/missing_random.h
src/basic/random-util.c
src/basic/random-util.h
src/test/test-random-util.c