HEX
Server: Apache
System: Linux srv1.prosuiteplus.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: prosuiteplus (1001)
PHP: 8.3.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/Crypto/PublicKey/__pycache__/_DSA.cpython-38.pyc
U

��K^�
�@spdZddlTddlmZddlmZmZddlmZddl	TGdd�de
�Zdd	�Zddd�Z
Gd
d�d�Zd
S)z$Id$�)�*)�number)�
bytes_to_long�
long_to_bytes)�SHAc@seZdZdS)�errorN��__name__�
__module__�__qualname__�rr�7/usr/lib/python3/dist-packages/Crypto/PublicKey/_DSA.pyr$srcCs�|d�}t�|���}t�tt|�d����}td�}tdd�D]H}t||�t||�A}|dkrn|dB}|dkr~|dB}|d|}qBt|�s�|d}q�t	dd�|kr�t	dd	�kr�nn||fSt
d
��dS)N��r������zBad q value generated)r�new�digestrr�bignum�rangeZbord�isPrime�pow�RuntimeError)�randfunc�SZhash1Zhash2�q�i�crrr
�	generateQ's 
$r"NcCs:|dkrtd��t�}|r"|d�t|�\}|_t|dd�d}ddi}}}|jd?d@}	ttd�|	�}
ttd�|d�}|d	k�rDtd|d�D]*}tt	�
|t|�t|�����||<q�|||
}
t|dd
d
�D]}|
d>||}
q�|
|}||d|jd}||k�r,t
|��r,�qD|d||d}}q�|d	k�rR�q`|r"|d�q"||_t|d|j�d}|�r�|d�t||��|d}t|||�}d|k�r�|dk�r�nn|dk�r��qڐq�||_|�r�|d
�t|d��}d|k�r|jk�r�nn�q �q�|t|||�|_|_|S)z�generate(bits:int, randfunc:callable, progress_func:callable)

    Generate a DSA key of length 'bits', using 'randfunc' to get
    random data and 'progress_func', if present, to display
    the progress of the key generation.
    rzKey length < 160 bitszp,q
rrr��i���z4096 multiples failed
zh,g
zx,y
r)�
ValueError�DSAobjr"r�divmodrrrrrrZbstrrr�p�g�x�y)�bitsrZ
progress_func�objr�n�C�N�V�bZpowbZpowL1�k�W�Xr)Zpower�hr*r+rrr
�generate_py9sT
(

*r8c@seZdZdS)r'Nrrrrr
r'qsr')N)Z__revision__ZCrypto.PublicKey.pubkeyZCrypto.UtilrZCrypto.Util.numberrrZCrypto.HashrZCrypto.Util.py3compat�	Exceptionrr"r8r'rrrr
�<module>s
8