/
lib
/
python3
/
dist-packages
/
cryptography
/
hazmat
/
primitives
/
kdf
/
__pycache__
/
Upload File
HOME
� p�g� � �j � d dl Z d dlmZ d dlmZmZmZmZ d dlm Z m Z d dlmZ G d� de� � Z dS )� N)�utils)�AlreadyFinalized� InvalidKey�UnsupportedAlgorithm�_Reasons)� constant_time�hashes)�KeyDerivationFunctionc �f � e Zd Z d dej dedededej f d�Z ded efd �Z deded dfd�ZdS )� PBKDF2HMACN� algorithm�length�salt� iterations�backendc � � ddl m} |� |� � s2t d� |j � � t j � � �d| _ || _ || _ t j d|� � || _ || _ d S )Nr �r z/{} is not supported for PBKDF2 by this backend.Fr )�,cryptography.hazmat.backends.openssl.backendr �pbkdf2_hmac_supportedr �format�namer �UNSUPPORTED_HASH�_used� _algorithm�_lengthr �_check_bytes�_salt�_iterations)�selfr r r r r �ossls �K/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/kdf/pbkdf2.py�__init__zPBKDF2HMAC.__init__ s� � � � � � � � � �)�)�)�4�4� �&�A�H�H��N�� � �)� � � � �� �#������ ��6�4�(�(�(��� �%����� �key_material�returnc �� � | j rt d� � �d| _ t j d|� � ddlm} |� | j | j | j | j |� � S )Nz'PBKDF2 instances can only be used once.Tr$ r r )r r r �_check_bytesliker r �derive_pbkdf2_hmacr r r r )r r$ r s r! �derivezPBKDF2HMAC.derive. sx � ��:� N�"�#L�M�M�M��� � ��~�|�<�<�<�H�H�H�H�H�H��)�)��O��L��J���� � � r# �expected_keyc �x � | � |� � }t j ||� � st d� � �d S )NzKeys do not match.)r) r �bytes_eqr )r r$ r* �derived_keys r! �verifyzPBKDF2HMAC.verify>