Submit
Path:
~
/
/
opt
/
alt
/
python37
/
lib64
/
python3.7
/
site-packages
/
cryptography
/
hazmat
/
backends
/
openssl
/
__pycache__
/
File Content:
hmac.cpython-37.pyc
B \��`� � @ st d dl mZmZmZ d dlmZ d dlmZmZm Z d dl mZmZm Z e�e j�e�ej�G dd� de���ZdS )� )�absolute_import�division�print_function)�utils)�InvalidSignature�UnsupportedAlgorithm�_Reasons)� constant_time�hashes�macc @ s@ e Zd Zd dd�Ze�d�Zdd� Zdd� Zd d � Z dd� Z dS )�_HMACContextNc C s� || _ || _|d kr�| jj�� }| j�|| jjjk� | jj�|| jjj�}| j� |�}| jj� |�}|| jjjkr�td�|�t j��| jj�||t|�|| jjj�}| j�|dk� || _|| _d S )Nz+{0} is not a supported hash on this backendr )� _algorithm�_backend�_lib�Cryptography_HMAC_CTX_new�openssl_assert�_ffi�NULL�gc�Cryptography_HMAC_CTX_freeZ_build_openssl_digest_nameZEVP_get_digestbynamer �formatr ZUNSUPPORTED_HASHZHMAC_Init_ex�len�_ctx�_key)�selfZbackend�key� algorithm�ctx�nameZevp_md�res� r �\/opt/alt/python37/lib64/python3.7/site-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|t|��}| j �|dk� d S )Nr )r r ZHMAC_Updater r r )r �datar r r r! �update9 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! �verifyF s z_HMACContext.verify)N)�__name__� __module__�__qualname__r"