%PDF- %PDF-
| Direktori : /lib/python3.9/site-packages/passlib/handlers/__pycache__/ |
| Current File : //lib/python3.9/site-packages/passlib/handlers/__pycache__/fshp.cpython-39.opt-1.pyc |
a
f�Wcw � @ s� d Z ddlmZmZ ddlZddlZe�e�Zddl m
Z
ddlm m
Z ddlmZmZmZmZ ddlmZ dgZG dd� dejejejej�ZdS ) zpasslib.handlers.fshp
� )� b64encode� b64decodeN)�
to_unicode)�
bascii_to_str� iteritems�u�unicode)�pbkdf1�fshpc s� e Zd ZdZd ZdZejZe d�Z
dZdZdZ
dZdZd ZdZd
ddd
d�Zedd� eD �dd� ee�D � �Zed#� fdd� �ZdZd$� fdd� Zedd� �Zedd� �Zedd� �Ze�e d�ej �Z!edd� �Z"dd � Z#d!d"� Z$� Z%S )%r
ap This class implements the FSHP password hash, and follows the :ref:`password-hash-api`.
It supports a variable-length salt, and a variable number of rounds.
The :meth:`~passlib.ifc.PasswordHash.using` method accepts the following optional keywords:
:param salt:
Optional raw salt string.
If not specified, one will be autogenerated (this is recommended).
:param salt_size:
Optional number of bytes to use when autogenerating new salts.
Defaults to 16 bytes, but can be any non-negative value.
:param rounds:
Optional number of rounds to use.
Defaults to 480000, must be between 1 and 4294967295, inclusive.
:param variant:
Optionally specifies variant of FSHP to use.
* ``0`` - uses SHA-1 digest (deprecated).
* ``1`` - uses SHA-2/256 digest (default).
* ``2`` - uses SHA-2/384 digest.
* ``3`` - uses SHA-2/512 digest.
:type relaxed: bool
:param relaxed:
By default, providing an invalid value for one of the other
keywords will result in a :exc:`ValueError`. If ``relaxed=True``,
and the error can be corrected, a :exc:`~passlib.exc.PasslibHashWarning`
will be issued instead. Correctable errors include ``rounds``
that are too small or too large, and ``salt`` strings that are too long.
.. versionadded:: 1.6
)�salt� salt_size�rounds�variantz{FSHP� Ni S � l �� Zlinear)Zsha1� )Zsha256� )Zsha384�0 )Zsha512�@ )r r � � c C s g | ]}t |�|f�qS � )r )�.0�kr r �9/usr/lib/python3.9/site-packages/passlib/handlers/fshp.py�
<listcomp>_ � zfshp.<listcomp>c C s g | ]\}}|d |f�qS )r r )r r �vr r r r ` r c s. t t| �jf i |��}|d ur*| �|�|_|S )N)�superr
�using�
_norm_variant�default_variant)�clsr �kwds�subcls�� __class__r r r f s z
fshp.usingc sV |� d�| _|d ur | �|�}n| jr.| j}ntd��|| _tt| �jf i |�� d S )N�use_defaultszno variant specified) �getr'