File: //lib/python3/dist-packages/cryptography/hazmat/primitives/kdf/__pycache__/hkdf.cpython-38.pyc
U
�e�]�
� @ s� d dl mZmZmZ d dlZd dlmZ d dlmZm Z m
Z
mZ d dlm
Z
d dlmZmZ d dlmZ e�e�G dd � d e��Ze�e�G d
d� de��ZdS )� )�absolute_import�division�print_functionN)�utils)�AlreadyFinalized�
InvalidKey�UnsupportedAlgorithm�_Reasons)�HMACBackend)�
constant_time�hmac)�KeyDerivationFunctionc @ s, e Zd Zdd� Zdd� Zdd� Zdd� Zd S )
�HKDFc C s` t |t�stdtj��|| _|d kr2d| jj }nt�d|� || _ || _
t| j|||�| _d S )N�.Backend object does not implement HMACBackend.� �salt)
�
isinstancer
r r �BACKEND_MISSING_INTERFACE�
_algorithm�digest_sizer �_check_bytes�_salt�_backend�
HKDFExpand�_hkdf_expand)�self� algorithm�lengthr �info�backend� r �I/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/kdf/hkdf.py�__init__ s
�z
HKDF.__init__c C s( t j| j| j| jd�}|�|� |�� S )N�r )r �HMACr r r �update�finalize)r �key_material�hr r r! �_extract( s
z
HKDF._extractc C s t �d|� | j�| �|��S )Nr'