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_keys.cpython-310.pyc
o

�h���@s�zddlZWn
eyddlZYnwzeWney#eZYnwddlZddlZddlZddl	Z	ddl
mZmZm
Z
mZddlmZmZmZmZmZmZmZddlmZmZmZmZmZmZddlmZm Z m!Z!m"Z"m#Z#ddl$m%Z%m&Z&m'Z'm(Z(ddl)m*Z*Gd	d
�d
ej+�Z,Gdd�dej+�Z-Gd
d�dej+�Z.Gdd�dej+�Z/dZ0ee0�Z1e2e1e3�s�J�e�4e1�Z5e5j6Z7dZ8e9e8�ddks�J�e	�:�Z:e:�;e8�e:�<�Z=e2e=e3�s�J�e5j>e8ed�Z?e2e?e3�s�J�e5j>e8ed�Z@e2e@e3�s�J�e5j>e8ed�ZAe2eAde3��sJ�gZBddd�fdefdeCfddd�fddd�fddd�fd d!d�fd"d#d�ffD]W\ZDZEd$eDv�r>d%d�ZFneEZFd&e?ed'd�fd(e@ed)d�fd*eAed+d�ffD].\ZGZHZIZJd,e7jKe8fd-e7jLe=ffD]\ZMZNZOeB�PejQeHeIeJeEeNeOd.�ReDeGeM�d/���qi�qW�q0ejS�Td0eB�d1d2��ZUd3ZVe9eV�d4k�s�J�gZWdd5d�fdefdeCfdd6d�fdd7d�fdd8d�fd d9d�fd"d:d�ffD]\ZDZXeW�PejQeXeDd/���q�ejS�Td;eW�d<d=��ZYdZ0ee0�Z1e2e1e3��s�J�ejS�Td;eWdd>��d?d@��ZZdAZ[ejS�Td;eW�dBdC��Z\ejS�Td;eW�dDdE��Z]ejS�Td;eW�dFdG��Z^ejS�Td;eW�dHdI��Z_dJdK�Z`dLdM�ZadNdO�ZbdPdQ�ZcdRdS�ZddS)T�N�)�VerifyingKey�
SigningKey�MalformedPointError�BadSignatureError)�unpem�
UnexpectedDER�encode_sequence�
encode_oid�encode_bitstring�encode_integer�encode_octet_string)�sigencode_string�
sigencode_der�sigencode_strings�sigdecode_string�
sigdecode_der�sigdecode_strings)�NIST256p�Curve�BRAINPOOLP160r1�Ed25519�Ed448)�Point�PointJacobi�CurveFp�INFINITY)�generator_brainpoolp160r1c@s�eZdZdZedd��Zdd�Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�ZdS)�TestVerifyingKeyFromStringzc
    Verify that ecdsa.keys.VerifyingKey.from_string() can be used with
    bytes-like objects
    cCsd|_t�|j�|_dS)Ns0L����Z��
zϗ����o�8}X!��h�^
pI��Y��xa�o+�G�v�)�	key_bytesr�from_string�vk)�cls�r#�B/usr/local/CyberCP/lib/python3.10/site-packages/ecdsa/test_keys.py�
setUpClass2s�z%TestVerifyingKeyFromString.setUpClasscCsJ|�|j�|�|jt�|�|jjj��d�|�|jjj��d�dS)Nl
!X�p�?�|}�r��IW�oWeDl
�v�q.y[Or~Vh]Ip<�#�'�
)	�assertIsNotNoner!�assertIsInstancer�assertEqual�pubkey�point�x�y��selfr#r#r$�
test_bytes;s��z%TestVerifyingKeyFromString.test_bytescC�*t�t|j��}|�|j��|���dS�N)rr �bufferrr(r!�	to_string�r.r!r#r#r$�test_bytes_memoryviewG�z0TestVerifyingKeyFromString.test_bytes_memoryviewcCr0r1�rr �	bytearrayrr(r!r3r4r#r#r$�test_bytearrayLr6z)TestVerifyingKeyFromString.test_bytearraycC�.t�tt|j���}|�|j��|���dSr1)rr r2r8rr(r!r3r4r#r#r$�test_bytesarray_memoryviewQ�z5TestVerifyingKeyFromString.test_bytesarray_memoryviewcC�2t�d|j�}t�|�}|�|j��|���dS�N�B��arrayrrr r(r!r3�r.�arrr!r#r#r$�test_array_array_of_bytesV�
z4TestVerifyingKeyFromString.test_array_array_of_bytescC�6t�d|j�}t�t|��}|�|j��|���dSr>�rArrr r2r(r!r3rBr#r#r$�$test_array_array_of_bytes_memoryview\�z?TestVerifyingKeyFromString.test_array_array_of_bytes_memoryviewcCr=�N�Ir@rBr#r#r$�test_array_array_of_intsbrEz3TestVerifyingKeyFromString.test_array_array_of_intscCrFrJrGrBr#r#r$�#test_array_array_of_ints_memoryviewhrIz>TestVerifyingKeyFromString.test_array_array_of_ints_memoryviewcCs*t�d|j�}|�|j��|���dS�N��rr rr(r!r3r4r#r#r$�test_bytes_uncompressednr6z2TestVerifyingKeyFromString.test_bytes_uncompressedcCs.t�td|j��}|�|j��|���dSrNr7r4r#r#r$�test_bytearray_uncompressedsr<z6TestVerifyingKeyFromString.test_bytearray_uncompressedcCs2t�d|jdd��}|�|j��|���dS�N��rPr4r#r#r$�test_bytes_compressedxsz0TestVerifyingKeyFromString.test_bytes_compressedcCs6t�td|jdd���}|�|j��|���dSrSr7r4r#r#r$�test_bytearray_compressed}sz4TestVerifyingKeyFromString.test_bytearray_compressedcCs<|�t��t�dt�Wd�dS1swYdS)NsAAA)�assertRaisesrrr rr-r#r#r$�.test_ed25519_VerifyingKey_from_string_imported�s"�zITestVerifyingKeyFromString.test_ed25519_VerifyingKey_from_string_importedN)�__name__�
__module__�__qualname__�__doc__�classmethodr%r/r5r9r;rDrHrLrMrQrRrVrWrYr#r#r#r$r,s"
rc@s,eZdZdZedd��Zdd�Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Z d:d;�Z!d<d=�Z"d>d?�Z#d@dA�Z$dBdC�Z%dDdE�Z&dFdG�Z'dHS)I�TestVerifyingKeyFromDerza
    Verify that ecdsa.keys.VerifyingKey.from_der() can be used with
    bytes-like objects.
    cCsbd}d}||_t|�|_t|jt�sJ�t�|�|_t�|�|_	d}t�|�|_
t�tj�|_
dS)N��-----BEGIN EC PRIVATE KEY-----
MF8CAQEEGF7IQgvW75JSqULpiQQ8op9WH6Uldw6xxaAKBggqhkjOPQMBAaE0AzIA
BLiBd9CE7xf15FY5QIAoNg+fWbSk1yZOYtoGUdzkejWkxbRc9RWTQjqLVXucIJnz
bA==
-----END EC PRIVATE KEY-----
z�-----BEGIN PUBLIC KEY-----
MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEuIF30ITvF/XkVjlAgCg2D59ZtKTX
Jk5i2gZR3OR6NaTFtFz1FZNCOotVe5wgmfNs
-----END PUBLIC KEY-----
z�-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE4H3iRbG4TSrsSRb/gusPQB/4YcN8
Poqzgjau4kfxBPyZimeRfuY/9g/wMmPuhGl4BUve51DsnKJFRr8psk0ieA==
-----END PUBLIC KEY-----
)�key_pemrr�
isinstance�bytesr�from_pemr!r�sk�vk2�generate�curve�sk2)r"�prv_key_str�key_strr#r#r$r%�s��
�z"TestVerifyingKeyFromDer.setUpClasscC�,d}t�|�}tjdtd�}|�||�dS)N�-----BEGIN PUBLIC KEY-----
MIIBSzCCAQMGByqGSM49AgEwgfcCAQEwLAYHKoZIzj0BAQIhAP////8AAAABAAAA
AAAAAAAAAAAA////////////////MFsEIP////8AAAABAAAAAAAAAAAAAAAA////
///////////8BCBaxjXYqjqT57PrvVV2mIa8ZR0GsMxTsPY7zjw+J9JgSwMVAMSd
NgiG5wSTamZ44ROdJreBn36QBEEEaxfR8uEsQkf4vOblY6RA8ncDfYEt6zOg9KE5
RdiYwpZP40Li/hp/m47n60p8D54WK84zV2sxXs7LtkBoN79R9QIhAP////8AAAAA
//////////+85vqtpxeehPO5ysL8YyVRAgEBA0IABIr1UkgYs5jmbFc7it1/YI2X
T//IlaEjMNZft1owjqpBYH2ErJHk4U5Pp4WvWq1xmHwIZlsH7Ig4KmefCfR6SmU=
-----END PUBLIC KEY-----sA��RH���lW;��`��O�ȕ�#0�_�Z0��A`}�����NO���Z�q�|f[�8*g�	�zJe�rh)rrdr rr()r.�pub_key_str�pk�pk_expr#r#r$�&test_load_key_with_explicit_parameters�s�
�z>TestVerifyingKeyFromDer.test_load_key_with_explicit_parameterscC�Dd}|�t��tj|dgd�Wd�dS1swYdS)Nrm�named_curve��valid_curve_encodings)rXrrrd)r.ror#r#r$�2test_load_key_with_explicit_with_explicit_disabled�s��"�zJTestVerifyingKeyFromDer.test_load_key_with_explicit_with_explicit_disabledcCsR|�t��}tj|jdgd�Wd�n1swY|�dt|j��dS)N�raw)�valid_encodingszenabled (raw) encodings)rXrr�from_derr�assertIn�str�	exception�r.�er#r#r$�"test_load_key_with_disabled_format�s�z:TestVerifyingKeyFromDer.test_load_key_with_disabled_formatcC�$t�|jtj�}|�|jtj�dSr1)rrzr�hashlib�sha256�assertIs�default_hashfuncr4r#r#r$�test_custom_hashfunc��z,TestVerifyingKeyFromDer.test_custom_hashfunccCr�r1)rrdrar�r�r�r�r4r#r#r$�"test_from_pem_with_custom_hashfunc�r�z:TestVerifyingKeyFromDer.test_from_pem_with_custom_hashfunccCs&t�|j�}|�|j��|���dSr1)rrzrr(r!r3r4r#r#r$r/�sz"TestVerifyingKeyFromDer.test_bytescCr0r1)rrzr2rr(r!r3r4r#r#r$r5�r6z-TestVerifyingKeyFromDer.test_bytes_memoryviewcCr0r1)rrzr8rr(r!r3r4r#r#r$r9�r6z&TestVerifyingKeyFromDer.test_bytearraycCr:r1)rrzr2r8rr(r!r3r4r#r#r$r;�r<z2TestVerifyingKeyFromDer.test_bytesarray_memoryviewcCr=r>)rArrrzr(r!r3rBr#r#r$rD�rEz1TestVerifyingKeyFromDer.test_array_array_of_bytescCrFr>)rArrrzr2r(r!r3rBr#r#r$rHrIz<TestVerifyingKeyFromDer.test_array_array_of_bytes_memoryviewcCs|�|j|j��k�dSr1)�
assertTruer!re�get_verifying_keyr-r#r#r$�test_equality_on_verifying_keyssz7TestVerifyingKeyFromDer.test_equality_on_verifying_keyscC�|�|j|jk�dSr1)�assertFalser!rfr-r#r#r$�!test_inequality_on_verifying_keys	�z9TestVerifyingKeyFromDer.test_inequality_on_verifying_keyscCs|�|jdk�dSr1)r�r!r-r#r#r$�1test_inequality_on_verifying_keys_not_implemented�zITestVerifyingKeyFromDer.test_inequality_on_verifying_keys_not_implementedcCs|�|j|jj�dSr1)�assertNotEqualr!ri�
verifying_keyr-r#r#r$�*test_VerifyingKey_inequality_on_same_curver�zBTestVerifyingKeyFromDer.test_VerifyingKey_inequality_on_same_curvecC�|�|j|j�dSr1)r�rerir-r#r#r$�(test_SigningKey_inequality_on_same_curver�z@TestVerifyingKeyFromDer.test_SigningKey_inequality_on_same_curvecCr�r1)r�r!rer-r#r#r$�test_inequality_on_wrong_typesr�z6TestVerifyingKeyFromDer.test_inequality_on_wrong_typescCsF|jjj}t|��|��|���}t�||jj�}|�	||jk�dSr1)
r!r)r*rrhr+r,r�from_public_pointr�)r.�pjr*r!r#r#r$�test_from_public_point_olds
z2TestVerifyingKeyFromDer.test_from_public_point_oldcCs,t�tj��t�}t|j�}|�d|�dS)Nz�VerifyingKey.from_string(bytearray(b'K\x0c\xfbZH\x8e\x8c\x8c\x07\xee\xda\xfb\xe1\x97\xcd\x90\x18\x02\x15h]\xfe\xbe\xcbB\xba\xe6r\x10\xae\xf1P'), Ed25519, None))rr r�	generator�to_bytes�reprr�r()r.re�stringr#r#r$� test_ed25519_VerifyingKey_repr__ s
�z8TestVerifyingKeyFromDer.test_ed25519_VerifyingKey_repr__cCsRtj}|�t��}t�|t�Wd�n1swY|�dt|j��dS)Nzincompatible with Edwards)	rr�rX�
ValueErrorrr�r{r|r})r.r*rr#r#r$�test_edwards_from_public_point,s
�z6TestVerifyingKeyFromDer.test_edwards_from_public_pointcCs@t�tj��t�}|j}t�|��t�}|��|�	||�dSr1)
rr rr�r�r�rr3�
precomputer(�r.rer!rfr#r#r$�&test_edwards_precompute_no_side_effect3s
z>TestVerifyingKeyFromDer.test_edwards_precompute_no_side_effectcCsvttttj��tttj���d�tdd��}|�t	��
}t
�|�Wd�n1s+wY|�dt
|j��dS)Nr�ztrailing junk after public key)r	r
r�oidrrcr�r�rXrrrzr{r|r}�r.�der_strrr#r#r$�$test_parse_malfomed_eddsa_der_pubkey;s��z<TestVerifyingKeyFromDer.test_parse_malfomed_eddsa_der_pubkeycC�N|�t��}t�ddt�Wd�n1swY|�dt|j��dS�N�zunsupported for Edwards)rXr�r�from_public_key_recoveryrr{r|r}r~r#r#r$�%test_edwards_from_public_key_recoveryG��z=TestVerifyingKeyFromDer.test_edwards_from_public_key_recoverycCr�r�)rXr�r�$from_public_key_recovery_with_digestrr{r|r}r~r#r#r$�1test_edwards_from_public_key_recovery_with_digestMs��zITestVerifyingKeyFromDer.test_edwards_from_public_key_recovery_with_digestcC�Jd}t�|�}|�|jt�|�|jt�d}t�|t�}|�||�dS)N�q-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEAIwBQ0NZkIiiO41WJfm5BV42u3kQm7lYnvIXmCy8qy2U=
-----END PUBLIC KEY-----
� #P��d"(��U�~nAW���D&�V'���/*�e)	rrdr'rhrr�rr r()r.�vk_pemr!�vk_str�vk_2r#r#r$�test_load_ed25519_from_pemUs�
�z2TestVerifyingKeyFromDer.test_load_ed25519_from_pemcC�(d}t�|t�}d}|�||���dS)Nr�sq-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEAIwBQ0NZkIiiO41WJfm5BV42u3kQm7lYnvIXmCy8qy2U=
-----END PUBLIC KEY-----
)rr rr(�to_pem�r.r�r!r�r#r#r$�test_export_ed255_to_pemjs��z0TestVerifyingKeyFromDer.test_export_ed255_to_pemcCr�)Nr�sQssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICMAUNDWZCIojuNViX5uQVeNrt5EJu5WJ7yF5gsvKstl
)rr rr(�to_ssh)r.r�r!�vk_sshr#r#r$�test_export_ed255_to_sshzs
�z0TestVerifyingKeyFromDer.test_export_ed255_to_sshcC�.t�t�}|j}t�|���}|�||�dSr1)rrgrr�rrdr�r(r�r#r#r$�test_ed25519_export_import��
z2TestVerifyingKeyFromDer.test_ed25519_export_importcC�,d}t�|�}d}d}|�|�||��dS)Nr��data
s@dG�j3�yE��l�� ��P�Ǐ�`�u�/'Ӗ��X�F\��P�)��խF<�h�Mꍨy�rrdr��verify�r.r�r!�data�sigr#r#r$�test_ed25519_sig_verify�s�
�z/TestVerifyingKeyFromDer.test_ed25519_sig_verifycCsRd}t�|�}d}d}|�t��|�||�Wd�dS1s"wYdS)Nr�r�s@�G�j3�yE��l�� ��P�Ǐ�`�u�/'Ӗ��X�F\��P�)��խF<�h�Mꍨy)rrdrXrr�r�r#r#r$�!test_ed25519_sig_verify_malformed�s�
�"�z9TestVerifyingKeyFromDer.test_ed25519_sig_verify_malformedcCr�)N��-----BEGIN PUBLIC KEY-----
MEMwBQYDK2VxAzoAeQtetSu7CMEzE+XWB10Bg47LCA0giNikOxHzdp+tZ/eK/En0
dTdYD2ll94g58MhSnBiBQB9A1MMA
-----END PUBLIC KEY-----
�9y^�+��3��]���
 �ؤ;�v��g���I�u7Xie��9��R��@@��)	rrdr'rhrr�rr r()r.�pem_strr!r�rfr#r#r$�test_ed448_from_pem�s�
