File: //opt/cppython/lib/python3.8/site-packages/rsa/__pycache__/prime.cpython-38.pyc
U
JD�g� � @ s� d Z ddlZddlZddgZeeed�dd�Zeed�d d
�Zeeed�dd
�Z eed�dd�Z
eed�dd�Zeeed�dd�Ze
dkr�ed� ddlZed�D ]4Ze�� \ZZer� q�ed dkr�er�ede � q�ed� dS )z�Numerical functions related to primes.
Implementation based on the book Algorithm Design by Michael T. Goodrich and
Roberto Tamassia, 2002.
� N�getprime�are_relatively_prime)�p�q�returnc C s |dkr|| | } }q | S )zPReturns the greatest common divisor of p and q
>>> gcd(48, 180)
12
r � )r r r r �6/opt/cppython/lib/python3.8/site-packages/rsa/prime.py�gcd s r )�numberr c C s4 t j�| �}|dkrdS |dkr$dS |dkr0dS dS )a� Returns minimum number of rounds for Miller-Rabing primality testing,
based on number bitsize.
According to NIST FIPS 186-4, Appendix C, Table C.3, minimum number of
rounds of M-R testing, using an error probability of 2 ** (-100), for
different p, q bitsizes are:
* p, q bitsize: 512; rounds: 7
* p, q bitsize: 1024; rounds: 4
* p, q bitsize: 1536; rounds: 3
See: http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf
i � i � i � �
)�rsa�commonZbit_size)r
Zbitsizer r r �get_primality_testing_rounds'