File: //lib64/python3.6/__pycache__/crypt.cpython-36.opt-1.pyc
3
  \H  �               @   s�   d Z ddlZddlZddlmZ ddlmZ	 ej
ej d Ze� Z
G dd� de	dd��Zdd	d
�Zddd�Zed
ddd�Zedddd�Zedddd�Zedddd�Zg Zx:eeeefD ]*Zede�Zer�ee�ejkr�eje� q�W [[dS )zEWrapper to the POSIX crypt library call and associated functionality.�    N)�SystemRandom)�
namedtuplez./c               @   s   e Zd ZdZdd� ZdS )�_MethodziClass representing a salt method per the Modular Crypt Format or the
    legacy 2-character crypt method.c             C   s   dj | j�S )Nz<crypt.METHOD_{}>)�format�name)�self� r   �/usr/lib64/python3.6/crypt.py�__repr__   s    z_Method.__repr__N)�__name__�
__module__�__qualname__�__doc__r
   r   r   r   r	   r   
   s   r   z name ident salt_chars total_sizec             C   sH   | dkrt d } | jr"dj| 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.
    Nr   z${}$� c             s   s   | ]}t jt�V  qd S )N)�_srZchoice�
_saltchars)�.0�charr   r   r	   �	<genexpr>   s    zmksalt.<locals>.<genexpr>)�methodsZidentr   �join�rangeZ
salt_chars)�method�sr   r   r	   �mksalt   s
    r   c             C   s&