§
    qŠtj÷™  ã                   ó  — 	 d dl Zn# e$ r d dlZY nw xY w	 e n# e$ r eZY nw xY wd dlZd dlZd dlZd dl	Z	ddl
mZmZmZmZ ddlmZmZmZmZmZmZmZ ddlmZmZmZmZmZmZ ddlmZm Z m!Z!m"Z"m#Z# ddl$m%Z%m&Z&m'Z'm(Z( ddl)m*Z*  G d	„ d
ej+        ¦  «        Z, G d„ dej+        ¦  «        Z- G d„ dej+        ¦  «        Z. G d„ dej+        ¦  «        Z/dZ0 ee0¦  «        Z1 e2e1e3¦  «        sJ ‚ ej4        e1¦  «        Z5e5j6        Z7dZ8 e9e8¦  «        dz  d k    sJ ‚ e	j:        ¦   «         Z:e: ;                    e8¦  «         e: <                    ¦   «         Z= e2e=e3¦  «        sJ ‚e5 >                    e8e¬¦  «        Z? e2e?e3¦  «        sJ ‚e5 >                    e8e¬¦  «        Z@ e2e@e3¦  «        sJ ‚e5 >                    e8e¬¦  «        ZA e2eAd          e3¦  «        sJ ‚g ZBdd„ fdefdeCfdd„ fdd„ fdd„ fdd „ fd!d"„ ffD ]…\  ZDZEd#eDv rd$„ ZFneEZFd%e?ed&„ fd'e@ed(„ fd)eAed*„ ffD ]a\  ZGZHZIZJd+e7jK        e8fd,e7jL        e=ffD ]E\  ZMZNZOeB P                     ejQ        eHeIeJeEeNeOd- R                    eDeGeM¦  «        ¬.¦  «        ¦  «         ŒFŒbŒ†ejS         T                    d/eB¦  «        d0„ ¦   «         ZUd1ZV e9eV¦  «        d2k    sJ ‚g ZWdd3„ fdefdeCfdd4„ fdd5„ fdd6„ fdd7„ fd!d8„ ffD ]*\  ZDZXeW P                     ejQ        eXeD¬.¦  «        ¦  «         Œ+ejS         T                    d9eW¦  «        d:„ ¦   «         ZYdZ0 ee0¦  «        Z1 e2e1e3¦  «        sJ ‚ejS         T                    d9eWdd;…         ¦  «        d<„ ¦   «         ZZd=Z[ejS         T                    d9eW¦  «        d>„ ¦   «         Z\ejS         T                    d9eW¦  «        d?„ ¦   «         Z]ejS         T                    d9eW¦  «        d@„ ¦   «         Z^ejS         T                    d9eW¦  «        dA„ ¦   «         Z_dB„ Z`dC„ ZadD„ ZbdE„ ZcdF„ ZddS )Gé    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                   óv   — e Zd ZdZed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestVerifyingKeyFromStringzc
    Verify that ecdsa.keys.VerifyingKey.from_string() can be used with
    bytes-like objects
    c                 óP   — d| _         t          j        | j         ¦  «        | _        d S )Ns0   L¢•ÛÇZ×“
zÏ—Ï×ÂÙoþ8}X!®Ôúhú^pIºÑYû’xaëo+œGúvÊ)Ú	key_bytesr   Úfrom_stringÚvk)Úclss    úM/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/ecdsa/test_keys.pyÚ
setUpClassz%TestVerifyingKeyFromString.setUpClass2   s(   € ð/ð 	Œõ
 Ô)¨#¬-Ñ8Ô8ˆŒˆˆó    c                 óV  — |                       | j        ¦  «         |                      | j        t          ¦  «         |                      | j        j        j                             ¦   «         d¦  «         |                      | j        j        j                             ¦   «         d¦  «         d S )Nl   !Xúpø?Ë|}ùr³…IWµoWeD l   Êvôq.y[Or~Vh]Ip<é#Ó'í
)	ÚassertIsNotNoner$   ÚassertIsInstancer   ÚassertEqualÚpubkeyÚpointÚxÚy©Úselfs    r&   Ú
test_bytesz%TestVerifyingKeyFromString.test_bytes;   sž   € Ø×Ò˜TœWÑ%Ô%Ð%Ø×Ò˜dœg¥|Ñ4Ô4Ð4Ø×ÒØŒGŒNÔ ×"Ò"Ñ$Ô$ØEñ	
ô 	
ð 	
ð 	×ÒØŒGŒNÔ ×"Ò"Ñ$Ô$ØFñ	
ô 	
ð 	
ð 	
ð 	
r(   c                 óÐ   — t          j        t          | j        ¦  «        ¦  «        }|                      | j                             ¦   «         |                     ¦   «         ¦  «         d S ©N)r   r#   Úbufferr"   r,   r$   Ú	to_string©r2   r$   s     r&   Útest_bytes_memoryviewz0TestVerifyingKeyFromString.test_bytes_memoryviewG   sN   € ÝÔ%¥f¨T¬^Ñ&<Ô&<Ñ=Ô=ˆà×Ò˜œ×*Ò*Ñ,Ô,¨b¯lªl©n¬nÑ=Ô=Ð=Ð=Ð=r(   c                 óÐ   — t          j        t          | j        ¦  «        ¦  «        }|                      | j                             ¦   «         |                     ¦   «         ¦  «         d S r5   ©r   r#   Ú	bytearrayr"   r,   r$   r7   r8   s     r&   Útest_bytearrayz)TestVerifyingKeyFromString.test_bytearrayL   sN   € ÝÔ%¥i°´Ñ&?Ô&?Ñ@Ô@ˆà×Ò˜œ×*Ò*Ñ,Ô,¨b¯lªl©n¬nÑ=Ô=Ð=Ð=Ð=r(   c                 óê   — t          j        t          t          | j        ¦  «        ¦  «        ¦  «        }|                      | j                             ¦   «         |                     ¦   «         ¦  «         d S r5   )r   r#   r6   r<   r"   r,   r$   r7   r8   s     r&   Útest_bytesarray_memoryviewz5TestVerifyingKeyFromString.test_bytesarray_memoryviewQ   sV   € ÝÔ%¥f­Y°t´~Ñ-FÔ-FÑ&GÔ&GÑHÔHˆà×Ò˜œ×*Ò*Ñ,Ô,¨b¯lªl©n¬nÑ=Ô=Ð=Ð=Ð=r(   c                 óà   — t          j         d| j        ¦  «        }t          j        |¦  «        }|                      | j                             ¦   «         |                     ¦   «         ¦  «         d S ©NÚB©Úarrayr"   r   r#   r,   r$   r7   ©r2   Úarrr$   s      r&   Útest_array_array_of_bytesz4TestVerifyingKeyFromString.test_array_array_of_bytesV   óW   € ÝŒk˜#˜tœ~Ñ.Ô.ˆÝÔ% cÑ*Ô*ˆà×Ò˜œ×*Ò*Ñ,Ô,¨b¯lªl©n¬nÑ=Ô=Ð=Ð=Ð=r(   c                 óú   — t          j         d| j        ¦  «        }t          j        t	          |¦  «        ¦  «        }|                      | j                             ¦   «         |                     ¦   «         ¦  «         d S rA   ©rD   r"   r   r#   r6   r,   r$   r7   rE   s      r&   Ú$test_array_array_of_bytes_memoryviewz?TestVerifyingKeyFromString.test_array_array_of_bytes_memoryview\   ó]   € ÝŒk˜#˜tœ~Ñ.Ô.ˆÝÔ%¥f¨S¡k¤kÑ2Ô2ˆà×Ò˜œ×*Ò*Ñ,Ô,¨b¯lªl©n¬nÑ=Ô=Ð=Ð=Ð=r(   c                 óà   — t          j         d| j        ¦  «        }t          j        |¦  «        }|                      | j                             ¦   «         |                     ¦   «         ¦  «         d S ©NÚIrC   rE   s      r&   Útest_array_array_of_intsz3TestVerifyingKeyFromString.test_array_array_of_intsb   rH   r(   c                 óú   — t          j         d| j        ¦  «        }t          j        t	          |¦  «        ¦  «        }|                      | j                             ¦   «         |                     ¦   «         ¦  «         d S rN   rJ   rE   s      r&   Ú#test_array_array_of_ints_memoryviewz>TestVerifyingKeyFromString.test_array_array_of_ints_memoryviewh   rL   r(   c                 ó¼   — t          j        d| j        z   ¦  «        }|                      | j                             ¦   «         |                     ¦   «         ¦  «         d S ©Nó   ©r   r#   r"   r,   r$   r7   r8   s     r&   Útest_bytes_uncompressedz2TestVerifyingKeyFromString.test_bytes_uncompressedn   sK   € ÝÔ% g°´Ñ&>Ñ?Ô?ˆà×Ò˜œ×*Ò*Ñ,Ô,¨b¯lªl©n¬nÑ=Ô=Ð=Ð=Ð=r(   c                 óÖ   — t          j        t          d| j        z   ¦  «        ¦  «        }|                      | j                             ¦   «         |                     ¦   «         ¦  «         d S rT   r;   r8   s     r&   Útest_bytearray_uncompressedz6TestVerifyingKeyFromString.test_bytearray_uncompresseds   sS   € ÝÔ%¥i°¸$¼.Ñ0HÑ&IÔ&IÑJÔJˆà×Ò˜œ×*Ò*Ñ,Ô,¨b¯lªl©n¬nÑ=Ô=Ð=Ð=Ð=r(   c                 óÌ   — t          j        d| j        d d…         z   ¦  «        }|                      | j                             ¦   «         |                     ¦   «         ¦  «         d S ©Nó   é   rV   r8   s     r&   Útest_bytes_compressedz0TestVerifyingKeyFromString.test_bytes_compressedx   sT   € ÝÔ% g°´¸sÀ¸sÔ0CÑ&CÑDÔDˆà×Ò˜œ×*Ò*Ñ,Ô,¨b¯lªl©n¬nÑ=Ô=Ð=Ð=Ð=r(   c                 óæ   — t          j        t          d| j        d d…         z   ¦  «        ¦  «        }|                      | j                             ¦   «         |                     ¦   «         ¦  «         d S r[   r;   r8   s     r&   Útest_bytearray_compressedz4TestVerifyingKeyFromString.test_bytearray_compressed}   s\   € ÝÔ%¥i°¸$¼.ÈÈ"ÈÔ:MÑ0MÑ&NÔ&NÑOÔOˆà×Ò˜œ×*Ò*Ñ,Ô,¨b¯lªl©n¬nÑ=Ô=Ð=Ð=Ð=r(   c                 ó    — |                       t          ¦  «        5  t          j        dt          ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns   AAA)ÚassertRaisesr   r   r#   r   r1   s    r&   Ú.test_ed25519_VerifyingKey_from_string_importedzITestVerifyingKeyFromString.test_ed25519_VerifyingKey_from_string_imported‚   sŽ   € Ø×ÒÕ2Ñ3Ô3ð 	6ð 	6ÝÔ$ V­WÑ5Ô5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6ð 	6ð 	6s   ›AÁAÁ
AN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úclassmethodr'   r3   r9   r=   r?   rG   rK   rP   rR   rW   rY   r^   r`   rc   © r(   r&   r    r    ,   sü   € € € € € ðð ð
 ð9ð 9ñ „[ð9ð

ð 

ð 

ð>ð >ð >ð
>ð >ð >ð
>ð >ð >ð
>ð >ð >ð>ð >ð >ð>ð >ð >ð>ð >ð >ð>ð >ð >ð
>ð >ð >ð
>ð >ð >ð
>ð >ð >ð
6ð 6ð 6ð 6ð 6r(   r    c                   óô   — e Zd ZdZed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d „ Z#d!„ Z$d"„ Z%d#„ Z&d$„ Z'd%S )&ÚTestVerifyingKeyFromDerza
    Verify that ecdsa.keys.VerifyingKey.from_der() can be used with
    bytes-like objects.
    c                 ó\  — d}d}|| _         t          |¦  «        | _        t          | j        t          ¦  «        sJ ‚t          j        |¦  «        | _        t          j        |¦  «        | _	        d}t          j        |¦  «        | _
        t          j        t          j        ¦  «        | _        d S )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_pemr   r"   Ú
