§
    .Phã  ã                  óŽ   — 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dS )é    )ÚannotationsN)Úutils)ÚAlreadyFinalizedÚ
InvalidKey)Úconstant_timeÚhashesÚhmac)ÚKeyDerivationFunctionc                  ó2   — e Zd Z	 ddd„Zdd„Zdd„Zdd„ZdS )ÚHKDFNÚ	algorithmúhashes.HashAlgorithmÚlengthÚintÚsaltúbytes | NoneÚinfoÚbackendú
typing.Anyc                ó¦   — || _         |€d| j         j        z  }nt          j        d|¦  «         || _        t          | j         ||¦  «        | _        d S )Nó    r   )Ú
_algorithmÚdigest_sizer   Ú_check_bytesÚ_saltÚ
HKDFExpandÚ_hkdf_expand)Úselfr   r   r   r   r   s         úg/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/cryptography/hazmat/primitives/kdf/hkdf.pyÚ__init__zHKDF.__init__   sW   € ð $ˆŒàˆ<Ø˜Tœ_Ô8Ñ8ˆDˆDåÔ˜v tÑ,Ô,Ð,àˆŒ
å& t¤¸ÀÑEÔEˆÔÐÐó    Úkey_materialúutils.BufferÚreturnÚbytesc                ó’   — t          j        | j        | j        ¦  «        }|                     |¦  «         |                     ¦   «         S ©N)r	   ÚHMACr   r   ÚupdateÚfinalize)r   r"   Úhs      r   Ú_extractzHKDF._extract#   s7   € ÝŒId”j $¤/Ñ2Ô2ˆØ	ŠÑÔÐØzŠz‰|Œ|Ðr!   c                ó†   — t          j        d|¦  «         | j                             |                      |¦  «        ¦  «        S )Nr"   )r   Ú_check_bytesliker   Úderiver,   ©r   r"   s     r   r/   zHKDF.derive(   s8   € ÝÔ˜~¨|Ñ<Ô<Ð<ØÔ ×'Ò'¨¯ª°lÑ(CÔ(CÑDÔDÐDr!   Úexpected_keyÚNonec                ód   — t          j        |                      |¦  «        |¦  «        st          ‚d S r'   ©r   Úbytes_eqr/   r   ©r   r"   r1   s      r   ÚverifyzHKDF.verify,   ó3   € ÝÔ% d§k¢k°,Ñ&?Ô&?ÀÑNÔNð 	ÝÐð	ð 	r!   r'   )
r   r   r   r   r   r   r   r   r   r   ©r"   r#   r$   r%   ©r"   r%   r1   r%   r$   r2   )Ú__name__Ú
__module__Ú__qualname__r    r,   r/   r7   © r!   r   r   r      sw   € € € € € ð #ðFð Fð Fð Fð Fð&ð ð ð ð
Eð Eð Eð Eðð ð ð ð ð r!   r   c                  ó2   — e Zd Z	 ddd
„Zdd„Zdd„Zdd„ZdS )r   Nr   r   r   r   r   r   r   r   c                ó¸   — || _         d|j        z  }||k    rt          d|› d¦  «        ‚|| _        |€d}nt	          j        d|¦  «         || _        d| _        d S )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   s}   € ð $ˆŒà˜9Ô0Ñ0ˆ
àJÒÐÝØF°*ÐFÐFÐFñô ð ð ˆŒàˆ<ØˆDˆDåÔ˜v tÑ,Ô,Ð,àˆŒ
àˆŒ
ˆ
ˆ
r!   r"   r#   r$   r%   c                ó,  — dg}d}| j         j        t          |¦  «        dz
  z  | j        k     rÆt	          j        || j         ¦  «        }|                     |d         ¦  «         |                     | j        ¦  «         |                     t          |g¦  «        ¦  «         | 	                    | 
                    ¦   «         ¦  «         |dz  }| j         j        t          |¦  «        dz
  z  | j        k     °Æd                     |¦  «        d | j        …         S )Nr!   é   éÿÿÿÿ)r   r   ÚlenrC   r	   r(   r)   rD   r%   Úappendr*   Újoin)r   r"   ÚoutputÚcounterr+   s        r   Ú_expandzHKDFExpand._expandM   sí   € ØˆØˆàŒoÔ)­S°©[¬[¸1©_Ñ=ÀÄÒLÐLÝ”	˜,¨¬Ñ8Ô8ˆAØHŠHV˜B”ZÑ Ô Ð ØHŠHT”ZÑ Ô Ð ØHŠH•U˜G˜9Ñ%Ô%Ñ&Ô&Ð&ØMŠM˜!Ÿ*š*™,œ,Ñ'Ô'Ð'Øq‰LˆGð ŒoÔ)­S°©[¬[¸1©_Ñ=ÀÄÒLÐLð xŠx˜ÑÔ  $¤, Ô/Ð/r!   c                ó€   — t          j        d|¦  «         | j        rt          ‚d| _        |                      |¦  «        S )Nr"   T)r   r.   rE   r   rO   r0   s     r   r/   zHKDFExpand.derive[   s>   € ÝÔ˜~¨|Ñ<Ô<Ð<ØŒ:ð 	#Ý"Ð"àˆŒ
Ø|Š|˜LÑ)Ô)Ð)r!   r1   r2   c                ód   — t          j        |                      |¦  «        |¦  «        st          ‚d S r'   r4   r6   s      r   r7   zHKDFExpand.verifyc   r8   r!   r'   )r   r   r   r   r   r   r   r   r9   r:   )r;   r<   r=   r    rO   r/   r7   r>   r!   r   r   r   1   sn   € € € € € ð #ðð ð ð ð ð60ð 0ð 0ð 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>rX      sÝ   ðð
 #Ð "Ð "Ð "Ð "Ð "à €€€à Ð Ð Ð Ð Ð Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ DÐ DÐ DÐ DÐ DÐ Dðð ð ð ð Ð ñ ô ð ðD4ð 4ð 4ð 4ð 4Ð&ñ 4ô 4ð 4ð 4ð 4r!   