[Python-Dev] BDFL ruling request: should we block forever waiting for high-quality random bits? (original) (raw)

M.-A. Lemburg mal at egenix.com
Fri Jun 10 16:30:29 EDT 2016


On 10.06.2016 20:55, Donald Stufft wrote:

Ok, so you’re looking for how would you replicate the blocking behavior of os.urandom that exists in 3.5.0 and 3.5.1?

In that case, it’s hard. I don’t think linux provides any way to externally determine if /dev/urandom has been initialized or not. Probably the easiest thing to do would be to interface with the getrandom() function using a c-ext, CFFI, or ctypes. If you’re looking for a way of doing this without calling the getrandom() function.. I believe the answer is you can’t.

Well, you can see the effect by running Python early in the boot process.

See e.g. http://bugs.python.org/issue26839#msg267749

and if you look at the system log file, you'll find a notice entry "random: %s pool is initialized" which gets written once the pool is initialized:

http://lxr.free-electrons.com/source/drivers/char/random.c#L684

-- Marc-Andre Lemburg eGenix.com

Professional Python Services directly from the Experts (#1, Jun 10 2016)

Python Projects, Coaching and Consulting ... http://www.egenix.com/ Python Database Interfaces ... http://products.egenix.com/ Plone/Zope Database Interfaces ... http://zope.egenix.com/


::: We implement business ideas - efficiently in both time and costs :::

eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 http://www.egenix.com/company/contact/ http://www.malemburg.com/



More information about the Python-Dev mailing list