ó J(Zc@svdZdgZddlZddlZddlZddlmZddlmZdefd„ƒYZ d„Z dS(s$Id$t DevURandomRNGi˙˙˙˙N(tBaseRNG(tbcBs&eZdd„Zd„Zd„ZRS(cCsž|dkrd|_n ||_t|jddƒ}tj|jƒƒtj}tj|ƒs„|j ƒt d|jfƒ‚n||_ t j |ƒdS(Ns /dev/urandomtrbis$%r is not a character special device(tNonetnametopentostfstattfilenotstattST_MODEtS_ISCHRtcloset TypeErrort_DevURandomRNG__fileRt__init__(tselftdevnametftfmode((s;/tmp/pip-build-LvEk9W/pycrypto/Crypto/Random/OSRNG/posix.pyR%s     cCs|jjƒdS(N(RR (R((s;/tmp/pip-build-LvEk9W/pycrypto/Crypto/Random/OSRNG/posix.pyt_close6scCsŞtdƒ}x—t|ƒ|krĽy |jj|t|ƒƒ}Wn.tk rq}|jtjkrkqn‚nX|dkr‚|St|ƒdkr˜|S||7}qW|S(Nti(RtlenRtreadtIOErrorterrnotEINTRR(RtNtdatatdte((s;/tmp/pip-build-LvEk9W/pycrypto/Crypto/Random/OSRNG/posix.pyt_read9s   N(t__name__t __module__RRRR (((s;/tmp/pip-build-LvEk9W/pycrypto/Crypto/Random/OSRNG/posix.pyR#s  cOs t||ŽS(N(R(targstkwargs((s;/tmp/pip-build-LvEk9W/pycrypto/Crypto/Random/OSRNG/posix.pytnewRs( t __revision__t__all__RRR trng_baseRtCrypto.Util.py3compatRRR%(((s;/tmp/pip-build-LvEk9W/pycrypto/Crypto/Random/OSRNG/posix.pyts    /