isinstanceÚbytesr   Úfrom_pemr$   r   ÚskÚvk2ÚgenerateÚcurveÚsk2)r%   Úprv_key_strÚkey_strs      r&   r'   z"TestVerifyingKeyFromDer.setUpClass�   sž   € ð-ð 	ð)ð 	ð ˆŒå˜g™œˆŒÝ˜#œ-­Ñ/Ô/Ð/Ð/Ð/ÝÔ& wÑ/Ô/ˆŒÝÔ$ [Ñ1Ô1ˆŒð)ð 	õ Ô'¨Ñ0Ô0ˆŒåÔ%¥b¤hÑ/Ô/ˆŒˆˆr(   c                 ó”   — d}t          j        |¦  «        }t          j        dt          ¬¦  «        }|                      ||¦  «         d S )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©ru   )r   rq   r#   r   r,   )r2   Úpub_key_strÚpkÚpk_exps       r&   Ú&test_load_key_with_explicit_parametersz>TestVerifyingKeyFromDer.test_load_key_with_explicit_parameters­   s]   € ð'ð 	õ Ô" ;Ñ/Ô/ˆåÔ)ð$õ
 ð
ñ 
ô 
ˆð 	×Ò˜˜VÑ$Ô$Ð$Ð$Ð$r(   c                 óž   — d}|                       t          ¦  «        5  t          j        |dg¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrz   Únamed_curve©Úvalid_curve_encodings)rb   r	   r   rq   )r2   r|   s     r&   Ú2test_load_key_with_explicit_with_explicit_disabledzJTestVerifyingKeyFromDer.test_load_key_with_explicit_with_explicit_disabledÅ   s§   € ð'ð 	ð ×Ò�}Ñ-Ô-ð 	ð 	ÝÔ!Ø°M°?ðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	ó   �AÁAÁ	Ac                 óò   — |                       t          ¦  «        5 }t          j        | j        dg¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )NÚraw)Úvalid_encodingszenabled (raw) encodings)rb   r   r   Úfrom_derr"   ÚassertInÚstrÚ	exception©r2   Úes     r&   Ú"test_load_key_with_disabled_formatz:TestVerifyingKeyFromDer.test_load_key_with_disabled_formatÖ   sº   € Ø×ÒÕ2Ñ3Ô3ð 	K°qÝÔ! $¤.À5À'ÐJÑJÔJÐJð	Kð 	Kð 	Kñ 	Kô 	Kð 	Kð 	Kð 	Kð 	Kð 	Kð 	Køøøð 	Kð 	Kð 	Kð 	Kð 	�ŠÐ/µ°Q´[Ñ1AÔ1AÑBÔBÐBÐBÐBs   ›AÁAÁAc                 ó˜   — t          j        | j        t          j        ¦  «        }|                      |j        t          j        ¦  «         d S r5   )r   r‰   r"   ÚhashlibÚsha256ÚassertIsÚdefault_hashfuncr8   s     r&   Útest_custom_hashfuncz,TestVerifyingKeyFromDer.test_custom_hashfuncÜ   s7   € ÝÔ" 4¤>µ7´>ÑBÔBˆà�Š�bÔ)­7¬>Ñ:Ô:Ð:Ð:Ð:r(   c                 ó˜   — t          j        | j        t          j        ¦  «        }|                      |j        t          j        ¦  «         d S r5   )r   rq   rn   r‘   r’   r“   r”   r8   s     r&   Ú"test_from_pem_with_custom_hashfuncz:TestVerifyingKeyFromDer.test_from_pem_with_custom_hashfuncá   s7   € ÝÔ" 4¤<µ´Ñ@Ô@ˆà�Š�bÔ)­7¬>Ñ:Ô:Ð:Ð:Ð:r(   c                 ó¶   — t          j        | j        ¦  «        }|                      | j                             ¦   «         |                     ¦   «         ¦  «         d S r5   )r   r‰   r"   r,   r$   r7   r8   s     r&   r3   z"TestVerifyingKeyFromDer.test_bytesæ   sF   € ÝÔ" 4¤>Ñ2Ô2ˆà×Ò˜œ×*Ò*Ñ,Ô,¨b¯lªl©n¬nÑ=Ô=Ð=Ð=Ð=r(   c                 óÐ   — t          j        t          | j        ¦  «        ¦  «        }|                      | j                             ¦   «         |                     ¦   «         ¦  «         d S r5   )r   r‰   r6   r"   r,   r$   r7   r8   s     r&   r9   z-TestVerifyingKeyFromDer.test_bytes_memoryviewë   sN   € ÝÔ"¥6¨$¬.Ñ#9Ô#9Ñ:Ô:ˆà×Ò˜œ×*Ò*Ñ,Ô,¨b¯lªl©n¬nÑ=Ô=Ð=Ð=Ð=r(   c                 óÐ   — t          j        t          | j        ¦  «        ¦  «        }|                      | j                             ¦   «         |                     ¦   «         ¦  «         d S r5   )r   r‰   r<   r"   r,   r$   r7   r8   s     r&   r=   z&TestVerifyingKeyFromDer.test_bytearrayð   sN   € ÝÔ"¥9¨T¬^Ñ#<Ô#<Ñ=Ô=ˆà×Ò˜œ×*Ò*Ñ,Ô,¨b¯lªl©n¬nÑ=Ô=Ð=Ð=Ð=r(   c                 óê   — t          j        t          t          | j        ¦  «        ¦  «        ¦  «        }|                      | j                             ¦   «         |                     ¦   «         ¦  «         d S r5   )r   r‰   r6   r<   r"   r,   r$   r7   r8   s     r&   r?   z2TestVerifyingKeyFromDer.test_bytesarray_memoryviewõ   sV   € ÝÔ"¥6­)°D´NÑ*CÔ*CÑ#DÔ#DÑEÔEˆà×Ò˜œ×*Ò*Ñ,Ô,¨b¯lªl©n¬nÑ=Ô=Ð=Ð=Ð=r(   c                 óà   — t          j         d| j        ¦  «        }t          j        |¦  «        }|                      | j                             ¦   «         |                     ¦   «         ¦  «         d S rA   )rD   r"   r   r‰   r,   r$   r7   rE   s      r&   rG   z1TestVerifyingKeyFromDer.test_array_array_of_bytesú   sW   € ÝŒk˜#˜tœ~Ñ.Ô.ˆÝÔ" 3Ñ'Ô'ˆà×Ò˜œ×*Ò*Ñ,Ô,¨b¯lªl©n¬nÑ=Ô=Ð=Ð=Ð=r(   c                 óú   — t          j         d| j        ¦  «        }t          j        t	          |¦  «        ¦  «        }|                      | j                             ¦   «         |                     ¦   «         ¦  «         d S rA   )rD   r"   r   r‰   r6   r,   r$   r7   rE   s      r&   rK   z<TestVerifyingKeyFromDer.test_array_array_of_bytes_memoryview   s]   € ÝŒk˜#˜tœ~Ñ.Ô.ˆÝÔ"¥6¨#¡;¤;Ñ/Ô/ˆà×Ò˜œ×*Ò*Ñ,Ô,¨b¯lªl©n¬nÑ=Ô=Ð=Ð=Ð=r(   c                 óp   — |                       | j        | j                             ¦   «         k    ¦  «         d S r5   )Ú
assertTruer$   rr   Úget_verifying_keyr1   s    r&   Útest_equality_on_verifying_keysz7TestVerifyingKeyFromDer.test_equality_on_verifying_keys  s/   € Ø�Š˜œ 4¤7×#<Ò#<Ñ#>Ô#>Ò>Ñ?Ô?Ð?Ð?Ð?r(   c                 óL   — |                       | j        | j        k    ¦  «         d S r5   )ÚassertFalser$   rs   r1   s    r&   Ú!test_inequality_on_verifying_keysz9TestVerifyingKeyFromDer.test_inequality_on_verifying_keys	  s%   € Ø×Ò˜œ D¤HÒ,Ñ-Ô-Ð-Ð-Ð-r(   c                 óB   — |                       | j        d k    ¦  «         d S r5   )r£   r$   r1   s    r&   Ú1test_inequality_on_verifying_keys_not_implementedzITestVerifyingKeyFromDer.test_inequality_on_verifying_keys_not_implemented  s"   € Ø×Ò˜œ DšÑ)Ô)Ð)Ð)Ð)r(   c                 óP   — |                       | j        | j        j        ¦  «         d S r5   )ÚassertNotEqualr$   rv   Úverifying_keyr1   s    r&   Ú*test_VerifyingKey_inequality_on_same_curvezBTestVerifyingKeyFromDer.test_VerifyingKey_inequality_on_same_curve  s%   € Ø×Ò˜DœG T¤XÔ%;Ñ<Ô<Ð<Ð<Ð<r(   c                 óF   — |                       | j        | j        ¦  «         d S r5   )r¨   rr   rv   r1   s    r&   Ú(test_SigningKey_inequality_on_same_curvez@TestVerifyingKeyFromDer.test_SigningKey_inequality_on_same_curve  s"   € Ø×Ò˜DœG T¤XÑ.Ô.Ð.Ð.Ð.r(   c                 óL   — |                       | j        | j        k    ¦  «         d S r5   )r£   r$   rr   r1   s    r&   Útest_inequality_on_wrong_typesz6TestVerifyingKeyFromDer.test_inequality_on_wrong_types  s%   € Ø×Ò˜œ D¤GÒ+Ñ,Ô,Ð,Ð,Ð,r(   c                 ó0  — | j         j        j        }t          |                     ¦   «         |                     ¦   «         |                     ¦   «         ¦  «        }t          j        || j         j        ¦  «        }|  	                    || j         k    ¦  «         d S r5   )
r$   r-   r.   r   ru   r/   r0   r   Úfrom_public_pointrŸ   )r2   Úpjr.   r$   s       r&   Útest_from_public_point_oldz2TestVerifyingKeyFromDer.test_from_public_point_old  sk   € ØŒWŒ^Ô!ˆÝ�b—h’h‘j”j "§$¢$¡&¤&¨"¯$ª$©&¬&Ñ1Ô1ˆåÔ+¨E°4´7´=ÑAÔAˆà�Š˜˜dœgšÑ&Ô&Ð&Ð&Ð&r(   c                 óÆ   — t          j        t          j                             ¦   «         t          ¦  «        }t          |j        ¦  «        }|                      d|¦  «         d S )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))r   r#   r   Ú	generatorÚto_bytesÚreprr©   r,   )r2   rr   Ústrings      r&   Ú test_ed25519_VerifyingKey_repr__z8TestVerifyingKeyFromDer.test_ed25519_VerifyingKey_repr__   s_   € ÝÔ#¥GÔ$5×$>Ò$>Ñ$@Ô$@Å'ÑJÔJˆÝ�bÔ&Ñ'Ô'ˆà×Òð1ð ñ	
ô 	
ð 	
ð 	
ð 	
r(   c                 ó  — t           j        }|                      t          ¦  «        5 }t	          j        |t           ¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nzincompatible with Edwards)	r   r´   rb   Ú
ValueErrorr   r°   rŠ   r‹   rŒ   )r2   r.   rŽ   s      r&   Útest_edwards_from_public_pointz6TestVerifyingKeyFromDer.test_edwards_from_public_point,  sª   € ÝÔ!ˆØ×Ò�zÑ*Ô*ð 	;¨aÝÔ*¨5µ'Ñ:Ô:Ð:ð	;ð 	;ð 	;ñ 	;ô 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;øøøð 	;ð 	;ð 	;ð 	;ð 	�ŠÐ1µ3°q´{Ñ3CÔ3CÑDÔDÐDÐDÐDs   §AÁAÁAc                 ó,  — t          j        t          j                             ¦   «         t          ¦  «        }|j        }t          j        |                     ¦   «         t          ¦  «        }|                     ¦   «          |  	                    ||¦  «         d S r5   )
r   r#   r   r´   rµ   r©   r   r7   Ú
precomputer,   ©r2   rr   r$   rs   s       r&   Ú&test_edwards_precompute_no_side_effectz>TestVerifyingKeyFromDer.test_edwards_precompute_no_side_effect3  sn   € ÝÔ#¥GÔ$5×$>Ò$>Ñ$@Ô$@Å'ÑJÔJˆØÔˆÝÔ& r§|¢|¡~¤~µwÑ?Ô?ˆØ
�Š‰Œˆà×Ò˜˜SÑ!Ô!Ð!Ð!Ð!r(   c           	      óÊ  — t          t          t          t          j        Ž ¦  «        t	          t          t          j                             ¦   «         ¦  «        d¦  «        t	          dd¦  «        ¦  «        }|                      t          ¦  «        5 }t          j        |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nr   ó    ztrailing junk after public key)r
   r   r   Úoidr   rp   r´   rµ   rb   r	   r   r‰   rŠ   r‹   rŒ   ©r2   Úder_strrŽ   s      r&   Ú$test_parse_malfomed_eddsa_der_pubkeyz<TestVerifyingKeyFromDer.test_parse_malfomed_eddsa_der_pubkey;  sô   € Ý!Ý�J­¬Ð4Ñ5Ô5Ý�U¥7Ô#4×#=Ò#=Ñ#?Ô#?Ñ@Ô@À!ÑDÔDÝ˜W aÑ(Ô(ñ
