File: //lib64/python3.6/__pycache__/hmac.cpython-36.opt-2.pyc
3
�Qg�  �               @   s�   d dl Zd dlmZ d dlZd dlZd dlZe	dd� e
d�D ��Ze	dd� e
d�D ��ZdZ
G dd� d�Zd	d
� ZG dd� dej�Zej� r�eZdd
d�ZdS )�    N)�_compare_digestc             c   s   | ]}|d A V  qdS )�\   N� )�.0�xr   r   �/usr/lib64/python3.6/hmac.py�	<genexpr>   s    r   �   c             c   s   | ]}|d A V  qdS )�6   Nr   )r   r   r   r   r   r   
   s    c               @   sN   e Zd ZdZddd�Zedd� �Zdd� Zd	d
� Zdd� Z	d
d� Z
dd� ZdS )�HMAC�@   Nc                sf  t j� rtd��t|ttf�s0tdt|�j ��� d krLt	j
dtd� tj
� t� �r\� | _n,t� t�rxd� fdd�	| _nd� fd	d�	| _| j� | _| j� | _| jj| _t| jd
�r�| jj}|dk r�t	j
d|| jf td� | j}nt	j
d
| j td� | j}|| _t|�|k�r| j|�j� }|j|d�}| jj|jt�� | jj|jt�� |d k	�rb| j|� d S )Nz*This class is not available in FIPS mode. zUse hmac.new().z,key: expected bytes or bytearray, but got %rz<HMAC() without an explicit digestmod argument is deprecated.�   �    c                s   t j� | �S )N)�_hashlib�new)�d)�	digestmodr   r   �<lambda>;   s    zHMAC.__init__.<locals>.<lambda>c                s
   � j | �S )N)r   )r   )r   r   r   r   =   s    �
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.�    z9This class is not available in FIPS mode. Use hmac.new().)r   )r   )�_hashlibopenssl�
get_fips_mode�
ValueError�
isinstance�bytes�	bytearray�	TypeError�type�__name__�	_warnings�warn�PendingDeprecationWarningr   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*   r   )r   r   �__init__   sJ     
z
HMAC.__init__c             C   s   d| j j S )Nzhmac-)r'