File: //lib64/python3.9/__pycache__/hmac.cpython-39.opt-1.pyc
a
    ���hk  �                   @   s�   d Z ddlZzddlZW n& ey>   dZdZddlmZ	 Y n0 ej	Z	e
ej�ZddlZe�
� s�edd� ed�D ��Zedd� ed�D ��ZdZG dd	� d	�Zddd�Zd
d� ZdS )zqHMAC (Keyed-Hashing for Message Authentication) module.
Implements the HMAC algorithm as described by RFC 2104.
�    N)�_compare_digestc                 c   s   | ]}|d A V  qdS )�\   N� ��.0�xr   r   �/usr/lib64/python3.9/hmac.py�	<genexpr>   �    r	   �   c                 c   s   | ]}|d A V  qdS )�6   Nr   r   r   r   r   r	      r
   c                   @   sf   e Zd ZdZdZdZddd�Zdd	� Zd
d� Ze	dd
� �Z
dd� Zdd� Zdd� Z
dd� Zdd� ZdS )�HMACz~RFC 2104 HMAC class.  Also complies with RFC 4231.
    This supports the API for Cryptographic Hash Functions (PEP 247).
    �@   )�_hmac�_inner�_outer�
block_size�digest_sizeN� c                 C   s�   t |ttf�s tdt|�j ��|s,td��t�� sFtr�t |tt	f�r�z| �
|||� W q� tjy�   t�� rr� | �|||� Y q�0 n| �|||� dS )a?  Create a new HMAC object.
        key: bytes or buffer, key for the keyed hash object.
        msg: bytes or buffer, Initial input for the hash or None.
        digestmod: A hash name suitable for hashlib.new(). *OR*
                   A hashlib constructor returning a new hash object. *OR*
                   A module supporting PEP 247.
                   Required as of 3.8, despite its position after the optional
                   msg argument.  Passing it as a keyword argument is
                   recommended, though not required for legacy API reasons.
        z,key: expected bytes or bytearray, but got %rz'Missing required parameter 'digestmod'.N)
�
isinstance�bytes�	bytearray�	TypeError�type�__name__�_hashopenssl�
get_fips_mode�str�	_functype�
_init_hmac�UnsupportedDigestmodError�	_init_old��self�key�msg�	digestmodr   r   r   �__init__'