ô 
ˆð ×Ò�}Ñ-Ô-ð 	+°ÝÔ! 'Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	�ŠÐ6½¸A¼KÑ8HÔ8HÑIÔIÐIÐIÐIs   ÂB0Â0B4Â7B4c                 óð   — |                       t          ¦  «        5 }t          j        ddt          ¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S ©Nr(   zunsupported for Edwards)rb   rº   r   Úfrom_public_key_recoveryr   rŠ   r‹   rŒ   r�   s     r&   Ú%test_edwards_from_public_key_recoveryz=TestVerifyingKeyFromDer.test_edwards_from_public_key_recoveryG  s´   € Ø×Ò�zÑ*Ô*ð 	E¨aÝÔ1°#°s½GÑDÔDÐDð	Eð 	Eð 	Eñ 	Eô 	Eð 	Eð 	Eð 	Eð 	Eð 	Eð 	Eøøøð 	Eð 	Eð 	Eð 	Eð 	�ŠÐ/µ°Q´[Ñ1AÔ1AÑBÔBÐBÐBÐBó   ›AÁAÁ
Ac                 óð   — |                       t          ¦  «        5 }t          j        ddt          ¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S rÇ   )rb   rº   r   Ú$from_public_key_recovery_with_digestr   rŠ   r‹   rŒ   r�   s     r&   Ú1test_edwards_from_public_key_recovery_with_digestzITestVerifyingKeyFromDer.test_edwards_from_public_key_recovery_with_digestM  s«   € Ø×Ò�zÑ*Ô*ð 	¨aÝÔ=Ø�S�'ñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð
 	�ŠÐ/µ°Q´[Ñ1AÔ1AÑBÔBÐBÐBÐBrÊ   c                 ó  — d}t          j        |¦  «        }|                      |j        t          ¦  «         |                      |j        t          ¦  «         d}t          j        |t          ¦  «        }|                      ||¦  «         d S )Núq-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEAIwBQ0NZkIiiO41WJfm5BV42u3kQm7lYnvIXmCy8qy2U=
-----END PUBLIC KEY-----
ó    # PÐÖd"(ŽãU‰~nAW�®ÞD&îV'¼…æ/*Ëe)	r   rq   r+   ru   r   r“   r   r#   r,   )r2   Úvk_pemr$   Úvk_strÚvk_2s        r&   Útest_load_ed25519_from_pemz2TestVerifyingKeyFromDer.test_load_ed25519_from_pemU  s‡   € ð)ð 	õ Ô" 6Ñ*Ô*ˆà×Ò˜bœh­Ñ.Ô.Ð.Ø�Š�b”h¥Ñ(Ô(Ð(ðPð 	õ
 Ô'¨µÑ8Ô8ˆà×Ò˜˜TÑ"Ô"Ð"Ð"Ð"r(   c                 ó’   — d}t          j        |t          ¦  «        }d}|                      ||                     ¦   «         ¦  «         d S )NrÐ   sq   -----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEAIwBQ0NZkIiiO41WJfm5BV42u3kQm7lYnvIXmCy8qy2U=
