+
    i  c                  s    ^ RI Ht ^ RIt^ RIHt ^ RIHt ^ RIHtH	t	 ^ RI
HtHtHt ^ RIHt R R	 ltR
 R ltR R lt ! R R]4      t ! R R]4      tR# )i    )annotationsN)Callable)utils)AlreadyFinalized
InvalidKey)constant_timehasheshmac)KeyDerivationFunctionc                    V ^8  d   QhRRRR/# )   nintreturnbytes Zformat   "S/usr/lib64/python3.14/site-packages/cryptography/hazmat/primitives/kdf/concatkdf.py__annotate__r      s     1 1S 1U 1    c                s(    V P                  ^RR7      # )i   Zbig)lengthZ	byteorder)Zto_bytes)r      &r   _int_to_u32ber      s    ::Q%:00r   c               (    V ^8  d   QhRRRRRRRR/# )	r
   	algorithmhashes.HashAlgorithmr   r   	otherinfobytes | Noner   Noner   r   r   r   r   r      s0     	3 	3#	3	3 	3 
		3r   c                s    V P                   R,          pW8  d   \        RV R24      hVe   \        P                  ! RV4       R# R# )r
   zCannot derive keys larger than z bits.Nr   l    )Zdigest_sizeZ
ValueErrorr   _check_bytes)r   r   r   Z
max_lengths   &&& r   _common_args_checksr      sJ    
 &&)4J::,fMNN;	2 r   c          
     s,    V ^8  d   QhRRRRRRRRR	R/# )
r
   key_materialutils.Bufferr   r   auxfnz Callable[[], hashes.HashContext]r   r   r   r   r   r   r   r   r       s:     % %%% ,% 	%
 %r   c                s~   \         P                  ! R V 4       R.p^ p^pW8  d   V! 4       pVP                  \        V4      4       VP                  V 4       VP                  V4       VP	                  VP                  4       4       V\        VR,          4      ,          pV^,          pK  RP                  V4      RV # )r    r   Ni)r   Z_check_byteslikeZupdater   ZappendZfinalizeZlenZjoin)r    r   r"   r   ZoutputZoutlenZcounterZhs   &&&&    r   _concatkdf_deriver#       s     
><8UFFG
/G	w'(		ajjl##fRj/!188FGV$$r   c                  sJ    ] tR t^7tRR R lltR R ltR R ltR R	 ltR
tR# )ConcatKDFHashNc               r   )	r
   r   r   r   r   r   r   backend
typing.Anyr   r   r   r   r   ConcatKDFHash.__annotate__8   s2      '   	
 r   c                	s^    \        WV4       Wn        W n        Ve   TMRV n        RV n        R # )Nr   F)r   
_algorithm_length
_otherinfo_used)selfr   r   r   r%   s   &&&&&r   __init__ZConcatKDFHash.__init__8   s-     	Iy9#.7.C
r   c                   V ^8  d   QhRR/# )r
   r   zhashes.Hashr   r   r   r   r   r'   F   s     , ,{ ,r   c                	sB    \         P                  ! V P                  4      # N)r   ZHashr(   r,   r   r   _hashZConcatKDFHash._hashF   s    {{4??++r   c               r	   r
   r    r!   r   r   r   r   r   r   r   r'   I        
 
< 
E 
r   c                	    V P                   '       d   \        hR V n         \        WP                  V P                  V P
                  4      # T)r+   r   r#   r)   r1   r*   r,   r       &&r   deriveZConcatKDFHash.deriveI   8    :::""
 ,,

DOO
 	
r   c               $    V ^8  d   QhRRRRRR/# r
   r    r   expected_keyr   r   r   r   r   r   r   r'   Q   !      5  $ r   c                	j    \         P                  ! V P                  V4      V4      '       g   \        hR # r/   r   Zbytes_eqr8   r   r,   r    r<      &&&r   verifyZConcatKDFHash.verifyQ   *    %%dkk,&?NN Or   )r(   r)   r*   r+   r/   )	__name__
__module____qualname____firstlineno__r-   r1   r8   rB   __static_attributes__r   r   r   r$   r$   7   s    ,
 r   r$   c                  sJ    ] tR t^VtRR R lltR R ltR R ltR R	 ltR
tR# )ConcatKDFHMACNc          
     s,    V ^8  d   QhRRRRRRRRRR	/# )
r
   r   r   r   r   saltr   r   r%   r&   r   r   r   r   r   ConcatKDFHMAC.__annotate__W   s<      '  	
   r   c                	s   \        WV4       Wn        W n        Ve   TMRV n        VP                  f   \        VP                   R24      hVf   RVP                  ,          pM\        P                  ! RV4       W0n	        RV n
        R # )Nr   z is unsupported for ConcatKDFs    rJ   F)r   r(   r)   r*   Z
block_sizeZ	TypeErrorZnamer   r   _saltr+   )r,   r   r   rJ   r   r%   s   &&&&&&r   r-   ZConcatKDFHMAC.__init__W   s{     	Iy9#.7.C'y~~..KLMM<Y111Dvt,

r   c               r.   )r
   r   z	hmac.HMACr   r   r   r   r   rK   p   s     6 6y 6r   c                	sX    \         P                  ! V P                  V P                  4      # r/   )r   ZHMACrL   r(   r0   r   r   _hmacZConcatKDFHMAC._hmacp   s    yyT__55r   c               r	   r2   r   r   r   r   r   rK   s   r3   r   c                	r4   r5   )r+   r   r#   r)   rM   r*   r6   r7   r   r8   ZConcatKDFHMAC.derives   r9   r   c               r:   r;   r   r   r   r   r   rK   {   r=   r   c                	r>   r/   r?   r@   rA   r   rB   ZConcatKDFHMAC.verify{   rC   r   )r(   r)   r*   rL   r+   r/   )	rD   rE   rF   rG   r-   rM   r8   rB   rH   r   r   r   rI   rI   V   s    26
 r   rI   )Z
__future__r    ZtypingZcollections.abcr   Zcryptographyr   Zcryptography.exceptionsr   r   Zcryptography.hazmat.primitivesr   r   r   Z"cryptography.hazmat.primitives.kdfr   r   r   r#   r$   rI   r   r   r   <module>rN      sH   
 #  $  @ F F D1	3%.) >') 'r   