File: //usr/lib64/python3.8/__pycache__/hmac.cpython-38.opt-2.pyc
U
    &�.e�  �                   @   s�   d dl Zd dlmZ zd dlZW n ek
r<   dZdZY nX e	ej
�Zd dlZd dlZd dl
Z
edd� ed�D ��Zedd� ed�D ��ZdZG dd� d�Zd	d
� ZG dd� de
j�Ze�� r�eZddd�Zdd� ZdS )�    N)�_compare_digestc                 c   s   | ]}|d A V  qdS )�\   N� ��.0�xr   r   �/usr/lib64/python3.8/hmac.py�	<genexpr>   s     r	   �   c                 c   s   | ]}|d A V  qdS )�6   Nr   r   r   r   r   r	      s     c                   @   sN   e Zd ZdZddd�Zedd� �Zdd	� Zd
d� Zdd
� Z	dd� Z
dd� ZdS )�HMAC�@   N� c                    sV  t �� rtd��t|ttf�s0tdt|�j ��� s<td��t	� �rL� | _
n,t� t�rhd� fdd�	| _
nd� fdd�	| _
| �
� | _| �
� | _
| j
j| _t| j
d�r�| j
j}|d	k r�t�d
|| jf td� | j}nt�d| j td� | j}|| _t|�|k�r| �
|��� }|�|d
�}| j�|�t�� | j
�|�t�� |d k	�rR| �|� d S )Nz9This class is not available in FIPS mode. Use hmac.new().�,key: expected bytes or bytearray, but got %rz'Missing required parameter 'digestmod'.�    c                    s   t �� | �S �N��_hashlib�new��d��	digestmodr   r   �<lambda>?   r   zHMAC.__init__.<locals>.<lambda>c                    s
   � � | �S r   �r   r   r   r   r   r   A   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   )�_hashlibopenssl�
get_fips_mode�
ValueError�
isinstance�bytes�	bytearray�	TypeError�type�__name__�callable�digest_cons�str�outer�inner�digest_size�hasattrr   �	_warnings�warn�	blocksize�RuntimeWarning�len�digest�ljust�update�	translate�trans_5C�trans_36)�self�key�msgr   r1   r   r   r   �__init__#   sR    
�
� �� �
z
HMAC.__init__c                 C   s   d| j j S )Nzhmac-)r,   �name)r:   r   r   r   r>