ó
BwLc           @   sO   d  Z  d d l m Z d d l m Z d d „ Z d e j f d „  ƒ  YZ d S(   s   $Id$iÿÿÿÿ(   t   pubkey(   t   numberc         C   s`  t  ƒ  } d | _ | r% | d ƒ n  d } } x_ t j | | ƒ |  k  r t j |  d ?| j d | ƒ } t j |  |  d ?| j d | ƒ } q2 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 s\t d ‚ | S(	   sé   generate(bits:int, randfunc:callable, progress_func:callable)

    Generate an RSA key of length 'bits', using 'randfunc' to get
    random data and 'progress_func', if present, to display
    the progress of the key generation.
    l     s   p,q
l    i   gê-™—q=s   u
s   d
s   Generated key is too small(   t   RSAobjt   eR   t   sizeR    t   getStrongPrimet   pt   qt   inverset   ut   nt   dt   AssertionError(   t   bitst   randfunct   progress_funct   objR   R   (    (    s9   /usr/lib/python2.7/dist-packages/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(    (    s9   /usr/lib/python2.7/dist-packages/Crypto/PublicKey/_RSA.pyR   J   s    (   t   __name__t
   __module__R   (    (    (    s9   /usr/lib/python2.7/dist-packages/Crypto/PublicKey/_RSA.pyR   H   s   N(   t   __revision__t   Crypto.PublicKeyR    t   Crypto.UtilR   t   NoneR   R   (    (    (    s9   /usr/lib/python2.7/dist-packages/Crypto/PublicKey/_RSA.pyt   <module>   s   (