Current File : //lib64/python3.9/site-packages/cryptography/hazmat/primitives/__pycache__/padding.cpython-39.pyc
a

�a+�@sTddlZddlZddlmZddlmZddlmZmZGdd�dej	d�Z
edd�d	d
�Zej
eeeejeefd�dd
�Zej
eeejegefed�dd�Zej
eeeejeefd�dd�Zej
eeejegefed�dd�ZGdd�de�ZGdd�de
�ZGdd�de
�ZGdd�de�ZGdd�de
�ZGd d!�d!e
�ZdS)"�N)�utils)�AlreadyFinalized)�check_ansix923_padding�check_pkcs7_paddingc@s6eZdZejeed�dd��Zejed�dd��ZdS)�PaddingContext��data�returncCsdS)zR
        Pads the provided bytes and returns any available data as bytes.
        N�)�selfrr
r
�L/usr/lib64/python3.9/site-packages/cryptography/hazmat/primitives/padding.py�updateszPaddingContext.update�r	cCsdS)z6
        Finalize the padding, returns bytes.
        Nr
�rr
r
r�finalizeszPaddingContext.finalizeN)�__name__�
__module__�__qualname__�abc�abstractmethod�bytesr
rr
r
r
rrsr)�	metaclass)�
block_sizer	cCs6d|krdksntd��|ddkr2td��dS)Nri�z%block_size must be in range(0, 2041).�z#block_size must be a multiple of 8.)�
ValueError�rr
r
r�_byte_padding_checksr)�buffer_rrr	cCsh|durtd��t�d|�|t|�7}t|�|d}|d||d�}|||dd�}||fS)N�Context was already finalized.rr)rr�_check_bytesliker�len�rrrZfinished_blocks�resultr
r
r�_byte_padding_update'sr#)rr�	paddingfnr	cCs,|durtd��|dt|�}|||�S)Nrr)rr )rrr$�pad_sizer
r
r�_byte_padding_pad9sr&cCsr|durtd��t�d|�|t|�7}tt|�|ddd�}|d||d�}|||dd�}||fS)Nrrr�r)rrrr�maxr r!r
r
r�_byte_unpadding_updateEsr))rr�checkfnr	cCsR|durtd��t|�|dkr(td��||�}|s<td��|d}|d|�S)NrrzInvalid padding bytes.���)rr r)rrr*Zvalidr%r
r
r�_byte_unpadding_checkWsr,c@s*eZdZed�dd�Zdd�Zdd�ZdS)	�PKCS7rcCst|�||_dS�N�rr�rrr
r
r�__init__lszPKCS7.__init__cCs
t|j�Sr.)�_PKCS7PaddingContextrrr
r
r�padderpszPKCS7.paddercCs
t|j�Sr.)�_PKCS7UnpaddingContextrrr
r
r�unpaddersszPKCS7.unpadderN)rrr�intr1r3r5r
r
r
rr-ksr-c@sXeZdZUejeed<ed�dd�Zeed�dd�Z	eed�d	d
�Z
ed�dd
�ZdS)r2�_bufferrcCs||_d|_dS�N��rr7r0r
r
rr1zsz_PKCS7PaddingContext.__init__rcCst|j||j�\|_}|Sr.�r#r7r�rrr"r
r
rr
s
�
z_PKCS7PaddingContext.update��sizer	cCst|g�|Sr.�r�rr>r
r
r�_padding�sz_PKCS7PaddingContext._paddingrcCst|j|j|j�}d|_|Sr.�r&r7rrA�rr"r
r
rr�s
�z_PKCS7PaddingContext.finalizeN�rrr�typing�Optionalr�__annotations__r6r1r
rArr
r
r
rr2ws

r2c@sHeZdZUejeed<ed�dd�Zeed�dd�Z	ed�d	d
�Z
dS)r4r7rcCs||_d|_dSr8r:r0r
r
rr1�sz_PKCS7UnpaddingContext.__init__rcCst|j||j�\|_}|Sr.�r)r7rr<r
r
rr
�s
�
z_PKCS7UnpaddingContext.updatercCst|j|jt�}d|_|Sr.)r,r7rrrCr
r
rr�s

�z_PKCS7UnpaddingContext.finalizeN�rrrrErFrrGr6r1r
rr
r
r
rr4�s
r4c@s6eZdZed�dd�Zed�dd�Zed�dd�Zd	S)
�ANSIX923rcCst|�||_dSr.r/r0r
r
rr1�szANSIX923.__init__rcCs
t|j�Sr.)�_ANSIX923PaddingContextrrr
r
rr3�szANSIX923.paddercCs
t|j�Sr.)�_ANSIX923UnpaddingContextrrr
r
rr5�szANSIX923.unpadderN)rrrr6r1rr3r5r
r
r
rrJ�srJc@sXeZdZUejeed<ed�dd�Zeed�dd�Z	eed�d	d
�Z
ed�dd
�ZdS)rKr7rcCs||_d|_dSr8r:r0r
r
rr1�sz _ANSIX923PaddingContext.__init__rcCst|j||j�\|_}|Sr.r;r<r
r
rr
�s
�
z_ANSIX923PaddingContext.updater=cCstdg�|dt|g�S)Nrr'r?r@r
r
rrA�sz _ANSIX923PaddingContext._paddingrcCst|j|j|j�}d|_|Sr.rBrCr
r
rr�s
�z _ANSIX923PaddingContext.finalizeNrDr
r
r
rrK�s

rKc@sHeZdZUejeed<ed�dd�Zeed�dd�Z	ed�d	d
�Z
dS)rLr7rcCs||_d|_dSr8r:r0r
r
rr1�sz"_ANSIX923UnpaddingContext.__init__rcCst|j||j�\|_}|Sr.rHr<r
r
rr
�s
�
z _ANSIX923UnpaddingContext.updatercCst|j|jt�}d|_|Sr.)r,r7rrrCr
r
rr�s�z"_ANSIX923UnpaddingContext.finalizeNrIr
r
r
rrL�s
rL)rrEZcryptographyrZcryptography.exceptionsrZ"cryptography.hazmat.bindings._rustrr�ABCMetarr6rrFr�Tupler#�Callabler&r)r,�objectr-r2r4rJrKrLr
r
r
r�<module>s8	��
��