-----END PUBLIC KEY-----
)r   r#   r   r,   Úto_pem©r2   rÒ   r$   rÑ   s       r&   Útest_export_ed255_to_pemz0TestVerifyingKeyFromDer.test_export_ed255_to_pemj  sQ   € ðPð 	õ
 Ô% f­gÑ6Ô6ˆð*ð 	ð 	×Ò˜ §¢¡¤Ñ-Ô-Ð-Ð-Ð-r(   c                 ó’   — d}t          j        |t          ¦  «        }d}|                      ||                     ¦   «         ¦  «         d S )NrÐ   sQ   ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICMAUNDWZCIojuNViX5uQVeNrt5EJu5WJ7yF5gsvKstl
)r   r#   r   r,   Úto_ssh)r2   rÒ   r$   Úvk_sshs       r&   Útest_export_ed255_to_sshz0TestVerifyingKeyFromDer.test_export_ed255_to_sshz  sJ   € ðPð 	õ
 Ô% f­gÑ6Ô6ˆàfˆà×Ò˜ §¢¡¤Ñ-Ô-Ð-Ð-Ð-r(   c                 ó¾   — t          j        t          ¦  «        }|j        }t	          j        |                     ¦   «         ¦  «        }|                      ||¦  «         d S r5   )r   rt   r   r©   r   rq   rÖ   r,   r¾   s       r&   Útest_ed25519_export_importz2TestVerifyingKeyFromDer.test_ed25519_export_import†  sN   € ÝÔ ¥Ñ)Ô)ˆØÔˆåÔ# B§I¢I¡K¤KÑ0Ô0ˆà×Ò˜˜SÑ!Ô!Ð!Ð!Ð!r(   c                 óŒ   — d}t          j        |¦  «        }d}d}|                      |                     ||¦  «        ¦  «         d S )NrÏ   ó   data
