
    tf                    P   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
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e                    e	            G d d           Z G d! d"e          Z G d# d$e          ZdS ))    )annotationsN)utils)AlreadyFinalized)PKCS7PaddingContext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     e/var/www/surfInsights/venv3-11/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_bytes | Noner   r   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_updater1   )   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    r2   pad_sizes       r   _byte_padding_padr6   ;   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_updater:   G   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;   validr5   s        r   _byte_unpadding_checkr@   Y   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__n       J'''$r   r   r
   c                *    t          | j                  S rD   )r   r    r   s    r   padderzPKCS7.padderr   s    "4?333r   c                *    t          | j                  S rD   )_PKCS7UnpaddingContextr    r   s    r   unpadderzPKCS7.unpadderu   s    %do666r   Nr    r!   r   r
   r   r   r   rG   rJ   rM   r   r   r   rB   rB   m   sP        % % % %4 4 4 47 7 7 7 7 7r   rB   c                  2    e Zd ZU ded<   ddZdd	Zdd
ZdS )rL   r(   _bufferr    r!   c                "    || _         d| _        d S Nr   r    rR   rF   s     r   rG   z_PKCS7UnpaddingContext.__init__|       $r   r   r   r   c                L    t          | j        || j                  \  | _        }|S rD   r:   rR   r    r   r   r0   s      r   r   z_PKCS7UnpaddingContext.update   *    5L$ 
  
f r   c                T    t          | j        | j        t                    }d | _        |S rD   )r@   rR   r    r   r   r0   s     r   r   z_PKCS7UnpaddingContext.finalize   s+    &L$/+>
 
 r   NrN   r   r   r   r   r   __annotations__rG   r   r   r   r   r   rL   rL   y   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 rD   rE   rF   s     r   rG   zANSIX923.__init__   rH   r   r   r
   c                *    t          | j                  S rD   )_ANSIX923PaddingContextr    r   s    r   rJ   zANSIX923.padder   s    &t777r   c                *    t          | j                  S rD   )_ANSIX923UnpaddingContextr    r   s    r   rM   zANSIX923.unpadder   s    (999r   NrN   rO   rP   r   r   r   r`   r`      sP        % % % %8 8 8 8: : : : : :r   r`   c                  :    e Zd ZU ded<   ddZdd	ZddZddZdS )rc   r(   rR   r    r!   c                "    || _         d| _        d S rT   rU   rF   s     r   rG   z _ANSIX923PaddingContext.__init__   rV   r   r   r   r   c                L    t          | j        || j                  \  | _        }|S rD   )r1   rR   r    rY   s      r   r   z_ANSIX923PaddingContext.update   s*    3L$ 
  
f r   sizec                P    t          dg          |dz
  z  t          |g          z   S )Nr   r8   )r   )r   ri   s     r   _paddingz _ANSIX923PaddingContext._padding   s&    aSzzTAX&v66r   c                T    t          | j        | j        | j                  }d | _        |S rD   )r6   rR   r    rk   r\   s     r   r   z _ANSIX923PaddingContext.finalize   s,    "L$/4=
 
 r   NrN   r   )ri   r!   r   r   r   )r   r   r   r^   rG   r   rk   r   r   r   r   rc   rc      sr            
   7 7 7 7     r   rc   c                  2    e Zd ZU ded<   ddZdd	Zdd
ZdS )re   r(   rR   r    r!   c                "    || _         d| _        d S rT   rU   rF   s     r   rG   z"_ANSIX923UnpaddingContext.__init__   rV   r   r   r   r   c                L    t          | j        || j                  \  | _        }|S rD   rX   rY   s      r   r   z _ANSIX923UnpaddingContext.update   rZ   r   c                T    t          | j        | j        t                    }d | _        |S rD   )r@   rR   r    r   r\   s     r   r   z"_ANSIX923UnpaddingContext.finalize   s,    &LO"
 

 r   NrN   r   r   r]   r   r   r   re   re      s^            
        r   re   )r    r!   r   r"   )r'   r(   r   r   r    r!   r   r)   )r'   r(   r    r!   r2   r3   r   r   )r'   r(   r    r!   r;   r<   r   r   )
__future__r   r   typingcryptographyr   cryptography.exceptionsr   "cryptography.hazmat.bindings._rustr   r   r   ABCMetar
   r&   r1   r6   r:   r@   rB   rL   registerr`   rc   re   r   r   r   <module>rx      s	  
 # " " " " " 



        4 4 4 4 4 4             s{    @ @ @ @   $	) 	) 	) 	)   $   (	7 	7 	7 	7 	7 	7 	7 	7    ^   ,   + , , ,	: 	: 	: 	: 	: 	: 	: 	:    n   2         r   