
     h?              
       >   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ed	dfd
Zdej        e         deded	ej        eef         fdZdej        e         dedej        egef         d	efdZdej        e         deded	ej        eef         fdZdej        e         dedej        egef         d	ef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 )    N)utils)AlreadyFinalized)check_ansix923_paddingcheck_pkcs7_paddingc                   ^    e Zd Zej        dedefd            Zej        defd            ZdS )PaddingContextdatareturnc                     dS )zR
        Pads the provided bytes and returns any available data as bytes.
        N )selfr	   s     b/var/www/html/Sam_Eipo/venv/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)__name__
__module____qualname__abcabstractmethodbytesr   r   r   r   r   r   r      so        5 U    
 	%      r   r   )	metaclass
block_sizer
   c                 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_r	   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_updater)   '   s     ?@@@	64(((uT{{G'llzQ7O:*/::;Foq9;;<GF?r   	paddingfnc                 j    | t          d          |dz  t          |           z
  }|  ||          z   S )Nr#   r   )r   r%   )r!   r   r*   pad_sizes       r   _byte_padding_padr-   9   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_updater1   E   s     ?@@@	64(((uT{{G#g,,:?;a?CCO:*/::;Foq9;;<GF?r   checkfnc                     | 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   r2   validr,   s        r   _byte_unpadding_checkr6   W   s|    
 ?@@@
7||zQ&&1222GGE 31222r{H:XI:r   c                   2    e Zd ZdefdZdefdZdefdZdS )PKCS7r   c                 2    t          |           || _        d S Nr    r   r   r   s     r   __init__zPKCS7.__init__l       J'''$r   r
   c                 *    t          | j                  S r:   )_PKCS7PaddingContextr   r   s    r   padderzPKCS7.padderp   s    #DO444r   c                 *    t          | j                  S r:   )_PKCS7UnpaddingContextr   r   s    r   unpadderzPKCS7.unpadders   s    %do666r   Nr   r   r   intr=   r   rA   rD   r   r   r   r8   r8   k   se        %3 % % % %5 5 5 5 57. 7 7 7 7 7 7r   r8   c                   h    e Zd ZU ej        e         ed<   defdZdedefdZ	dedefdZ
defd	Zd
S )r@   _bufferr   c                 "    || _         d| _        d S Nr   r   rH   r<   s     r   r=   z_PKCS7PaddingContext.__init__z       $r   r	   r
   c                 L    t          | j        || j                  \  | _        }|S r:   r)   rH   r   r   r	   r(   s      r   r   z_PKCS7PaddingContext.update   *    3L$ 
  
f r   sizec                 (    t          |g          |z  S r:   r   r   rQ   s     r   _paddingz_PKCS7PaddingContext._padding   s    dV}}t##r   c                 T    t          | j        | j        | j                  }d | _        |S r:   r-   rH   r   rU   r   r(   s     r   r   z_PKCS7PaddingContext.finalize   ,    "L$/4=
 
 r   Nr   r   r   typingOptionalr   __annotations__rF   r=   r   rU   r   r   r   r   r@   r@   w   s         _U####3    
5 U    $S $U $ $ $ $%      r   r@   c                   X    e Zd ZU ej        e         ed<   defdZdedefdZ	defdZ
dS )	rC   rH   r   c                 "    || _         d| _        d S rJ   rK   r<   s     r   r=   z_PKCS7UnpaddingContext.__init__   rL   r   r	   r
   c                 L    t          | j        || j                  \  | _        }|S r:   r1   rH   r   rO   s      r   r   z_PKCS7UnpaddingContext.update   *    5L$ 
  
f r   c                 T    t          | j        | j        t                    }d | _        |S r:   )r6   rH   r   r   rX   s     r   r   z_PKCS7UnpaddingContext.finalize   s+    &L$/+>
 
 r   Nr   r   r   r[   r\   r   r]   rF   r=   r   r   r   r   r   rC   rC      s         _U####3    
5 U    %      r   rC   c                   2    e Zd ZdefdZdefdZdefdZdS )ANSIX923r   c                 2    t          |           || _        d S r:   r;   r<   s     r   r=   zANSIX923.__init__   r>   r   r
   c                 *    t          | j                  S r:   )_ANSIX923PaddingContextr   r   s    r   rA   zANSIX923.padder   s    &t777r   c                 *    t          | j                  S r:   )_ANSIX923UnpaddingContextr   r   s    r   rD   zANSIX923.unpadder   s    (999r   NrE   r   r   r   rf   rf      se        %3 % % % %8 8 8 8 8:. : : : : : :r   rf   c                   h    e Zd ZU ej        e         ed<   defdZdedefdZ	dedefdZ
defd	Zd
S )ri   rH   r   c                 "    || _         d| _        d S rJ   rK   r<   s     r   r=   z _ANSIX923PaddingContext.__init__   rL   r   r	   r
   c                 L    t          | j        || j                  \  | _        }|S r:   rN   rO   s      r   r   z_ANSIX923PaddingContext.update   rP   r   rQ   c                 P    t          dg          |dz
  z  t          |g          z   S )Nr   r/   rS   rT   s     r   rU   z _ANSIX923PaddingContext._padding   s&    aSzzTAX&v66r   c                 T    t          | j        | j        | j                  }d | _        |S r:   rW   rX   s     r   r   z _ANSIX923PaddingContext.finalize   rY   r   NrZ   r   r   r   ri   ri      s         _U####3    
5 U    7S 7U 7 7 7 7%      r   ri   c                   X    e Zd ZU ej        e         ed<   defdZdedefdZ	defdZ
dS )	rk   rH   r   c                 "    || _         d| _        d S rJ   rK   r<   s     r   r=   z"_ANSIX923UnpaddingContext.__init__   rL   r   r	   r
   c                 L    t          | j        || j                  \  | _        }|S r:   ra   rO   s      r   r   z _ANSIX923UnpaddingContext.update   rb   r   c                 T    t          | j        | j        t                    }d | _        |S r:   )r6   rH   r   r   rX   s     r   r   z"_ANSIX923UnpaddingContext.finalize   s,    &LO"
 

 r   Nrd   r   r   r   rk   rk      s         _U####3    
5 U    %      r   rk   )r   r[   cryptographyr   cryptography.exceptionsr   "cryptography.hazmat.bindings._rustr   r   ABCMetar   rF   r    r\   r   Tupler)   Callabler-   r1   r6   r8   r@   rC   rf   ri   rk   r   r   r   <module>r{      s   


        4 4 4 4 4 4           s{    @C @D @ @ @ @_U#+0>A\%,   $	)_U#	)	) ue|,	) 		) 	) 	) 	)_U#+0>A\%,   $_U# _eWc\* 	   (	7 	7 	7 	7 	7 	7 	7 	7    >   2    ^   ,	: 	: 	: 	: 	: 	: 	: 	:    n   2         r   