�z+TestVerifyingKeyFromDer.test_ed448_from_pemcCr�)Nr�s�-----BEGIN PUBLIC KEY-----
MEMwBQYDK2VxAzoAeQtetSu7CMEzE+XWB10Bg47LCA0giNikOxHzdp+tZ/eK/En0dTdYD2ll94g5
8MhSnBiBQB9A1MMA
-----END PUBLIC KEY-----
)rr rr(r�r�r#r#r$�test_ed448_to_pem�s��z)TestVerifyingKeyFromDer.test_ed448_to_pemcCr�r1)rrgrr�rrdr�r(r�r#r#r$�test_ed448_export_import�r�z0TestVerifyingKeyFromDer.test_ed448_export_importcCr�)Nr�r�srh�,p5"�5�Q3=���T��o0W�����E>Q��`j�C_��2��8k�	x�{]~�1�?������0�/�U�!��L����-�LbS���0�fK��@�
r�)r.r�r!r�r�r#r#r$�test_ed448_sig_verify�s�
�z-TestVerifyingKeyFromDer.test_ed448_sig_verifyN)(rZr[r\r]r^r%rrrwr�r�r�r/r5r9r;rDrHr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r#r#r#r$r_�sL
r_c@s�eZdZdZedd��Zdd�Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8S)9�TestSigningKeyz_
    Verify that ecdsa.keys.SigningKey.from_der() can be used with
    bytes-like objects.
    cCs4d}t�|�|_d}t�|�|_d}t�|�|_dS)Nr`z�-----BEGIN PRIVATE KEY-----
MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEEVTBTAgEBBBheyEIL1u+SUqlC6YkE
PKKfVh+lJXcOscWhNAMyAAS4gXfQhO8X9eRWOUCAKDYPn1m0pNcmTmLaBlHc5Ho1
pMW0XPUVk0I6i1V7nCCZ82w=
-----END PRIVATE KEY-----
z�-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIKlL2EAm5NPPZuXwxRf4nXMk0A80y6UUbiQ17be/qFhRoAoGCCqGSM49
AwEHoUQDQgAE4H3iRbG4TSrsSRb/gusPQB/4YcN8Poqzgjau4kfxBPyZimeRfuY/
9g/wMmPuhGl4BUve51DsnKJFRr8psk0ieA==
-----END EC PRIVATE KEY-----
)rrd�sk1�	sk1_pkcs8ri)r"rjr#r#r$r%s���zTestSigningKey.setUpClasscCs|�|jjdd�d�dS)N�pkcs8��formatsq0o0*�H�=*�H�=U0S^�B��R�B�<��V�%w�š42��wЄ���V9@�(6�Y���&Nb�Q��z5�Ŵ\��B:�U{� ��l)r(r��to_derr-r#r#r$�test_to_der_pkcs8)s�z TestSigningKey.test_to_der_pkcs8cCrl)N�:-----BEGIN PRIVATE KEY-----
MIIBeQIBADCCAQMGByqGSM49AgEwgfcCAQEwLAYHKoZIzj0BAQIhAP////8AAAAB
AAAAAAAAAAAAAAAA////////////////MFsEIP////8AAAABAAAAAAAAAAAAAAAA
///////////////8BCBaxjXYqjqT57PrvVV2mIa8ZR0GsMxTsPY7zjw+J9JgSwMV
AMSdNgiG5wSTamZ44ROdJreBn36QBEEEaxfR8uEsQkf4vOblY6RA8ncDfYEt6zOg
9KE5RdiYwpZP40Li/hp/m47n60p8D54WK84zV2sxXs7LtkBoN79R9QIhAP////8A
AAAA//////////+85vqtpxeehPO5ysL8YyVRAgEBBG0wawIBAQQgIXtREfUmR16r
ZbmvDGD2lAEFPZa2DLPyz0czSja58yChRANCAASK9VJIGLOY5mxXO4rdf2CNl0//
yJWhIzDWX7daMI6qQWB9hKyR5OFOT6eFr1qtcZh8CGZbB+yIOCpnnwn0ekpl
-----END PRIVATE KEY-----
s !{Q�&G^�e��`��=�����G3J6�� rn)rrdr rr()r.rjrerir#r#r$�'test_decoding_explicit_curve_parameters4s�

