
                        p   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 " S S\5      r\R+                  \	5         " S S5      r " S S\5      r " S S\5      rg)    )annotationsN)utils)AlreadyFinalized)PKCS7PaddingContextcheck_ansix923_paddingcheck_pkcs7_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     aplatform/bundledpythonunix/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   )_PKCS7UnpaddingContextr)   r   s    r   unpadderPKCS7.unpadderu   s    %doo66r   r(   Nr)   intr   r
   r   r   r   r    rH   rL   rP   r#   r   r   r   rB   rB   m   s    %47r   rB   c                  >    \ rS rSr% S\S'   S	S jrS
S jrSS jrSrg)rO   y   bytes | None_bufferc                    Xl         SU l        g Nr   r)   rY   rG   s     r   rH   _PKCS7UnpaddingContext.__init__|       $r   c                V    [        U R                  XR                  5      u  U l        nU$ rE   r;   rY   r)   r   r   r2   s      r   r   _PKCS7UnpaddingContext.update   '    5LL$ 
f r   c                ^    [        U R                  U R                  [        5      nS U l        U$ rE   )r@   rY   r)   r   r   r2   s     r   r   _PKCS7UnpaddingContext.finalize   s*    &LL$//+>
 r   rY   r)   NrR   r   r   	r   r   r   r    __annotations__rH   r   r   r#   r   r   r   rO   rO   y   s    
r   rO   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   rP   ANSIX923.unpadder   s    (99r   r(   NrR   rT   rU   r   r   r   rk   rk      s    %8:r   rk   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	)rp      rX   rY   c                    Xl         SU l        g r[   r\   rG   s     r   rH    _ANSIX923PaddingContext.__init__   r^   r   c                V    [        U R                  XR                  5      u  U l        nU$ rE   )r3   rY   r)   ra   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   rY   r)   r}   re   s     r   r    _ANSIX923PaddingContext.finalize   s-    "LL$//4==
 r   rg   NrR   r   )r|   rS   r   r   r   )
r   r   r   r    ri   rH   r   r}   r   r#   r   r   r   rp   rp      s    
7r   rp   c                  >    \ rS rSr% S\S'   S	S jrS
S jrSS jrSrg)rs      rX   rY   c                    Xl         SU l        g r[   r\   rG   s     r   rH   "_ANSIX923UnpaddingContext.__init__   r^   r   c                V    [        U R                  XR                  5      u  U l        nU$ rE   r`   ra   s      r   r    _ANSIX923UnpaddingContext.update   rc   r   c                ^    [        U R                  U R                  [        5      nS U l        U$ rE   )r@   rY   r)   r   re   s     r   r   "_ANSIX923UnpaddingContext.finalize   s+    &LLOO"

 r   rg   NrR   r   r   rh   r   r   r   rs   rs      s    
r   rs   )r)   rS   r   None)r0   rX   r   r   r)   rS   r   ztuple[bytes, bytes])r0   rX   r)   rS   r5   ztyping.Callable[[int], bytes]r   r   )r0   rX   r)   rS   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   rO   registerrk   rp   rs   r   r   r   <module>r      s  
 # 
   4 s{{ @!&47$	)	)	) -	) 		)!&47$ + 	(	7 	7^ ,   + ,	: 	:n 2 r   