Ë
    ùmxi™  ã                  óÈ   — d dl mZ d dlZd dlm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 dd„Z	 	 	 	 	 	 	 	 dd	„Z	 	 	 	 	 	 	 	 	 	 dd
„Z G d„ de«      Z G d„ de«      Zy)é    )ÚannotationsN)ÚCallable)Úutils)ÚAlreadyFinalizedÚ
InvalidKey)Úconstant_timeÚhashesÚhmac)ÚKeyDerivationFunctionc                ó(   — | j                  dd¬«      S )Né   Úbig)ÚlengthÚ	byteorder)Úto_bytes)Úns    úc/home/htdocs/ttos/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/kdf/concatkdf.pyÚ_int_to_u32ber      s   € Ø�:‰:˜Q¨%ˆ:Ó0Ð0ó    c                ó|   — | j                   dz  }||kD  rt        d|› d�«      ‚|�t        j                  d|«       y y )Nl   ÿÿ zCannot derive keys larger than z bits.Ú	otherinfo)Údigest_sizeÚ
ValueErrorr   Ú_check_bytes)Ú	algorithmr   r   Ú
max_lengths       r   Ú_common_args_checksr      sL   € ð
 ×&Ñ&¨)Ñ4€JØ�
ÒÜÐ:¸:¸,ÀfÐMÓNÐNØÐÜ×Ñ˜;¨	Õ2ð r   c                ój  — t        j                  d| «       dg}d}d}||kD  r~ |«       }|j                  t        |«      «       |j                  | «       |j                  |«       |j	                  |j                  «       «       |t        |d   «      z  }|dz  }||kD  rŒ~dj                  |«      d | S )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à
�6Š/Ù‹GˆØ	�‰”˜wÓ'Ô(Ø	�‰�ÔØ	�‰�ÔØ�‰�a—j‘j“lÔ#Ø”#�f˜R‘j“/Ñ!ˆØ�1‰ˆð �6‹/ð �8‰8�FÓ˜G˜VÐ$Ð$r   c                  ó>   — e Zd Z	 d	 	 	 	 	 	 	 dd„Zdd„Zd	d„Zd
d„Zy)ÚConcatKDFHashNc                ó^   — t        |||«       || _        || _        |�|nd| _        d| _        y )Nr   F)r   Ú
_algorithmÚ_lengthÚ
_otherinfoÚ_used)Úselfr   r   r   Úbackends        r   Ú__init__zConcatKDFHash.__init__8   s3   € ô 	˜I v¨yÔ9Ø#ˆŒØˆŒØ.7Ð.C¡ÈˆŒàˆ�
r   c                ó@   — t        j                  | j                  «      S ©N)r	   ÚHashr1   ©r5   s    r   Ú_hashzConcatKDFHash._hashF   s   € Ü�{‰{˜4Ÿ?™?Ó+Ð+r   c                óŒ   — | j                   rt        ‚d| _         t        || j                  | j                  | j
                  «      S ©NT)r4   r   r-   r2   r<   r3   ©r5   r   s     r   ÚderivezConcatKDFHash.deriveI   ó8   € Ø�:Š:Ü"Ð"ØˆŒ
Ü Ø˜$Ÿ,™,¨¯
©
°D·O±Oó
ð 	
r   c                óZ   — t        j                  | j                  |«      |«      st        ‚y r9   ©r   Úbytes_eqr@   r   ©r5   r   Úexpected_keys      r   ÚverifyzConcatKDFHash.verifyQ   ó'   € Ü×%Ñ% d§k¡k°,Ó&?ÀÔNÜÐð Or   r9   )r   úhashes.HashAlgorithmr   Úintr   úbytes | Noner6   ú
typing.Any)Úreturnzhashes.Hash©r   úutils.BufferrM   Úbytes©r   rP   rF   rP   rM   ÚNone)Ú__name__Ú
__module__Ú__qualname__r7   r<   r@   rG   © r   r   r/   r/   7   sA   „ ð #ðà'ðð ðð  ð	ð
 óó,ó
ôr   r/   c                  óB   — e Zd Z	 d	 	 	 	 	 	 	 	 	 dd„Zdd„Zd	d„Zd
d„Zy)ÚConcatKDFHMACNc                ó  — t        |||«       || _        || _        |�|nd| _        |j                  €t        |j                  › d�«      ‚|€d|j                  z  }nt        j                  d|«       || _	        d| _
        y )Nr   z is unsupported for ConcatKDFó    ÚsaltF)r   r1   r2   r3   Ú
block_sizeÚ	TypeErrorÚnamer   r   Ú_saltr4   )r5   r   r   r[   r   r6   s         r   r7   zConcatKDFHMAC.__init__W   sƒ   € ô 	˜I v¨yÔ9Ø#ˆŒØˆŒØ.7Ð.C¡ÈˆŒà×ÑÐ'Ü˜yŸ~™~Ð.Ð.KÐLÓMÐMàˆ<Ø˜Y×1Ñ1Ñ1‰Dä×Ñ˜v tÔ,àˆŒ
àˆ�
r   c                óV   — t        j                  | j                  | j                  «      S r9   )r
   ÚHMACr_   r1   r;   s    r   Ú_hmaczConcatKDFHMAC._hmacp   s   € Ü�y‰y˜Ÿ™ T§_¡_Ó5Ð5r   c                óŒ   — | j                   rt        ‚d| _         t        || j                  | j                  | j
                  «      S r>   )r4   r   r-   r2   rb   r3   r?   s     r   r@   zConcatKDFHMAC.derives   rA   r   c                óZ   — t        j                  | j                  |«      |«      st        ‚y r9   rC   rE   s      r   rG   zConcatKDFHMAC.verify{   rH   r   r9   )
r   rI   r   rJ   r[   rK   r   rK   r6   rL   )rM   z	hmac.HMACrN   rQ   )rS   rT   rU   r7   rb   r@   rG   rV   r   r   rX   rX   V   sK   „ ð #ðà'ðð ðð ð	ð
  ðð óó26ó
ôr   rX   )r   rJ   rM   rP   )r   rI   r   rJ   r   rK   rM   rR   )
r   rO   r   rJ   r(   z Callable[[], hashes.HashContext]r   rP   rM   rP   )Ú
__future__r   ÚtypingÚcollections.abcr   Úcryptographyr   Úcryptography.exceptionsr   r   Úcryptography.hazmat.primitivesr   r	   r
   Ú"cryptography.hazmat.primitives.kdfr   r   r   r-   r/   rX   rV   r   r   ú<module>rl      sš   ðõ
 #ã Ý $å ß @ß FÑ FÝ Dó1ð	3Ø#ð	3àð	3ð ð	3ð 
ó		3ð%Øð%àð%ð ,ð%ð ð	%ð
 ó%ô.Ð)ô ô>'Ð)õ 'r   