Current File : //usr/lib64/python2.7/site-packages/Crypto/Random/random.pyc |
�
Bd\Rc @ s� d Z d Z d d d d d d d g Z d d
l m Z d d l Z e j d d
k rv e j d d k rv d d l Tn d e f d � � YZ e � Z
e
j Z e
j Z e
j
Z
e
j Z e
j Z e
j Z d d l m Z m Z m Z m Z d S( sH A cryptographically strong version of Python's standard "random" module.s $Id$t StrongRandomt getrandbitst randranget randintt choicet shufflet samplei����( t RandomNi i i ( t *c B sM e Z d d d � Z d � Z d � Z d � Z d � Z d � Z d � Z RS( c C s | d k r$ | d k r$ d | _ nW | d k rH | d k rH | | _ n3 | d k ro | d k ro | j | _ n t d � � d S( Ns( Cannot specify both 'rng' and 'randfunc'( t Nonet _randfunct readt
ValueError( t selft rngt randfunc( ( s: /usr/lib64/python2.7/site-packages/Crypto/Random/random.pyt __init__$ s c C sR | j d k r$ t j � j | _ n d | >d } | t | j t | d � � � @S( s0 Return a python long integer with k random bits.l i i N( R
R R t newR t
bytes_to_longt ceil_div( R
t kt mask( ( s: /usr/lib64/python2.7/site-packages/Crypto/Random/random.pyR . s c G s� t | � d k r$ | \ } } } nj t | � d k rK | \ } } d } nC t | � d k ru | \ } d } d } n t d t | � f � � t | t t f � s� t | t t f � s� t | t t f � r� t d � � n | d k r� t d � � n t | | | � } | d k r"d } n | d k rJt d | | | f � � n | } x% | | k rw| j t | � � } qSW| | | S( sk randrange([start,] stop[, step]):
Return a randomly-selected element from range(start, stop, step).i i i i s. 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)( t lent TypeErrort
isinstancet intt longR R R t size( R
t argst startt stopt stept num_choicest r( ( s: /usr/lib64/python2.7/site-packages/Crypto/Random/random.pyR 5 s2 c C sw t | t t f � s, t | t t f � r; t d � � n | j | | d � } | | k oh | k n ss t � | S( s0 Return a random integer N such that a <= N <= b.s"