Dashboard
PHP:
8.1.34
OS:
Linux
User:
uid288609
/
/
usr
/
lib
/
python3
/
dist-packages
/
cryptography
/
hazmat
/
backends
/
openssl
/
__pycache__
📤 Upload
📝 New File
📁 New Folder
Close
Editing: hmac.cpython-39.pyc
a � `u � @ sd d dl mZmZmZ d dlmZ d dlmZmZm Z d dl mZmZ e� ej�G dd� de��ZdS )� )�absolute_import�division�print_function)�utils)�InvalidSignature�UnsupportedAlgorithm�_Reasons)� constant_time�hashesc @ s@ e Zd Zd dd�Ze�d�Zdd� Zdd� Zd d � Z dd� Z dS )�_HMACContextNc C s� || _ || _|d u r�| jj�� }| j�|| jjjk� | jj�|| jjj�}| j� |�}|| jjjkrzt 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_freeZ_evp_md_from_algorithmr �format�namer ZUNSUPPORTED_HASH�from_bufferZHMAC_Init_ex�len�_ctx�_key)�selfZbackend�key� algorithm�ctxZevp_mdZkey_ptr�res� r �K/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/hmac.py�__init__ s* ���z_HMACContext.__init__r c 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 Z HMAC_CTX_copyr r r r )r Z copied_ctxr r r r! �copy. s ��z_HMACContext.copyc C s: | j j�|�}| j j�| j|t|��}| j �|dk� d S )Nr )r r r r ZHMAC_Updater r r )r �dataZdata_ptrr r r r! �update: s z_HMACContext.updatec C sz | j j�d| j jj�}| j j�d�}| j j�| j||�}| j �|dk� | j �|d | jj k� | j j� |�d |d � S )Nzunsigned char[]zunsigned int *r )r r �newr ZEVP_MAX_MD_SIZEZ HMAC_Finalr r r Zdigest_size�buffer)r ZbufZoutlenr r r r! �finalize? s �z_HMACContext.finalizec C s | � � }t�||�std��d S )NzSignature did not match digest.)r( r Zbytes_eqr )r Z signatureZdigestr r r! �verifyI s z_HMACContext.verify)N)�__name__� __module__�__qualname__r"