B
    ë?[È
  ã               @   s<   d Z ddlmZ ddlmZ d
dd„ZG dd	„ d	ejƒZdS )z$Id$é    )Úpubkey)ÚnumberNé  c             C   sþ   t ƒ }t|ƒ|_|r|dƒ d }}xFt || ¡| k rjt | d? |jd|¡}t | | d?  |jd|¡}q&W ||kr~|| }}||_||_|r–|dƒ t 	|j|j¡|_
|j|j |_|rÂ|dƒ t 	|j|jd |jd  ¡|_| d| ¡  ksútdƒ‚|S )a  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.
    zp,q
é   gê-™—q=zu
zd
zGenerated key is too small)ÚRSAobjÚintÚer   Úsizer   ZgetStrongPrimeÚpÚqZinverseÚuÚnÚdÚAssertionError)ÚbitsZrandfuncZprogress_funcr   Úobjr
   r   © r   ú4lib/python3.7/site-packages/Crypto/PublicKey/_RSA.pyÚgenerate_py    s*    

 r   c               @   s   e Zd Zdd„ ZdS )r   c             C   s   t  | j¡d S )z`size() : int
        Return the maximum number of bits that can be handled by this key.
        r   )r   r	   r   )Úselfr   r   r   r	   L   s    zRSAobj.sizeN)Ú__name__Ú
__module__Ú__qualname__r	   r   r   r   r   r   J   s   r   )Nr   )Z__revision__ZCrypto.PublicKeyr   ZCrypto.Utilr   r   r   r   r   r   r   Ú<module>   s   
*