§
    _¦·få  ã                  óŽ   — 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útyping.Optional[bytes]Ú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         úY/var/www/html/env/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ÚbytesÚreturnc                ó’   — 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"   r0   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#   r0   r#   r$   r1   )Ú__name__Ú
__module__Ú__qualname__r    r+   r.   r6   © 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$   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   ÚlenrB   r	   r'   r(   rC   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-   rD   r   rN   r/   s     r   r.   zHKDFExpand.derive[   s>   € ÝÔ˜~¨|Ñ<Ô<Ð<ØŒ:ð 	#Ý"Ð"àˆŒ
Ø|Š|˜LÑ)Ô)Ð)r!   r0   r1   c                ód   — t          j        |                      |¦  «        |¦  «        st          ‚d S r&   r3   r5   s      r   r6   zHKDFExpand.verifyc   r7   r!   r&   )r   r   r   r   r   r   r   r   r8   r9   )r:   r;   r<   r    rN   r.   r6   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>rW      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!   