
    _fb                    >   d dl mZ 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ej                  Zd'dZd(dZd)dZd(dZd*dZ G d d          Z G d de          Z G d d e          Z G d! d"          Z G d# d$e          Z G d% d&e          ZdS )+    )annotationsN)utils)AlreadyFinalized)check_ansix923_paddingcheck_pkcs7_paddingc                  R    e Zd Zej        dd            Zej        dd            ZdS )	PaddingContextdatabytesreturnc                    dS )zR
        Pads the provided bytes and returns any available data as bytes.
        N )selfr
   s     X/var/www/html/env/lib/python3.11/site-packages/cryptography/hazmat/primitives/padding.pyupdatezPaddingContext.update             c                    dS )z6
        Finalize the padding, returns bytes.
        Nr   r   s    r   finalizezPaddingContext.finalize   r   r   Nr
   r   r   r   r   r   )__name__
__module____qualname__abcabstractmethodr   r   r   r   r   r	   r	      sZ           
 	     r   r	   )	metaclass
block_sizeintr   Nonec                r    d| cxk    rdk    sn t          d          | dz  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   s    r   _byte_padding_checkr%       sV    ####t####@AAAA~>??? r   buffer_typing.Optional[bytes]r
   r   typing.Tuple[bytes, bytes]c                    | t          d          t          j        d|           | t          |          z  } t	          |           |dz  z  }| d ||dz  z           }| ||dz  z  d          } | |fS )NContext was already finalized.r
   r#   )r   r   _check_bytesliker   lenr&   r
   r   finished_blocksresults        r   _byte_padding_updater0   (   s     ?@@@	64(((uT{{G'llzQ7O:*/::;Foq9;;<GF?r   	paddingfntyping.Callable[[int], bytes]c                j    | t          d          |dz  t          |           z
  }|  ||          z   S )Nr*   r#   )r   r,   )r&   r   r1   pad_sizes       r   _byte_padding_padr5   :   sA    
 ?@@@QW-HYYx((((r   c                   | t          d          t          j        d|           | t          |          z  } t	          t          |           |dz  z  dz
  d          }| d ||dz  z           }| ||dz  z  d          } | |fS )Nr*   r
   r#      r   )r   r   r+   r   maxr,   r-   s        r   _byte_unpadding_updater9   F   s     ?@@@	64(((uT{{G#g,,:?;a?CCO:*/::;Foq9;;<GF?r   checkfntyping.Callable[[bytes], int]c                    | t          d          t          |           |dz  k    rt          d           ||           }|st          d          | d         }| d |          S )Nr*   r#   zInvalid padding bytes.)r   r,   r$   )r&   r   r:   validr4   s        r   _byte_unpadding_checkr?   X   s|    
 ?@@@
7||zQ&&1222GGE 31222r{H:XI:r   c                  &    e Zd Zd	dZd
dZd
dZdS )PKCS7r   r    c                2    t          |           || _        d S Nr%   r   r   r   s     r   __init__zPKCS7.__init__m       J'''$r   r   r	   c                *    t          | j                  S rC   )_PKCS7PaddingContextr   r   s    r   padderzPKCS7.padderq   s    #DO444r   c                *    t          | j                  S rC   )_PKCS7UnpaddingContextr   r   s    r   unpadderzPKCS7.unpaddert   s    %do666r   Nr   r    r   r	   r   r   r   rF   rJ   rM   r   r   r   rA   rA   l   sP        % % % %5 5 5 57 7 7 7 7 7r   rA   c                  :    e Zd ZU ded<   ddZdd	ZddZddZdS )rI   r'   _bufferr   r    c                "    || _         d| _        d S Nr   r   rR   rE   s     r   rF   z_PKCS7PaddingContext.__init__{       $r   r
   r   r   c                L    t          | j        || j                  \  | _        }|S rC   r0   rR   r   r   r
   r/   s      r   r   z_PKCS7PaddingContext.update   *    3L$ 
  
f r   sizec                (    t          |g          |z  S rC   r   r   r[   s     r   _paddingz_PKCS7PaddingContext._padding   s    dV}}t##r   c                T    t          | j        | j        | j                  }d | _        |S rC   r5   rR   r   r_   r   r/   s     r   r   z_PKCS7PaddingContext.finalize   ,    "L$/4=
 
 r   NrN   r   r[   r    r   r   r   r   r   r   __annotations__rF   r   r_   r   r   r   r   rI   rI   x   sr         ####   
   $ $ $ $     r   rI   c                  2    e Zd ZU ded<   ddZdd	Zdd
ZdS )rL   r'   rR   r   r    c                "    || _         d| _        d S rT   rU   rE   s     r   rF   z_PKCS7UnpaddingContext.__init__   rV   r   r
   r   r   c                L    t          | j        || j                  \  | _        }|S rC   r9   rR   r   rY   s      r   r   z_PKCS7UnpaddingContext.update   *    5L$ 
  
f r   c                T    t          | j        | j        t                    }d | _        |S rC   )r?   rR   r   r   rb   s     r   r   z_PKCS7UnpaddingContext.finalize   s+    &L$/+>
 
 r   NrN   r   r   r   r   r   rf   rF   r   r   r   r   r   rL   rL      s^         ####   
        r   rL   c                  &    e Zd Zd	dZd
dZd
dZdS )ANSIX923r   r    c                2    t          |           || _        d S rC   rD   rE   s     r   rF   zANSIX923.__init__   rG   r   r   r	   c                *    t          | j                  S rC   )_ANSIX923PaddingContextr   r   s    r   rJ   zANSIX923.padder   s    &t777r   c                *    t          | j                  S rC   )_ANSIX923UnpaddingContextr   r   s    r   rM   zANSIX923.unpadder   s    (999r   NrN   rO   rP   r   r   r   ro   ro      sP        % % % %8 8 8 8: : : : : :r   ro   c                  :    e Zd ZU ded<   ddZdd	ZddZddZdS )rr   r'   rR   r   r    c                "    || _         d| _        d S rT   rU   rE   s     r   rF   z _ANSIX923PaddingContext.__init__   rV   r   r
   r   r   c                L    t          | j        || j                  \  | _        }|S rC   rX   rY   s      r   r   z_ANSIX923PaddingContext.update   rZ   r   r[   c                P    t          dg          |dz
  z  t          |g          z   S )Nr   r7   r]   r^   s     r   r_   z _ANSIX923PaddingContext._padding   s&    aSzzTAX&v66r   c                T    t          | j        | j        | j                  }d | _        |S rC   ra   rb   s     r   r   z _ANSIX923PaddingContext.finalize   rc   r   NrN   r   rd   r   re   r   r   r   rr   rr      sr         ####   
   7 7 7 7     r   rr   c                  2    e Zd ZU ded<   ddZdd	Zdd
ZdS )rt   r'   rR   r   r    c                "    || _         d| _        d S rT   rU   rE   s     r   rF   z"_ANSIX923UnpaddingContext.__init__   rV   r   r
   r   r   c                L    t          | j        || j                  \  | _        }|S rC   rj   rY   s      r   r   z _ANSIX923UnpaddingContext.update   rk   r   c                T    t          | j        | j        t                    }d | _        |S rC   )r?   rR   r   r   rb   s     r   r   z"_ANSIX923UnpaddingContext.finalize   s,    &LO"
 

 r   NrN   r   r   rm   r   r   r   rt   rt      s^         ####   
        r   rt   )r   r    r   r!   )r&   r'   r
   r   r   r    r   r(   )r&   r'   r   r    r1   r2   r   r   )r&   r'   r   r    r:   r;   r   r   )
__future__r   r   typingcryptographyr   cryptography.exceptionsr   "cryptography.hazmat.bindings._rustr   r   ABCMetar	   r%   r0   r5   r9   r?   rA   rI   rL   ro   rr   rt   r   r   r   <module>r      s  
 # " " " " " 



        4 4 4 4 4 4           s{    @ @ @ @   $	) 	) 	) 	)   $   (	7 	7 	7 	7 	7 	7 	7 	7    >   2    ^   ,	: 	: 	: 	: 	: 	: 	: 	:    n   2         r   