File: //lib/python3/dist-packages/cryptography/hazmat/backends/openssl/__pycache__/hmac.cpython-310.pyc
o
�)%au � @ sF d dl mZ d dlmZmZmZ d dlmZmZ G dd� dej �Z
dS )� )�utils)�InvalidSignature�UnsupportedAlgorithm�_Reasons)�
constant_time�hashesc @ sj e Zd Z ddedejfdd�Ze�d�Z ddd �Z
d
eddfdd�Zdefd
d�Zdeddfdd�Z
dS )�_HMACContextN�key� algorithmc C s� || _ || _|d u r\| jj�� }| j�|| jjjk� | jj�|| jjj�}| j� |�}|| jjjkr=t
d�|j�t
j��| jj�|�}| jj�||t|�|| jjj�}| j�|dk� || _|| _d S )Nz*{} is not a supported hash on this backendr )�
_algorithm�_backend�_lib�HMAC_CTX_new�openssl_assert�_ffi�NULL�gc�
HMAC_CTX_free�_evp_md_from_algorithmr �format�namer �UNSUPPORTED_HASH�from_buffer�HMAC_Init_ex�len�_ctx�_key)�self�backendr r
�ctx�evp_md�key_ptr�res� r# �K/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/hmac.py�__init__ s* ���
z_HMACContext.__init__r �returnc C sp | j j�� }| j �|| j jjk� | j j�|| j jj�}| j j�|| j �}| j �|dk� t
| j | j| j|d�S )Nr )r )
r r
r r r r r r �
HMAC_CTX_copyr r r r
)r �
copied_ctxr"