File: //usr/local/CyberPanel/lib64/python3.10/site-packages/rsa/__pycache__/parallel.cpython-310.pyc
o
��h � @ s� d Z ddlZddlmZ ddlZddlZdededdfdd�Z ded edefd
d�Z
dgZedkr^e
d
� ddlZed�D ]Ze�� \ZZerI ned dkrWerWe
de � q=e
d� dS dS )z�Functions for parallel computation on multiple cores.
Introduced in Python-RSA 3.1.
.. note::
Requires Python 2.6 or newer.
� N)�
Connection�nbits�pipe�returnc C s* t j�| �}t j�|�r|�|� d S q)N)�rsa�randnum�read_random_odd_int�prime�is_prime�send)r r �integer� r
�B/usr/local/CyberPanel/lib/python3.10/site-packages/rsa/parallel.py�_find_prime s
�r �poolsizec s� t jdd�\}�z#� �fdd�t|�D �}|D ]}|�� q|�� }W |�� ��� n |�� ��� w |D ]}|�� q7|S )aU Returns a prime number that can be stored in 'nbits' bits.
Works in multiple threads at the same time.
>>> p = getprime(128, 3)
>>> rsa.prime.is_prime(p-1)
False
>>> rsa.prime.is_prime(p)
True
>>> rsa.prime.is_prime(p+1)
False
>>> from rsa import common
>>> common.bit_size(p) == 128
True
F)�duplexc s g | ]}t jt� �fd ��qS ))�target�args)�mp�Processr )�.0�_�r � pipe_sendr
r �
<listcomp>A s zgetprime.<locals>.<listcomp>)r �Pipe�range�start�recv�close� terminate)r r � pipe_recv�procs�p�resultr
r r �getprime* s
�
r% �__main__z'Running doctests 1000x or until failure�d �
z%i timesz
Doctests done)�__doc__�multiprocessingr �multiprocessing.connectionr � rsa.primer �rsa.randnum�intr r% �__all__�__name__�print�doctestr �count�testmod�failures�testsr
r
r
r �<module> s(
(��