U
    ʹhI                     @  s   d dl mZ d dlZd dlmZ d dlmZmZmZm	Z	 G dd dej
dZdd	d
ddZG dd dZee ee	 G dd dZee ee dS )    )annotationsN)utils)ANSIX923PaddingContextANSIX923UnpaddingContextPKCS7PaddingContextPKCS7UnpaddingContextc                   @  s6   e Zd ZejdddddZejddddZd	S )
PaddingContextzutils.Bufferbytes)datareturnc                 C  s   dS )zR
        Pads the provided bytes and returns any available data as bytes.
        N )selfr
   r   r   L./venv/lib/python3.8/site-packages/cryptography/hazmat/primitives/padding.pyupdate   s    zPaddingContext.updater   c                 C  s   dS )z6
        Finalize the padding, returns bytes.
        Nr   r   r   r   r   finalize   s    zPaddingContext.finalizeN)__name__
__module____qualname__abcabstractmethodr   r   r   r   r   r   r      s   r   )	metaclassintNone)
block_sizer   c                 C  s6   d|   krdksn t d| d dkr2t dd S )Nr   i  z%block_size must be in range(0, 2041).   z#block_size must be a multiple of 8.)
ValueErrorr   r   r   r   _byte_padding_check    s    r   c                   @  s6   e Zd ZddddZddddZddd	d
ZdS )PKCS7r   r   c                 C  s   t | || _d S Nr   r   r   r   r   r   r   __init__)   s    zPKCS7.__init__r   r   c                 C  s
   t | jS r!   )r   r   r   r   r   r   padder-   s    zPKCS7.padderc                 C  s
   t | jS r!   )r   r   r   r   r   r   unpadder0   s    zPKCS7.unpadderNr   r   r   r$   r%   r&   r   r   r   r   r    (   s   r    c                   @  s6   e Zd ZddddZddddZddd	d
ZdS )ANSIX923r   r   c                 C  s   t | || _d S r!   r"   r#   r   r   r   r$   9   s    zANSIX923.__init__r   r   c                 C  s
   t | jS r!   )r   r   r   r   r   r   r%   =   s    zANSIX923.padderc                 C  s
   t | jS r!   )r   r   r   r   r   r   r&   @   s    zANSIX923.unpadderNr'   r   r   r   r   r(   8   s   r(   )Z
__future__r   r   Zcryptographyr   Z"cryptography.hazmat.bindings._rustr   r   r   r   ABCMetar   r   r    registerr(   r   r   r   r   <module>   s   


