Current File : //lib64/python3.9/site-packages/cryptography/hazmat/primitives/kdf/__pycache__/hkdf.cpython-39.pyc
a

�a��@shddlZddlmZddlmZmZddlmZmZm	Z	ddl
mZGdd�de�ZGdd	�d	e�Z
dS)
�N)�utils)�AlreadyFinalized�
InvalidKey)�
constant_time�hashes�hmac)�KeyDerivationFunctionc@sfeZdZd
ejeejeejeej	d�dd�Z
eed�dd�Zeed�dd	�Zeedd
�dd�Z
dS)�HKDFN)�	algorithm�length�salt�info�backendcCsB||_|durd|jj}nt�d|�||_t|j||�|_dS)N�r)�
_algorithm�digest_sizer�_check_bytes�_salt�
HKDFExpand�_hkdf_expand)�selfr
rrr
r�r�M/usr/lib64/python3.9/site-packages/cryptography/hazmat/primitives/kdf/hkdf.py�__init__sz
HKDF.__init__��key_material�returncCs"t�|j|j�}|�|�|��S�N)r�HMACrr�update�finalize)rr�hrrr�_extract%s
z
HKDF._extractcCst�d|�|j�|�|��S)Nr)r�_check_bytesliker�deriver"�rrrrrr$*szHKDF.derive�r�expected_keyrcCst�|�|�|�st�dSr�rZbytes_eqr$r�rrr'rrr�verify.szHKDF.verify)N)�__name__�
__module__�__qualname__r�
HashAlgorithm�int�typing�Optional�bytes�Anyrr"r$r*rrrrr	s��r	c@s^eZdZd
ejeejeej	d�dd�Z
eed�dd�Zeed�dd	�Zeedd
�dd�Z
dS)rN)r
rr
rcCsV||_d|j}||kr&td�|���||_|dur:d}nt�d|�||_d|_dS)N�z)Cannot derive keys larger than {} octets.�r
F)	rr�
ValueError�format�_lengthrr�_info�_used)rr
rr
rZ
max_lengthrrrr4s
�zHKDFExpand.__init__rcCs�dg}d}|jjt|�d|jkrtt�||j�}|�|d�|�|j�|�t|g��|�	|�
��|d7}q
d�|�d|j�S)Nr5����)rr�lenr8rrrr9r2�appendr �join)rr�outputZcounterr!rrr�_expandOs
zHKDFExpand._expandcCs&t�d|�|jrt�d|_|�|�S)NrT)rr#r:rrAr%rrrr$]s
zHKDFExpand.deriver&cCst�|�|�|�st�dSrr(r)rrrr*eszHKDFExpand.verify)N)r+r,r-rr.r/r0r1r2r3rrAr$r*rrrrr3s��r)r0ZcryptographyrZcryptography.exceptionsrrZcryptography.hazmat.primitivesrrrZ"cryptography.hazmat.primitives.kdfrr	rrrrr�<module>s"