관리-도구
편집 파일: fshp.cpython-39.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 sr |� d�| _|d ur | �|�}n2| jrJ| j}| �|�|ksRJ d|f ��ntd��|| _tt| �jf i |�� d S )N�use_defaultszinvalid default variant: %rzno variant specified) �getr'