
    #	hf                        S SK Jr  S SKrS SKJr  S SKJrJr  S SKJ	r	J
r
Jr  S SKJr  SS jr        SS jr          SS	 jr " S
 S\5      r " S S\5      rg)    )annotationsN)utils)AlreadyFinalized
InvalidKey)constant_timehasheshmac)KeyDerivationFunctionc                "    U R                  SSS9$ )N   big)length	byteorder)to_bytes)ns    ^/var/www/html/env/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/concatkdf.py_int_to_u32ber      s    ::Q%:00    c                    U R                   S-  nX:  a  [        SU S35      eUb  [        R                  " SU5        g g )Nl    zCannot derive keys larger than z bits.	otherinfo)digest_size
ValueErrorr   _check_bytes)	algorithmr   r   
max_lengths       r   _common_args_checksr      sJ    
 &&)4J::,fMNN;	2 r   c                n   [         R                  " SU 5        S/nSnSnX:  a  U" 5       nUR                  [        U5      5        UR                  U 5        UR                  U5        UR	                  UR                  5       5        U[        US   5      -  nUS-  nX:  a  M  SR                  U5      S U $ )Nkey_materialr   r      )r   _check_byteslikeupdater   appendfinalizelenjoin)r   r   auxfnr   outputoutlencounterhs           r   _concatkdf_deriver,      s     
><8UFFG
/G	w'(		ajjl##fRj/!1 / 88FGV$$r   c                  P    \ rS rSr S       S	S jjrS
S jrSS jrSS jrSrg)ConcatKDFHash6   Nc                Z    [        XU5        Xl        X l        Ub  UOSU l        SU l        g )Nr   F)r   
_algorithm_length
_otherinfo_used)selfr   r   r   backends        r   __init__ConcatKDFHash.__init__7   s-     	Iy9#.7.C
r   c                B    [         R                  " U R                  5      $ N)r   Hashr1   r5   s    r   _hashConcatKDFHash._hashE   s    {{4??++r   c                    U R                   (       a  [        eSU l         [        XR                  U R                  U R
                  5      $ NT)r4   r   r,   r2   r=   r3   r5   r   s     r   deriveConcatKDFHash.deriveH   6    ::""
 ,,

DOO
 	
r   c                f    [         R                  " U R                  U5      U5      (       d  [        eg r:   r   bytes_eqrB   r   r5   r   expected_keys      r   verifyConcatKDFHash.verifyP   *    %%dkk,&?NN Or   )r1   r2   r3   r4   r:   )r   hashes.HashAlgorithmr   intr   bytes | Noner6   
typing.Any)returnzhashes.Hashr   bytesrQ   rS   r   rS   rI   rS   rQ   None)	__name__
__module____qualname____firstlineno__r7   r=   rB   rJ   __static_attributes__ r   r   r.   r.   6   sA     #'   	
 ,
r   r.   c                  T    \ rS rSr S         S	S jjrS
S jrSS jrSS jrSrg)ConcatKDFHMACU   Nc                   [        XU5        Xl        X l        Ub  UOSU l        UR                  c  [        UR                   S35      eUc  SUR                  -  nO[        R                  " SU5        X0l	        SU l
        g )Nr   z is unsupported for ConcatKDF    saltF)r   r1   r2   r3   
block_size	TypeErrornamer   r   _saltr4   )r5   r   r   ra   r   r6   s         r   r7   ConcatKDFHMAC.__init__V   s{     	Iy9#.7.C'y~~..KLMM<Y111Dvt,

r   c                X    [         R                  " U R                  U R                  5      $ r:   )r	   HMACre   r1   r<   s    r   _hmacConcatKDFHMAC._hmaco   s    yyT__55r   c                    U R                   (       a  [        eSU l         [        XR                  U R                  U R
                  5      $ r@   )r4   r   r,   r2   ri   r3   rA   s     r   rB   ConcatKDFHMAC.deriver   rD   r   c                f    [         R                  " U R                  U5      U5      (       d  [        eg r:   rF   rH   s      r   rJ   ConcatKDFHMAC.verifyz   rL   r   )r1   r2   r3   re   r4   r:   )
r   rM   r   rN   ra   rO   r   rO   r6   rP   )rQ   z	hmac.HMACrR   rT   )	rV   rW   rX   rY   r7   ri   rB   rJ   rZ   r[   r   r   r]   r]   U   sK     #'  	
   26
r   r]   )r   rN   rQ   rS   )r   rM   r   rN   r   rO   rQ   rU   )
r   rS   r   rN   r'   z'typing.Callable[[], hashes.HashContext]r   rS   rQ   rS   )
__future__r   typingcryptographyr   cryptography.exceptionsr   r   cryptography.hazmat.primitivesr   r   r	   "cryptography.hazmat.primitives.kdfr
   r   r   r,   r.   r]   r[   r   r   <module>ru      s   
 #   @ F F D1	3#	3	3 	3 
		3%%% 3% 	%
 %.) >') 'r   