관리-도구
편집 파일: digests.cpython-39.opt-1.pyc
a ����f�Wc�����������������������@���s����d�Z�ddlZddlZe�e�ZddlmZmZm Z m Z �ddlmZm Z �ddlm��mZ�ddlmZ�g�d�ZG�dd��dej�Zedd fd d�Zedd d�Zeddd d�Zedd d�Zed�Zed�ZG�dd��dej�ZdS�)z.passlib.handlers.digests - plain hash digests �����N)� to_native_str�to_bytes�render_bytes�consteq)�unicode� str_to_uascii)�lookup_hash)�create_hex_hash�hex_md4�hex_md5�hex_sha1� hex_sha256� hex_sha512c�������������������@���s6���e�Zd�ZdZdZdZejZdZ e dd���Zdd��ZdS�)� HexDigestHashzTthis provides a template for supporting passwords stored as plain hexadecimal hashesNTc�����������������C���s���|����S��N)�lower��cls�hash��r����</usr/lib/python3.9/site-packages/passlib/handlers/digests.py� _norm_hash+���s����zHexDigestHash._norm_hashc�����������������C���s&���t�|t�r|�d�}t|��|�����S�)N�utf-8)� isinstancer����encoder���� _hash_func� hexdigest)�self�secretr���r���r����_calc_checksum/���s���� zHexDigestHash._calc_checksum) �__name__� __module__�__qualname__�__doc__r���� checksum_size�uhZ HEX_CHARSZchecksum_chars� supported�classmethodr���r���r���r���r���r���r������s��� r���Tc�������������� ���C���sl���t�|�|d�}d|j�}|js"d|_t|tft||t|j�|jd�d|jf�d��}|js^d|_|rh||_ |S�)a@�� create hex-encoded unsalted hasher for specified digest algorithm. .. versionchanged:: 1.7.3 If called with unknown/supported digest, won't throw error immediately, but instead return a dummy hasher that will throw error when called. set ``required=True`` to restore old behavior. ��requiredZhex_r�������z�This class implements a plain hexadecimal %s hash, and follows the :ref:`password-hash-api`. It supports no optional or contextual keywords. )�namer!���r���r$���r#���F) r���r+���r&����digest_size�typer����dict�staticmethod�const�django_name)�digest�moduler1���r)����infor+���Zhasherr���r���r���r ���8���s$���� �� r ���Zmd4Fr(����md5Zunsalted_md5)r1���r)���Zsha1Zsha256Zsha512c�������������������@���s����e�Zd�ZdZd�ZdZdZdZeddd��Z edd ���Z edd d��Zedd ���Ze jddd�edd����Ze jddd�eddd���ZdS�)�htdigestzFhtdigest hash function. .. todo:: document this hash r���)�user�realm�encodingr���Nc�����������������C���s\���|s |�j�}t�|��t|t�r(|�|�}t||d�}t||d�}td|||�}t� |�� ��S�)Nr7���r8���z%s:%s:%s)�default_encodingr%���Zvalidate_secretr���r���r���r���r����hashlibr5���r���)r���r���r7���r8���r9����datar���r���r���r���r���s���� z htdigest.hashc�����������������C���sL���t�|dd�}t|�dkr&tj�|�d��|D�]}|tjvr*tj�|�d��q*|S�)z0normalize hash to native string, and validate itr���)Zparam� ���z wrong sizezinvalid chars in hash)r����lenr%����excZMalformedHashErrorZLC_HEX_CHARS)r���r����charr���r���r���r�������s���� zhtdigest._norm_hashc�����������������C���s$���|���|�}|��||||�}t||�S�r���)r���r���r���)r���r���r���r7���r8���r9����otherr���r���r����verify����s���� zhtdigest.verifyc�����������������C���s(���z|���|��W�n�ty"���Y�dS�0�dS�)NFT)r���� ValueErrorr���r���r���r����identify����s ����zhtdigest.identifyz1.7z2.0)Z deprecatedZremovedc�����������������C���s���|���ddd�S�)N��)r���)r���r���r���r���� genconfig����s����zhtdigest.genconfigc�����������������C���s���|���|��|��||||�S�r���)r���r���)r���r���Zconfigr7���r8���r9���r���r���r����genhash����s���� zhtdigest.genhash)N)r���)N)r ���r!���r"���r#���r+���Zsetting_kwdsZcontext_kwdsr:���r'���r���r���rB���rD���r%���Zdeprecated_methodrF���rG���r���r���r���r���r6���g���s&��� r6���)r#���r;���ZloggingZ getLoggerr ����logZ passlib.utilsr���r���r���r���Zpasslib.utils.compatr���r���Zpasslib.utils.handlersZutils�handlersr%���Zpasslib.crypto.digestr����__all__Z StaticHandlerr���r ���r ���r���r���r ���r���ZMinimalHandlerr6���r���r���r���r����<module>���s���&