o
    SThI                     @  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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                   @  s,   e Zd Zejd
ddZejdddZd	S )PaddingContextdatautils.Bufferreturnbytesc                 C     dS )zR
        Pads the provided bytes and returns any available data as bytes.
        N )selfr	   r   r   g/home/air/segue/gemini/back/venv/lib/python3.10/site-packages/cryptography/hazmat/primitives/padding.pyupdate       zPaddingContext.updatec                 C  r   )z6
        Finalize the padding, returns bytes.
        Nr   r   r   r   r   finalize   r   zPaddingContext.finalizeN)r	   r
   r   r   )r   r   )__name__
__module____qualname__abcabstractmethodr   r   r   r   r   r   r      s
    r   )	metaclass
block_sizeintr   Nonec                 C  s<   d|   krdkst d t d| d dkrt 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                   @  *   e Zd ZdddZdddZdd	d
ZdS )PKCS7r   r   c                 C     t | || _d S Nr    r   r   r   r   r   r   __init__)      
zPKCS7.__init__r   r   c                 C  
   t | jS r$   )r   r   r   r   r   r   padder-      
zPKCS7.padderc                 C  r)   r$   )r   r   r   r   r   r   unpadder0   r+   zPKCS7.unpadderNr   r   r   r   r   r   r   r'   r*   r,   r   r   r   r   r"   (       

r"   c                   @  r!   )ANSIX923r   r   c                 C  r#   r$   r%   r&   r   r   r   r'   9   r(   zANSIX923.__init__r   r   c                 C  r)   r$   )r   r   r   r   r   r   r*   =   r+   zANSIX923.padderc                 C  r)   r$   )r   r   r   r   r   r   r,   @   r+   zANSIX923.unpadderNr-   r.   r/   r   r   r   r   r1   8   r0   r1   )r   r   r   r   )
__future__r   r   cryptographyr   "cryptography.hazmat.bindings._rustr   r   r   r   ABCMetar   r    r"   registerr1   r   r   r   r   <module>   s   



