Nick: "+1 for a fallback in the SIPHash initialisation as well."
Sorry but I don't know a simple function to implement this. We might use the LCG RNG, but it's not really designed to be "secure". I don't think that it makes sense to initialize a shiny SIPHash with a crappy LCG RNG :-)
So I skip my turn on this idea and let others implement them if anyone consider that it's worth it.
To be clear: Python 3 doesn't start when getrandom() and /dev/urandom are not available or don't work, but it's not something new. Python 3.1 already starts with:
fd = open("/dev/urandom", O_RDONLY);
if (fd < 0)
Py_FatalError("Failed to open /dev/urandom");
--
os.urandom() is now blocking, I close the issue. |