AlkantarClanX12

Your IP : 18.118.162.8


Current Path : /opt/alt/python37/lib64/python3.7/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib64/python3.7/__pycache__/crypt.cpython-37.opt-1.pyc

B

� f
�@s�dZddlZddlZddlmZddlmZ	ej
ejdZe�Z
Gdd�de	dd��Zd#dd	�d
d�Zd$dd
�ZgZdd	�dd�Zedddd�edddd�x,dD]$Zeddeddee�dd	�r�Pq�Wedddd�ed dd!d"�[[dS)%zEWrapper to the POSIX crypt library call and associated functionality.�N)�SystemRandom)�
namedtuplez./c@seZdZdZdd�ZdS)�_MethodziClass representing a salt method per the Modular Crypt Format or the
    legacy 2-character crypt method.cCsd�|j�S)Nz<crypt.METHOD_{}>)�format�name)�self�r�*/opt/alt/python37/lib64/python3.7/crypt.py�__repr__sz_Method.__repr__N)�__name__�
__module__�__qualname__�__doc__r
rrrr	r
srz name ident salt_chars total_size)�roundscCsB|dkrtd}|dk	r4t|t�s4t|jj�d���|js@d}nd|j�d�}|jr�|jddkr�|dkrpd}n@t�|d�}|d|>kr�td	��d
|kr�dks�ntd��||d
�d�7}n^|jdk�r|dk	�r d|kr�dks�ntd��|d|�d�7}n|dk	�r t|�d���|d�	dd�t
|j�D��7}|S)zsGenerate a salt for the specified method.

    If not specified, the strongest available method will be used.

    Nrz+ 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 argumentcss|]}t�t�VqdS)N)�_srZchoice�
_saltchars)�.0�charrrr	�	<genexpr>8szmksalt.<locals>.<genexpr>)�methods�
isinstance�int�	TypeError�	__class__rZident�
bit_length�
ValueError�join�rangeZ
salt_chars)�methodr�sZ
log_roundsrrr	�mksalts2

r)cCs&|dkst|t�rt|�}t�||�S)aRReturn a string representing the one-way hash of a password, with a salt
    prepended.

    If ``salt`` is not specified or is ``None``, the strongest
    available method will be selected and a salt generated.  Otherwise,
    ``salt`` may be one of the ``crypt.METHOD_*`` values, or a string as
    returned by ``crypt.mksalt()``.

    N)rrr)�_crypt�crypt)Zword�saltrrr	r+<s
r+cGsVt|f|��}|t�d|<t||d�}td|�}|rRt|�|jkrRt�|�dSdS)NZMETHOD_)rrTF)r�globalsr)r+�lenZ
total_sizer�append)rr�argsr'r,�resultrrr	�_add_methodNs

r2ZSHA512r��jZSHA256r�?)�b�y�arZBLOWFISHr��;ZMD5�1��"ZCRYPT��
)N)N)rr*�stringZ_stringZrandomrZ
_SystemRandom�collectionsrZ_namedtupleZ
ascii_lettersZdigitsrrrr)r+rr2Z_vr.rrrr	�<module>s&	&