관리-도구
편집 파일: _md4.cpython-39.opt-1.pyc
a f�Wc� � @ sZ d Z ddlmZ ddlZddlmZmZmZ dgZdd� Z dd � Z d ZG dd� de�Z dS )a� passlib.crypto._md4 -- fallback implementation of MD4 Helper implementing insecure and obsolete md4 algorithm. used for NTHASH format, which is also insecure and broken, since it's just md4(password). Implementated based on rfc at http://www.faqs.org/rfcs/rfc1320.html .. note:: This shouldn't be imported directly, it's merely used conditionally by ``passlib.crypto.lookup_hash()`` when a native implementation can't be found. � )�hexlifyN)� bascii_to_str�irange�PY3�md4c C s | |@ | |@ B S �N� ��x�y�zr r �7/usr/lib/python3.9/site-packages/passlib/crypto/_md4.py�F s r c C s | |@ | |@ B ||@ B S r r r r r r �G! s r l �� c @ s� e Zd ZdZd Zd ZZdZdZdZ dZ d<dd�Zg d�g d �g d �g d�g d�g d �g d�g d�g d�g d�g d�g d�g d�g d�g d�g d�gZg d�g d�g d�g d�g d�g d�g d�g d�g d�g d �g d!�g d"�g d#�g d$�g d%�g d&�gZ g d�g d'�g d(�g d)�g d�g d*�g d�g d+�g d�g d,�g d-�g d.�g d#�g d/�g d0�g d1�gZd2d3� Zd4d5� Zd6d7� Zd8d9� Zd:d;� ZdS )=r a� pep-247 compatible implementation of MD4 hash algorithm .. attribute:: digest_size size of md4 digest in bytes (16 bytes) .. method:: update update digest by appending additional content .. method:: copy create clone of digest object, including current state .. method:: digest return bytes representing md4 digest of current content .. method:: hexdigest return hexadecimal version of digest � �@ r Nc C s( d| _ g d�| _d| _|r$| �|� d S )Nr )i#Egl �+�_ l �\u1 ivT2� )�_count�_state�_buf�update)�self�contentr r r �__init__N s zmd4.__init__)r � � � r r )r r r r r � )r r r r r � )r r r r r � )r r r r � r )r r r r � r )r r r r � r )r r r r r r )r r r r � r )r r r r � r )r r r r � r )r r r r r r )r r r r � r )r r r r � r )r r r r � r )r r r r � r )r r r r r r! )r r r r r# r$ )r r r r r&