Current Path : /usr/lib/python2.7/dist-packages/Crypto/Random/ |
Current File : //usr/lib/python2.7/dist-packages/Crypto/Random/random.pyc |
ó T:´Nc @ 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( ( s8 /usr/lib/python2.7/dist-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( ( s8 /usr/lib/python2.7/dist-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( ( s8 /usr/lib/python2.7/dist-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"