ó
    ‹ÂjÏ  ã                  óp   • 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
  S SKJr  S
S jr " S S	\5      rg)é    )ÚannotationsN)Úutils)ÚAlreadyFinalizedÚ
InvalidKey)Úconstant_timeÚhashes)ÚKeyDerivationFunctionc                ó"   • U R                  SSS9$ )Né   Úbig)ÚlengthÚ	byteorder)Úto_bytes)Úns    Ú`/var/www/website/venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/x963kdf.pyÚ_int_to_u32ber      s   € Ø�:‰:˜Q¨%ˆ:Ð0Ð0ó    c                  óF   • \ rS rSr S       SS jjrS	S jrS
S jrSrg)ÚX963KDFé   Nc                ó°   • UR                   S-  nX%:”  a  [        SU S35      eUb  [        R                  " SU5        Xl        X l        X0l        SU l        g )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__ÚX963KDF.__init__   s\   € ð ×'Ñ'¨9Ñ5ˆØÓÜÐ>¸w¸iÀvÐNÓOÐOØÑ!Ü×Ò˜|¨ZÔ8à#ŒØŒØ%ÔØˆ�
r   c                óJ  • U R                   (       a  [        eSU l         [        R                  " SU5        S/nSnSnU R                  U:”  aº  [
        R                  " U R                  5      nUR                  U5        UR                  [        U5      5        U R                  b  UR                  U R                  5        UR                  UR                  5       5        U[        US   5      -  nUS-  nU R                  U:”  a  Mº  SR                  U5      S U R                   $ )NTÚkey_materialr   r   é   éÿÿÿÿ)r   r   r   Ú_check_bytesliker   r   ÚHashr   Úupdater   r   ÚappendÚfinalizeÚlenÚjoin)r    r'   ÚoutputÚoutlenÚcounterÚhs         r   ÚderiveÚ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                óf   • [         R                  " U R                  U5      U5      (       d  [        eg ©N)r   Úbytes_eqr5   r   )r    r'   Úexpected_keys      r   ÚverifyÚX963KDF.verify;   s*   € Ü×%Ò% d§k¡k°,Ó&?À×NÑNÜÐð Or   )r   r   r   r   r8   )r!   zhashes.HashAlgorithmr   Úintr   zbytes | Noner"   z
typing.Any)r'   zutils.BufferÚreturnÚbytes)r'   r?   r:   r?   r>   ÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r$   r5   r;   Ú__static_attributes__© r   r   r   r      s<   † ð #ðà'ðð ðð !ð	ð
 õô$0÷*r   r   )r   r=   r>   r?   )Ú
__future__r   ÚtypingÚcryptographyr   Úcryptography.exceptionsr   r   Úcryptography.hazmat.primitivesr   r   Ú"cryptography.hazmat.primitives.kdfr	   r   r   rF   r   r   Ú<module>rM      s+   ðõ
 #ã å ß @ß @Ý Dô1ô*Ð#õ *r   