
    #	h                    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/html/env/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>wiv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    ::""
~|<llV#DOO,AHH\"HH]7+,+))*MM!**,'c&*o%FqLG llV# xx$,,//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*    %%dkk,&?NN Or   )r   r   r   r   r8   )r!   zhashes.HashAlgorithmr   intr   zbytes | Noner"   z
typing.Any)r'   bytesreturnr>   )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   