관리-도구
편집 파일: poly1305.cpython-39.pyc
a �a+ � @ s4 d dl mZ d dlmZ dZdZG dd� de�ZdS )� )�InvalidSignature)� constant_time� � c @ s, e Zd Zdd� Zdd� Zdd� Zdd� Zd S ) �_Poly1305Contextc C s� || _ | j j�|�}| j j�| j jj| j jj|t|��}| j �|| j jjk� | j j� || j jj �| _| j j�� }| j �|| j jjk� | j j� || j jj �| _| j j�| j| j jj| j jj| j jj| j�}| j �|dk� d S )N� )�_backend�_ffi�from_buffer�_libZEVP_PKEY_new_raw_private_keyZNID_poly1305ZNULL�len�openssl_assert�gcZ EVP_PKEY_freeZ _evp_pkeyZEVP_MD_CTX_newZEVP_MD_CTX_free�_ctxZEVP_DigestSignInit)�selfZbackend�keyZkey_ptrZevp_pkey�ctx�res� r �S/usr/lib64/python3.9/site-packages/cryptography/hazmat/backends/openssl/poly1305.py�__init__ s2 � � ��z_Poly1305Context.__init__c C s: | j j�|�}| j j�| j|t|��}| j �|dk� d S )Nr )r r r r ZEVP_DigestSignUpdater r r )r �dataZdata_ptrr r r r �update- s �z_Poly1305Context.updatec C sr | j j�dt�}| j j�dt�}| j j�| j||�}| j �|dk� | j �|d tk� | j j�|�d |d � S )Nzunsigned char[]zsize_t *r ) r r �new�_POLY1305_TAG_SIZEr ZEVP_DigestSignFinalr r �buffer)r �bufZoutlenr r r r �finalize4 s z_Poly1305Context.finalizec C s | � � }t�||�std��d S )Nz!Value did not match computed tag.)r r Zbytes_eqr )r �tagZmacr r r �verify<