Your IP : 3.129.216.248


Current Path : /opt/alt/python34/lib64/python3.4/__pycache__/
Upload File :
Current File : //opt/alt/python34/lib64/python3.4/__pycache__/crypt.cpython-34.pyc

�
e fW�@s]dZddlZddlZddlmZddlmZ	ej
ejdZe�Z
Gdd�de	dd��Zdd	d
�Zddd�Zed
ddd�Zedddd�Zedddd�Zedddd�ZgZxQeeefD]@Zede�Zeree�ejkreje�qqWeje�[[dS)zEWrapper to the POSIX crypt library call and associated functionality.�N)�SystemRandom)�
namedtuplez./c@s"eZdZdZdd�ZdS)�_MethodziClass representing a salt method per the Modular Crypt Format or the
    legacy 2-character crypt method.cCsdj|j�S)Nz<crypt.METHOD_{}>)�format�name)�self�r�*/opt/alt/python34/lib64/python3.4/crypt.py�__repr__sz_Method.__repr__N)�__name__�
__module__�__qualname__�__doc__r
rrrr	r
srz name ident salt_chars total_sizecCsg|dkrtd}n|jr4dj|j�nd}|djdd�t|j�D��7}|S)zsGenerate a salt for the specified method.

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

    Nrz${}$�css|]}tjt�VqdS)N)�_srZchoice�
_saltchars)�.0�charrrr	�	<genexpr>szmksalt.<locals>.<genexpr>)�methodsZidentr�join�rangeZ
salt_chars)�method�srrr	�mksalts

!)rcCs:|dkst|t�r*t|�}ntj||�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)�
isinstancerr�_crypt�crypt)ZwordZsaltrrr	r#s
rZCRYPT��
ZMD5�1��"ZSHA256�5��?ZSHA512�6�jr)rr�stringZ_stringZrandomrZ
_SystemRandom�collectionsrZ_namedtupleZ
ascii_lettersZdigitsrrrrrZMETHOD_CRYPTZ
METHOD_MD5Z
METHOD_SHA256Z
METHOD_SHA512r�_methodZ_result�lenZ
total_size�appendrrrr	�<module>s(		



?>