ó
Q'^c           @   sR   d  Z  d d l m Z d d l m Z d d d  Z d e j f d     YZ d S(	   s   $Id$i˙˙˙˙(   t   pubkey(   t   numberi  c         C   si  t    } t |  | _ | r+ | d  n  d } } x_ t j | |  |  k  r t j |  d ?| j d |  } t j |  |  d ?| j d |  } q8 W| | k r³ | | } } n  | | _ | | _ | rĜ | d  n  t j	 | j | j  | _
 | j | j | _ | r| d  n  t j	 | j | j d | j d  | _ |  d | j   k set d   | S(   s  generate(bits:int, randfunc:callable, progress_func:callable, e:int)

    Generate an RSA key of length 'bits', public exponent 'e'(which must be
    odd), using 'randfunc' to get random data and 'progress_func',
    if present, to display the progress of the key generation.
    s   p,q
l    i   gê-q=s   u
s   d
s   Generated key is too small(   t   RSAobjt   longt   eR   t   sizeR    t   getStrongPrimet   pt   qt   inverset   ut   nt   dt   AssertionError(   t   bitst   randfunct   progress_funcR   t   objR   R   (    (    s7   /tmp/pip-unpacked-wheel-owA23s/Crypto/PublicKey/_RSA.pyt   generate_py    s*    	
'		*"R   c           B   s   e  Z d    Z RS(   c         C   s   t  j |  j  d S(   s`   size() : int
        Return the maximum number of bits that can be handled by this key.
        i   (   R   R   R   (   t   self(    (    s7   /tmp/pip-unpacked-wheel-owA23s/Crypto/PublicKey/_RSA.pyR   L   s    (   t   __name__t
   __module__R   (    (    (    s7   /tmp/pip-unpacked-wheel-owA23s/Crypto/PublicKey/_RSA.pyR   J   s   N(   t   __revision__t   Crypto.PublicKeyR    t   Crypto.UtilR   t   NoneR   R   (    (    (    s7   /tmp/pip-unpacked-wheel-owA23s/Crypto/PublicKey/_RSA.pyt   <module>   s   *