Ë
    ±éägž  ã                  óz   — d dl mZ d dlZd dlmZ d dlmZmZmZm	Z	 d dl
mZ d dlmZmZ d dlmZ  G d„ d	e«      Zy)
é    )ÚannotationsN)Úutils)ÚAlreadyFinalizedÚ
InvalidKeyÚUnsupportedAlgorithmÚ_Reasons)Úopenssl)Úconstant_timeÚhashes)ÚKeyDerivationFunctionc                  ó:   — e Zd Z	 d	 	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Zy)	Ú
PBKDF2HMACNc                óò   — ddl m} |j                  |«      s't        |j                  › d�t
        j                  «      ‚d| _        || _        || _	        t        j                  d|«       || _        || _        y )Nr   )Úbackendz is not supported for PBKDF2.FÚsalt)Ú,cryptography.hazmat.backends.openssl.backendr   Úpbkdf2_hmac_supportedr   Únamer   ÚUNSUPPORTED_HASHÚ_usedÚ
_algorithmÚ_lengthr   Ú_check_bytesÚ_saltÚ_iterations)ÚselfÚ	algorithmÚlengthr   Ú
iterationsr   Úossls          úg/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/kdf/pbkdf2.pyÚ__init__zPBKDF2HMAC.__init__   ss   € õ	
ð ×)Ñ)¨)Ô4Ü&Ø—>‘>Ð"Ð"?Ð@Ü×)Ñ)óð ð ˆŒ
Ø#ˆŒØˆŒÜ×Ñ˜6 4Ô(ØˆŒ
Ø%ˆÕó    c                óÔ   — | j                   rt        d«      ‚d| _         t        j                  j	                  || j
                  | j                  | j                  | j                  «      S )Nz'PBKDF2 instances can only be used once.T)	r   r   Úrust_opensslÚkdfÚderive_pbkdf2_hmacr   r   r   r   )r   Úkey_materials     r!   ÚderivezPBKDF2HMAC.derive.   sV   € Ø�:Š:Ü"Ð#LÓMÐMØˆŒ
ä×Ñ×2Ñ2ØØ�O‰OØ�J‰JØ×ÑØ�L‰Ló
ð 	
r#   c                óh   — | j                  |«      }t        j                  ||«      st        d«      ‚y )NzKeys do not match.)r)   r
   Úbytes_eqr   )r   r(   Úexpected_keyÚderived_keys       r!   ÚverifyzPBKDF2HMAC.verify;   s2   € Ø—k‘k ,Ó/ˆÜ×%Ñ% k°<Ô@ÜÐ1Ó2Ð2ð Ar#   )N)
r   zhashes.HashAlgorithmr   Úintr   Úbytesr   r/   r   z
typing.Any)r(   r0   Úreturnr0   )r(   r0   r,   r0   r1   ÚNone)Ú__name__Ú
__module__Ú__qualname__r"   r)   r.   © r#   r!   r   r      sF   „ ð #ð&à'ð&ð ð&ð ð	&ð
 ð&ð ó&ó0
ô3r#   r   )Ú
__future__r   ÚtypingÚcryptographyr   Úcryptography.exceptionsr   r   r   r   Ú"cryptography.hazmat.bindings._rustr	   r%   Úcryptography.hazmat.primitivesr
   r   Ú"cryptography.hazmat.primitives.kdfr   r   r6   r#   r!   ú<module>r>      s3   ðõ
 #ã å ÷ó õ Gß @Ý Dô)3Ð&õ )3r#   