a
XC?h� � @ s2 d dl Zzd dlZW n. eyB ejdkr6ed��ned��Y n0 d dlZd dlZd dl m
Z d dlm
Z ejej d Ze� ZG dd � d ed d
��Zd%dd�dd
�Zd&dd�Zg Zdd�dd�Zedddd� edddd� dD ](Zedde ddee� dd�r� �qq�eddd d!� ed"dd#d$� [[dS )'� NZwin32z,The crypt module is not supported on Windowsz;The required _crypt module was not built as part of CPython)�SystemRandom)�
namedtuplez./c @ s e Zd Zdd� ZdS )�_Methodc C s d� | j�S )Nz)�format�name)�self� r �*/opt/alt/python39/lib64/python3.9/crypt.py�__repr__ s z_Method.__repr__N)�__name__�
__module__�__qualname__r
r r r r r s r z name ident salt_chars total_size��roundsc C sB | d u rt d } |d ur4t|t�s4t|jj� d���| js@d}nd| j� d�}| jr�| jd dkr�|d u rpd}n@t�|d �}|d|> kr�td��d | kr�d
ks�n td��||d�d�7 }n^| jd
v �r|d u�r d| kr�dks�n td��|d|� d�7 }n|d u�r t| � d���|d� dd� t
| j�D ��7 }|S )Nr z+ object cannot be interpreted as an integer� �$�2� � zrounds must be a power of 2� � z%rounds out of the range 2**4 to 2**31Z02d)�5�6i� i�ɚ;z+rounds out of the range 1000 to 999_999_999zrounds=z$ doesn't support the rounds argumentc s s | ]}t �t�V qd S �N)�_srZchoice�
_saltchars)�.0�charr r r � B � zmksalt..)�methods�
isinstance�int� TypeError� __class__r Zident�
bit_length�
ValueError�join�rangeZ
salt_chars)�methodr �sZ
log_roundsr r r �mksalt s2
r+ c C s&