File: //lib/python3/dist-packages/cryptography/hazmat/primitives/__pycache__/hmac.cpython-38.pyc
U
�e�]� � @ sl d dl mZmZmZ d dlmZ d dlmZmZm Z d dl
mZ d dlm
Z
e�e
j�G dd� de��ZdS ) � )�absolute_import�division�print_function)�utils)�AlreadyFinalized�UnsupportedAlgorithm�_Reasons)�HMACBackend)�hashesc @ s@ e Zd Zd
dd�Ze�d�Zdd� Zdd� Zd d
� Z dd� Z
dS )�HMACNc C sb t |t�stdtj��t |tj�s*td��|| _|| _ || _
|d krX| j �|| j�| _
n|| _
d S )Nz.Backend object does not implement HMACBackend.z*Expected instance of hashes.HashAlgorithm.)�
isinstancer r r ZBACKEND_MISSING_INTERFACEr
Z
HashAlgorithm� TypeError�
_algorithm�_backend�_keyZcreate_hmac_ctx� algorithm�_ctx)�self�keyr �backend�ctx� r �E/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/hmac.py�__init__ s
�z
HMAC.__init__r c C s. | j d krtd��t�d|� | j �|� d S )N�Context was already finalized.�data)r r r Z_check_byteslike�update)r r r r r r % s
zHMAC.updatec C s. | j d krtd��t| j| j| j| j �� d�S )Nr )r r )r r r r r r �copy)r r r r r + s
�z HMAC.copyc C s&