id\ddlmZddlZddlmZddlmZejrddlm Z dd Z ddZ dS)) annotationsN)hashes) Prehashed)Backendbackendrreturnbytesc |j||jj}|||jjk|j||jj}|j|}||dk|jjr"|j ||j d}n |j ||j }||dk|j d}|j ||jj|}||dk||ddk|j d|d}|j |||}|dkr$|}td||j||dddS)Nrzsize_t *zunsigned char[]zError computing shared key.)_libEVP_PKEY_CTX_new_ffiNULLopenssl_assertgcEVP_PKEY_CTX_freeEVP_PKEY_derive_init%Cryptography_HAS_EVP_PKEY_SET_PEER_EXEVP_PKEY_derive_set_peer_ex _evp_pkeyEVP_PKEY_derive_set_peernewEVP_PKEY_derive_consume_errors ValueErrorbuffer)revp_pkeypeer_public_keyctxreskeylenbuferrorss _/opt/cloudlinux/venv/lib/python3.11/site-packages/cryptography/hazmat/backends/openssl/utils.py_evp_pkey_deriver%s , ' '',2C D DC 3',"33444 ,//#w|= > >C , + +C 0 0C 3!8$$$|9 l66 *A  l33 *   3!8$$$ \  j ) )F , & &sGL,=v F FC 3!8$$$ 6!9q=))) ,  ,fQi 8 8C , & &sC 8 8C axx((**6??? <  sF1I . .qqq 11data algorithm-typing.Union[Prehashed, hashes.HashAlgorithm])typing.Tuple[bytes, hashes.HashAlgorithm]c t|ts>tj|}|||}n|j}t||jkrtd||fS)NzNThe provided data must be the same length as the hash algorithm's digest size.) isinstancerrHashupdatefinalize _algorithmlen digest_sizer)r'r(hash_ctxs r$_calculate_digest_and_algorithmr4.s i + +);y))  ""(  4yyI))) '   ) r&)rrrr )r'r r(r)rr*) __future__rtypingcryptography.hazmat.primitivesr/cryptography.hazmat.primitives.asymmetric.utilsr TYPE_CHECKING,cryptography.hazmat.backends.openssl.backendrr%r4r&r$r<s #""""" 111111EEEEEE EDDDDDD2222<r&