�z6TestSigningKey.test_decoding_explicit_curve_parameterscCrs)Nr�rtru)rXrrrd)r.rjr#r#r$�>test_decoding_explicit_curve_parameters_with_explicit_disabledMs�
�"�zMTestSigningKey.test_decoding_explicit_curve_parameters_with_explicit_disabledcCs6t�|jjj|jj�}|�|j|�|�|j|�dSr1)r�from_secret_exponentr��privkey�secret_multiplierrhr(r��r.rer#r#r$�test_equality_on_signing_keys`s
�z,TestSigningKey.test_equality_on_signing_keyscCs4|j�d�}|�|�|jj}|�|�|d��dS)Nr�)r��signr�r�r��r.r�r!r#r#r$�test_verify_with_empty_messagegs
z-TestSigningKey.test_verify_with_empty_messagecCs2|j�d�}|jj}|��|�|�|d��dS)N�message)r�r�r�r�r�r�r�r#r#r$�test_verify_with_precomputepsz*TestSigningKey.test_verify_with_precomputecCs(|jj}|��|jj}|�||�dSr1)r�r�r�r�r()r.�vk1rfr#r#r$�*test_compare_verifying_key_with_precomputeysz9TestSigningKey.test_compare_verifying_key_with_precomputecCs6|j�d�}|jj}|jdd�|�|�|d��dS)Ns
other messageT)�lazy)rir�r�r�r�r�r�r#r#r$� test_verify_with_lazy_precompute�sz/TestSigningKey.test_verify_with_lazy_precomputecCr�r1)r�r�rir-r#r#r$�test_inequality_on_signing_keys�r�z.TestSigningKey.test_inequality_on_signing_keyscCs|�|jd�dSr1)r�r�r-r#r#r$�/test_inequality_on_signing_keys_not_implemented�sz>TestSigningKey.test_inequality_on_signing_keys_not_implementedcC�*d}t�|�}t�dt�}|�||�dS)N�w-----BEGIN PRIVATE KEY-----
MC4CAQAwBQYDK2VwBCIEIDS6x9FO1PG8T4xIPg8Zd0z8uL6sVGZFEZrX17gHC/XU
-----END PRIVATE KEY-----
� 4���N��O�H>wL����TfE��׸��)rrdr rr(�r.r�re�sk_strr#r#r$�test_ed25519_from_pem�s�
�z$TestSigningKey.test_ed25519_from_pemcCsrttd�tttj�td��ttd���}|�t��
}t�	|�Wd�n1s)wY|�
dt|j��dS)Nr� AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzNon NULL parameters�
r	rr
rr�r
rXrrrzr{r|r}r�r#r#r$�'test_ed25519_from_der_bad_alg_id_params�s
��z6TestSigningKey.test_ed25519_from_der_bad_alg_id_paramscCspttd�tttj��ttd�d��}|�t��
}t�	|�Wd�n1s(wY|�
dt|j��dS)Nrr��Bz+trailing junk after the encoded private keyr�r�r#r#r$�)test_ed25519_from_der_junk_after_priv_key�s���
�z8TestSigningKey.test_ed25519_from_der_junk_after_priv_keycCs.t�dt�}d}|j|td�}|�|d�dS)Nr�r���	sigencodes@�,v�>%��~>�&
a�@|�`X@<�7�
���%i{�}ݱ���|���
���}��)"+E�)rr rr�rr()r.r��msgr�r#r#r$�test_ed25519_sign�s��z TestSigningKey.test_ed25519_signcC�Vt�dt�}|�t��
}|�d�Wd�n1swY|�dt|j��dS�Nr�saaaaaaaaaaaaaaaaaaaa�Method unsupported for Edwards)	rr rrXr��sign_digest_deterministicr{r|r}�r.r�rr#r#r$�&test_ed25519_sign_digest_deterministic����z5TestSigningKey.test_ed25519_sign_digest_deterministiccCr�r�)	rr rrXr��sign_digestr{r|r}rr#r#r$�test_ed25519_sign_digest�rz'TestSigningKey.test_ed25519_sign_digestcCr�)Nr��r�)	rr rrXr��sign_numberr{r|r}rr#r#r$�test_ed25519_sign_number�rz'TestSigningKey.test_ed25519_sign_numbercCsZd}t�|�}|�t��}|jdd�Wd�n1swY|�dt|j��dS)Nr��ssleayr�zOnly PKCS#8 format)rrdrXr�r�r{r|r})r.r�rerr#r#r$�test_ed25519_to_der_ssleay�s�
�z)TestSigningKey.test_ed25519_to_der_ssleaycC�(t�dt�}d}|�|jdd�|�dS)Nr�sw-----BEGIN PRIVATE KEY-----
MC4CAQAwBQYDK2VwBCIEIDS6x9FO1PG8T4xIPg8Zd0z8uL6sVGZFEZrX17gHC/XU
-----END PRIVATE KEY-----
r�r�)rr rr(r��r.rer�r#r#r$�test_ed25519_to_pem�s��z"TestSigningKey.test_ed25519_to_pemcCs$t�dt�}d}|�|��|�dS)Nr�s�-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZWQyNTUx
OQAAACAjAFDQ1mQiKI7jVYl+bkFXja7eRCbuVie8heYLLyrLZQAAAIgAAAAAAAAAAAAAAAtzc2gt
ZWQyNTUxOQAAACAjAFDQ1mQiKI7jVYl+bkFXja7eRCbuVie8heYLLyrLZQAAAEA0usfRTtTxvE+M
SD4PGXdM/Li+rFRmRRGa19e4Bwv11CMAUNDWZCIojuNViX5uQVeNrt5EJu5WJ7yF5gsvKstlAAAA
AAECAwQF
-----END OPENSSH PRIVATE KEY-----
)rr rr(r�)r.re�ssh_strr#r#r$�test_ed25519_to_ssh
s��
z"TestSigningKey.test_ed25519_to_sshcCs,t�t�}t�|jdd��}|�||�dS�Nr�r�)rrgrrdr�r(�r.re�decodedr#r#r$�test_ed25519_to_and_from_pem �
z+TestSigningKey.test_ed25519_to_and_from_pemcCstjttjd�}|�|�dS)N)�entropy)rrgr�os�urandomr&r�r#r#r$�test_ed25519_custom_entropy'sz*TestSigningKey.test_ed25519_custom_entropycCsN|�t��}tjdtd�Wd�n1swY|�dt|j��dS)Ni��Irnz don't support setting the secret)rXr�rr�rr{r|r}r~r#r#r$�!test_ed25519_from_secret_exponent,r�z0TestSigningKey.test_ed25519_from_secret_exponentcCr�)Nz�-----BEGIN PRIVATE KEY-----
MEcCAQAwBQYDK2VxBDsEOTyFuXqFLXgJlV8uDqcOw9nG4IqzLiZ/i5NfBDoHPzmP
OP0JMYaLGlTzwovmvCDJ2zLaezu9NLz9aQ==
-----END PRIVATE KEY-----
�9<��z�-x	�_.�����.&��_:?9�8�	1��T�‹� ��2�{;�4��i)rrdr rr(r�r#r#r$r�2s�
�z"TestSigningKey.test_ed448_from_pemcCr)Nrs�-----BEGIN PRIVATE KEY-----
MEcCAQAwBQYDK2VxBDsEOTyFuXqFLXgJlV8uDqcOw9nG4IqzLiZ/i5NfBDoHPzmPOP0JMYaLGlTz
wovmvCDJ2zLaezu9NLz9aQ==
-----END PRIVATE KEY-----
r�r�)rr rr(r�rr#r#r$r�Es��z TestSigningKey.test_ed448_to_pemcCs,t�t�}t�|jdd��}|�||�dSr)rrgrrdr�r(rr#r#r$�test_ed448_encode_decodeVrz'TestSigningKey.test_ed448_encode_decodeN) rZr[r\r]r^r%r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr
r
rrrrr�r�rr#r#r#r$r�s<
			r�c@sHeZdZedd��Zdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dS)�TestTrivialCurvecCsJtddd�}t|dddddd	�}td
||d�|_tjd|jtjd
�|_dS)N��T�:��Wr�T)r��toy_p8)rr r�)�hashfunc)	rrr�	toy_curverr�r��sha1re)r"rh�genr#r#r$r%_s�zTestTrivialCurve.setUpClasscCs |jj}|�||��t�dSr1)r&r�r(�orderr)r.r(r#r#r$�test_generator_sanityqsz&TestTrivialCurve.test_generator_sanitycCs|�|jj��d�dS)Ns�)r(rer�r3r-r#r#r$�test_public_key_sanityvsz'TestTrivialCurve.test_public_key_sanitycCs2|j�d�}|�|d�|�|jj�|d��dS)Nr�s-.�re�sign_deterministicr(r�r�r�)r.r�r#r#r$�test_deterministic_signysz(TestTrivialCurve.test_deterministic_signcCs@t�d�}|j�|�}|�t|�d�|�|jj�||��dS)N� r )	rrrer-r(�lenr�r�r��r.r�r�r#r#r$�&test_deterministic_sign_random_message�s
z7TestTrivialCurve.test_deterministic_sign_random_messagecC�6d}|j�|�}|�|d�|�|jj�||��dS)NsOs6�r,r1r#r#r$�/test_deterministic_sign_that_rises_R_zero_error�sz@TestTrivialCurve.test_deterministic_sign_that_rises_R_zero_errorcCr3)NsmsIlr,r1r#r#r$�/test_deterministic_sign_that_rises_S_zero_error�sz@TestTrivialCurve.test_deterministic_sign_that_rises_S_zero_errorN)rZr[r\r^r%r*r+r.r2r4r5r#r#r#r$r^s
rr`sdsome string for signingcontents don't really matterbut do include also some crazy values: 	
���r�rccC�|Sr1r#�r+r#r#r$�<lambda>��r9zbytes memoryviewr8zbytearray memoryviewcC�tt|��Sr1�r2r8r8r#r#r$r9��zarray.array of bytescC�t�d|�Sr>�rAr8r#r#r$r9�r=zarray.array of bytes memoryviewcC�tt�d|��Sr>�r2rAr8r#r#r$r9��zarray.array of intscCr>rJr?r8r#r#r$r9�r=zarray.array of ints memoryviewcCr@rJrAr8r#r#r$r9�rB�intscCr7r1r#r8r#r#r$r9�r:rxcC�t|�Sr1��convr8r#r#r$r9���dercCrDr1rEr8r#r#r$r9�rG�stringscCstdd�|D��S)Ncss�|]}t|�VqdSr1rE)�.0�ir#r#r$�	<genexpr>�s�z<lambda>.<locals>.<genexpr>)�tupler8r#r#r$r9�sr��
verify_digestz{2}-{0}-{1})�idz1signature,decoder,mod_apply,fun,vrf_mthd,vrf_datacCs"||�}||||�|d�sJ�dS)N)�	sigdecoder#)�	signature�decoder�	mod_apply�fun�vrf_mthd�vrf_datar�r#r#r$�test_VerifyingKey_verify�srWs^�B��R�B�<��V�%w��rUcCr7r1r#r8r#r#r$r9�r:cCr;r1r<r8r#r#r$r9�r=cCr>r>r?r8r#r#r$r9�r=cCr@r>rAr8r#r#r$r9�rBcCr>rJr?r8r#r#r$r9�r=cCr@rJrAr8r#r#r$r9�rB�convertcCs&|t�}t�|�}|��tksJ�dSr1)�
prv_key_bytesrr r3�rX�keyrer#r#r$�test_SigningKey_from_string��
r\���cCs&|t�}t�|�}|��tksJ�dSr1)rrrzr3rYrZr#r#r$�test_SigningKey_from_derr]r_s

