File: //lib/python3/dist-packages/cryptography/hazmat/primitives/kdf/__pycache__/concatkdf.cpython-38.pyc
U
�e�]� � @ s� d dl mZmZmZ d dlZd dlmZ d dlmZm Z m
Z
mZ d dlm
Z
d dlmZ d dlmZmZmZ d dlmZ d d
� Zdd� Zd
d� Ze�e�G dd� de��Ze�e�G dd� de��ZdS )� )�absolute_import�division�print_functionN)�utils)�AlreadyFinalized�
InvalidKey�UnsupportedAlgorithm�_Reasons)�HMACBackend)�HashBackend)�
constant_time�hashes�hmac)�KeyDerivationFunctionc C s t �d| �S )Nz>I)�structZpack)�n� r �N/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/kdf/concatkdf.py�
_int_to_u32be s r c C s8 | j d }||kr td�|���|d k r4t�d|� d S )Nl �� z(Can not derive keys larger than {} bits.� otherinfo)Zdigest_size�
ValueError�formatr �_check_bytes)� algorithm�lengthr Z
max_lengthr r r �_common_args_checks s
��r c C s� t �d| � dg}d}d}||krr|� }|�t|�� |�| � |�|� |�|�� � |t|d �7 }|d7 }qd�|�d |� S )N�key_material� r � ���)r Z_check_byteslike�updater �append�finalize�len�join)r r Zauxfnr �outputZoutlenZcounter�hr r r �_concatkdf_derive"