HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: sport3497 (1034)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/lib64/python3.10/site-packages/ecdsa/__pycache__/test_ecdh.cpython-310.pyc
o

�h<�@s�ddlZddlZddlZddlZddlZddlmZzddlZWn
e	y-ddlZYnwddl
mZmZm
Z
mZmZmZmZmZddl
m
Z
ddlmZmZmZmZmZddlmZmZddlmZd	ejvrmeegZ
ejj d
e
dd�e
D�d
�dd��Z!dd�Z"dd�Z#Gdd�dej$�Z%dd�Z&dd�Z'ej� dej(eddddd�ej(ed d!d"d#d�ej(ed$d%d&d'd�ej(ed(d)d*d+d�ej(ed,d-d.d/d�ej(ed0d1d2d3d�ej(ed4d5d6d7d�ej(e
d8d9d:d;d�ej(e
d<d=d>d?d�ej(e
d@dAdBdCd�ej(e
dDdEdFdGd�ej(e
dHdIdJdKd�ej(e
dLdMdNdOd�ej(edPdQdRdSd�ej(edTdUdVdWd�g�dXdY��Z)dZZ*d[Z+d\Z,d]Z-d^Z.d_d`�Z/dadb�Z0Gdcdd�dde1�Z2dedf�Z3e4dgdh�e3di��5dj�D��Z6ejj7ejj d
e
dkd�e
D�d
�dldm���Z8dS)n�N)�	unhexlify�)�NIST192p�NIST224p�NIST256p�NIST384p�NIST521p�BRAINPOOLP160r1�	SECP112r2�	SECP128r1)�curves)�ECDH�InvalidCurveError�InvalidSharedSecretError�
NoKeyError�NoCurveError)�
SigningKey�VerifyingKey)�	CurveEdTwz--fast�vcurvecC�g|]}|j�qS���name��.0�curverr�B/usr/local/CyberCP/lib/python3.10/site-packages/ecdsa/test_ecdh.py�
<listcomp>*�r)�idscCsnt|jt�rt�d�t|d�}t|d�}|��|�|���|�|���|�	�}|�	�}||ks5J�dS)Nz(ECDH is not supported for Edwards curves�r)
�
isinstancerr�pytest�skipr
�generate_private_key�load_received_public_key�get_public_key�generate_sharedsecret_bytes)r�ecdh1�ecdh2�secret1�secret2rrr�test_ecdh_each's


r-cCsPt�t�}t�t�}tt||j�}t||jd�}|��}|��}||ks&J�dS)N)�private_key�
public_key)r�generater	r
�
verifying_keyr()�key1�key2r)r*r+r,rrr�test_ecdh_both_keys_present;s

r4cCs|ttd�}t�t��|��Wd�n1swY|��t�t��
|��Wd�dS1s7wYdS�Nr!)r
rr#�raisesrr(r%�r)rrr�test_ecdh_no_public_keyHs

�
"�r8c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TestECDHcCsdt�}|�t�t�t�}|�t��
}|�|�Wd�n1s"wY|�	dt
|j��dS)NzCurve mismatch)r
�	set_curverrr0r	�assertRaisesr�load_private_key�assertIn�str�	exception)�selfr)r2�errr�test_load_key_from_wrong_curveUs

�z'TestECDH.test_load_key_from_wrong_curvecCsNt�}|�t��}|��Wd�n1swY|�dt|j��dS)N�Curve must be set)r
r;rr%r=r>r?�r@r)rArrr�test_generate_without_curve`s

�z$TestECDH.test_generate_without_curvecCsPt�}|�t��
}|�d�Wd�n1swY|�dt|j��dS)Ns rC)r
r;r�load_private_key_bytesr=r>r?rDrrr�!test_load_bytes_without_curve_seths
�z*TestECDH.test_load_bytes_without_curve_setcCs.t�}t�t�}|�|j�|�|jt�dS�N)r
rr0r	r&r1�assertEqualr)r@r)r2rrr�'test_set_curve_from_received_public_keyps
z0TestECDH.test_set_curve_from_received_public_keyN)�__name__�
__module__�__qualname__rBrErGrJrrrrr9Ts
r9cCsttd�}|��ttd�}|��t�t��|�|���Wd�n1s)wYt�t��|�|���Wd�n1sEwY|��|_	|��|_	t�t��|�
�Wd�n1shwYt�t��
|�
�Wd�dS1s�wYdSr5)r
rr%rr#r6rr&r'r/r()r)r*rrr� test_ecdh_wrong_public_key_curvezs$

