Current File : //usr/lib64/python2.7/site-packages/Crypto/Random/random.pyc
�
Bd\Rc@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((s:/usr/lib64/python2.7/site-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((s:/usr/lib64/python2.7/site-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((s:/usr/lib64/python2.7/site-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((s:/usr/lib64/python2.7/site-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((s:/usr/lib64/python2.7/site-packages/Crypto/Random/random.pyR_scCsOt|�}x<tt|��D](}|j|jt|���||<qWdS(sShuffle the sequence in place.N(tlisttxrangeRtpopR(R
txtitemsti((s:/usr/lib64/python2.7/site-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!((s:/usr/lib64/python2.7/site-packages/Crypto/Random/random.pyRrsN(
t__name__t
__module__R	RRRRRRR(((s:/usr/lib64/python2.7/site-packages/Crypto/Random/random.pyR#s
		"				
(RRt
long_to_bytesR(t__doc__t__revision__t__all__tCryptoRtsystversion_infotCrypto.Util.py21compattobjectRt_rRRRRRRtCrypto.Util.numberRRR5R(((s:/usr/lib64/python2.7/site-packages/Crypto/Random/random.pyt<module>s&
`