File: //lib/python3/dist-packages/cryptography/hazmat/primitives/kdf/__pycache__/hkdf.cpython-310.pyc
o
�)%a� � @ s� d dl Z d dlmZ d dlmZmZmZmZ d dlm Z d dl
mZ d dlm
Z
mZmZ d dlmZ G dd � d e�ZG d
d� de�ZdS )� N)�utils)�AlreadyFinalized�
InvalidKey�UnsupportedAlgorithm�_Reasons)�_get_backend)�HMACBackend)�
constant_time�hashes�hmac)�KeyDerivationFunctionc
@ sr e Zd Z ddejdedeje deje fdd�Z ded efd
d�Z
ded efdd
�Zdeded dfdd�ZdS )�HKDFN� algorithm�length�salt�infoc C sh t |�}t|t�stdtj��|| _|d u rd| jj }nt� d|� || _
|| _t| j|||�| _
d S )N�.Backend object does not implement HMACBackend.� r )r �
isinstancer r r �BACKEND_MISSING_INTERFACE�
_algorithm�digest_sizer �_check_bytes�_salt�_backend�
HKDFExpand�_hkdf_expand)�selfr r r r �backend� r �I/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/kdf/hkdf.py�__init__ s
�z
HKDF.__init__�key_material�returnc C s( t j| j| j| jd�}|�|� |�� S )N�r )r �HMACr r r �update�finalize)r r"