Hacked By AnonymousFox
B
� fu � @ s� d Z ddlZddlmZ yddlZW n ek
r@ dZdZ Y nX e
ej�Z ddlZe
dd� ed�D ��Ze
dd� ed�D ��ZdZG dd � d �Zdd
d�Zdd
� ZdS )zxHMAC (Keyed-Hashing for Message Authentication) Python module.
Implements the HMAC algorithm as described by RFC 2104.
� N)�_compare_digestc c s | ]}|d A V qdS )�\ N� )�.0�xr r �)/opt/alt/python37/lib64/python3.7/hmac.py� <genexpr> s r � c c s | ]}|d A V qdS )�6 Nr )r r r r r r s c @ sR e Zd ZdZdZddd�Zedd� �Zdd � Zd
d� Z dd
� Z
dd� Zdd� ZdS )�HMACz~RFC 2104 HMAC class. Also complies with RFC 4231.
This supports the API for Cryptographic Hash Functions (PEP 247).
�@ Nc sV t |ttf�s tdt|�j ��� dkr<t�dtd� t j
� t� �rL� | _n,t � t
�rhd� fdd� | _nd� fdd� | _| �� | _| �� | _| jj| _t| jd �r�| jj}|d
k r�t�d|| jf td� | j}nt�d| j td� | j}|| _t|�|k�r| �|��� }|�|d
�}| j�|�t�� | j�|�t�� |dk �rR| �|� dS )aB Create a new HMAC object.
key: key for the keyed hash object.
msg: Initial input for the hash, if provided.
digestmod: A module supporting PEP 247. *OR*
A hashlib constructor returning a new hash object. *OR*
A hash name suitable for hashlib.new().
Defaults to hashlib.md5.
Implicit default to hashlib.md5 is deprecated since Python
3.4 and will be removed in Python 3.8.
Note: key and msg must be a bytes or bytearray objects.
z,key: expected bytes or bytearray, but got %rNzhHMAC() without an explicit digestmod argument is deprecated since Python 3.4, and will be removed in 3.8� � c s t �� | �S )N)�_hashlib�new)�d)� digestmodr r �<lambda>= r zHMAC.__init__.<locals>.<lambda>c s
� � | �S )N)r )r )r r r r ? r �
block_size� z:block_size of %d seems too small; using our default of %d.z<No block_size attribute on given digest object; Assuming %d.� )r )r )�
isinstance�bytes� bytearray� TypeError�type�__name__� _warnings�warn�DeprecationWarningr Zmd5�callable�digest_cons�str�outer�inner�digest_size�hasattrr � blocksize�RuntimeWarning�len�digest�ljust�update� translate�trans_5C�trans_36)�self�key�msgr r'