
    ;3h                        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    l/var/www/html/audio-gradio/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    
 &&)4J
::,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UFFG
6/G	w'(		ajjl##fRj/!1 6/ 88FGV$$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     	Ivy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    ::""
 $,,

DOO
 	
r   c                Z    t        j                  | j                  |      |      st        y r9   r   bytes_eqr@   r   r5   r   expected_keys      r   verifyzConcatKDFHash.verifyQ   '    %%dkk,&?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     	Ivy9#.7.C'y~~..KLMM<Y111Dvt,

r   c                V    t        j                  | j                  | j                        S r9   )r
   HMACr_   r1   r;   s    r   _hmaczConcatKDFHMAC._hmacp   s    yy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   