a a @ s d dl Z d dlZd dlmZ d dlmZmZ d dlmZm Z m Z d dlmZ e edddZe je eje dd d dZee ejg e jf eedd dZG dd deZG dd deZdS ) N)utils)AlreadyFinalized InvalidKey) constant_timehasheshmac)KeyDerivationFunction)nreturnc C s t d| S )Nz>I)structpack)r r R/usr/lib64/python3.9/site-packages/cryptography/hazmat/primitives/kdf/concatkdf.py _int_to_u32be s r ) algorithmlength otherinfor c C s8 | j d }||kr td||d ur4td| d S )Nl z'Cannot derive keys larger than {} bits.r )Zdigest_size ValueErrorformatr _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_byteslikeupdater appendfinalizelenjoin)r r r r outputZoutlenZcounterhr r r _concatkdf_derive$ s r# c @ s^ e Zd Zdejeeje ej dddZ ejdddZeedd d Z eedddd 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% r r r __init__<