
    #	hD                    |   S SK Jr  S SKrS SKrS SKJr  S SKJr  S SKJ	r	J
r
Jr   " S S\R                  S9rSS	 jr        SS
 jr        SS jr        SS jr        SS jr " S S5      r\R)                  \	5        \R)                  \
5         " S S5      r " S S\5      r " S S\5      rg)    )annotationsN)utils)AlreadyFinalized)PKCS7PaddingContextPKCS7UnpaddingContextcheck_ansix923_paddingc                  d    \ rS rSr\R
                  SS j5       r\R
                  SS j5       rSrg)PaddingContext   c                    g)zB
Pads the provided bytes and returns any available data as bytes.
N )selfdatas     X/var/www/html/env/lib/python3.13/site-packages/cryptography/hazmat/primitives/padding.pyupdatePaddingContext.update           c                    g)z&
Finalize the padding, returns bytes.
Nr   r   s    r   finalizePaddingContext.finalize   r   r   r   Nr   bytesreturnr   r   r   )	__name__
__module____qualname____firstlineno__abcabstractmethodr   r   __static_attributes__r   r   r   r
   r
      s4     
 	 r   r
   )	metaclassc                `    SU s=::  a  S::  d  O  [        S5      eU S-  S:w  a  [        S5      eg )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*   !   s8    #t#@AAA~>?? r   c                    U c  [        S5      e[        R                  " SU5        U [        U5      -  n [	        U 5      US-  -  nU S X2S-  -   nXUS-  -  S  n X4$ )NContext was already finalized.r   r&   )r   r   _check_bytesliker   lenbuffer_r   r)   finished_blocksresults        r   _byte_padding_updater3   )   su     ?@@	64(uT{G'lzQ7O:/:;Fq9;<G?r   c                T    U c  [        S5      eUS-  [        U 5      -
  nX" U5      -   $ )Nr,   r&   )r   r.   )r0   r)   	paddingfnpad_sizes       r   _byte_padding_padr7   ;   s7    
 ?@@QW-HYx(((r   c                    U c  [        S5      e[        R                  " SU5        U [        U5      -  n [	        [        U 5      US-  -  S-
  S5      nU S X2S-  -   nXUS-  -  S  n X4$ )Nr,   r   r&      r   )r   r   r-   r   maxr.   r/   s        r   _byte_unpadding_updater;   G   s     ?@@	64(uT{G#g,:?;a?CO:/:;Fq9;<G?r   c                    U c  [        S5      e[        U 5      US-  :w  a  [        S5      eU" U 5      nU(       d  [        S5      eU S   nU S U*  $ )Nr,   r&   zInvalid padding bytes.)r   r.   r'   )r0   r)   checkfnvalidr6   s        r   _byte_unpadding_checkr@   Y   sb    
 ?@@
7|zQ&122GE122r{H:XIr   c                  2    \ rS rSrSS jrSS jrSS jrSrg)	PKCS7m   c                &    [        U5        Xl        g Nr*   r)   r   r)   s     r   __init__PKCS7.__init__n       J'$r   c                ,    [        U R                  5      $ rE   )r   r)   r   s    r   padderPKCS7.padderr   s    "4??33r   c                ,    [        U R                  5      $ rE   )r   r)   r   s    r   unpadderPKCS7.unpadderu   s    $T__55r   r(   Nr)   intr   r
   r   r   r   r    rH   rL   rO   r#   r   r   r   rB   rB   m   s    %46r   rB   c                  2    \ rS rSrSS jrSS jrSS jrSrg)	ANSIX923}   c                &    [        U5        Xl        g rE   rF   rG   s     r   rH   ANSIX923.__init__~   rJ   r   c                ,    [        U R                  5      $ rE   )_ANSIX923PaddingContextr)   r   s    r   rL   ANSIX923.padder   s    &t77r   c                ,    [        U R                  5      $ rE   )_ANSIX923UnpaddingContextr)   r   s    r   rO   ANSIX923.unpadder   s    (99r   r(   NrQ   rS   rT   r   r   r   rV   rV   }   s    %8:r   rV   c                  H    \ rS rSr% S\S'   S
S jrSS jrSS jrSS jrSr	g	)r[      bytes | None_bufferc                    Xl         SU l        g Nr   r)   rc   rG   s     r   rH    _ANSIX923PaddingContext.__init__       $r   c                V    [        U R                  XR                  5      u  U l        nU$ rE   )r3   rc   r)   r   r   r2   s      r   r   _ANSIX923PaddingContext.update   s'    3LL$ 
f r   c                @    [        S/5      US-
  -  [        U/5      -   $ )Nr   r9   )r   )r   sizes     r   _padding _ANSIX923PaddingContext._padding   s"    aSzTAX&v66r   c                j    [        U R                  U R                  U R                  5      nS U l        U$ rE   )r7   rc   r)   rn   r   r2   s     r   r    _ANSIX923PaddingContext.finalize   s-    "LL$//4==
 r   rc   r)   NrQ   r   )rm   rR   r   r   r   )
r   r   r   r    __annotations__rH   r   rn   r   r#   r   r   r   r[   r[      s    
7r   r[   c                  >    \ rS rSr% S\S'   S	S jrS
S jrSS jrSrg)r^      rb   rc   c                    Xl         SU l        g re   rf   rG   s     r   rH   "_ANSIX923UnpaddingContext.__init__   rh   r   c                V    [        U R                  XR                  5      u  U l        nU$ rE   )r;   rc   r)   rj   s      r   r    _ANSIX923UnpaddingContext.update   s'    5LL$ 
f r   c                ^    [        U R                  U R                  [        5      nS U l        U$ rE   )r@   rc   r)   r   rq   s     r   r   "_ANSIX923UnpaddingContext.finalize   s+    &LLOO"

 r   rs   NrQ   r   r   )	r   r   r   r    rt   rH   r   r   r#   r   r   r   r^   r^      s    
r   r^   )r)   rR   r   None)r0   rb   r   r   r)   rR   r   ztuple[bytes, bytes])r0   rb   r)   rR   r5   ztyping.Callable[[int], bytes]r   r   )r0   rb   r)   rR   r>   ztyping.Callable[[bytes], int]r   r   )
__future__r   r!   typingcryptographyr   cryptography.exceptionsr   "cryptography.hazmat.bindings._rustr   r   r   ABCMetar
   r*   r3   r7   r;   r@   rB   registerrV   r[   r^   r   r   r   <module>r      s  
 # 
   4 s{{ @!&47$	)	)	) -	) 		)!&47$ + 	(	6 	6   + ,   - .	: 	:n 2 r   