File: //lib/python3/dist-packages/cryptography/hazmat/primitives/__pycache__/hmac.cpython-310.pyc
o
�)%a � @ sZ d dl mZ d dlmZmZmZ d dlmZ d dlm Z d dl
mZ G dd� dej�Z
dS ) � )�utils)�AlreadyFinalized�UnsupportedAlgorithm�_Reasons)�_get_backend)�HMACBackend)�hashesc @ sl e Zd Z ddedejfdd�Ze�d�Z deddfd d
�Z
ddd�Zdefd
d�Zdeddfdd�Z
dS )�HMACN�key� algorithmc C sl t |�}t|t�stdtj��t|tj�std��|| _ || _
|| _|d u r1| j
�|| j
�| _d S || _d S )Nz.Backend object does not implement HMACBackend.z*Expected instance of hashes.HashAlgorithm.)r �
isinstancer r r �BACKEND_MISSING_INTERFACEr �
HashAlgorithm� TypeError�
_algorithm�_backend�_key�create_hmac_ctxr �_ctx)�selfr
r �backend�ctx� r �E/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/hmac.py�__init__ s
�
z
HMAC.__init__r �data�returnc C s. | j d u r td��t�d|� | j �|� d S )N�Context was already finalized.r )r r r �_check_byteslike�update)r r r r r r - s
zHMAC.updatec C s. | j d u r td��t| j| j| j| j �� d�S )Nr )r r )r r r r r r �copy)r r r r r 3 s
�z HMAC.copyc C s&