ruạṛ
a �u:j� � @ st d dl mZ d dlZd dlmZ d dlmZmZmZm Z d dl mZ d dl mZmZ d dlmZ G dd � d e�ZdS ) � )�annotationsN)�utils)�AlreadyFinalized� InvalidKey�UnsupportedAlgorithm�_Reasons)�openssl)� constant_time�hashes)�KeyDerivationFunctionc @ sF e Zd Zddddddd�dd�Zddd �d d�Zdddd �dd�ZdS )� PBKDF2HMACNzhashes.HashAlgorithm�int�bytesz typing.Any)� algorithm�length�salt� iterations�backendc C sX ddl m} |�|�s*t|j� d�tj��d| _|| _|| _ t �d|� || _|| _ d S )Nr )r z is not supported for PBKDF2.Fr )Z,cryptography.hazmat.backends.openssl.backendr Zpbkdf2_hmac_supportedr �namer ZUNSUPPORTED_HASH�_used� _algorithm�_lengthr �_check_bytes�_salt�_iterations)�selfr r r r r Zossl� r �^/opt/bart/bart_venv/lib64/python3.9/site-packages/cryptography/hazmat/primitives/kdf/pbkdf2.py�__init__ s �zPBKDF2HMAC.__init__)�key_material�returnc C s0 | j rtd��d| _ tj�|| j| j| j| j�S )Nz'PBKDF2 instances can only be used once.T) r r �rust_opensslZkdfZderive_pbkdf2_hmacr r r r )r r r r r �derive. s �zPBKDF2HMAC.derive�None)r �expected_keyr c C s"