s@   dG«j3ÍyE­˜l¹ò ë�ÖPãÇ�Ÿ`ìuà/'Ó–ÚèXàþF\�ïPì)Ÿ®Õ­F<‘hƒMê�¨y©r   rq   rŸ   Úverify©r2   rÑ   r$   ÚdataÚsigs        r&   Útest_ed25519_sig_verifyz/TestVerifyingKeyFromDer.test_ed25519_sig_verifyŽ  sV   € ð)ð 	õ Ô" 6Ñ*Ô*ˆàˆðPð 	ð 	�Š˜Ÿ	š	 # tÑ,Ô,Ñ-Ô-Ð-Ð-Ð-r(   c                 óÌ   — d}t          j        |¦  «        }d}d}|                      t          ¦  «        5  |                     ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrÏ   rà   s@   ªG«j3ÍyE­˜l¹ò ë�ÖPãÇ�Ÿ`ìuà/'Ó–ÚèXàþF\�ïPì)Ÿ®Õ­F<‘hƒMê�¨y)r   rq   rb   r   râ   rã   s        r&   Ú!test_ed25519_sig_verify_malformedz9TestVerifyingKeyFromDer.test_ed25519_sig_verify_malformed£  s½   € ð)ð 	õ Ô" 6Ñ*Ô*ˆàˆðPð 	ð ×ÒÕ0Ñ1Ô1ð 	!ð 	!Ø�IŠI�c˜4Ñ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!s   µAÁAÁ Ac                 ó  — d}t          j        |¦  «        }|                      |j        t          ¦  «         |                      |j        t          ¦  «         d}t          j        |t          ¦  «        }|                      ||¦  «         d S )Nú’-----BEGIN PUBLIC KEY-----
MEMwBQYDK2VxAzoAeQtetSu7CMEzE+XWB10Bg47LCA0giNikOxHzdp+tZ/eK/En0
dTdYD2ll94g58MhSnBiBQB9A1MMA
-----END PUBLIC KEY-----
ó9   y^µ+»Á3åÖ]ƒŽË ˆØ¤;óvŸ­g÷ŠüIôu7Xie÷ˆ9ðÈRœ�@@ÔÃ )	r   rq   r+   ru   r   r“   r   r#   r,   )r2   Úpem_strr$   rÒ   rs   s        r&   Útest_ed448_from_pemz+TestVerifyingKeyFromDer.test_ed448_from_pem¹  s†   € ð)ð 	õ Ô" 7Ñ+Ô+ˆà×Ò˜bœh­Ñ.Ô.Ð.Ø�Š�b”h¥Ñ&Ô&Ð&ð4ð 	õ Ô& v­uÑ5Ô5ˆà×Ò˜˜SÑ!Ô!Ð!Ð!Ð!r(   c                 ó’   — d}t          j        |t          ¦  «        }d}|                      ||                     ¦   «         ¦  «         d S )Nrë   s’   -----BEGIN PUBLIC KEY-----
MEMwBQYDK2VxAzoAeQtetSu7CMEzE+XWB10Bg47LCA0giNikOxHzdp+tZ/eK/En0dTdYD2ll94g5
8MhSnBiBQB9A1MMA
-----END PUBLIC KEY-----
)r   r#   r   r,   rÖ   r×   s       r&   Útest_ed448_to_pemz)TestVerifyingKeyFromDer.test_ed448_to_pemÑ  sP   € ð4ð 	õ Ô% f­eÑ4Ô4ˆð*ð 	ð 	×Ò˜ §¢¡¤Ñ-Ô-Ð-Ð-Ð-r(   c                 ó¾   — t          j        t          ¦  «        }|j        }t	          j        |                     ¦   «         ¦  «        }|                      ||¦  «         d S r5   )r   rt   r   r©   r   rq   rÖ   r,   r¾   s       r&   Útest_ed448_export_importz0TestVerifyingKeyFromDer.test_ed448_export_importã  sN   € ÝÔ ¥Ñ'Ô'ˆØÔˆåÔ# B§I¢I¡K¤KÑ0Ô0ˆà×Ò˜˜SÑ!Ô!Ð!Ð!Ð!r(   c                 óŒ   — d}t          j        |¦  «        }d}d}|                      |                     ||¦  «        ¦  «         d S )Nrê   rà   sr   hí,p5"Ê5óªQ3= À®°TÅÜo0W´ËéìúÈE>QÁË`jÐC_›ú2ˆ²8kí¬	 x±{]~ø1Ý?˜ ÎçØŸ0¬/ÔU¿!˜öLŒ¾�¥-€LbS‘Õî0ÆfKž�@Ð­®
 rá   )r2   rì   r$   rä   rå   s        r&   Útest_ed448_sig_verifyz-TestVerifyingKeyFromDer.test_ed448_sig_verifyë  sU   € ð)ð 	õ Ô" 7Ñ+Ô+ˆàˆðð 	ð 	�Š˜Ÿ	š	 # tÑ,Ô,Ñ-Ô-Ð-Ð-Ð-r(   N)(rd   re   rf   rg   rh   r'   r   r„   r�   r•   r—   r3   r9   r=   r?   rG   rK   r¡   r¤   r¦   rª   r¬   r®   r²   r¸   r»   r¿   rÅ   rÉ   rÍ   rÔ   rØ   rÜ   rÞ   ræ   rè   rí   rï   rñ   ró   ri   r(   r&   rk   rk   ‡   sI  € € € € € ðð ð
 ð0ð 0ñ „[ð0ð>%ð %ð %ð0ð ð ð"Cð Cð Cð;ð ;ð ;ð
;ð ;ð ;ð
>ð >ð >ð
>ð >ð >ð
>ð >ð >ð
>ð >ð >ð
>ð >ð >ð>ð >ð >ð@ð @ð @ð.ð .ð .ð*ð *ð *ð=ð =ð =ð/ð /ð /ð-ð -ð -ð'ð 'ð 'ð

ð 

ð 

ðEð Eð Eð"ð "ð "ð
Jð 
Jð 
JðCð Cð CðCð Cð Cð#ð #ð #ð*.ð .ð .ð 
.ð 
.ð 
.ð"ð "ð "ð.ð .ð .ð*!ð !ð !ð,"ð "ð "ð0.ð .ð .ð$"ð "ð "ð.ð .ð .ð .ð .r(   rk   c                   óÄ   — e Zd ZdZed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestSigningKeyz_
    Verify that ecdsa.keys.SigningKey.from_der() can be used with
    bytes-like objects.
    c                 ó¨   — d}t          j        |¦  «        | _        d}t          j        |¦  «        | _        d}t          j        |¦  «        | _        d S )Nrm   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-----
)r   rq   Úsk1Ú	sk1_pkcs8rv   )r%   rw   s     r&   r'   zTestSigningKey.setUpClass  s`   € ð-ð 	õ Ô% kÑ2Ô2ˆŒð*ð 	õ #Ô+¨KÑ8Ô8ˆŒð-ð 	õ Ô% kÑ2Ô2ˆŒˆˆr(   c                 ód   — |                       | j                             d¬¦  «        d¦  «         d S )NÚpkcs8©Úformatsq   0o0*†HÎ=*†HÎ=U0S^ÈBÖï’R©Bé‰<¢ŸV¥%w±Å¡42 ¸�wÐ„ïõäV9@€(6ŸY´¤×&NbÚQÜäz5¤Å´\õ“B:‹U{œ ™ól)r,   r÷   Úto_derr1   s    r&   Útest_to_der_pkcs8z TestSigningKey.test_to_der_pkcs8)  s<   € Ø×ÒØŒH�OŠO 7ˆOÑ+Ô+ð$ñ	
ô 	
ð 	
ð 	
ð 	
r(   c                 ó”   — d}t          j        |¦  «        }t          j        dt          ¬¦  «        }|                      ||¦  «         d S )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¹ó r{   )r   rq   r#   r   r,   )r2   rw   rr   rv   s       r&   Ú'test_decoding_explicit_curve_parametersz6TestSigningKey.test_decoding_explicit_curve_parameters4  s]   € ð	*ð 	õ Ô  Ñ-Ô-ˆåÔ$ðõ ð	
ñ 
ô 
ˆð 	×Ò˜˜SÑ!Ô!Ð!Ð!Ð!r(   c                 óž   — d}|                       t          ¦  «        5  t          j        |dg¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r�   r‚   )rb   r	   r   rq   )r2   rw   s     r&   Ú>test_decoding_explicit_curve_parameters_with_explicit_disabledzMTestSigningKey.test_decoding_explicit_curve_parameters_with_explicit_disabledM  s§   € ð	*ð 	ð ×Ò�}Ñ-Ô-ð 	ð 	ÝÔØ°M°?ðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	r…   c                 óÎ   — t          j        | j        j        j        | j        j        ¦  «        }|                      | j        |¦  «         |                      | j        |¦  «         d S r5   )r   Úfrom_secret_exponentr÷   ÚprivkeyÚsecret_multiplierru   r,   rø   ©r2   rr   s     r&   Útest_equality_on_signing_keysz,TestSigningKey.test_equality_on_signing_keys`  s]   € ÝÔ,ØŒHÔÔ.°´´ñ
ô 
ˆð 	×Ò˜œ 2Ñ&Ô&Ð&Ø×Ò˜œ¨Ñ,Ô,Ð,Ð,Ð,r(   c                 óÎ   — | j                              d¦  «        }|                      |¦  «         | j         j        }|                      |                     |d¦  «        ¦  «         d S )Nr(   )r÷   ÚsignrŸ   r©   râ   ©r2   rå   r$   s      r&   Útest_verify_with_empty_messagez-TestSigningKey.test_verify_with_empty_messageg  sW   € ØŒh�mŠm˜CÑ Ô ˆà�Š˜ÑÔÐàŒXÔ#ˆà�Š˜Ÿ	š	 # sÑ+Ô+Ñ,Ô,Ð,Ð,Ð,r(   c                 óÌ   — | j                              d¦  «        }| j         j        }|                     ¦   «          |                      |                     |d¦  «        ¦  «         d S )Nó   message)r÷   r  r©   r½   rŸ   râ   r  s      r&   Útest_verify_with_precomputez*TestSigningKey.test_verify_with_precomputep  sR   € ØŒh�mŠm˜JÑ'Ô'ˆàŒXÔ#ˆà
�Š‰Œˆà�Š˜Ÿ	š	 # zÑ2Ô2Ñ3Ô3Ð3Ð3Ð3r(   c                 óŠ   — | j         j        }|                     ¦   «          | j        j        }|                      ||¦  «         d S r5   )r÷   r©   r½   rø   r,   )r2   Úvk1rs   s      r&   Ú*test_compare_verifying_key_with_precomputez9TestSigningKey.test_compare_verifying_key_with_precomputey  sB   € ØŒhÔ$ˆØ�ŠÑÔÐàŒnÔ*ˆà×Ò˜˜cÑ"Ô"Ð"Ð"Ð"r(   c                 óÐ   — | j                              d¦  «        }| j         j        }|                     d¬¦  «         |                      |                     |d¦  «        ¦  «         d S )Ns   other messageT)Úlazy)rv   r  r©   r½   rŸ   râ   r  s      r&   Ú test_verify_with_lazy_precomputez/TestSigningKey.test_verify_with_lazy_precompute�  s[   € ØŒh�mŠmÐ,Ñ-Ô-ˆàŒXÔ#ˆà
�Š˜4ˆÑ Ô Ð à�Š˜Ÿ	š	 #Ð'7Ñ8Ô8Ñ9Ô9Ð9Ð9Ð9r(   c                 óF   — |                       | j        | j        ¦  «         d S r5   )r¨   r÷   rv   r1   s    r&   Útest_inequality_on_signing_keysz.TestSigningKey.test_inequality_on_signing_keysŠ  s"   € Ø×Ò˜DœH d¤hÑ/Ô/Ð/Ð/Ð/r(   c                 ó<   — |                       | j        d ¦  «         d S r5   )r¨   r÷   r1   s    r&   Ú/test_inequality_on_signing_keys_not_implementedz>TestSigningKey.test_inequality_on_signing_keys_not_implemented�  s    € Ø×Ò˜DœH dÑ+Ô+Ð+Ð+Ð+r(   c                 ó’   — d}t          j        |¦  «        }t          j        dt          ¦  «        }|                      ||¦  «         d S )Núw-----BEGIN PRIVATE KEY-----
MC4CAQAwBQYDK2VwBCIEIDS6x9FO1PG8T4xIPg8Zd0z8uL6sVGZFEZrX17gHC/XU
-----END PRIVATE KEY-----
ó    4ºÇÑNÔñ¼OŒH>wLü¸¾¬TfEš××¸õÔ)r   rq   r#   r   r,   ©r2   rì   rr   Úsk_strs       r&   Útest_ed25519_from_pemz$TestSigningKey.test_ed25519_from_pem�  sW   € ð*ð 	õ Ô  Ñ)Ô)ˆåÔ'ðPåñ
ô 
ˆð 	×Ò˜˜VÑ$Ô$Ð$Ð$Ð$r(   c           	      óª  — t          t          d¦  «        t          t          t          j        Ž t          d¦  «        ¦  «        t          t          d¦  «        ¦  «        ¦  «        }|                      t          ¦  «        5 }t          j	        |¦  «         d d d ¦  «         n# 1 swxY w Y   |  
                    dt          |j        ¦  «        ¦  «         d S )Nr   ó    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzNon NULL parameters©r
   r   r   r   rÂ   r   rb   r	   r   r‰   rŠ   r‹   rŒ   rÃ   s      r&   Ú'test_ed25519_from_der_bad_alg_id_paramsz6TestSigningKey.test_ed25519_from_der_bad_alg_id_params¡  sì   € Ý!Ý˜1ÑÔÝ�J­¬Ð4µnÀQÑ6GÔ6GÑHÔHÝÕ 3°IÑ >Ô >Ñ?Ô?ñ
ô 
ˆð ×Ò�}Ñ-Ô-ð 	)°ÝÔ Ñ(Ô(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	�ŠÐ+­S°´Ñ-=Ô-=Ñ>Ô>Ð>Ð>Ð>s   Á?B Â B$Â'B$c           	      ó”  — t          t          d¦  «        t          t          t          j        Ž ¦  «        t          t          d¦  «        dz   ¦  «        ¦  «        }|                      t          ¦  «        5 }t          j	        |¦  «         d d d ¦  «         n# 1 swxY w Y   |  
                    dt          |j        ¦  «        ¦  «         d S )Nr   r"  ó   Bz+trailing junk after the encoded private keyr#  rÃ   s      r&   Ú)test_ed25519_from_der_junk_after_priv_keyz8TestSigningKey.test_ed25519_from_der_junk_after_priv_key­  sø   € Ý!Ý˜1ÑÔÝÝ�GœKÐ(ñô õ  Õ 3°IÑ >Ô >ÀÑ EÑFÔFñ
ô 
ˆð ×Ò�}Ñ-Ô-ð 	)°ÝÔ Ñ(Ô(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	�ŠØ9½3¸q¼{Ñ;KÔ;Kñ	
ô 	
ð 	
ð 	
ð 	
s   Á4BÂBÂBc                 ó¢   — t          j        dt          ¦  «        }d}|                     |t          ¬¦  «        }|                      |d¦  «         d S )Nr  r  ©Ú	sigencodes@   á,vÉ>%ÚÒ~>Ã&
aô@|ž`X@<˜7Ô±õ³%i{ß}Ý±ó€Â|åÖÄ
£°ö}Àí)"+E¯ )r   r#   r   r  r   r,   )r2   r  Úmsgrå   s       r&   Útest_ed25519_signz TestSigningKey.test_ed25519_sign½  sd   € ÝÔ'ðPåñ
ô 
ˆð ˆà�kŠk˜#­ˆkÑ7Ô7ˆà×ÒØðDñ	
ô 	
ð 	
ð 	
ð 	
r(   c                 ó  — t          j        dt          ¦  «        }|                      t          ¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S ©Nr  s   aaaaaaaaaaaaaaaaaaaaúMethod unsupported for Edwards)	r   r#   r   rb   rº   Úsign_digest_deterministicrŠ   r‹   rŒ   ©r2   r  rŽ   s      r&   Ú&test_ed25519_sign_digest_deterministicz5TestSigningKey.test_ed25519_sign_digest_deterministicÏ  sÀ   € ÝÔ'ðPåñ
ô 
ˆð
 ×Ò�zÑ*Ô*ð 	8¨aØ×,Ò,¨YÑ7Ô7Ð7ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð 	�ŠÐ6½¸A¼KÑ8HÔ8HÑIÔIÐIÐIÐIó   µAÁAÁAc                 ó  — t          j        dt          ¦  «        }|                      t          ¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S r.  )	r   r#   r   rb   rº   Úsign_digestrŠ   r‹   rŒ   r1  s      r&   Útest_ed25519_sign_digestz'TestSigningKey.test_ed25519_sign_digestÚ  sÀ   € ÝÔ'ðPåñ
