U
    �AcjI  ã                   @  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   úJ/tmp/pip-unpacked-wheel-r8nyqoul/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(   )Ú
__future__r   r   Zcryptographyr   Z"cryptography.hazmat.bindings._rustr   r   r   r   ÚABCMetar   r   r    Úregisterr(   r   r   r   r   Ú<module>   s   


