ó
    ‹Âj™  ã                  óÎ   • S SK Jr  S SKrS SKJ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 jr        SS	 jr          SS
 jr " S S\5      r " S S\5      rg)é    )ÚannotationsN)ÚCallable)Úutils)ÚAlreadyFinalizedÚ
InvalidKey)Úconstant_timeÚhashesÚhmac)ÚKeyDerivationFunctionc                ó"   • U R                  SSS9$ )Né   Úbig)ÚlengthÚ	byteorder)Úto_bytes)Úns    Úb/var/www/website/venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/kdf/concatkdf.pyÚ_int_to_u32ber      s   € Ø�:‰:˜Q¨%ˆ:Ð0Ð0ó    c                ó€   • U R                   S-  nX:”  a  [        SU S35      eUb  [        R                  " SU5        g g )Nl   ÿÿ zCannot derive keys larger than z bits.Ú	otherinfo)Údigest_sizeÚ
ValueErrorr   Ú_check_bytes)Ú	algorithmr   r   Ú
max_lengths       r   Ú_common_args_checksr      sJ   € ð
 ×&Ñ&¨)Ñ4€JØÓÜÐ:¸:¸,ÀfÐMÓNÐNØÑÜ×Ò˜;¨	Õ2ð r   c                ón  • [         R                  " SU 5        S/nSnSnX:”  a  U" 5       nUR                  [        U5      5        UR                  U 5        UR                  U5        UR	                  UR                  5       5        U[        US   5      -  nUS-  nX:”  a  M  SR                  U5      S U $ )NÚkey_materialr   r   é   éÿÿÿÿ)r   Ú_check_byteslikeÚupdater   ÚappendÚfinalizeÚlenÚjoin)r   r   Úauxfnr   ÚoutputÚoutlenÚcounterÚhs           r   Ú_concatkdf_deriver-       s¦   € ô 
×Ò˜>¨<Ô8ØˆU€FØ€FØ€Gà
‹/Ù‹GˆØ	�‰”˜wÓ'Ô(Ø	�‰�ÔØ	�‰�ÔØ�‰�a—j‘j“lÔ#Ø”#�f˜R‘j“/Ñ!ˆØ�1‰ˆð �/ð �8‰8�FÓ˜G˜VÐ$Ð$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)ÚConcatKDFHashé7   Nc                óZ   • [        XU5        Xl        X l        Ub  UOSU l        SU l        g )Nr   F)r   Ú
_algorithmÚ_lengthÚ
_otherinfoÚ_used)Úselfr   r   r   Úbackends        r   Ú__init__ÚConcatKDFHash.__init__8   s-   € ô 	˜I¨yÔ9Ø#ŒØŒØ.7Ñ.C¡ÈˆŒàˆ�
r   c                óB   • [         R                  " U R                  5      $ ©N)r	   ÚHashr2   ©r6   s    r   Ú_hashÚConcatKDFHash._hashF   s   € Ü�{Š{˜4Ÿ?™?Ó+Ð+r   c                ó”   • U R                   (       a  [        eSU l         [        XR                  U R                  U R
                  5      $ ©NT)r5   r   r-   r3   r>   r4   ©r6   r   s     r   ÚderiveÚConcatKDFHash.deriveI   ó6   € Ø�:�:Ü"Ð"ØˆŒ
Ü ØŸ,™,¨¯
©
°D·O±Oó
ð 	
r   c                óf   • [         R                  " U R                  U5      U5      (       d  [        eg r;   ©r   Úbytes_eqrC   r   ©r6   r   Úexpected_keys      r   ÚverifyÚConcatKDFHash.verifyQ   ó*   € Ü×%Ò% d§k¡k°,Ó&?À×NÑNÜÐð Or   )r2   r3   r4   r5   r;   )r   úhashes.HashAlgorithmr   Úintr   úbytes | Noner7   ú
typing.Any)Úreturnzhashes.Hash©r   úutils.BufferrR   Úbytes©r   rU   rJ   rU   rR   ÚNone)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r8   r>   rC   rK   Ú__static_attributes__© r   r   r/   r/   7   sA   † ð #ðà'ðð ðð  ð	ð
 õô,ô
÷r   r/   c                  ó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)ÚConcatKDFHMACéV   Nc                ó  • [        XU5        Xl        X l        Ub  UOSU l        UR                  c  [        UR                   S35      eUc  SUR                  -  nO[        R                  " SU5        X0l	        SU l
        g )Nr   z is unsupported for ConcatKDFó    ÚsaltF)r   r2   r3   r4   Ú
block_sizeÚ	TypeErrorÚnamer   r   Ú_saltr5   )r6   r   r   rc   r   r7   s         r   r8   ÚConcatKDFHMAC.__init__W   s{   € ô 	˜I¨yÔ9Ø#ŒØŒØ.7Ñ.C¡ÈˆŒà×ÑÑ'Ü˜yŸ~™~Ð.Ð.KÐLÓMÐMà‰<Ø˜Y×1Ñ1Ñ1‰Dä×Ò˜v tÔ,àŒ
àˆ�
r   c                óX   • [         R                  " U R                  U R                  5      $ r;   )r
   ÚHMACrg   r2   r=   s    r   Ú_hmacÚConcatKDFHMAC._hmacp   s   € Ü�yŠy˜Ÿ™ T§_¡_Ó5Ð5r   c                ó”   • U R                   (       a  [        eSU l         [        XR                  U R                  U R
                  5      $ rA   )r5   r   r-   r3   rk   r4   rB   s     r   rC   ÚConcatKDFHMAC.derives   rE   r   c                óf   • [         R                  " U R                  U5      U5      (       d  [        eg r;   rG   rI   s      r   rK   ÚConcatKDFHMAC.verify{   rM   r   )r2   r3   r4   rg   r5   r;   )
r   rN   r   rO   rc   rP   r   rP   r7   rQ   )rR   z	hmac.HMACrS   rV   )	rX   rY   rZ   r[   r8   rk   rC   rK   r\   r]   r   r   r_   r_   V   sK   † ð #ðà'ðð ðð ð	ð
  ðð õô26ô
÷r   r_   )r   rO   rR   rU   )r   rN   r   rO   r   rP   rR   rW   )
r   rT   r   rO   r(   z Callable[[], hashes.HashContext]r   rU   rR   rU   )Ú
__future__r   ÚtypingÚcollections.abcr   Úcryptographyr   Úcryptography.exceptionsr   r   Úcryptography.hazmat.primitivesr   r	   r
   Ú"cryptography.hazmat.primitives.kdfr   r   r   r-   r/   r_   r]   r   r   Ú<module>rx      sš   ðõ
 #ã Ý $å ß @ß FÑ FÝ Dô1ð	3Ø#ð	3àð	3ð ð	3ð 
ô		3ð%Øð%àð%ð ,ð%ð ð	%ð
 ô%ô.Ð)ô ô>'Ð)õ 'r   