Файловый менеджер - Редактировать - /opt/imh-python/lib/python3.9/site-packages/cryptography/hazmat/backends/openssl/__pycache__/ciphers.cpython-39.pyc
Ðазад
a p�h}( � @ s| d dl mZ d dlmZmZmZ d dlmZ d dlm Z e� ej�e� ej�e� ej �e� ej�G dd� de�����ZdS )� )�utils)� InvalidTag�UnsupportedAlgorithm�_Reasons)�ciphers)�modesc @ sx e Zd ZdZdZdZdd� Zeed�dd�Zee d�d d �Z ed�dd �Zeed�dd�Zedd�dd�Z e�d�ZdS )�_CipherContext� r i���?c C sF || _ || _|| _|| _d | _t| jtj�r<| jjd | _ nd| _ | j j �� }| j j� || j j j�}| j j}z|t|�t|�f }W n2 ty� td�|j|r�|jn|�tj��Y n0 || j ||�}|| j jjk�rd�|�} |d ur�| d�|�7 } | d�| j �� �7 } t| tj��t|tj��r6| j j�|j�} njt|tj��rV| j j�|j�} nJt|tj��rv| j j�|j �} n*t|tj��r�| j j�|j �} n | j jj} | j j �!||| j jj| j jj| j jj|�}| j �"|dk� | j j �#|t$|j%��}| j �"|dk� t|tj&��r�| j j �'|| j j j(t$| �| j jj�}| j �"|dk� |j)d u�r�| j j �'|| j j j*t$|j)�|j)�}| j �"|dk� |j)| _| j j �!|| j jj| j jj| j j�|j%�| |�}| j �+� }| j j } |dk�r| j,�r�|d �-| j.| j/��s| j0�r|d �-| j1| j2��rt3d��| j j"|dk|d � | j j �4|d� || _5d S ) N� r z6cipher {} in {} mode is not supported by this backend.zcipher {0.name} zin {0.name} mode z_is not supported by this backend (Your version of OpenSSL may be too old. Current version: {}.)r z+In XTS mode duplicated keys are not allowed��errors)6�_backendZ_cipher�_mode� _operation�_tag� isinstancer ZBlockCipherAlgorithm� block_size�_block_size_bytes�_libZEVP_CIPHER_CTX_new�_ffi�gcZEVP_CIPHER_CTX_freeZ_cipher_registry�type�KeyErrorr �format�namer ZUNSUPPORTED_CIPHER�NULLZopenssl_version_textr ZModeWithInitializationVector�from_bufferZinitialization_vectorZ ModeWithTweakZtweakZ ModeWithNonce�nonceZEVP_CipherInit_ex�openssl_assertZEVP_CIPHER_CTX_set_key_length�len�key�GCM�EVP_CIPHER_CTX_ctrlZEVP_CTRL_AEAD_SET_IVLEN�tag�EVP_CTRL_AEAD_SET_TAG�_consume_errorsZ$CRYPTOGRAPHY_OPENSSL_111D_OR_GREATER�_lib_reason_match�ERR_LIB_EVPZEVP_R_XTS_DUPLICATED_KEYS�Cryptography_HAS_PROVIDERS�ERR_LIB_PROVZPROV_R_XTS_DUPLICATED_KEYS� ValueErrorZEVP_CIPHER_CTX_set_padding�_ctx)�self�backend�cipher�modeZ operation�ctx�registry�adapterZ evp_cipher�msgZiv_nonce�resr �lib� r6 ��/root/rpmbuild/BUILDROOT/imh-python39-modules-3.9.7-92.el8.x86_64/opt/imh-python/lib/python3.9/site-packages/cryptography/hazmat/backends/openssl/ciphers.py�__init__ s� ��� ��� � ���� ���� ��z_CipherContext.__init__)�data�returnc C s2 t t|�| j d �}| �||�}t|d |� �S )Nr )� bytearrayr r �update_into�bytes)r, r9 �buf�nr6 r6 r7 �update� s z_CipherContext.updatec C s t |�}t |�|| j d k r:td�t |�| j d ���d}d}| jj�d�}| jj�|�}| jj�|�}||kr�|| } || } t| j || �}| jj �| j| || |�}|dkr�t | jtj�r�| j�� td��n| j�|dk� ||7 }||d 7 }ql|S )Nr z1buffer must be at least {} bytes for this payloadr �int *zeIn XTS mode you must supply at least a full block in the first update call. For AES this is 16 bytes.)r r r* r r r �newr �min�_MAX_CHUNK_SIZEr �EVP_CipherUpdater+ r r r ZXTSr% r ) r, r9 r>