
     hl                         d dl Z d dlmZ d dlmZ e j        rd dlmZ dddefdZ	d	ed
e j
        eej        f         de j        eej        f         fdZdS )    N)hashes)	Prehashed)Backendbackendr   returnc                     | j                             || j        j                  }|                     || j        j        k               | j                            || j         j                  }| j                             |          }|                     |dk               | j         j        r"| j         	                    ||j
        d          }n | j                             ||j
                  }|                     |dk               | j                            d          }| j                             || j        j        |          }|                     |dk               |                     |d         dk               | j                            d|d                   }| j                             |||          }|dk    r$|                                 }t          d|          | j                            ||d                   d d          S )N   r   zsize_t *zunsigned char[]zError computing shared key.)_libEVP_PKEY_CTX_new_ffiNULLopenssl_assertgcEVP_PKEY_CTX_freeEVP_PKEY_derive_init%Cryptography_HAS_EVP_PKEY_SET_PEER_EXEVP_PKEY_derive_set_peer_ex	_evp_pkeyEVP_PKEY_derive_set_peernewEVP_PKEY_derive_consume_errors
ValueErrorbuffer)r   evp_pkeypeer_public_keyctxreskeylenbuferrorss           f/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/cryptography/hazmat/backends/openssl/utils.py_evp_pkey_deriver#      s   
,
'
'',2C
D
DC3',"33444
,//#w|=
>
>C
,
+
+C
0
0C3!8$$$|9 
l66*A
 
 l33*
 
 3!8$$$\j))F
,
&
&sGL,=v
F
FC3!8$$$6!9q=)))
,

,fQi
8
8C
,
&
&sC
8
8C
axx((**6???<sF1I..qqq11    data	algorithmc                    t          |t                    s>t          j        |          }|                    |            |                                } n|j        }t          |           |j        k    rt          d          | |fS )NzNThe provided data must be the same length as the hash algorithm's digest size.)

isinstancer   r   Hashupdatefinalize
_algorithmlendigest_sizer   )r%   r&   hash_ctxs      r"   _calculate_digest_and_algorithmr0   ,   s     i++ );y))  ""(	
4yyI)))'
 
 	

 )r$   )typingcryptography.hazmat.primitivesr   /cryptography.hazmat.primitives.asymmetric.utilsr   TYPE_CHECKING,cryptography.hazmat.backends.openssl.backendr   bytesr#   UnionHashAlgorithmTupler0    r$   r"   <module>r;      s   
  1 1 1 1 1 1 E E E E E E	 EDDDDDD2i 2u 2 2 2 2<
|Iv';;< \%--.     r$   