Ë
    ±éägÇ  ã                  ó€   — 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
mZ d dlmZ  G d„ de«      Z G d	„ d
e«      Zy)é    )ÚannotationsN)Úutils)ÚAlreadyFinalizedÚ
InvalidKey)Úconstant_timeÚhashesÚhmac)ÚKeyDerivationFunctionc                  óB   — e Zd Z	 d	 	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Zd	d„Zy)
ÚHKDFNc                ó¼   — || _         |€d| j                   j                  z  }nt        j                  d|«       || _        t        | j                   ||«      | _        y )Nó    Úsalt)Ú
_algorithmÚdigest_sizer   Ú_check_bytesÚ_saltÚ
HKDFExpandÚ_hkdf_expand)ÚselfÚ	algorithmÚlengthr   ÚinfoÚbackends         úe/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/kdf/hkdf.pyÚ__init__zHKDF.__init__   sP   € ð $ˆŒàˆ<Ø˜TŸ_™_×8Ñ8Ñ8‰Dä×Ñ˜v tÔ,àˆŒ
ä& t§¡¸ÀÓEˆÕó    c                ó˜   — t        j                  | j                  | j                  «      }|j	                  |«       |j                  «       S ©N)r	   ÚHMACr   r   ÚupdateÚfinalize)r   Úkey_materialÚhs      r   Ú_extractzHKDF._extract#   s2   € Ü�I‰I�d—j‘j $§/¡/Ó2ˆØ	�‰�ÔØ�z‰z‹|Ðr   c                ó‚   — t        j                  d|«       | j                  j                  | j	                  |«      «      S )Nr#   )r   Ú_check_bytesliker   Úderiver%   ©r   r#   s     r   r(   zHKDF.derive(   s2   € Ü×Ñ˜~¨|Ô<Ø× Ñ ×'Ñ'¨¯©°lÓ(CÓDÐDr   c                óZ   — t        j                  | j                  |«      |«      st        ‚y r   ©r   Úbytes_eqr(   r   ©r   r#   Úexpected_keys      r   ÚverifyzHKDF.verify,   ó'   € Ü×%Ñ% d§k¡k°,Ó&?ÀÔNÜÐð Or   r   )
r   úhashes.HashAlgorithmr   Úintr   úbytes | Noner   r3   r   ú
typing.Any©r#   ÚbytesÚreturnr6   ©r#   r6   r.   r6   r7   ÚNone)Ú__name__Ú
__module__Ú__qualname__r   r%   r(   r/   © r   r   r   r      sR   „ ð #ðFà'ðFð ðFð ð	Fð
 ðFð óFó&ó
Eôr   r   c                  ó>   — e Zd Z	 d	 	 	 	 	 	 	 dd„Zdd„Zdd„Zd	d„Zy)
r   Nc                ó¸   — || _         d|j                  z  }||kD  rt        d|› d�«      ‚|| _        |€d}nt	        j
                  d|«       || _        d| _        y )Néÿ   zCannot derive keys larger than z octets.r   r   F)r   r   Ú
ValueErrorÚ_lengthr   r   Ú_infoÚ_used)r   r   r   r   r   Ú
max_lengths         r   r   zHKDFExpand.__init__2   sm   € ð $ˆŒà˜9×0Ñ0Ñ0ˆ
à�JÒÜØ1°*°¸XÐFóð ð ˆŒàˆ<Ø‰Dä×Ñ˜v tÔ,àˆŒ
àˆ�
r   c                ó.  — dg}d}| j                   j                  t        |«      dz
  z  | j                  k  rÁt	        j
                  || j                   «      }|j                  |d   «       |j                  | j                  «       |j                  t        |g«      «       |j                  |j                  «       «       |dz  }| j                   j                  t        |«      dz
  z  | j                  k  rŒÁdj                  |«      d | j                   S )Nr   é   éÿÿÿÿ)r   r   ÚlenrB   r	   r    r!   rC   r6   Úappendr"   Újoin)r   r#   ÚoutputÚcounterr$   s        r   Ú_expandzHKDFExpand._expandM   sÔ   € Ø�ˆØˆà�o‰o×)Ñ)¬S°«[¸1©_Ñ=ÀÇÁÒLÜ—	‘	˜,¨¯©Ó8ˆAØ�H‰H�V˜B‘ZÔ Ø�H‰H�T—Z‘ZÔ Ø�H‰H”U˜G˜9Ó%Ô&Ø�M‰M˜!Ÿ*™*›,Ô'Ø�q‰LˆGð �o‰o×)Ñ)¬S°«[¸1©_Ñ=ÀÇÁÓLð �x‰x˜Ó  $§,¡,Ð/Ð/r   c                ó‚   — t        j                  d|«       | j                  rt        ‚d| _        | j	                  |«      S )Nr#   T)r   r'   rD   r   rN   r)   s     r   r(   zHKDFExpand.derive[   s5   € Ü×Ñ˜~¨|Ô<Ø�:Š:Ü"Ð"àˆŒ
Ø�|‰|˜LÓ)Ð)r   c                óZ   — t        j                  | j                  |«      |«      st        ‚y r   r+   r-   s      r   r/   zHKDFExpand.verifyc   r0   r   r   )r   r1   r   r2   r   r3   r   r4   r5   r8   )r:   r;   r<   r   rN   r(   r/   r=   r   r   r   r   1   sA   „ ð #ðà'ðð ðð ð	ð
 óó60ó*ôr   r   )Ú
__future__r   ÚtypingÚcryptographyr   Úcryptography.exceptionsr   r   Úcryptography.hazmat.primitivesr   r   r	   Ú"cryptography.hazmat.primitives.kdfr
   r   r   r=   r   r   ú<module>rW      s7   ðõ
 #ã å ß @ß FÑ FÝ DôÐ ô ôD4Ð&õ 4r   