HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3/dist-packages/cryptography/hazmat/primitives/kdf/__pycache__/kbkdf.cpython-38.pyc
U

�e�])�@s�ddlmZmZmZddlmZddlmZddlm	Z	ddl
mZmZm
Z
mZddlmZddlmZmZmZddlmZGd	d
�d
e�ZGdd�de�Ze	�e�Gd
d�de��ZdS)�)�absolute_import�division�print_function)�Enum)�range)�utils)�AlreadyFinalized�
InvalidKey�UnsupportedAlgorithm�_Reasons)�HMACBackend)�
constant_time�hashes�hmac)�KeyDerivationFunctionc@seZdZdZdS)�ModeZctrN)�__name__�
__module__�__qualname__ZCounterMode�rr�J/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/kdf/kbkdf.pyrsrc@seZdZdZdZdS)�CounterLocationZbefore_fixedZafter_fixedN)rrr�BeforeFixed�
AfterFixedrrrrrsrc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�	KBKDFHMACcCs>t|
t�stdtj��t|tj�s.tdtj��|
�|�sDtdtj��t|t	�sVt
d��t|t�sht
d��|sp|r||	r|td��|dks�|�
|�s�td��|dkr�|	dkr�td��|dk	r�t|t�s�t
d	��|dkr�d
}|dkr�d
}t�d|�t�d|�||_||_||_||_||_||_||_||_|
|_d
|_|	|_dS)Nz.Backend object does not implement HMACBackend.z5Algorithm supplied is not a supported hash algorithm.z5Algorithm supplied is not a supported hmac algorithm.zmode must be of type Modez(location must be of type CounterLocationz9When supplying fixed data, label and context are ignored.zrlen must be between 1 and 4zPlease specify an llenzllen must be an integer��label�contextF)�
isinstancerr
rZBACKEND_MISSING_INTERFACErZ
HashAlgorithmZUNSUPPORTED_HASHZhmac_supportedr�	TypeErrorr�
ValueError�_valid_byte_length�intr�_check_bytes�
_algorithm�_mode�_length�_rlen�_llen�	_location�_label�_context�_backend�_used�_fixed_data)�self�	algorithm�modeZlengthZrlenZllen�locationrrZfixed�backendrrr�__init__sX
��
�

zKBKDFHMAC.__init__cCs@t|t�std��t�d|�}dt|�kr6dks<ndSdS)Nzvalue must be of type int��FT)rr"rr�int_to_bytes�len)r/�valueZ	value_binrrrr!Zs
zKBKDFHMAC._valid_byte_lengthcCs�|jr
t�t�d|�d|_|j|jj}dg}t�d|j�}|t	dt
|�d�dkrdtd��td|d�D]n}t
j||j|jd�}t�||j�}|jtjkr�|�|�|�|���|jtjkr�|�|�|�|���qrd�|�d|j�S)	N�key_materialTrr5��zThere are too many iterations.)r3)r-rrZ_check_bytesliker&r$Zdigest_sizer7r'�powr8r rrZHMACr,r)rr�update�_generate_fixed_inputr�append�finalize�join)r/r:�rounds�outputZr_bin�i�hZcounterrrr�derivecs&

zKBKDFHMAC.derivecCsB|jrt|jt�r|jSt�|jd|j�}d�|jd|j	|g�S)Nr<r�)
r.r�bytesrr7r&r(rBr*r+)r/Zl_valrrrr?�szKBKDFHMAC._generate_fixed_inputcCst�|�|�|�st�dS)N)r
Zbytes_eqrGr	)r/r:Zexpected_keyrrr�verify�szKBKDFHMAC.verifyN)rrrr4r!rGr?rJrrrrrs
;	$rN)Z
__future__rrr�enumrZ	six.movesrZcryptographyrZcryptography.exceptionsrr	r
rZ'cryptography.hazmat.backends.interfacesrZcryptography.hazmat.primitivesr
rrZ"cryptography.hazmat.primitives.kdfrrrZregister_interface�objectrrrrr�<module>s