On the other hand, using the system cryptographic RNG (/dev/urandom, CryptGenRandom) is probably less effort than it took to write this strange half-baked RNG.
https://github.com/jedisct1/libsodium/blob/master/src/libsod...
They sum it up in their docs like this:
- On Windows systems, the RtlGenRandom() function is used
- On OpenBSD and Bitrig, the arc4random() function is used
- On recent Linux kernels, the getrandom system call is used
- On other Unices, the /dev/urandom device is used
# if defined(__FreeBSD_version) && __FreeBSD_version >= 1200000
# include <sys/random.h>
# define HAVE_LINUX_COMPATIBLE_GETRANDOMAnd 7-Zip first shipped in 1999. Granted, AES support was only added in 2003, but the app still had to run on Win2K and 9x back then.