Message 150635 - Python tracker (original) (raw)
add PyOS_URandom() using CryptoGen, SSL (only on VMS!!) or /dev/urandom
Oh, OpenSSL (RAND_pseudo_bytes) should be used on Windows, Linux, Mac OS X, etc. if OpenSSL is available. I was just too lazy to add a define or pyconfig.h option to indicate if OpenSSL is available or not. FYI RAND_pseudo_bytes() is now exposed in the ssl module of Python 3.3.
will a fallback on a dummy LCG
It's the Linear congruent generator (LCG) used by Microsoft Visual C++ and PHP:
x(n+1) = (x(n) * 214013 + 2531011) % 2^32
I only use bits 23..16 (bits 15..0 are not really random).