o
    _¨ÊhÈ
  ã                   @   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 }}t || ¡| k r<t | d? |jd|¡}t | | d?  |jd|¡}t || ¡| k s||krE||}}||_||_|rQ|dƒ t 	|j|j¡|_
|j|j |_|rg|dƒ t 	|j|jd |jd  ¡|_| d| ¡  ksƒJ 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   ÚgetStrongPrimeÚpÚqÚinverseÚuÚnÚd)ÚbitsÚrandfuncÚprogress_funcr   Úobjr   r   © r   úG/var/www/html/env/lib/python3.10/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   )Ú__revision__ÚCrypto.PublicKeyr   ÚCrypto.Utilr   r   r   r   r   r   r   Ú<module>   s
   
*