3 l_ @ s d dl mZmZmZ d dlZd dlmZ d dlmZm Z m Z mZ d dlm Z d dlmZ d dlmZmZ d dlmZ ejeG d d d eZejeG dd deZdS ) )absolute_importdivisionprint_functionN)utils)AlreadyFinalized InvalidKeyUnsupportedAlgorithm_Reasons)_get_backend)HMACBackend) constant_timehmac)KeyDerivationFunctionc @ s. e Zd Zd ddZdd Zdd Zdd ZdS )HKDFNc C sh t |}t|tstdtj|| _|d kr:d| jj }ntj d| || _ || _t| j|||| _ d S )Nz.Backend object does not implement HMACBackend. salt)r isinstancer r r BACKEND_MISSING_INTERFACE _algorithmdigest_sizer _check_bytes_salt_backend HKDFExpand_hkdf_expand)self algorithmlengthr infobackend r /usr/lib64/python3.6/hkdf.py__init__ s z HKDF.__init__c C s( t j| j| j| jd}|j| |j S )N)r )r HMACr r r updatefinalize)r key_materialhr r r! _extract- s z HKDF._extractc C s t jd| | jj| j|S )Nr&