%PDF- %PDF-
| Direktori : /lib/python3.9/site-packages/passlib/crypto/__pycache__/ |
| Current File : //lib/python3.9/site-packages/passlib/crypto/__pycache__/_md4.cpython-39.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&