3
ćde?  ć               @   sP  d dl Z d dlZd dlmZ d dlmZ d dlmZmZ G dd de j	dZ
eddd	d
Zeje eeejeef dddZeje eejegef edddZeje eeejeef dddZeje eejegef edddZG dd dZG dd de
ZG dd de
ZG dd dZG dd de
ZG d d! d!e
ZdS )"é    N)Śutils)ŚAlreadyFinalized)Ścheck_ansix923_paddingŚcheck_pkcs7_paddingc               @   s6   e Zd ZejeedddZejedddZdS )ŚPaddingContext)ŚdataŚreturnc             C   s   dS )zR
        Pads the provided bytes and returns any available data as bytes.
        N© )Śselfr   r	   r	   ś]/var/www/agendate/envp3/lib/python3.6/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ŚabstractmethodŚbytesr   r   r	   r	   r	   r   r      s   r   )Ś	metaclass)Ś
block_sizer   c             C   s8   d|   kodkn  s t d| d dkr4t 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   )Śbuffer_r   r   r   c             C   sh   | d krt dtjd| | t|7 } t| |d  }| d ||d   }| ||d  d  } | |fS )NzContext was already finalized.r   r   )r   r   Ś_check_bytesliker   Ślen)r   r   r   Śfinished_blocksŚresultr	   r	   r   Ś_byte_padding_update'   s    r   )r   r   Ś	paddingfnr   c             C   s,   | d krt d|d t|  }| || S )NzContext was already finalized.r   )r   r   )r   r   r   Śpad_sizer	   r	   r   Ś_byte_padding_pad9   s    r!   c             C   sr   | d krt dtjd| | t|7 } tt| |d  d d}| d ||d   }| ||d  d  } | |fS )NzContext was already finalized.r   r   é   r   )r   r   r   r   Śmaxr   )r   r   r   r   r   r	   r	   r   Ś_byte_unpadding_updateE   s    r$   )r   r   Ścheckfnr   c             C   sR   | d krt dt| |d kr(td|| }|s<td| d }| d |  S )NzContext was already finalized.r   zInvalid padding bytes.r"   é’’’’)r   r   r   )r   r   r%   Zvalidr    r	   r	   r   Ś_byte_unpadding_checkW   s    r'   c               @   s6   e Zd ZedddZedddZedddZd	S )
ŚPKCS7)r   c             C   s   t | || _d S )N)r   r   )r
   r   r	   r	   r   Ś__init__l   s    zPKCS7.__init__)r   c             C   s
   t | jS )N)Ś_PKCS7PaddingContextr   )r
   r	   r	   r   Śpadderp   s    zPKCS7.padderc             C   s
   t | jS )N)Ś_PKCS7UnpaddingContextr   )r
   r	   r	   r   Śunpadders   s    zPKCS7.unpadderN)r   r   r   Śintr)   r   r+   r-   r	   r	   r	   r   r(   k   s   r(   c               @   sT   e Zd ZU eje edddZeedddZ	eeddd	Z
ed
ddZdS )r*   )r   c             C   s   || _ d| _d S )Nó    )r   Ś_buffer)r
   r   r	   r	   r   r)   z   s    z_PKCS7PaddingContext.__init__)r   r   c             C   s   t | j|| j\| _}|S )N)r   r0   r   )r
   r   r   r	   r	   r   r      s    z_PKCS7PaddingContext.update)Śsizer   c             C   s   t |g| S )N)r   )r
   r1   r	   r	   r   Ś_padding   s    z_PKCS7PaddingContext._padding)r   c             C   s   t | j| j| j}d | _|S )N)r!   r0   r   r2   )r
   r   r	   r	   r   r      s    z_PKCS7PaddingContext.finalizeN)r   r   r   ŚtypingŚOptionalr   r0   r.   r)   r   r2   r   r	   r	   r	   r   r*   w   s
   

r*   c               @   sD   e Zd ZU eje edddZeedddZ	eddd	Z
d
S )r,   )r   c             C   s   || _ d| _d S )Nr/   )r   r0   )r
   r   r	   r	   r   r)      s    z_PKCS7UnpaddingContext.__init__)r   r   c             C   s   t | j|| j\| _}|S )N)r$   r0   r   )r
   r   r   r	   r	   r   r      s    z_PKCS7UnpaddingContext.update)r   c             C   s   t | j| jt}d | _|S )N)r'   r0   r   r   )r
   r   r	   r	   r   r      s    z_PKCS7UnpaddingContext.finalizeN)r   r   r   r3   r4   r   r0   r.   r)   r   r   r	   r	   r	   r   r,      s   

r,   c               @   s6   e Zd ZedddZedddZedddZd	S )
ŚANSIX923)r   c             C   s   t | || _d S )N)r   r   )r
   r   r	   r	   r   r)   §   s    zANSIX923.__init__)r   c             C   s
   t | jS )N)Ś_ANSIX923PaddingContextr   )r
   r	   r	   r   r+   «   s    zANSIX923.padderc             C   s
   t | jS )N)Ś_ANSIX923UnpaddingContextr   )r
   r	   r	   r   r-   ®   s    zANSIX923.unpadderN)r   r   r   r.   r)   r   r+   r-   r	   r	   r	   r   r5   ¦   s   r5   c               @   sT   e Zd ZU eje edddZeedddZ	eeddd	Z
ed
ddZdS )r6   )r   c             C   s   || _ d| _d S )Nr/   )r   r0   )r
   r   r	   r	   r   r)   µ   s    z _ANSIX923PaddingContext.__init__)r   r   c             C   s   t | j|| j\| _}|S )N)r   r0   r   )r
   r   r   r	   r	   r   r   ŗ   s    z_ANSIX923PaddingContext.update)r1   r   c             C   s   t dg|d  t |g S )Nr   r"   )r   )r
   r1   r	   r	   r   r2   Ą   s    z _ANSIX923PaddingContext._padding)r   c             C   s   t | j| j| j}d | _|S )N)r!   r0   r   r2   )r
   r   r	   r	   r   r   Ć   s    z _ANSIX923PaddingContext.finalizeN)r   r   r   r3   r4   r   r0   r.   r)   r   r2   r   r	   r	   r	   r   r6   ²   s
   

r6   c               @   sD   e Zd ZU eje edddZeedddZ	eddd	Z
d
S )r7   )r   c             C   s   || _ d| _d S )Nr/   )r   r0   )r
   r   r	   r	   r   r)   Ī   s    z"_ANSIX923UnpaddingContext.__init__)r   r   c             C   s   t | j|| j\| _}|S )N)r$   r0   r   )r
   r   r   r	   r	   r   r   Ó   s    z _ANSIX923UnpaddingContext.update)r   c             C   s   t | j| jt}d | _|S )N)r'   r0   r   r   )r
   r   r	   r	   r   r   Ł   s    z"_ANSIX923UnpaddingContext.finalizeN)r   r   r   r3   r4   r   r0   r.   r)   r   r   r	   r	   r	   r   r7   Ė   s   

r7   )r   r3   Zcryptographyr   Zcryptography.exceptionsr   Z"cryptography.hazmat.bindings._rustr   r   ŚABCMetar   r.   r   r4   r   ŚTupler   ŚCallabler!   r$   r'   r(   r*   r,   r5   r6   r7   r	   r	   r	   r   Ś<module>   s0   		