관리-도구
편집 파일: x963kdf.cpython-39.pyc
a �a� � @ sd d dl Z d dlZd dlmZ d dlmZmZ d dlmZm Z d dl mZ dd� ZG dd � d e�Z dS ) � N)�utils)�AlreadyFinalized� InvalidKey)� constant_time�hashes)�KeyDerivationFunctionc C s t �d| �S )Nz>I)�struct�pack)�n� r �P/usr/lib64/python3.9/site-packages/cryptography/hazmat/primitives/kdf/x963kdf.py� _int_to_u32be s r c @ sN e Zd Zdejeeje ej d�dd�Z eed�dd�Zeedd�d d �ZdS )�X963KDFN)� algorithm�length� sharedinfo�backendc C sP |j d }||kr td�|���|d ur4t�d|� || _|| _|| _d| _d S )Nl �� z'Cannot derive keys larger than {} bits.r F) �digest_size� ValueError�formatr �_check_bytes� _algorithm�_length�_sharedinfo�_used)�selfr r r r Zmax_lenr r r �__init__ s �zX963KDF.__init__)�key_material�returnc C s� | j r t�d| _ t�d|� dg}d}d}| j|kr�t�| j�}|�|� |�t |�� | j d urn|�| j � |�|�� � |t |d �7 }|d7 }q*d�|�d | j� S )NTr � r � ���)r r r Z_check_bytesliker r ZHashr �updater r �append�finalize�len�join)r r �outputZoutlenZcounter�hr r r �derive+ s"