ô 
ˆð
 ×Ò�zÑ*Ô*ð 	*¨aØ×Ò˜yÑ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	�ŠÐ6½¸A¼KÑ8HÔ8HÑIÔIÐIÐIÐIr3  c                 ó  — t          j        dt          ¦  «        }|                      t          ¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nr  é   r/  )	r   r#   r   rb   rº   Úsign_numberrŠ   r‹   rŒ   r1  s      r&   Útest_ed25519_sign_numberz'TestSigningKey.test_ed25519_sign_numberå  sÀ   € ÝÔ'ðPåñ
ô 
ˆð
 ×Ò�zÑ*Ô*ð 	#¨aØ×Ò˜rÑ"Ô"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð 	�ŠÐ6½¸A¼KÑ8HÔ8HÑIÔIÐIÐIÐIr3  c                 ó  — d}t          j        |¦  «        }|                      t          ¦  «        5 }|                     d¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nr  Ússleayrû   zOnly PKCS#8 format)r   rq   rb   rº   rý   rŠ   r‹   rŒ   )r2   rì   rr   rŽ   s       r&   Útest_ed25519_to_der_ssleayz)TestSigningKey.test_ed25519_to_der_ssleayð  s¿   € ð*ð 	õ Ô  Ñ)Ô)ˆà×Ò�zÑ*Ô*ð 	'¨aØ�IŠI˜XˆIÑ&Ô&Ð&ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ð 	�ŠÐ*­C°´Ñ,<Ô,<Ñ=Ô=Ð=Ð=Ð=s   ±AÁAÁAc                 ó’   — t          j        dt          ¦  «        }d}|                      |                     d¬¦  «        |¦  «         d S )Nr  sw   -----BEGIN PRIVATE KEY-----
