관리-도구
편집 파일: concatkdf.cpython-39.pyc
a �a� � @ s� d dl Z d dlZd dlmZ d dlmZmZ d dlmZm Z m Z d dlmZ e ed�dd�Ze je eje dd �d d�Zee ejg e jf eed�d d�ZG dd� de�ZG dd� de�ZdS )� N)�utils)�AlreadyFinalized� InvalidKey)� constant_time�hashes�hmac)�KeyDerivationFunction)�n�returnc C s t �d| �S )Nz>I)�struct�pack)r � r �R/usr/lib64/python3.9/site-packages/cryptography/hazmat/primitives/kdf/concatkdf.py� _int_to_u32be s r )� algorithm�length� otherinfor c C s8 | j d }||kr td�|���|d ur4t�d|� d S )Nl �� z'Cannot derive keys larger than {} bits.r )�digest_size� ValueError�formatr �_check_bytes)r r r Z max_lengthr r r �_common_args_checks s �r )�key_materialr �auxfnr r c C s� t �d| � dg}d}d}||krr|� }|�t|�� |�| � |�|� |�|�� � |t|d �7 }|d7 }qd�|�d |� S )Nr � r � ���)r Z_check_byteslike�updater �append�finalize�len�join)r r r r �outputZoutlenZcounter�hr r r �_concatkdf_derive$ s r$ c @ s^ e Zd Zdejeeje ej d�dd�Z ejd�dd�Zeed�d d �Z eedd�dd �ZdS )� ConcatKDFHashN)r r r �backendc C s4 t |||� || _|| _|d ur$|nd| _d| _d S )Nr F)r � _algorithm�_length� _otherinfo�_used)�selfr r r r&