관리-도구
편집 파일: pbkdf2.cpython-39.opt-1.pyc
a �a� � @ s\ d dl Z d dlmZ d dlmZmZmZmZ d dlm Z m Z d dlmZ G dd� de�Z dS )� N)�utils)�AlreadyFinalized� InvalidKey�UnsupportedAlgorithm�_Reasons)� constant_time�hashes)�KeyDerivationFunctionc @ sJ e Zd Zdejeeeejd�dd�Z eed�dd�Z eedd�d d �ZdS )� PBKDF2HMACN)� algorithm�length�salt� iterations�backendc C sX ddl m} |�|�s*td�|j�tj��d| _|| _ || _ t�d|� || _ || _d S )Nr �r z/{} is not supported for PBKDF2 by this backend.Fr )�,cryptography.hazmat.backends.openssl.backendr Zpbkdf2_hmac_supportedr �format�namer ZUNSUPPORTED_HASH�_used� _algorithm�_lengthr �_check_bytes�_salt�_iterations)�selfr r r r r Zossl� r �O/usr/lib64/python3.9/site-packages/cryptography/hazmat/primitives/kdf/pbkdf2.py�__init__ s ��zPBKDF2HMAC.__init__)�key_material�returnc C sF | j rtd��d| _ t�d|� ddlm} |�| j| j| j | j |�S )Nz'PBKDF2 instances can only be used once.Tr r r )r r r Z_check_bytesliker r Zderive_pbkdf2_hmacr r r r )r r r r r r �derive. s �zPBKDF2HMAC.derive)r �expected_keyr c C s"