MC4CAQAwBQYDK2VwBCIEIDS6x9FO1PG8T4xIPg8Zd0z8uL6sVGZFEZrX17gHC/XU
-----END PRIVATE KEY-----
rú   rû   )r   r#   r   r,   rÖ   ©r2   rr   rì   s      r&   Útest_ed25519_to_pemz"TestSigningKey.test_ed25519_to_pemþ  sS   € ÝÔ#ðPåñ
ô 
ˆð+ð 	ð 	×Ò˜Ÿš¨'˜Ñ2Ô2°GÑ<Ô<Ð<Ð<Ð<r(   c                 óŽ   — t          j        dt          ¦  «        }d}|                      |                     ¦   «         |¦  «         d S )Nr  sƒ  -----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZWQyNTUx
OQAAACAjAFDQ1mQiKI7jVYl+bkFXja7eRCbuVie8heYLLyrLZQAAAIgAAAAAAAAAAAAAAAtzc2gt
ZWQyNTUxOQAAACAjAFDQ1mQiKI7jVYl+bkFXja7eRCbuVie8heYLLyrLZQAAAEA0usfRTtTxvE+M
SD4PGXdM/Li+rFRmRRGa19e4Bwv11CMAUNDWZCIojuNViX5uQVeNrt5EJu5WJ7yF5gsvKstlAAAA
AAECAwQF
-----END OPENSSH PRIVATE KEY-----
)r   r#   r   r,   rÚ   )r2   rr   Ússh_strs      r&   Útest_ed25519_to_sshz"TestSigningKey.test_ed25519_to_ssh  sM   € ÝÔ#ðPåñ
ô 
ˆð3ð 	ð 	×Ò˜Ÿš™œ gÑ.Ô.Ð.Ð.Ð.r(   c                 ó´   — t          j        t          ¦  «        }t          j        |                     d¬¦  «        ¦  «        }|                      ||¦  «         d S ©Nrú   rû   )r   rt   r   rq   rÖ   r,   ©r2   rr   Údecodeds      r&   Útest_ed25519_to_and_from_pemz+TestSigningKey.test_ed25519_to_and_from_pem   sL   € ÝÔ ¥Ñ)Ô)ˆåÔ% b§i¢i°w iÑ&?Ô&?Ñ@Ô@ˆà×Ò˜˜WÑ%Ô%Ð%Ð%Ð%r(   c                 óz   — t          j        t          t          j        ¬¦  «        }|                      |¦  «         d S )N)Úentropy)r   rt   r   ÚosÚurandomr*   r  s     r&   Útest_ed25519_custom_entropyz*TestSigningKey.test_ed25519_custom_entropy'  s3   € ÝÔ ¥µ"´*Ð=Ñ=Ô=ˆà×Ò˜RÑ Ô Ð Ð Ð r(   c                 óð   — |                       t          ¦  «        5 }t          j        dt          ¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )NiÒ–Ir{   z don't support setting the secret)rb   rº   r   r  r   rŠ   r‹   rŒ   r�   s     r&   Ú!test_ed25519_from_secret_exponentz0TestSigningKey.test_ed25519_from_secret_exponent,  sµ   € Ø×Ò�zÑ*Ô*ð 	G¨aÝÔ+¨J½gÐFÑFÔFÐFð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gð 	�ŠÐ8½#¸a¼kÑ:JÔ:JÑKÔKÐKÐKÐKrÊ   c                 ó’   — d}t          j        |¦  «        }t          j        dt          ¦  «        }|                      ||¦  «         d S )Nzœ-----BEGIN PRIVATE KEY-----
MEcCAQAwBQYDK2VxBDsEOTyFuXqFLXgJlV8uDqcOw9nG4IqzLiZ/i5NfBDoHPzmP
OP0JMYaLGlTzwovmvCDJ2zLaezu9NLz9aQ==
-----END PRIVATE KEY-----
ó9   <…¹z…-x	•_.§ÃÙÆàŠ³.&‹“_:?9�8ý	1†‹TóÂ‹æ¼ ÉÛ2Ú{;½4¼ýi)r   rq   r#   r   r,   r  s       r&   rí   z"TestSigningKey.test_ed448_from_pem2  sX   € ð*ð 	õ Ô  Ñ)Ô)ˆåÔ'ð4õ ñ
ô 
ˆð 	×Ò˜˜VÑ$Ô$Ð$Ð$Ð$r(   c                 ó’   — t          j        dt          ¦  «        }d}|                      |                     d¬¦  «        |¦  «         d S )NrQ  sœ   -----BEGIN PRIVATE KEY-----
MEcCAQAwBQYDK2VxBDsEOTyFuXqFLXgJlV8uDqcOw9nG4IqzLiZ/i5NfBDoHPzmPOP0JMYaLGlTz
wovmvCDJ2zLaezu9NLz9aQ==
-----END PRIVATE KEY-----
rú   rû   )r   r#   r   r,   rÖ   r?  s      r&   rï   z TestSigningKey.test_ed448_to_pemE  sT   € ÝÔ#ð4õ ñ
ô 
ˆð+ð 	ð 	×Ò˜Ÿš¨'˜Ñ2Ô2°GÑ<Ô<Ð<Ð<Ð<r(   c                 ó´   — t          j        t          ¦  «        }t          j        |                     d¬¦  «        ¦  «        }|                      ||¦  «         d S rE  )r   rt   r   rq   rÖ   r,   rF  s      r&   Útest_ed448_encode_decodez'TestSigningKey.test_ed448_encode_decodeV  sL   € ÝÔ ¥Ñ'Ô'ˆåÔ% b§i¢i°w iÑ&?Ô&?Ñ@Ô@ˆà×Ò˜ "Ñ%Ô%Ð%Ð%Ð%r(   N) rd   re   rf   rg   rh   r'   rþ   r  r  r	  r  r  r  r  r  r  r   r$  r'  r,  r2  r6  r:  r=  r@  rC  rH  rM  rO  rí   rï   rT  ri   r(   r&   rõ   rõ     sË  € € € € € ðð ð
 ð3ð 3ñ „[ð3ð8	
ð 	
ð 	
ð"ð "ð "ð2ð ð ð&-ð -ð -ð-ð -ð -ð4ð 4ð 4ð#ð #ð #ð:ð :ð :ð0ð 0ð 0ð,ð ,ð ,ð%ð %ð %ð"
?ð 
?ð 
?ð
ð 
ð 
ð 
ð 
ð 
ð$	Jð 	Jð 	Jð	Jð 	Jð 	Jð	Jð 	Jð 	Jð>ð >ð >ð=ð =ð =ð/ð /ð /ð&&ð &ð &ð!ð !ð !ð
Lð Lð Lð%ð %ð %ð&=ð =ð =ð"&ð &ð &ð &ð &r(   rõ   c                   óH   — e Zd Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
dS )	ÚTestTrivialCurvec                 óÖ   — t          ddd¦  «        }t          |ddddd¬	¦  «        }t          d
||d¦  «        | _        t	          j        d| j        t          j        ¬¦  «        | _        d S )Né£   éT   é:   é   éW   r   é§   T)r´   Útoy_p8)r   r[  r   éŒ   )Úhashfunc)	r   r   r   Ú	toy_curver   r  r‘   Úsha1rr   )r%   ru   Úgens      r&   r'   zTestTrivialCurve.setUpClass_  sn   € õ ˜˜R Ñ$Ô$ˆÝ˜%  B¨¨3¸$Ð?Ñ?Ô?ˆå˜h¨¨s°IÑ>Ô>ˆŒåÔ0ØØŒMÝ”\ð
ñ 
ô 
ˆŒˆˆr(   c                 ó~   — | j         j        }|                      ||                     ¦   «         z  t          ¦  «         d S r5   )ra  r´   r,   Úorderr   )r2   rc  s     r&   Útest_generator_sanityz&TestTrivialCurve.test_generator_sanityq  s5   € ØŒnÔ&ˆà×Ò˜˜sŸyšy™{œ{Ñ*­HÑ5Ô5Ð5Ð5Ð5r(   c                 ój   — |                       | j        j                             ¦   «         d¦  «         d S )Ns   ˜)r,   rr   r©   r7   r1   s    r&   Útest_public_key_sanityz'TestTrivialCurve.test_public_key_sanityv  s/   € Ø×Ò˜œÔ.×8Ò8Ñ:Ô:¸KÑHÔHÐHÐHÐHr(   c                 óÌ   — | j                              d¦  «        }|                      |d¦  «         |                      | j         j                             |d¦  «        ¦  «         d S )Nr  s   -.©rr   Úsign_deterministicr,   rŸ   r©   râ   )r2   rå   s     r&   Útest_deterministic_signz(TestTrivialCurve.test_deterministic_signy  sZ   € ØŒg×(Ò(¨Ñ4Ô4ˆà×Ò˜˜eÑ$Ô$Ð$à�Š˜œÔ-×4Ò4°S¸*ÑEÔEÑFÔFÐFÐFÐFr(   c                 ó  — t          j        d¦  «        }| j                             |¦  «        }|                      t          |¦  «        d¦  «         |                      | j        j                             ||¦  «        ¦  «         d S )Né    r[  )	rK  rL  rr   rk  r,   ÚlenrŸ   r©   râ   ©r2   r+  rå   s      r&   Ú&test_deterministic_sign_random_messagez7TestTrivialCurve.test_deterministic_sign_random_message€  sm   € ÝŒj˜‰nŒnˆØŒg×(Ò(¨Ñ-Ô-ˆØ×Ò�˜S™œ 1Ñ%Ô%Ð%Ø�Š˜œÔ-×4Ò4°S¸#Ñ>Ô>Ñ?Ô?Ð?Ð?Ð?r(   c                 óÐ   — d}| j                              |¦  «        }|                      |d¦  «         |                      | j         j                             ||¦  «        ¦  «         d S )Ns    Os   6žrj  rp  s      r&   Ú/test_deterministic_sign_that_rises_R_zero_errorz@TestTrivialCurve.test_deterministic_sign_that_rises_R_zero_error†  sa   € ð ˆØŒg×(Ò(¨Ñ-Ô-ˆØ×Ò˜˜kÑ*Ô*Ð*Ø�Š˜œÔ-×4Ò4°S¸#Ñ>Ô>Ñ?Ô?Ð?Ð?Ð?r(   c                 óÐ   — d}| j                              |¦  «        }|                      |d¦  «         |                      | j         j                             ||¦  «        ¦  «         d S )Ns   ms   Ilrj  rp  s      r&   Ú/test_deterministic_sign_that_rises_S_zero_errorz@TestTrivialCurve.test_deterministic_sign_that_rises_S_zero_errorŽ  s_   € ØˆØŒg×(Ò(¨Ñ-Ô-ˆØ×Ò˜˜kÑ*Ô*Ð*Ø�Š˜œÔ-×4Ò4°S¸#Ñ>Ô>Ñ?Ô?Ð?Ð?Ð?r(   N)rd   re   rf   rh   r'   rf  rh  rl  rq  rs  ru  ri   r(   r&   rV  rV  ^  s˜   € € € € € Øð
ð 
ñ „[ð
ð"6ð 6ð 6ð
Ið Ið IðGð Gð Gð@ð @ð @ð@ð @ð @ð@ð @ð @ð @ð @r(   rV  rm   sd   some string for signingcontents don't really matterbut do include also some crazy values:  	
   ÿðé   r)  rp   c                 ó   — | S r5   ri   ©r/   s    r&   ú<lambda>ry  ¶  ó   € ˜€ r(   zbytes memoryviewr<   zbytearray memoryviewc                 ó:   — t          t          | ¦  «        ¦  «        S r5   ©r6   r<   rx  s    r&   ry  ry  ¹  ó   € ¥v­i¸©l¬lÑ';Ô';€ r(   zarray.array of bytesc                 ó,   — t          j         d| ¦  «        S rA   ©rD   rx  s    r&   ry  ry  º  ó   € ¥u¤{°3¸Ñ':Ô':€ r(   zarray.array of bytes memoryviewc                 óF   — t          t          j        d| ¦  «        ¦  «        S rA   ©r6   rD   rx  s    r&   ry  ry  »  ó   € µ&½¼ÀSÈ!Ñ9LÔ9LÑ2MÔ2M€ r(   zarray.array of intsc                 ó,   — t          j         d| ¦  «        S rN   r  rx  s    r&   ry  ry  ¼  ó   € ¥e¤k°#°qÑ&9Ô&9€ r(   zarray.array of ints memoryviewc                 óF   — t          t          j        d| ¦  «        ¦  «        S rN   r‚  rx  s    r&   ry  ry  ½  ó   € µ½¼ÀCÈÑ8KÔ8KÑ1LÔ1L€ r(   Úintsc                 ó   — | S r5   ri   rx  s    r&   ry  ry  À  s   € ˜€ r(   r‡   c                 ó    — t          | ¦  «        S r5   ©Úconvrx  s    r&   ry  ry  Ä  s   € µT¸!±W´W€ r(   Úderc                 ó    — t          | ¦  «        S r5   r‹  rx  s    r&   ry  ry  Å  s   € µ$°q±'´'€ r(   Ústringsc                 ó4   — t          d„ | D ¦   «         ¦  «        S )Nc              3   ó4   K  — | ]}t          |¦  «        V — Œd S r5   r‹  )Ú.0Úis     r&   ú	<genexpr>z<lambda>.<locals>.<genexpr>Ê  s(   è è € Ð/Ð/¨�D ™GœGÐ/Ð/Ð/Ð/Ð/Ð/r(   )Útuplerx  s    r&   ry  ry  Ê  s   € •eÐ/Ð/¨QÐ/Ñ/Ô/Ñ/Ô/€ r(   râ   Úverify_digestz{2}-{0}-{1})Úidz1signature,decoder,mod_apply,fun,vrf_mthd,vrf_datac                 óN   —  || ¦  «        } || ||¦  «        |¬¦  «        sJ ‚d S )N)Ú	sigdecoderi   )Ú	signatureÚdecoderÚ	mod_applyÚfunÚvrf_mthdÚvrf_datarå   s          r&   Útest_VerifyingKey_verifyr   Þ  s>   € ð ˆ)�IÑ
Ô
€Càˆ8�C˜˜˜X™œ°'Ð:Ñ:Ô:Ð:Ð:Ð:Ð:Ð:r(   s   ^ÈBÖï’R©Bé‰<¢ŸV¥%w±År]   c                 ó   — | S r5   ri   rx  s    r&   ry  ry  ñ  rz  r(   c                 ó:   — t          t          | ¦  «        ¦  «        S r5   r|  rx  s    r&   ry  ry  ô  r}  r(   c                 ó,   — t          j         d| ¦  «        S rA   r  rx  s    r&   ry  ry  õ  r€  r(   c                 óF   — t          t          j        d| ¦  «        ¦  «        S rA   r‚  rx  s    r&   ry  ry  ö  rƒ  r(   c                 ó,   — t          j         d| ¦  «        S rN   r  rx  s    r&   ry  ry  ÷  r…  r(   c                 óF   — t          t          j        d| ¦  «        ¦  «        S rN   r‚  rx  s    r&   ry  ry  ø  r‡  r(   Úconvertc                 óŒ   —  | t           ¦  «        }t          j        |¦  «        }|                     ¦   «         t           k    sJ ‚d S r5   )Úprv_key_bytesr   r#   r7   ©r§  Úkeyrr   s      r&   Útest_SigningKey_from_stringr¬  ý  s@   € à
ˆ'•-Ñ
 Ô
 €CÝ	Ô	 Ñ	$Ô	$€Bà�<Š<‰>Œ>�]Ò*Ð*Ð*Ð*Ð*Ð*r(   éþÿÿÿc                 óŒ   —  | t           ¦  «        }t          j        |¦  «        }|                     ¦   «         t          k    sJ ‚d S r5   )r"   r   r‰   r7   r©  rª  s      r&   Útest_SigningKey_from_derr¯    s@   € à
ˆ'•)Ñ
Ô
€CÝ	Ô	˜SÑ	!Ô	!€Bà�<Š<‰>Œ>�]Ò*Ð*Ð*Ð*Ð*Ð*r(   s   
c                 ó¶   — t                                 | t          ¦  «         | t          ¦  «        ¬¦  «        }t                               |t          ¦  «         d S ©N)Úextra_entropy)rr   rk  rä   r²  r$   râ   ©r§  rå   s     r&   Ú"test_SigningKey_sign_deterministicr´    sO   € å
×
Ò
Øˆ•‰Œ W W­]Ñ%;Ô%;ð  ñ ô €Cõ ‡I‚Iˆc•4ÑÔÐÐÐr(   c                 ó¶   — t                                 | t          ¦  «         | t          ¦  «        ¬¦  «        }t                               |t          ¦  «         d S r±  )rr   r0  Ú	data_hashr²  r$   râ   rä   r³  s     r&   Ú)test_SigningKey_sign_digest_deterministicr·  (  sQ   € å
×
&Ò
&Øˆ•	ÑÔ¨'¨'µ-Ñ*@Ô*@ð 'ñ ô €Cõ ‡I‚Iˆc•4ÑÔÐÐÐr(   c                 ó–   — t                                 | t          ¦  «        ¦  «        }t                               |t          ¦  «         d S r5   )rr   r  rä   r$   râ   r³  s     r&   Útest_SigningKey_signr¹  1  s5   € å
�'Š'�'�'�$‘-”-Ñ
 Ô
 €Cå‡I‚Iˆc•4ÑÔÐÐÐr(   c                 ó–   — t                                 | t          ¦  «        ¦  «        }t                               |t
          ¦  «         d S r5   )rr   r5  r¶  r$   râ   rä   r³  s     r&   Útest_SigningKey_sign_digestr»  8  s7   € å
