HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3/dist-packages/cryptography/hazmat/backends/openssl/__pycache__/cmac.cpython-38.pyc
U

�e�]'�@s`ddlmZmZmZddlmZddlmZmZm	Z	ddl
mZddlm
Z
Gdd�de�ZdS)	�)�absolute_import�division�print_function)�utils)�InvalidSignature�UnsupportedAlgorithm�_Reasons)�
constant_time)�CBCc@s@eZdZd
dd�Ze�d�Zdd�Zdd�Zd	d
�Z	dd�Z
dS)�_CMACContextNc	Cs�|�|�stdtj��||_|j|_||_|jd|_	|dkr�|jj
}|t|�tf}||j|t�}|jj
��}|j�||jjjk�|jj�||jj
j�}|jj�|j�}|jj
�||t|j�||jjj�}|j�|dk�||_dS)Nz#This backend does not support CMAC.��)Zcmac_algorithm_supportedrrZUNSUPPORTED_CIPHER�_backend�keyZ_key�
_algorithmZ
block_size�_output_lengthZ_cipher_registry�typer
�_lib�CMAC_CTX_new�openssl_assert�_ffiZNULL�gc�
CMAC_CTX_freeZfrom_bufferZ	CMAC_Init�len�_ctx)	�selfZbackend�	algorithm�ctx�registryZadapterZ
evp_cipherZkey_ptr�res�r �K/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/cmac.py�__init__s2
��z_CMACContext.__init__rcCs,|jj�|j|t|��}|j�|dk�dS)Nr
)rrZCMAC_Updaterrr)r�datarr r r!�update1sz_CMACContext.updatecCsd|jj�d|j�}|jj�d|j�}|jj�|j||�}|j�|dk�d|_|jj�|�dd�S)Nzunsigned char[]zsize_t *r
)	rr�newrrZ
CMAC_Finalrr�buffer)rZbufZlengthrr r r!�finalize5s�z_CMACContext.finalizecCsV|jj��}|jj�||jjj�}|jj�||j�}|j�|dk�t	|j|j
|d�S)Nr
)r)rrrrrrZ
CMAC_CTX_copyrrrr)rZ
copied_ctxrr r r!�copyAs���z_CMACContext.copycCs |��}t�||�std��dS)NzSignature did not match digest.)r'r	Zbytes_eqr)rZ	signatureZdigestr r r!�verifyNsz_CMACContext.verify)N)�__name__�
__module__�__qualname__r"rZread_only_propertyrr$r'r(r)r r r r!rs


rN)Z
__future__rrrZcryptographyrZcryptography.exceptionsrrrZcryptography.hazmat.primitivesr	Z,cryptography.hazmat.primitives.ciphers.modesr
�objectrr r r r!�<module>s