
    gD                    x   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j)                  e	       ej)                  e
        G d d      Z G d de      Z G d de      Zy)    )annotationsN)utils)AlreadyFinalized)PKCS7PaddingContextPKCS7UnpaddingContextcheck_ansix923_paddingc                  X    e Zd Zej                  dd       Zej                  dd       Zy)PaddingContextc                     y)zR
        Pads the provided bytes and returns any available data as bytes.
        N )selfdatas     /var/www/html/FastMealFinder_FlaskServer-InitialRelease/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/padding.pyupdatezPaddingContext.update           c                     y)z6
        Finalize the padding, returns bytes.
        Nr   r   s    r   finalizezPaddingContext.finalize   r   r   Nr   bytesreturnr   r   r   )__name__
__module____qualname__abcabstractmethodr   r   r   r   r   r
   r
      s4     
 	 r   r
   )	metaclassc                n    d| cxk  rdk  st        d       t        d      | dz  dk7  rt        d      y )Nr   i  z%block_size must be in range(0, 2041).   z#block_size must be a multiple of 8.)
ValueError)
block_sizes    r   _byte_padding_checkr$   !   sI    #t#@AA $@AAA~>?? 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buffer_r   r#   finished_blocksresults        r   _byte_padding_updater-   )   s{     ?@@	64(uT{G'lzQ7O:*/:;Foq9;<GF?r   c                T    | t        d      |dz  t        |       z
  }|  ||      z   S )Nr&   r!   )r   r(   )r*   r#   	paddingfnpad_sizes       r   _byte_padding_padr1   ;   s7    
 ?@@QW-HYx(((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_updater5   G   s     ?@@	64(uT{G#g,:?;a?CO:*/:;Foq9;<GF?r   c                    | t        d      t        |       |dz  k7  rt        d       ||       }|st        d      | d   }| d |  S )Nr&   r!   zInvalid padding bytes.)r   r(   r"   )r*   r#   checkfnvalidr0   s        r   _byte_unpadding_checkr:   Y   sb    
 ?@@
7|zQ&122GE122r{H:XIr   c                  $    e Zd ZddZddZddZy)PKCS7c                (    t        |       || _        y Nr$   r#   r   r#   s     r   __init__zPKCS7.__init__n       J'$r   c                ,    t        | j                        S r>   )r   r#   r   s    r   padderzPKCS7.padderr   s    "4??33r   c                ,    t        | j                        S r>   )r   r#   r   s    r   unpadderzPKCS7.unpadderu   s    $T__55r   Nr#   intr   r
   r   r   r   rA   rD   rF   r   r   r   r<   r<   m   s    %46r   r<   c                  $    e Zd ZddZddZddZy)ANSIX923c                (    t        |       || _        y r>   r?   r@   s     r   rA   zANSIX923.__init__~   rB   r   c                ,    t        | j                        S r>   )_ANSIX923PaddingContextr#   r   s    r   rD   zANSIX923.padder   s    &t77r   c                ,    t        | j                        S r>   )_ANSIX923UnpaddingContextr#   r   s    r   rF   zANSIX923.unpadder   s    (99r   NrG   rI   rJ   r   r   r   rL   rL   }   s    %8:r   rL   c                  8    e Zd ZU ded<   ddZd	dZd
dZddZy)rO   bytes | None_bufferc                     || _         d| _        y Nr   r#   rT   r@   s     r   rA   z _ANSIX923PaddingContext.__init__       $r   c                X    t        | j                  || j                        \  | _        }|S r>   )r-   rT   r#   r   r   r,   s      r   r   z_ANSIX923PaddingContext.update   s)    3LL$ 
f r   c                @    t        dg      |dz
  z  t        |g      z   S )Nr   r3   )r   )r   sizes     r   _paddingz _ANSIX923PaddingContext._padding   s"    aSzTAX&v66r   c                j    t        | j                  | j                  | j                        }d | _        |S r>   )r1   rT   r#   r]   r   r,   s     r   r   z _ANSIX923PaddingContext.finalize   s-    "LL$//4==
 r   NrG   r   )r\   rH   r   r   r   )r   r   r   __annotations__rA   r   r]   r   r   r   r   rO   rO      s    
7r   rO   c                  0    e Zd ZU ded<   ddZddZd	dZy)
rQ   rS   rT   c                     || _         d| _        y rV   rW   r@   s     r   rA   z"_ANSIX923UnpaddingContext.__init__   rX   r   c                X    t        | j                  || j                        \  | _        }|S r>   )r5   rT   r#   rZ   s      r   r   z _ANSIX923UnpaddingContext.update   s)    5LL$ 
f r   c                ^    t        | j                  | j                  t              }d | _        |S r>   )r:   rT   r#   r   r_   s     r   r   z"_ANSIX923UnpaddingContext.finalize   s+    &LLOO"

 r   NrG   r   r   )r   r   r   r`   rA   r   r   r   r   r   rQ   rQ      s    
r   rQ   )r#   rH   r   None)r*   rS   r   r   r#   rH   r   ztuple[bytes, bytes])r*   rS   r#   rH   r/   ztyping.Callable[[int], bytes]r   r   )r*   rS   r#   rH   r8   ztyping.Callable[[bytes], int]r   r   )
__future__r   r   typingcryptographyr   cryptography.exceptionsr   "cryptography.hazmat.bindings._rustr   r   r   ABCMetar
   r$   r-   r1   r5   r:   r<   registerrL   rO   rQ   r   r   r   <module>rm      s  
 # 
   4 s{{ @!&47$	)	)	) -	) 		)!&47$ + 	(	6 	6   + ,   - .	: 	:n 2 r   