�.Š.˜˜¥Ñ+Ô+Ñ
,Ô
,€Cå‡I‚Iˆc•4ÑÔÐÐÐr(   c                  ó¾   — t          j        t          j        dz
  t          ¬¦  «        } | j        }|                      d¦  «        }|                     |d¦  «        sJ ‚d S )Nr   r{   s   hello)r   r  r   re  r©   r  râ   )rr   r$   rå   s      r&   Ú#test_SigningKey_with_unlikely_valuer½  ?  sW   € Ý	Ô	(­¬¸!Ñ);Å8Ð	LÑ	LÔ	L€BØ	Ô	€BØ
�'Š'�(Ñ
Ô
€CØ�9Š9�S˜(Ñ#Ô#Ð#Ð#Ð#Ð#Ð#r(   c                  ó’  — t           } t          |                      ¦   «         |                      ¦   «         |                      ¦   «         |                      ¦   «         ¦  «        } t          d|                      ¦   «         | d¦  «        }t          j        d|¦  «        }t          j        dt          ¦  «        }|j
        |j
        k    sJ ‚d S )Nr   )
r   é   é$   r¿  r¿  r[  é   r   r   r   é   )r   r   ru   r/   r0   re  r   r   r  r   r  )r´   ru   rr   rv   s       r&   Ú+test_SigningKey_with_custom_curve_old_pointrÃ  F  s®   € Ý)€IÝØ�ŠÑÔØ�Š‰ŒØ�Š‰ŒØ�ŠÑÔñ	ô €Iõ ØØ�ŠÑÔØØ'ñ	ô €Eõ 
Ô	(¨¨UÑ	3Ô	3€Bå
Ô
)¨"­oÑ
>Ô
>€CàŒ:˜œÒ$Ð$Ð$Ð$Ð$Ð$r(   c                  ó’   — t          j        dt          ¦  «        } t          j        dt          ¦  «        }| j        |j        k    rJ ‚d S )Nr[  )r   r  r   r   r©   ©r÷   rv   s     r&   Ú2test_VerifyingKey_inequality_with_different_curvesrÆ  ]  sC   € Ý
Ô
)¨!­_Ñ
=Ô
=€CÝ
Ô
)¨!­XÑ
6Ô
6€CàÔ! SÔ%6Ò6Ð6Ð6Ð7Ð6Ð6r(   c                  ó’   — t          j        dt          ¦  «        } t          j        dt          ¦  «        }| j        |j        k    rJ ‚d S )Nr[  r¿  )r   r  r   r©   rÅ  s     r&   Ú9test_VerifyingKey_inequality_with_different_secret_pointsrÈ  d  sC   € Ý
Ô
)¨!­_Ñ
=Ô
=€CÝ
Ô
)¨!­_Ñ
=Ô
=€CàÔ! SÔ%6Ò6Ð6Ð6Ð7Ð6Ð6r(   c                  óV   — d} t          j        | ¦  «        }|j        t          k    sJ ‚d S )Nz·-----BEGIN PRIVATE KEY-----
    MFMCAQEwBQYDK2VwBCIEICc2F2ag1n1QP0jY+g9qWx5sDkx0s/HdNi3cSRHw+zsI
    oSMDIQA+HQ2xCif8a/LMWR2m5HaCm5I2pKe/cc8OiRANMHxjKQ==
    -----END PRIVATE KEY-----)r   rq   ru   r   )Úpemrr   s     r&   Ú&test_SigningKey_from_pem_pkcs8v2_EdDSArË  k  s4   € ð!€Cõ
 
Ô	˜SÑ	!Ô	!€BØŒ8•wÒÐÐÐÐÐr(   )eÚ	unittest2ÚunittestÚImportErrorr6   Ú	NameErrorÚ
memoryviewrK  rD   Úpytestr‘   Úkeysr   r   r   r   r�  r   r	   r
   r   r   r   r   Úutilr   r   r   r   r   r   Úcurvesr   r   r   r   r   Úellipticcurver   r   r   r   Úecdsar   ÚTestCaser    rk   rõ   rV  rw   r"   ro   rp   r‰   rr   r©   r$   rä   ro  rb  ÚupdateÚdigestr¶  r  Úsig_rawÚsig_derÚsig_stringsÚ	verifiersr<   Úmodifierr�  rŒ  Ú
sig_formatrš  r›  rœ  râ   r–  Úmethod_namerž  rŸ  ÚappendÚparamrü   ÚmarkÚparametrizer   r©  Ú
convertersr§  r¬  r¯  r²  r´  r·  r¹  r»  r½  rÃ  rÆ  rÈ  rË  ri   r(   r&   ú<module>ræ     s  ððØ Ð Ð Ð Ð øØð ð ð Ø€O€O€O€O€OðøøøðØ
€F€FøØð ð ð Ø€F€F€Fðøøøð 
€	€	€	Ø €€€Ø €€€Ø €€€ðð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð EÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ðX6ð X6ð X6ð X6ð X6 Ô!2ñ X6ô X6ð X6ðv|.ð |.ð |.ð |.ð |.˜hÔ/ñ |.ô |.ð |.ð~U&ð U&ð U&ð U&ð U&�XÔ&ñ U&ô U&ð U&ðp
4@ð 4@ð 4@ð 4@ð 4@�xÔ(ñ 4@ô 4@ð 4@ðr%ð ð ˆE�+ÑÔ€	Ø€z�)˜UÑ#Ô#Ð #Ð #Ð#Ø€ZÔ˜Ñ#Ô#€ØÔ€ð*ð ð €sˆ4�y„y�1�}˜ÒÐÐÐØ€w„|�~„~€Ø ‡‚ˆDÑ Ô Ð Ø�KŠK‰MŒM€	Ø€z�)˜UÑ#Ô#Ð #Ð #Ð#Ø
�'Š'�$Ð"2ˆ'Ñ
3Ô
3€Ø€z�'˜5Ñ!Ô!Ð !Ð !Ð!Ø
�'Š'�$ -ˆ'Ñ
0Ô
0€Ø€z�'˜5Ñ!Ô!Ð !Ð !Ð!Ø�gŠg�dÐ&7ˆgÑ8Ô8€Ø€z�+˜a”. %Ñ(Ô(Ð (Ð (Ð(à€	àˆkˆkÐØ˜Ð Ø�)ÐØÐ;Ð;Ð<ØÐ:Ð:Ð;Ø&Ð(MÐ(MÐNØÐ9Ð9Ð:Ø%Ð'LÐ'LÐMð	ð &ð &�M€Hˆcð �ÐÐØˆ{ˆˆàˆà	�Ð)Ð+<Ð+<Ð=Ø	�˜Ð(9Ð(9Ð:àØØØ/Ð/ð		
ð	6ð ð Ñ1ˆ
�I˜w¨	ð �r”y $Ð'Ø˜bÔ.°	Ð:ð0
ð 	ð 	Ñ+ˆK˜ 8ð ×ÒØ�”ØØØØØØØ$×+Ò+¨H°jÀ+ÑNÔNðñ ô ñ
ô 
ð 
ð 
ð		ðð6 „×ÒØ7¸ñô ð;ð ;ñô ð;ð#ð ð €sˆ=ÑÔ˜RÒÐÐÐØ€
àˆkˆkÐØ˜Ð Ø�)ÐØÐ;Ð;Ð<ØÐ:Ð:Ð;Ø&Ð(MÐ(MÐNØÐ9Ð9Ð:Ø%Ð'LÐ'LÐMð	ð 
:ð 
:Ñ€Hˆgð ×Ò�l�f”l 7¨xÐ8Ñ8Ô8Ñ9Ô9Ð9Ð9ð „×Ò˜ JÑ/Ô/ð+ð +ñ 0Ô/ð+ð%ð ð ˆE�+ÑÔ€	Ø€z�)˜UÑ#Ô#Ð #Ð #Ð#ð „×Ò˜ J¨s°¨s¤OÑ4Ô4ð+ð +ñ 5Ô4ð+ð 4€ð „×Ò˜ JÑ/Ô/ðð ñ 0Ô/ðð „×Ò˜ JÑ/Ô/ðð ñ 0Ô/ðð „×Ò˜ JÑ/Ô/ðð ñ 0Ô/ðð „×Ò˜ JÑ/Ô/ðð ñ 0Ô/ðð$ð $ð $ð%ð %ð %ð.8ð 8ð 8ð8ð 8ð 8ðð ð ð ð s   ‚ ‡	’— š$£$