On 10/12/26 5:11 PM, Aaron Conole wrote: > Until now, utilities wishing access to a quality source of > cryptographically secure random numbers would have to either > forego security and just use the xorshift, or use one of a > few very slow entropy options like get_entropy_or_die or > OpenSSL's RAND_bytes() calls. Both of these are quality > tested mechanisms, but the drawback is a very long time to > execute (measured 10m iterations of rand_bytes taking > roughly 5.14s to complete). > > This change adds a ChaCha20 based CSPRNG, which is known > to be a high quality CSPRNG. The benefits are very fast > execution time (the same 10m iterations only take 0.059s > vs. the PRNG taking 0.018s). > > The implementation heavily relies on referencing the > following: > * RFC 8439, "ChaCha20 and Poly1305 for IETF Protocols" > * libevent/arc4random.c, "Arc4 random number generator for OpenBSD." > * glibc/stdlib/arc4random.c, "Psuedo random number generator" > * Ben Tasker, "Writing (and backdooring) a ChaCha20 based CSPRNG" > > Signed-off-by: Aaron Conole <[email protected]> > --- > lib/random.c | 157 ++++++++++++++++++++++++++++++++++++++++++++ > lib/random.h | 15 +++++ > tests/library.at | 1 + > tests/test-random.c | 67 +++++++++++++++++++ > 4 files changed, 240 insertions(+) >
[...] > +/* This is the 32-bit CSPRNG adapted from the ChaCha20 algorithm from > + * arc4random(3) and from the Linux kernel's get_random_u32(). What does that mean for licensing of this code? Do we need to bring here both GPL and the LGPL? Best regards, Ilya Maximets. _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
