Файловый менеджер - Редактировать - /opt/imh-python/lib/python3.9/site-packages/Crypto/Math/__pycache__/Primality.cpython-39.pyc
Ðазад
a c�hH, � @ s| d Z ddlmZ ddlmZ ddlmZ dZdZddd�Z d d � Z ddlmZ ee dd� �Zdd d�Zdd� Zdd� ZdS )zHFunctions to create and test prime numbers. :undocumented: __package__ � )�Random)�Integer)� iter_range� Nc C s* t | t�st| �} | dv rtS | �� r*tS td�}t| d �}|du rPt�� j}t|�}d}|�� rv|dL }|d7 }q\t|�D ]�}d}|||fv r�tj d| d d�}d| kr�| d ks�n J �q�t ||| �} | ||fv r�q~td|�D ]2} t | d| �} | |k�r q~| |kr�t S q�t S q~tS )a: Perform a Miller-Rabin primality test on an integer. The test is specified in Section C.3.1 of `FIPS PUB 186-4`__. :Parameters: candidate : integer The number to test for primality. iterations : integer The maximum number of iterations to perform before declaring a candidate a probable prime. randfunc : callable An RNG function where bases are taken from. :Returns: ``Primality.COMPOSITE`` or ``Primality.PROBABLY_PRIME``. .. __: http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf �r � � � r Nr r )Z min_inclusiveZ max_inclusive)� isinstancer �PROBABLY_PRIME�is_even� COMPOSITEr �new�readr Zrandom_range�pow)� candidateZ iterations�randfunc�oneZ minus_one�m�a�i�base�z�j� r ��/root/rpmbuild/BUILDROOT/imh-python39-modules-3.9.7-92.el8.x86_64/opt/imh-python/lib/python3.9/site-packages/Crypto/Math/Primality.py�miller_rabin_test- sB � r c C s� t | t�st| �} | dv rtS | �� s.| �� r2tS dd� }|� D ]<}| || fv rTq@t�|| �}|dkrpt S |dkr@ q~q@| d }|�� d }td�}td�}td�}td�} t|d dd�D ]�} |� |� ||9 }|| ; }| � |� | |9 } | |9 } | � ||� | �� �r| | 7 } | dL } | | ; } |�| ��r�|� |� || 7 }|�� �rX|| 7 }|dL }|| ; }|� | � |� ||� |�� �r�|| 7 }|dL }|| ; }q�|� |� |� | � q�|dk�r�tS tS )a_ Perform a Lucas primality test on an integer. The test is specified in Section C.3.3 of `FIPS PUB 186-4`__. :Parameters: candidate : integer The number to test for primality. :Returns: ``Primality.COMPOSITE`` or ``Primality.PROBABLY_PRIME``. .. __: http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf r c s s0 d} | V | dkr| d7 } n| d8 } | } qd S )Nr r r r )�valuer r r � alternate� s zlucas_test.<locals>.alternater ���r ) r r r r Zis_perfect_squarer Z jacobi_symbol�size_in_bitsr �setZmultiply_accumulateZis_oddZget_bit)r r �D�js�K�rZU_iZV_iZU_tempZV_tempr r r r � lucas_testv sf r&