Your IP : 172.28.240.42


Current Path : /usr/lib/python2.7/dist-packages/Crypto/Random/
Upload File :
Current File : //usr/lib/python2.7/dist-packages/Crypto/Random/random.pyc

ó
T:´Nc@sñdZdZdddddddgZd	d
lmZd	dlZejdd
krvejddkrvd	dlTndefd„ƒYZ	e	ƒZ
e
jZe
jZe
j
Z
e
jZe
jZe
jZd	dlmZmZmZmZdS(sHA cryptographically strong version of Python's standard "random" module.s$Id$tStrongRandomtgetrandbitst	randrangetrandinttchoicetshuffletsampleiÿÿÿÿ(tRandomNiii(t*cBsMeZddd„Zd„Zd„Zd„Zd„Zd„Zd„Z	RS(cCs|dkr$|dkr$d|_nW|dk	rH|dkrH||_n3|dkro|dk	ro|j|_ntdƒ‚dS(Ns(Cannot specify both 'rng' and 'randfunc'(tNonet	_randfunctreadt
ValueError(tselftrngtrandfunc((s8/usr/lib/python2.7/dist-packages/Crypto/Random/random.pyt__init__$scCsR|jdkr$tjƒj|_nd|>d}|t|jt|dƒƒƒ@S(s0Return a python long integer with k random bits.liiN(R
R	RtnewRt
bytes_to_longtceil_div(R
tktmask((s8/usr/lib/python2.7/dist-packages/Crypto/Random/random.pyR.scGs„t|ƒdkr$|\}}}njt|ƒdkrK|\}}d}nCt|ƒdkru|\}d}d}ntdt|ƒfƒ‚t|ttfƒsÐt|ttfƒsÐt|ttfƒrßtdƒ‚n|dkrútdƒ‚nt|||ƒ}|dkr"d}n|dkrJtd|||fƒ‚n|}x%||krw|jt|ƒƒ}qSW|||S(	skrandrange([start,] stop[, step]):
        Return a randomly-selected element from range(start, stop, step).iiiis.randrange expected at most 3 arguments, got %ds$randrange requires integer argumentss(randrange step argument must not be zeros%empty range for randrange(%r, %r, %r)(	tlent	TypeErrort
isinstancetinttlongRRRtsize(R
targststarttstoptsteptnum_choicestr((s8/usr/lib/python2.7/dist-packages/Crypto/Random/random.pyR5s2				cCswt|ttfƒs,t|ttfƒr;tdƒ‚n|j||dƒ}||koh|knsst‚|S(s0Return a random integer N such that a <= N <= b.s"randint requires integer argumentsi(RRRRRtAssertionError(R
tatbtN((s8/usr/lib/python2.7/dist-packages/Crypto/Random/random.pyRWs
,"cCs8t|ƒdkr!tdƒ‚n||jt|ƒƒS(srReturn a random element from a (non-empty) sequence.

        If the seqence is empty, raises IndexError.
        isempty sequence(Rt
IndexErrorR(R
tseq((s8/usr/lib/python2.7/dist-packages/Crypto/Random/random.pyR_scCsOt|ƒ}x<tt|ƒƒD](}|j|jt|ƒƒƒ||<qWdS(sShuffle the sequence in place.N(tlisttxrangeRtpopR(R
txtitemsti((s8/usr/lib/python2.7/dist-packages/Crypto/Random/random.pyRhscCs t|ƒ}||kr'tdƒ‚ng}i}xft|ƒD]X}d}x.|dksj|j|ƒr||j|ƒ}qOW|j||ƒd||<q@W|S(sNReturn a k-length list of unique elements chosen from the population sequence.ssample larger than populationiN(RRR)R	thas_keyRtappend(R
t
populationRR tretvaltselectedR-R!((s8/usr/lib/python2.7/dist-packages/Crypto/Random/random.pyRrsN(
t__name__t
__module__R	RRRRRRR(((s8/usr/lib/python2.7/dist-packages/Crypto/Random/random.pyR#s
		"				
(RRt
long_to_bytesR(t__doc__t__revision__t__all__tCryptoRtsystversion_infotCrypto.Util.py21compattobjectRt_rRRRRRRtCrypto.Util.numberRRR5R(((s8/usr/lib/python2.7/dist-packages/Crypto/Random/random.pyt<module>s&
`