��


�
"�rNcCsnttd�}|��|�t�t����|jjj	|jj
_t�
t��
|��Wd�dS1s0wYdSr5)r
rr%r&rr0�get_verifying_keyr.r�order�privkey�secret_multiplierr#r6rr(r7rrr�%test_ecdh_invalid_shared_secret_curve�s
�
"�rSzcurve,privatekey,pubkey,secret�0f17d3fea367b74d340851ca4270dcb24c271f445bed9d527�`42ea6dd9969dd2a61fea1aac7f8e98edcc896c6e55857cc0dfbe5d7c61fac88b11811bde328e8a0d12bf01a9d204b523�0803d8ab2e5b6e6fca715737c3a82f7ce3c783124f6d51cd0z
NIST192p-1)�id�056e853349d96fe4c442448dacb7cf92bb7a95dcf574a9bd5�`deb5712fa027ac8d2f22c455ccb73a91e17b6512b5e030e77e2690a02cc9b28708431a29fb54b87b1f0c14e011ac2125�0c208847568b98835d7312cef1f97f7aa298283152313c29dz
NIST192p-2�0c6ef61fe12e80bf56f2d3f7d0bb757394519906d55500949�`4edaa8efc5a0f40f843663ec5815e7762dddc008e663c20f0a9f8dc67a3e60ef6d64b522185d03df1fc0adfd42478279�087229107047a3b611920d6e3b2c0c89bea4f49412260b8ddz
NIST192p-3�0e6747b9c23ba7044f38ff7e62c35e4038920f5a0163d3cda�`8887c276edeed3e9e866b46d58d895c73fbd80b63e382e8804c5097ba6645e16206cfb70f7052655947dd44a17f1f9d5�0eec0bed8fc55e1feddc82158fd6dc0d48a4d796aaf47d46cz
NIST192p-4�0beabedd0154a1afcfc85d52181c10f5eb47adc51f655047d�`0d045f30254adc1fcefa8a5b1f31bf4e739dd327cd18d594542c314e41427c08278a08ce8d7305f3b5b849c72d8aff73�0716e743b1b37a2cd8479f0a3d5a74c10ba2599be18d7e2f4z
NIST192p-5�0cf70354226667321d6e2baf40999e2fd74c7a0f793fa8699�`fb35ca20d2e96665c51b98e8f6eb3d79113508d8bccd4516368eec0d5bfb847721df6aaff0e5d48c444f74bf9cd8a5a7�0f67053b934459985a315cb017bf0302891798d45d0e19508z
NIST192p-6�88346a60fc6f293ca5a0d2af68ba71d1dd389e5e40837942df3e43cbd�paf33cd0629bc7e996320a3f40368f74de8704fa37b8fab69abaae280882092ccbba7930f419a8a4f9bb16978bbc3838729992559a6f2e2d7�87d96f9a3bd3c05cf5cc37feb8b9d5209d5c2597464dec3e9983743e8r�@7d7dc5f71eb29ddaf80d6214632eeae03d9058af1fb6d22ed80badb62bc1a534ڀ700c48f77f56584c5cc632ca65640db91b6bacce3a4df6b42ce7cc838833d287db71e509e3fd9b060ddb20ba5c51dcc5948d46fbf640dfe0441782cab85fa4ac�@46fc62106420ff012e54a434fbdd2d25ccc5852060561e68040dd7778997bd7bz
NIST256p-1�@38f65d6dce47676044d58ce5139582d568f64bb16098d179dbab07741dd5caf5ڀ809f04289c64348c01515eb03d5ce7ac1a8cb9498f5caa50197e58d43a86a7aeb29d84e811197f25eba8f5194092cb6ff440e26d4421011372461f579271cda3�@057d636096cb80b67a8c038c890e887d1adfa4195e9b3ce241c8a778c59cda67z
NIST256p-2�@1accfaf1b97712b85a6f54b148985a1bdc4c9bec0bd258cad4b3d603f49f32c8ڀa2339c12d4a03c33546de533268b4ad667debf458b464d77443636440ee7fec3ef48a3ab26e20220bcda2c1851076839dae88eae962869a497bf73cb66faf536�@2d457b78b4614132477618a5b077965ec90730a8c81a1c75d6d4ec68005d67ecz
NIST256p-3�@207c43a79bfee03db6f4b944f53d2fb76cc49ef1c9c4d34d51b6c65c4db6932dڀdf3989b9fa55495719b3cf46dccd28b5153f7808191dd518eff0c3cff2b705ed422294ff46003429d739a33206c8752552c8ba54a270defc06e221e0feaf6ac4�@96441259534b80f6aee3d287a6bb17b5094dd4277d9e294f8fe73e48bf2a0024z
NIST256p-4�@59137e38152350b195c9718d39673d519838055ad908dd4757152fd8255c09bfڀ41192d2813e79561e6a1d6f53c8bc1a433a199c835e141b05a74a97b0faeb9221af98cc45e98a7e041b01cf35f462b7562281351c8ebf3ffa02e33a0722a1328�@19d44c8d63e8e8dd12c22a87b8cd4ece27acdde04dbf47f7f27537a6999a8e62z
NIST256p-5�@f5f8e0174610a661277979b58ce5c90fee6c9b3bb346a90a7196255e40b132efڀ33e82092a0f1fb38f5649d5867fba28b503172b7035574bf8e5b7100a3052792f2cf6b601e0a05945e335550bf648d782f46186c772c0f20d3cd0d6b8ca14b2f�@664e45d5bba4ac931cd65d52017e4be9b19a515f669bea4703542a2c525cd3d3z
NIST256p-6�`3cc3122a68f0d95027ad38c067916ba0eb8c38894d22e1b15618b6818a661774ad463b205da88cf699ab4d43c9cf98a1�a7c76b970c3b5fe8b05d2838ae04ab47697b9eaf52e764592efda27fe7513272734466b400091adbf2d68c58e0c50066ac68f19f2e1cb879aed43a9969b91a0839c4c38a49749b661efedf243451915ed0905a32b060992b468c64766fc8437a�`5f9d29dc5e31a163060356213669c8ce132e22f57c9a04f40ba7fcead493b457e5621e766c40a2e3d4d6a04b25e533f1rڄ017eecc07ab4b329068fba65e56a1f8890aa935e57134ae0ffcce802735151f4eac6564f6ee9974c5e6887a1fefee5743ae2241bfeb95d5ce31ddcb6f9edb4d6fc47�00685a48e86c79f0f0875f7bc18d25eb5fc8c0b07e5da4f4370f3a9490340854334b1e1b87fa395464c60626124a4e70d0f785601d37c09870ebf176666877a2046d01ba52c56fc8776d9e8f5db4f0cc27636d0b741bbe05400697942e80b739884a83bde99e0f6716939e632bc8986fa18dccd443a348b6c3e522497955a4f3c302f676ڄ005fc70477c3e63bc3954bd0df3ea0d1f41ee21746ed95fc5e1fdf90930d5e136672d72cc770742d1711c3c3a4c334a0ad9759436a4d3c5bf6e74b9578fac148c831rcCsBt|d�}|�t|��|�t|��|��}|t|�ksJ�dSr5)r
rFr�load_received_public_key_bytesr()r�
privatekey�pubkey�secret�ecdh�sharedsecretrrr�test_ecdh_NIST�s
r�z�-----BEGIN EC PRIVATE KEY-----
MF8CAQEEGF7IQgvW75JSqULpiQQ8op9WH6Uldw6xxaAKBggqhkjOPQMBAaE0AzIA
BLiBd9CE7xf15FY5QIAoNg+fWbSk1yZOYtoGUdzkejWkxbRc9RWTQjqLVXucIJnz
bA==
-----END EC PRIVATE KEY-----
��305f02010104185ec8420bd6ef9252a942e989043ca29f561fa525770eb1c5a00a06082a8648ce3d030101a13403320004b88177d084ef17f5e45639408028360f9f59b4a4d7264e62da0651dce47a35a4c5b45cf51593423a8b557b9c2099f36cz�-----BEGIN PUBLIC KEY-----
MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEuIF30ITvF/XkVjlAgCg2D59ZtKTX
Jk5i2gZR3OR6NaTFtFz1FZNCOotVe5wgmfNs
-----END PUBLIC KEY-----
ږ3049301306072a8648ce3d020106082a8648ce3d03010103320004b88177d084ef17f5e45639408028360f9f59b4a4d7264e62da0651dce47a35a4c5b45cf51593423a8b557b9c2099f36c�08f457e34982478d1c34b9cd2d0c15911b72dd60d869e2ceacCs6t�}|�t�|�t�|��}|tt�ksJ�dSrH)r
�load_private_key_pem�pem_local_private_key�load_received_public_key_pem�pem_remote_public_keyr(r�gshared_secret�r�r�rrr�
test_ecdh_pemIs


r�cCs>t�}|�tt��|�tt��|��}|tt�ksJ�dSrH)r
�load_private_key_derr�der_local_private_key�load_received_public_key_der�der_remote_public_keyr(r�r�rrr�
test_ecdh_derSs
r�c@seZdZdS)�RunOpenSslErrorN)rKrLrMrrrrr�^sr�cCsVd}tj|g|��tjtjd�}|��\}}|jdkr'td|||j|f��|��S)N�openssl)�stdout�stderrrz,cmd '%s %s' failed: rc=%s, stdout/err was %s)	�
subprocess�Popen�split�PIPE�STDOUT�communicate�
returncoder��decode)�cmd�OPENSSL�pr��ignoredrrr�run_opensslbs�
��r�ccs"�|]}|�d�d��VqdS)�:rN)r��strip)r�crrr�	<genexpr>rs
��
�r�zecparam -list_curves�
cCrrrrrrrr|rcCs�t|jt�rt�d�|jsJ�|jtvrt�d|j�ztd�}|�d�dkr.t�d�Wnt	y=t�d�Ynwt
j�d�rIt
�d�t
�d�td	|j�td
|j�td�t|d�}t|d�}td
��}|��}Wd�n1s}wY|�|�td��}|��}Wd�n1s�wY|�|�td��}|��}Wd�n1s�wYt�|�}|��|����ks�J�|��}tdd��}|�|���Wd�n1s�wY|�|�|�|�|��}|��}	||	k�sJ�td�td�tdd��}|��}
Wd�n	1�s#wYtdd��}|��}Wd�n	1�s=wYt|
�|jjdk�sOJ�t|�|jjdk�s\J�|
|k�scJ�||
k�sjJ�dS)Nz)Edwards curves are not supported for ECDHz system openssl does not support z
pkeyutl -helpz-deriverz1system openssl does not support `pkeyutl -derive`z$system openssl could not be executed�tz,ecparam -name %s -genkey -out t/privkey1.pemz,ecparam -name %s -genkey -out t/privkey2.pemz0ec -in t/privkey1.pem -pubout -out t/pubkey1.pemr!zt/privkey1.pemzt/privkey2.pemz
t/pubkey1.pemz
t/pubkey2.pem�wbzKpkeyutl -derive -inkey t/privkey1.pem -peerkey t/pubkey2.pem -out t/secret1zKpkeyutl -derive -inkey t/privkey2.pem -peerkey t/pubkey1.pem -out t/secret2z	t/secret1�rb�)r"rrr#r$�openssl_name�OPENSSL_SUPPORTED_CURVESr��findr��os�path�isdir�shutil�rmtree�mkdirr
�open�readr�r�from_pem�	to_stringr'�write�to_pemr&r(�len�verifying_key_length)r�hlpr)r*rA�key�vk1�vk2r+r,�ssl_secret1�ssl_secret2rrr�test_ecdh_with_opensslxs~



��

��



�


�


�
�

��
�
�r�)9r��sysr�r�r#�binasciir�	unittest2�unittest�ImportErrorrrrrrrr	r
rr�r
rrrr�keysrr�
ellipticcurver�argv�mark�parametrizer-r4r8�TestCaser9rNrS�paramr�r�r�r�r�r�r�r��	Exceptionr�r��setr�r��slowr�rrrr�<module>sF�(

�

&�����������������
����
��