File: //lib/python3/dist-packages/cryptography/hazmat/primitives/kdf/__pycache__/pbkdf2.cpython-310.pyc
o
�)%a� � @ sl d dl mZ d dlmZmZmZmZ d dlmZ d dl m
Z
d dlmZm
Z
d dlmZ G dd� de�Zd S )
� )�utils)�AlreadyFinalized�
InvalidKey�UnsupportedAlgorithm�_Reasons)�_get_backend)�PBKDF2HMACBackend)�
constant_time�hashes)�KeyDerivationFunctionc @ sT e Zd Z ddejdededefdd�Zded efd
d�Zdeded dfd
d�Z dS )�
PBKDF2HMACN� algorithm�length�salt�
iterationsc C sp t |�}t|t�stdtj��|�|�std�|j�tj ��d| _
|| _|| _t
�d|� || _|| _|| _d S )Nz4Backend object does not implement PBKDF2HMACBackend.z/{} is not supported for PBKDF2 by this backend.Fr )r �
isinstancer r r �BACKEND_MISSING_INTERFACE�pbkdf2_hmac_supported�format�name�UNSUPPORTED_HASH�_used�
_algorithm�_lengthr �_check_bytes�_salt�_iterations�_backend)�selfr
r r r �backend� r �K/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/kdf/pbkdf2.py�__init__ s(
�
��
zPBKDF2HMAC.__init__�key_material�returnc C s<