cCs&tj|t�|t�d�}t�|t�dS�N)�
extra_entropy)rer-r�rar!r��rXr�r#r#r$�"test_SigningKey_sign_deterministic��rccCs&tj|t�|t�d�}t�|t�dSr`)rer�	data_hashrar!r�r�rbr#r#r$�)test_SigningKey_sign_digest_deterministic(rdrfcCst�|t��}t�|t�dSr1)rer�r�r!r�rbr#r#r$�test_SigningKey_sign1�rgcCst�|t��}t�|t�dSr1)rerrer!r�r�rbr#r#r$�test_SigningKey_sign_digest8rhricCs8tjtjdtd�}|j}|�d�}|�|d�sJ�dS)Nrrnshello)rr�rr)r�r�r�)rer!r�r#r#r$�#test_SigningKey_with_unlikely_value?s
rjcCs`t}t|��|��|��|���}td|��|d�}t�d|�}t�dt	�}|j
|j
ks.J�dS)Nr)
r��$rkrkr �rrr�)rrrhr+r,r)rrr�rr�)r�rhrerir#r#r$�+test_SigningKey_with_custom_curve_old_pointFs ��rocCs,t�dt�}t�dt�}|j|jkrJ�dS)Nr )rr�rrr��r�rir#r#r$�2test_VerifyingKey_inequality_with_different_curves]�rqcCs,t�dt�}t�dt�}|j|jkrJ�dS)Nr rk)rr�rr�rpr#r#r$�9test_VerifyingKey_inequality_with_different_secret_pointsdrrrscCs d}t�|�}|jtksJ�dS)Nz�-----BEGIN PRIVATE KEY-----
    MFMCAQEwBQYDK2VwBCIEICc2F2ag1n1QP0jY+g9qWx5sDkx0s/HdNi3cSRHw+zsI
    oSMDIQA+HQ2xCif8a/LMWR2m5HaCm5I2pKe/cc8OiRANMHxjKQ==
    -----END PRIVATE KEY-----)rrdrhr)�pemrer#r#r$�&test_SigningKey_from_pem_pkcs8v2_EdDSAks
ru)e�	unittest2�unittest�ImportErrorr2�	NameError�
memoryviewrrA�pytestr��keysrrrrrHrrr	r
rrr
�utilrrrrrr�curvesrrrrr�
ellipticcurverrrr�ecdsar�TestCaserr_r�rrjrrbrcrzrer�r!r�r0r'�update�digestrer��sig_raw�sig_der�sig_strings�	verifiersr8�modifierrTrF�
sig_formatrQrRrSr�rN�method_namerUrV�append�paramr��mark�parametrizerWrY�
convertersrXr\r_rarcrfrgrirjrorqrsrur#r#r#r$�<module>s���$ 	[Z9�
�






�


��

������

�





�

	