
    NgD                    ^   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e                    e	           e                    e
            G d d          Z G d d e          Z G d! d"e          ZdS )'    )annotationsN)utils)AlreadyFinalized)PKCS7PaddingContextPKCS7UnpaddingContextcheck_ansix923_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     b/var/www/html/ai-engine/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_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   )r   r    r   s    r   unpadderzPKCS7.unpadderu   s    $T_555r   Nr    r!   r   r
   r   r   r   rG   rJ   rL   r   r   r   rB   rB   m   sP        % % % %4 4 4 46 6 6 6 6 6r   rB   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   rL   zANSIX923.unpadder   s    (999r   NrM   rN   rO   r   r   r   rQ   rQ   }   sP        % % % %8 8 8 8: : : : : :r   rQ   c                  :    e Zd ZU ded<   ddZdd	ZddZddZdS )rT   r(   _bufferr    r!   c                "    || _         d| _        d S Nr   r    rX   rF   s     r   rG   z _ANSIX923PaddingContext.__init__       $r   r   r   r   c                L    t          | j        || j                  \  | _        }|S rD   )r1   rX   r    r   r   r0   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   r_   s     r   _paddingz _ANSIX923PaddingContext._padding   s&    aSzzTAX&v66r   c                T    t          | j        | j        | j                  }d | _        |S rD   )r6   rX   r    ra   r   r0   s     r   r   z _ANSIX923PaddingContext.finalize   s,    "L$/4=
 
 r   NrM   r   )r_   r!   r   r   r   )r   r   r   __annotations__rG   r   ra   r   r   r   r   rT   rT      sr            
   7 7 7 7     r   rT   c                  2    e Zd ZU ded<   ddZdd	Zdd
ZdS )rV   r(   rX   r    r!   c                "    || _         d| _        d S rZ   r[   rF   s     r   rG   z"_ANSIX923UnpaddingContext.__init__   r\   r   r   r   r   c                L    t          | j        || j                  \  | _        }|S rD   )r:   rX   r    r^   s      r   r   z _ANSIX923UnpaddingContext.update   s*    5L$ 
  
f r   c                T    t          | j        | j        t                    }d | _        |S rD   )r@   rX   r    r   rc   s     r   r   z"_ANSIX923UnpaddingContext.finalize   s,    &LO"
 

 r   NrM   r   r   )r   r   r   rd   rG   r   r   r   r   r   rV   rV      s^            
        r   rV   )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   registerrQ   rT   rV   r   r   r   <module>rp      s  
 # " " " " " 



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