+
    i  c                  s|    ^ RI Ht ^ RIt^ RIHt ^ RIHtHtHtH	t	 ^ RI
Ht ^ RIHtHt ^ RIHt  ! R R	]4      tR# )
    )annotationsN)utils)AlreadyFinalized
InvalidKeyUnsupportedAlgorithm_Reasons)openssl)constant_timehashes)KeyDerivationFunctionc                  s>    ] tR t^tR	R R lltR R ltR R ltRtR# )

PBKDF2HMACNc          
     s,    V ^8  d   QhRRRRRRRRRR	/# )
   	algorithmzhashes.HashAlgorithmlengthZintsaltbytes
iterationsbackendz
typing.Any Zformat   "P/usr/lib64/python3.14/site-packages/cryptography/hazmat/primitives/kdf/pbkdf2.py__annotate__PBKDF2HMAC.__annotate__   s<     & &'& & 	&
 & &    c                	s    ^ RI Hp VP                  V4      '       g(   \        VP                   R2\
        P                  4      hRV n        Wn        W n	        \        P                  ! RV4       W0n        W@n        R# )r    )r   z is not supported for PBKDF2.Fr   N)Z,cryptography.hazmat.backends.openssl.backendr   Zpbkdf2_hmac_supportedr   Znamer   ZUNSUPPORTED_HASH_used
_algorithm_lengthr   Z_check_bytes_salt_iterations)selfr   r   r   r   r   Zossls   &&&&&& r   __init__ZPBKDF2HMAC.__init__   sn    	
 )))44&>>""?@))  
#64(
%r   c               s     V ^8  d   QhRRRR/# )r   key_materialzutils.Bufferreturnr   r   r   r   r   r   r   .   s     
 
< 
E 
r   c                	s    V P                   '       d   \        R 4      hRV n         \        P                  P	                  VV P
                  V P                  V P                  V P                  4      # )z'PBKDF2 instances can only be used once.T)	r   r   rust_opensslZkdfZderive_pbkdf2_hmacr   r   r   r   )r   r!   s   &&r   deriveZPBKDF2HMAC.derive.   sX    :::"#LMM
22OOJJLL
 	
r   c               s$    V ^8  d   QhRRRRRR/# )r   r!   r   expected_keyr"   ZNoner   r   r   r   r   r   ;   s!     3 35 3 3$ 3r   c                	sv    V P                  V4      p\        P                  ! W24      '       g   \        R 4      hR# )zKeys do not match.N)r$   r   Zbytes_eqr   )r   r!   r%   Zderived_keys   &&& r   verifyZPBKDF2HMAC.verify;   s3    kk,/%%k@@122 Ar   )r   r   r   r   r   )N)Z__name__Z
__module__Z__qualname__Z__firstlineno__r    r$   r&   Z__static_attributes__r   r   r   r   r      s    &0
3 3r   r   )Z
__future__r   ZtypingZcryptographyr   Zcryptography.exceptionsr   r   r   r   Z"cryptography.hazmat.bindings._rustr   r#   Zcryptography.hazmat.primitivesr   r	   Z"cryptography.hazmat.primitives.kdfr
   r   r   r   r   <module>r'      s3   
 #    G @ D)3& )3r   