ó
    #	hÇ  ã                  ó€   • S SK Jr  S SKrS SKJr  S SKJrJr  S SKJ	r	J
r
Jr  S SKJr   " S S\5      r " S	 S
\5      rg)é    )ÚannotationsN)Úutils)ÚAlreadyFinalizedÚ
InvalidKey)Úconstant_timeÚhashesÚhmac)ÚKeyDerivationFunctionc                  óT   • \ rS rSr S         S	S jjrS
S jrS
S jrSS jrSrg)ÚHKDFé   Nc                óº   • Xl         Uc  SU R                   R                  -  nO[        R                  " SU5        X0l        [        U R                   X$5      U l        g )Nó    Úsalt)Ú
_algorithmÚdigest_sizer   Ú_check_bytesÚ_saltÚ
HKDFExpandÚ_hkdf_expand)ÚselfÚ	algorithmÚlengthr   ÚinfoÚbackends         ÚY/var/www/html/env/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/hkdf.pyÚ__init__ÚHKDF.__init__   sJ   € ð $Œà‰<Ø˜TŸ_™_×8Ñ8Ñ8‰Dä×Ò˜v tÔ,àŒ
ä& t§¡¸ÓEˆÕó    c                óš   • [         R                  " U R                  U R                  5      nUR	                  U5        UR                  5       $ ©N)r	   ÚHMACr   r   ÚupdateÚfinalize)r   Úkey_materialÚhs      r   Ú_extractÚHKDF._extract#   s2   € ÜIŠId—j‘j $§/¡/Ó2ˆØ	‰ÔØz‰z‹|Ðr   c                ó„   • [         R                  " SU5        U R                  R                  U R	                  U5      5      $ )Nr%   )r   Ú_check_bytesliker   Úderiver'   ©r   r%   s     r   r+   ÚHKDF.derive(   s2   € Ü×Ò˜~¨|Ô<Ø× Ñ ×'Ñ'¨¯©°lÓ(CÓDÐDr   c                óf   • [         R                  " U R                  U5      U5      (       d  [        eg r!   ©r   Úbytes_eqr+   r   ©r   r%   Úexpected_keys      r   ÚverifyÚHKDF.verify,   ó*   € Ü×%Ò% d§k¡k°,Ó&?À×NÑNÜÐð Or   )r   r   r   r!   )
r   úhashes.HashAlgorithmr   Úintr   úbytes | Noner   r8   r   ú
typing.Any©r%   ÚbytesÚreturnr;   ©r%   r;   r2   r;   r<   ÚNone)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r'   r+   r3   Ú__static_attributes__© r   r   r   r      sR   † ð #ðFà'ðFð ðFð ð	Fð
 ðFð õFô&ô
E÷r   r   c                  óP   • \ rS rSr S       S	S jjrS
S jrS
S jrSS jrSrg)r   é1   Nc                ó¶   • Xl         SUR                  -  nX%:”  a  [        SU S35      eX l        Uc  SnO[        R
                  " SU5        X0l        SU l        g )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   ÚHKDFExpand.__init__2   se   € ð $Œà˜9×0Ñ0Ñ0ˆ
àÓÜØ1°*°¸XÐFóð ð Œà‰<Ø‰Dä×Ò˜v tÔ,àŒ
àˆ
r   c                ó4  • S/nSnU R                   R                  [        U5      S-
  -  U R                  :  aÃ  [        R
                  " XR                   5      nUR                  US   5        UR                  U R                  5        UR                  [        U/5      5        UR                  UR                  5       5        US-  nU R                   R                  [        U5      S-
  -  U R                  :  a  MÃ  SR                  U5      S U R                   $ )Nr   é   éÿÿÿÿ)r   r   ÚlenrJ   r	   r"   r#   rK   r;   Úappendr$   Újoin)r   r%   ÚoutputÚcounterr&   s        r   Ú_expandÚHKDFExpand._expandM   sÒ   € ØˆØˆào‰o×)Ñ)¬S°«[¸1©_Ñ=ÀÇÁÓLÜ—	’	˜,¯©Ó8ˆAØH‰HV˜B‘ZÔ ØH‰HT—Z‘ZÔ ØH‰H”U˜G˜9Ó%Ô&ØM‰M˜!Ÿ*™*›,Ô'Øq‰LˆGð o‰o×)Ñ)¬S°«[¸1©_Ñ=ÀÇÁÕLð x‰x˜Ó  $§,¡,Ð/Ð/r   c                óŽ   • [         R                  " SU5        U R                  (       a  [        eSU l        U R	                  U5      $ )Nr%   T)r   r*   rL   r   rW   r,   s     r   r+   ÚHKDFExpand.derive[   s5   € Ü×Ò˜~¨|Ô<Ø::Ü"Ð"àˆŒ
Ø|‰|˜LÓ)Ð)r   c                óf   • [         R                  " U R                  U5      U5      (       d  [        eg r!   r/   r1   s      r   r3   ÚHKDFExpand.verifyc   r5   r   )r   rK   rJ   rL   r!   )r   r6   r   r7   r   r8   r   r9   r:   r=   )	r?   r@   rA   rB   r   rW   r+   r3   rC   rD   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   rD   r   r   Ú<module>rc      s7   ðõ
 #ã å ß @ß FÑ FÝ DôÐ ô ôD4Ð&õ 4r   