/opt/alt/python27/lib64/python2.7/site-packages/Crypto/Util
Edit: /opt/alt/python27/lib64/python2.7/site-packages/Crypto/Util/number.pyo (113845B)
/Oc ' @ s d Z d d k l Z l Z d d k l Z d d k Z d d k Z d d k Te
Z y d d k l
Z
Wn e j
o
d Z
n Xe
d j o e
i o e d e n d d k Td Z d d Z d d
Z d d Z d d Z d
Z d Z d d Z d d Z d d d d Z d d d Z d d k Z d d Z d Z d d k Z d d Z d Z! d Z" d*'Z# d S(+' s $Id$i( t" GetRandomNumber_DeprecationWarningt PowmInsecureWarning( t warnN( t *( t _fastmathsc Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.c C s' d } x | | ?o | d 7} q W| S( sE size(N:long) : int
Returns the size of the number N in bits.
i i ( ( t Nt bits( ( sE /opt/alt/python27/lib64/python2.7/site-packages/Crypto/Util/number.pyt sizeK s
c C s! t i d d t t | | S( sB Deprecated. Use getRandomInteger or getRandomNBitInteger instead.s: Crypto.Util.number.getRandomNumber has confusing semanticssO and has been deprecated. Use getRandomInteger or getRandomNBitInteger instead.( t warningsR R t getRandomNBitInteger( R t randfunc( ( sE /opt/alt/python27/lib64/python2.7/site-packages/Crypto/Util/number.pyt getRandomNumberT s c C s | d j o t t i i } n | | d ? } | d } | d j o. t | d d | ?} t | | } n t | } | S( s getRandomInteger(N:int, randfunc:callable):long
Return a random number with at most N bits.
If randfunc is omitted, then Random.new().read is used.
This function is for internal use only and may be renamed or removed in
the future.
i i i i N( t Nonet _import_Randomt Randomt newt readt ordt bchrt
bytes_to_long( R R
t St odd_bitst chart value( ( sE /opt/alt/python27/lib64/python2.7/site-packages/Crypto/Util/number.pyt getRandomInteger[ s
c C sU | | d } t | } t | | } x! | | j o t | | } q, W| | S( s getRandomRange(a:int, b:int, randfunc:callable):long
Return a random number n so that a <= n < b.
If randfunc is omitted, then Random.new().read is used.
This function is for internal use only and may be renamed or removed in
the future.
i ( R R ( t at bR
t range_R R ( ( sE /opt/alt/python27/lib64/python2.7/site-packages/Crypto/Util/number.pyt getRandomRangep s
c C s) t | d | } | d | d O} | S( s6 getRandomInteger(N:int, randfunc:callable):long
Return a random number with exactly N-bits, i.e. a random number
between 2**(N-1) and (2**N)-1.
If randfunc is omitted, then Random.new().read is used.
This function is for internal use only and may be renamed or removed in
the future.
i l ( R ( R R
R ( ( sE /opt/alt/python27/lib64/python2.7/site-packages/Crypto/Util/number.pyR s
c C sB t | } t | } x# | d j o | | | } } q W| S( s= GCD(x:long, y:long): long
Return the GCD of x and y.
i ( t abs( t xt y( ( sE /opt/alt/python27/lib64/python2.7/site-packages/Crypto/Util/number.pyt GCD s
c C s t | t | } } d \ } } xO | d j oA t | | d } | | | | } } | | | | } } q( Wx | d j o | | } qz W| S( sD inverse(u:long, v:long):long
Return the inverse of u mod v.
l l i ( l l ( t longt divmod( t ut vt u3t v3t u1t v1t q( ( sE /opt/alt/python27/lib64/python2.7/site-packages/Crypto/Util/number.pyt inverse s
c C sc | d j o t t i i } n t | | d B} x" t | d | p | d } q= W| S( s getPrime(N:int, randfunc:callable):long
Return a random N-bit prime number.
If randfunc is omitted, then Random.new().read is used.
i R
i N( R R
R R R R t isPrime( R R
t number( ( sE /opt/alt/python27/lib64/python2.7/site-packages/Crypto/Util/number.pyt getPrime s
c C st | d j p | d @d j o | d j S| d } d } | } x* | d @d j o | d 7} | d L} qB Wg } x t t | | d D] } t d | | } x$ | | j o t d | | } q W| i | t | | | } | d j p
| | j o q n d }
xL t | D]> } | | | } | d j o d S| | j o d }
PqqW|
o d Sq Wd S( sq _rabinMillerTest(n:long, rounds:int, randfunc:callable):int
Tests if n is prime.
Returns 0 when n is definitly composite.
Returns 1 when n is probably prime.
Returns 2 when n is definitly prime.
If randfunc is omitted, then Random.new().read is used.
This function is for internal use only and may be renamed or removed in
the future.
i i i i ( t xranget minR t appendt pow( t nt roundsR
t n_1R t mt testedt iR t zt compositet r( ( sE /opt/alt/python27/lib64/python2.7/site-packages/Crypto/Util/number.pyt _rabinMillerTest s@
i gư>c C sy t d j o# t i t | t | | | S| d j p | d d j o t d n t t i t i | t i d } | d d ?} t d d d d | d
d } d d d | >d } t
| | | } d d g } xd D] }
t d
| } d g d t t
} xM t
D]E }
| |
} x2 t |
| |
t | |
D] } d | |