Ë
    ±éägÈ  ã                  ón   — d dl mZ d dlZd dlmZ d dlmZmZ d dlm	Z	m
Z
 d dlmZ d
d„Z G d„ d	e«      Zy)é    )ÚannotationsN)Úutils)ÚAlreadyFinalizedÚ
InvalidKey)Úconstant_timeÚhashes)ÚKeyDerivationFunctionc                ó(   — | j                  dd¬«      S )Né   Úbig)ÚlengthÚ	byteorder)Úto_bytes)Úns    úh/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/kdf/x963kdf.pyÚ_int_to_u32ber      s   € Ø�:‰:˜Q¨%ˆ:Ó0Ð0ó    c                  ó6   — e Zd Z	 d	 	 	 	 	 	 	 dd„Zdd„Zdd„Zy)	ÚX963KDFNc                ó²   — |j                   dz  }||kD  rt        d|› d�«      ‚|�t        j                  d|«       || _        || _        || _        d| _        y )Nl   ÿÿ zCannot derive keys larger than z bits.Ú
sharedinfoF)Údigest_sizeÚ
ValueErrorr   Ú_check_bytesÚ
_algorithmÚ_lengthÚ_sharedinfoÚ_used)ÚselfÚ	algorithmr   r   ÚbackendÚmax_lens         r   Ú__init__zX963KDF.__init__   sd   € ð ×'Ñ'¨9Ñ5ˆØ�GÒÜÐ>¸w¸iÀvÐNÓOÐOØÐ!Ü×Ñ˜|¨ZÔ8à#ˆŒØˆŒØ%ˆÔØˆ�
r   c                ó4  — | j                   rt        ‚d| _         t        j                  d|«       dg}d}d}| j                  |kD  r¶t        j                  | j                  «      }|j                  |«       |j                  t        |«      «       | j                  �|j                  | j                  «       |j                  |j                  «       «       |t        |d   «      z  }|dz  }| j                  |kD  rŒ¶dj                  |«      d | j                   S )NTÚkey_materialr   r   é   éÿÿÿÿ)r   r   r   Ú_check_bytesliker   r   ÚHashr   Úupdater   r   ÚappendÚfinalizeÚlenÚjoin)r   r%   ÚoutputÚoutlenÚcounterÚhs         r   ÚderivezX963KDF.derive&   sç   € Ø�:Š:Ü"Ð"ØˆŒ
Ü×Ñ˜~¨|Ô<Ø�ˆØˆØˆà�l‰l˜VÒ#Ü—‘˜DŸO™OÓ,ˆAØ�H‰H�\Ô"Ø�H‰H”] 7Ó+Ô,Ø×ÑÐ+Ø—‘˜×)Ñ)Ô*Ø�M‰M˜!Ÿ*™*›,Ô'Ø”c˜& ™*“oÑ%ˆFØ�q‰LˆGð �l‰l˜VÓ#ð �x‰x˜Ó  $§,¡,Ð/Ð/r   c                óZ   — t        j                  | j                  |«      |«      st        ‚y ©N)r   Úbytes_eqr3   r   )r   r%   Úexpected_keys      r   ÚverifyzX963KDF.verify;   s'   € Ü×%Ñ% d§k¡k°,Ó&?ÀÔNÜÐð Or   r5   )r    zhashes.HashAlgorithmr   Úintr   zbytes | Noner!   z
typing.Any)r%   ÚbytesÚreturnr:   )r%   r:   r7   r:   r;   ÚNone)Ú__name__Ú
__module__Ú__qualname__r#   r3   r8   © r   r   r   r      s<   „ ð #ðà'ðð ðð !ð	ð
 óó$0ô*r   r   )r   r9   r;   r:   )Ú
__future__r   ÚtypingÚcryptographyr   Úcryptography.exceptionsr   r   Úcryptography.hazmat.primitivesr   r   Ú"cryptography.hazmat.primitives.kdfr	   r   r   r@   r   r   ú<module>rG      s+   ðõ
 #ã å ß @ß @Ý Dó1ô*Ð#õ *r   