ó
Â/¾Oc           @   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   (    (    s4   lib/python2.7/site-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(    (    s4   lib/python2.7/site-packages/Crypto/PublicKey/_RSA.pyR   L   s    (   t   __name__t
   __module__R   (    (    (    s4   lib/python2.7/site-packages/Crypto/PublicKey/_RSA.pyR   J   s   N(   t   __revision__t   Crypto.PublicKeyR    t   Crypto.UtilR   t   NoneR   R   (    (    (    s4   lib/python2.7/site-packages/Crypto/PublicKey/_RSA.pyt   <module>   s   *