File: //var/opt/nydus/ops/cryptography/hazmat/backends/openssl/__pycache__/cmac.cpython-39.pyc
a
�,�h� � @ sd d dl Z d dlmZmZmZ d dlmZ d dlmZ e j rRd dlm
Z
d dlmZ G dd� d�Z
dS ) � N)�InvalidSignature�UnsupportedAlgorithm�_Reasons)�
constant_time)�CBC)�ciphers)�Backendc @ s\ e Zd Zddddd�dd�Zedd�dd �Zed
�dd�Zd d
�d
d�Zedd�dd�ZdS )�_CMACContextNr zciphers.BlockCipherAlgorithm)�backend� algorithm�returnc C s� |� |�stdtj��|| _|j| _|| _|jd | _ |d u r�| jj
}|t|�tf }|| j|t�}| jj
�� }| j�|| jjjk� | jj�|| jj
j�}| jj�| j�}| jj
�||t| j�|| jjj�}| j�|dk� || _d S )Nz#This backend does not support CMAC.� � )Zcmac_algorithm_supportedr r ZUNSUPPORTED_CIPHER�_backend�key�_key�
_algorithm�
block_size�_output_lengthZ_cipher_registry�typer �_lib�CMAC_CTX_new�openssl_assert�_ffiZNULL�gc�
CMAC_CTX_free�from_bufferZ CMAC_Init�len�_ctx) �selfr
r �ctx�registry�adapterZ
evp_cipherZkey_ptr�res� r$ �\/opt/nydus/tmp/pip-target-wkfpz8uv/lib64/python/cryptography/hazmat/backends/openssl/cmac.py�__init__ s4
��z_CMACContext.__init__)�datar c C s, | j j�| j|t|��}| j �|dk� d S )Nr )r r ZCMAC_Updater r r )r r'