hyb
2026-01-30 15bc7727b58bf9ca0c8f21702fa893daac232b8d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
Ë
ž¬`iRzã ó¶—ddlZddlZddlZddlmZmZddlmZddlm    Z    ddl
m Z ddl m Z ddlmZmZddlmZdd    lmZmZmZmZmZGd
„d ej2«Zed d dd„d„d„d„d„dœ«xsgZee«D]¸\ZZeee «r)ejBde«Z"e"sJ‚e"jGd«Z$Œ8e jJe$ejLejN¬«Z(e jJe$ejR¬«Z*ejVZ,e(e*e,fd„Z-e(e*e,fd„Z.e/edeze-«edk(sŒ¬e/edeze.«ŒºGd„dej2«Z0Gd„d ej2«Z1Gd!„d"ej2«Z2Gd#„d$ej2«Z3Gd%„d&ej2«Z4Gd'„d(ej2«Z5ifd)„Z6e7d*k(rd+„Z8ejrd,¬-«yy).éN)ÚhexlifyÚ    unhexlify)Úbord)ÚSHA256)ÚECC)Úlist_test_cases)Úload_test_vectorsÚload_test_vectors_wycheproof)ÚDH)Ú key_agreementÚimport_x25519_public_keyÚimport_x25519_private_keyÚimport_x448_public_keyÚimport_x448_private_keycó —eZdZy)ÚFIPS_ECDH_Tests_KATN)Ú__name__Ú
__module__Ú __qualname__©óõuH:\项目\archive\测试组\脚本\Change_password\venv_build\Lib\site-packages\Crypto/SelfTest/Protocol/test_ecdh.pyrrs„Ørr)ÚProtocolzKAS_ECC_CDH_PrimitiveTest.txtz-ECC CDH Primitive (SP800-56A Section 5.7.1.2)có—t|d«S©Né©Úint©Úxs rú<lambda>r!ó €¼CÀÀ2»J€rcó—t|d«Srrrs rr!r!r"rcó—t|d«Srrrs rr!r!s €¼#¸aÀ»*€rcó—t|d«Srrrs rr!r! ó €¼3¸qÀ"»:€rcó—t|d«Srrrs rr!r!!r&r)ÚqcavsxÚqcavsyÚdiutÚqiutxÚqiutyz\[([A-Za-z0-9-]+)\]é)ÚcurveÚpoint_xÚpoint_y©r.ÚdcóF—t||d„¬«}|j||«y)Ncó—|S©Nrrs rr!zecdh_test.<locals>.<lambda>=ó€˜a€r©Ú
static_pubÚ static_privÚkdf©r Ú assertEqual©ÚselfÚ
public_keyÚ private_keyÚ exp_responseÚzs     rÚ    ecdh_testrC6ó)€ô Ø%Ø'Ùô !ˆð     ×ј˜LÕ)rcóF—t||d„¬«}|j||«y)Ncó—|Sr5rrs rr!zecdh_test_rev.<locals>.<lambda>Gr6rr7r;r=s     rÚ ecdh_test_revrG@rDrztest_verify_positive_%dztest_verify_positive_rev_%dcó.—eZdZdZd„Zd„Zd„Zd„Zd„Zy)ÚTestVectorsECDHWycheproofzWycheproof ECDH testscóh—d„}d„}td|d|zd|id|i¬«}|xj|z c_y)Ncó —|dS)Nr.r©Úgs rr.z2TestVectorsECDHWycheproof.add_tests.<locals>.curveUs €ØW‘:Ð rcó —t|dd«S)NÚprivaterr©Úus rrOz4TestVectorsECDHWycheproof.add_tests.<locals>.privateXs€Üq˜‘| RÓ(Ð (r©rÚ
wycheproofúWycheproof ECDH (%s)r.rO©Ú    group_tagÚunit_tag©r
Útv)r>Úfilenamer.rOÚresults     rÚ    add_testsz#TestVectorsECDHWycheproof.add_testsSsI€ò    ò    )ô.Ð.HØ.6Ø.DØ08ñ/9à9@À%Ð8HØ8AÀ7Ð7Kô 0ˆð     Š6ÑŽrcó0—g|_d|_|jd«|jd«|jd«|jd«|jd«|jd«|jd«|jd«y)    Nz ecdh_secp224r1_ecpoint_test.jsonz ecdh_secp256r1_ecpoint_test.jsonz ecdh_secp384r1_ecpoint_test.jsonz ecdh_secp521r1_ecpoint_test.jsonzecdh_secp224r1_test.jsonzecdh_secp256r1_test.jsonzecdh_secp384r1_test.jsonzecdh_secp521r1_test.json)rYÚdescr\©r>s rÚsetUpzTestVectorsECDHWycheproof.setUpdsx€ØˆŒØˆŒ    à ‰Ð9Ô:Ø ‰Ð9Ô:Ø ‰Ð9Ô:Ø ‰Ð9Ô:à ‰Ð1Ô2Ø ‰Ð1Ô2Ø ‰Ð1Ô2Ø ‰Ð1Õ2rcó—|jSr5©r^r_s rÚshortDescriptionz*TestVectorsECDHWycheproof.shortDescriptionró €Øy‰yÐrcó¶—t|j«dk(ry    t|jd«dk(r,tj|j|j
¬«}ntj|j«}tj|j
|j¬«}    t||d„¬«}|j||j«|jsJ‚y#t $r|js|jrJ‚YywxYw#t $r|jrJ‚Yyt$r'}|jrJ‚dt|«vsJ‚Yd}~yd}~wwxYw)Nré)Ú
curve_namer1có—|Sr5rrs rr!z7TestVectorsECDHWycheproof.test_verify.<locals>.<lambda>ˆó€¨A€rr7úincompatible curve)ÚlenÚpublicrrÚ
import_keyr.Ú
ValueErrorÚwarningÚvalidÚ    constructrOr r<ÚsharedÚ    TypeErrorÚstr)r>rYr?r@rBÚes      rÚ test_verifyz%TestVectorsECDHWycheproof.test_verifyus€ä ˆry‰y‹>˜QÒ Ø ð    ÜB—I‘I˜a‘LÓ! QÒ&Ü Ÿ^™^¨B¯I©IÀ"Ç(Á(ÔK‘
ä Ÿ^™^¨B¯I©IÓ6
ô
—m‘m¨"¯(©(°b·j±jÔAˆ ð     Ü¨Ø*5Ù"-ô/ˆAð × Ñ ˜Q §    ¡    Ô *Ø—8’8ˆO‘8øô#ò    Ø—:’: R§X¢XÐ -Ð-Ù ð    ûôò     Ø—x’xÐ <‘xÜò    2Ø—x’xÐ <Ø'¬3¨q«6Ñ1Ð 1Õ1ûð    2ús0›A&C'Â-DÃ'#D Ä D ÄEÄ)EÄ1EÅEcóž—|jD]>}d|j|j|jfz|_|j |«Œ@y)Nz(Wycheproof ECDH Verify Test #%d (%s, %s)©rYÚidÚcommentrZr^rv©r>rYs  rÚrunTestz!TestVectorsECDHWycheproof.runTest’sE€Ø—'‘'ò    !ˆBØBÀbÇeÁeÈRÏZÉZÐY[×YdÑYdÐEeÑeˆDŒIØ × Ñ ˜RÕ  ñ    !rN)    rrrr^r\r`rcrvr|rrrrIrIOs „à "€Dòò" 3òòó:!rrIcó—eZdZejd«Zejd«j «Zejd«Zejd«Z    d„Z
d„Z d„Z d„Z d    „Zd
„Zd „Zd „Zd „Zd„Zd„Zd„Zy)Ú
ECDH_Testszð-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg9VHFVKh2a1aVFifH
+BiyNaRa2kttEg3165Ye/dJxJ7KhRANCAARImIEXro5ZOcyWU2mq/+d79FEZXtTA
bKkz1aICQXihQdCMzRNbeNtC9LFLzhu1slRKJ2xsDAlw9r6w6vwtkRzr
-----END PRIVATE KEY-----zð-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgHhmv8zmZ+Nw8fsZd
s8tlZflyfw2NE1CRS9DWr3Y3O46hRANCAAS3hZVUCbk+uk3w4S/YOraEVGG+WYpk
NO/vrwzufUUks2GV2OnBQESe0EBk4Jq8gn4ij8Lvs3rZX2yT+XfeATYd
-----END PRIVATE KEY-----zð-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgGPdJmFFFKzLPspIr
E1T2cEjeIf4ajS9CpneP0e2b3AyhRANCAAQBexAA5BYDcXHs2KOksTYUsst4HhPt
kp0zkgI2virc3OGJFNGPaCCPfFCQJHwLRaEpiq3SoQlgoBwSc8ZPsl3y
-----END PRIVATE KEY-----zð-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQghaVZXElSEGEojFKF
OU0JCpxWUWHvWQUR81gwWrOp76ShRANCAATi1Ib2K+YR3AckD8wxypWef7pw5PRw
tBaB3RDPyE7IjHZC6yu1DbcXoCdtaw+F5DM+4zpl59n5ZaIy/Yl1BdIy
-----END PRIVATE KEY-----có„—d„}t||j|j¬«}|jt    |«d«y)NcóH—tj|«j«Sr5©rÚnewÚdigestrs rr!z#ECDH_Tests.test_1.<locals>.<lambda>£ó€œŸ
™
 1› ×,Ñ,Ó.€r)r:r8r9s@3960a1101d1193cbaffef4cc7202ebff783c22c6d2e0d5d530ffc66dc197ea9c)r r8r9r<r©r>r:rBs   rÚtest_1zECDH_Tests.test_1¡s>€á.ˆÜ ØØŸ?™?Ø ×,Ñ,ô .ˆð     ×Ñœ ›Ø\õ    ^rcó°—d„}t||j|j|j|j¬«}|j t |«d«y)NcóH—tj|«j«Sr5rrs rr!z#ECDH_Tests.test_2.<locals>.<lambda>­r„r)r:r8r9Úeph_pubÚeph_privs@7447b733d40c8fab2c633b3dc61e4a8c742f3a6af7e16fb0cc486f5bdb5d6ba2)r r8r9r‰rŠr<rr…s   rÚtest_2zECDH_Tests.test_2«sL€á.ˆÜ ØØŸ?™?Ø ×,Ñ,ØŸ ™ ØŸ™ô  (ˆð      ×Ñœ ›Ø\õ    ^rcóš—d„}t||j|j|j¬«}|j    t |«d«y)NcóH—tj|«j«Sr5rrs rr!z#ECDH_Tests.test_3.<locals>.<lambda>¹r„r)r:r8r9rŠs@9e977ae45f33bf67f285d064d83e6632bcafe3a7d33fe571233bab4794ace759)r r8r9rŠr<rr…s   rÚtest_3zECDH_Tests.test_3·sE€á.ˆÜ ØØŸ?™?Ø ×,Ñ,ØŸ™ô     (ˆð
     ×Ñœ ›Ø\õ    ^rcóš—d„}t||j|j|j¬«}|j    t |«d«y)NcóH—tj|«j«Sr5rrs rr!z#ECDH_Tests.test_4.<locals>.<lambda>Är„r)r:r8r9r‰s@c9532df6aa7e9dbe5fe85da31ee25ff19c179c88691ec4b8328cc2036dcdadf2)r r8r9r‰r<rr…s   rÚtest_4zECDH_Tests.test_4ÂsE€á.ˆÜ ØØŸ?™?Ø ×,Ñ,ØŸ ™ ô     &ˆð
     ×Ñœ ›Ø\õ    ^rcó„—d„}|jtt||j|j|j
¬«y)NcóH—tj|«j«Sr5rrs rr!z#ECDH_Tests.test_5.<locals>.<lambda>Ïr„r)r:r9r‰rŠ)Ú assertRaisesrnr r9r‰rŠ©r>r:s  rÚtest_5zECDH_Tests.test_5Ís9€á.ˆØ ×Ñœ*ÜØØ ×,Ñ,ØŸ ™ ØŸ™ð     õ    (rcó„—d„}|jtt||j|j|j
¬«y)NcóH—tj|«j«Sr5rrs rr!z#ECDH_Tests.test_6.<locals>.<lambda>Ùr„r)r:r8r‰rŠ)r”rnr r8r‰rŠr•s  rÚtest_6zECDH_Tests.test_6×s7€á.ˆØ ×Ñœ*ÜØØŸ?™?ØŸ ™ ØŸ™ð     õ    (rcó„—d„}t||j|j¬«}|jt    |«d«y)NcóH—tj|«j«Sr5rrs rr!z#ECDH_Tests.test_7.<locals>.<lambda>ãr„r)r:r‰rŠs@feb257ebe063078b1391aac07913283d7b642ad7df61b46dfc9cd6f420bb896a)r r‰rŠr<rr…s   rÚtest_7zECDH_Tests.test_7ás<€á.ˆÜ ØØŸ ™ ØŸ™ô (ˆð     ×Ñœ ›Ø\õ    ^rcó„—d„}t||j|j¬«}|jt    |«d«y)NcóH—tj|«j«Sr5rrs rr!z#ECDH_Tests.test_8.<locals>.<lambda>ír„r)r:r9r‰s@ee4dc995117476ed57fd17ff0ed44e9f0466d46b929443bc0db9380317583b04)r r9r‰r<rr…s   rÚtest_8zECDH_Tests.test_8ës>€á.ˆÜ ØØ ×,Ñ,ØŸ ™ ô &ˆð     ×Ñœ ›Ø\õ    ^rcó„—d„}t||j|j¬«}|jt    |«d«y)NcóH—tj|«j«Sr5rrs rr!z#ECDH_Tests.test_9.<locals>.<lambda>÷r„r)r:r8rŠs@2351cc2014f7c40468fa072b5d30f706eeaeef7507311cd8e59bab3b43f03c51)r r8rŠr<rr…s   rÚtest_9zECDH_Tests.test_9õs<€á.ˆÜ ØØŸ?™?ØŸ™ô (ˆð     ×Ñœ ›Ø\õ    ^rcón—d„}|jtt||j|j¬«y)NcóH—tj|«j«Sr5rrs rr!z$ECDH_Tests.test_10.<locals>.<lambda>r„r)r:r8r‰)r”rnr r8r‰r•s  rÚtest_10zECDH_Tests.test_10ÿs0€á.ˆØ ×Ñœ*ÜØØŸ?™?ØŸ ™ ð        õ    &rcón—d„}|jtt||j|j¬«y)NcóH—tj|«j«Sr5rrs rr!z$ECDH_Tests.test_11.<locals>.<lambda>
r„r)r:r9rŠ)r”rnr r9rŠr•s  rÚtest_11zECDH_Tests.test_11s2€á.ˆØ ×Ñœ*ÜØØ ×,Ñ,ØŸ™ð        õ    (rcóf—|jtt|j|j¬«y)N)r8r9)r”rnr r8r9r_s rÚtest_12zECDH_Tests.test_12s*€à ×Ñœ*ÜØŸ?™?Ø ×,Ñ,ð    õ    .rN)rrrrrmr9r?r8rŠr‰r†r‹rŽr‘r–r™rœrŸr¢r¥r¨rªrrrr~r~˜s³„ࠐ#—.‘.ð"XóY€Kؐ—‘ð!WóX÷cñcóe€Jàˆs~‰~ðUóV€Hàˆcn‰nðTóU€Gò^ò
^ò    ^ò    ^ò(ò(ò^ò^ò^ò&ò(ó.rr~có$—eZdZd„Zd„Zd„Zd„Zy)Ú X25519_Testscóê—d}|D]l\}}}tjt|««}tjt|««}t    ||d„¬«}|j |t|««Œny)N))Ú@a546e36bf0527c9d3b16154b82465edd62144c0ac1fc5a18506a2244ba449ac4Ú@e6db6867583030db3594c1a424b15f7c726624ec26b3353b10a903a6d0ab1c4cÚ@c3da55379de9c6908e94ea4df28d084f32eccf03491c71f754b4075577a28552)Ú@4b66e9d4d1b4673c5ad22691957d6af5c11b6421e0ea01d42ca4169e7918ba0dÚ@e5210f12786811d3f4b7959d0538ae2c31dbe7106fc03c3efc4cd549c715a493Ú@95cbde9476e8907d7aade45cb4b873f88b595a68799fa152e6f8f7647aac7957có—|Sr5rrs rr!z-X25519_Tests.test_rfc7748_1.<locals>.<lambda>*ó€°€rr7©r rrr r r<©r>ÚtvsÚtv1Útv2Útv3Úpriv_keyÚpub_keyr[s        rÚtest_rfc7748_1zX25519_Tests.test_rfc7748_1sp€ð
ˆð!ò    5‰MˆCcÜ×3Ñ3´I¸c³NÓCˆHÜ×1Ñ1´)¸C³.ÓAˆGÜ"¨gØ/7Ù'2ô4ˆFð × Ñ ˜V¤Y¨s£^Õ 4ñ     5rcóŽ—td«}tj|«}tj|«}t    ||d„¬«}|j |td««t d«D]=}tj|«}tj|«}|}t    ||d„¬«}Œ?|j |td««y)NÚ@0900000000000000000000000000000000000000000000000000000000000000có—|Sr5rrs rr!z-X25519_Tests.test_rfc7748_2.<locals>.<lambda>4ó€¨Q€rr7Ú@422c8e7a6227d7bca1350b3e2bb7279f7897b87bb6854b783c60e80311ae3079éçcó—|Sr5rrs rr!z-X25519_Tests.test_rfc7748_2.<locals>.<lambda>@rµrÚ@684cf59ba83309552800ef566f2f4d3c1c3887c49360e3875f2eb94d99532c51)rr rr r r<Úrange©r>Úkr¼r½r[Ú_s      rÚtest_rfc7748_2zX25519_Tests.test_rfc7748_2-sÃ€Ü ÐXÓ Yˆä×/Ñ/°Ó2ˆÜ×-Ñ-¨aÓ0ˆÜ¨'Ø+3Ù#.ô0ˆð     ×ÑØ Ü ÐXÓ Yô    
ô
s“ò    4ˆAÜ×3Ñ3°FÓ;ˆHÜ×1Ñ1°!Ó4ˆG؈AÜ"¨gØ/7Ù'2ô4‰Fð        4ð     ×ÑØ Ü ÐXÓ Yõ    
rcó¢—d}d}d}d}d}tjt|««}tjt|««}tjt|««}tjt|««}    t|«}
t    ||d„¬«} t    |    |d„¬«} |j | |
«|j | |
«y)    NÚ@77076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c2aÚ@8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6aÚ@5dab087e624a8a4b79e17f8b83800ee66f3bb1292618b6fd1c2f8b27ff88e0ebÚ@de9edb7d7b7dc1b4d35b61c2ece435373f8343c85b78674dadfc7e146f882b4fÚ@4a5d9d5ba4ce2de1728e3bf480350f25e07e21c947d19e3376f09b3c1e161742có—|Sr5rrs rr!z-X25519_Tests.test_rfc7748_3.<locals>.<lambda>Vó€¨a€rr7có—|Sr5rrs rr!z-X25519_Tests.test_rfc7748_3.<locals>.<lambda>YrÓrr¶© r>r¹rºr»Útv4Útv5Úalice_priv_keyÚ alice_pub_keyÚ bob_priv_keyÚ bob_pub_keyÚsecretÚresult1Úresult2s              rÚtest_rfc7748_3zX25519_Tests.test_rfc7748_3Gs¼€ØPˆØPˆØPˆØPˆØPˆä×5Ñ5´iÀ³nÓEˆÜ×3Ñ3´I¸c³NÓCˆ Ü×3Ñ3´I¸c³NÓCˆ Ü×1Ñ1´)¸C³.ÓAˆ ܘ3“ˆä¨=Ø,8Ù$/ô1ˆô ¨;Ø,:Ù$/ô1ˆð     ×ј &Ô)Ø ×ј &Õ)rcór—d}|D]0}|jttjt    |««Œ2y)N)Ú@0000000000000000000000000000000000000000000000000000000000000000Ú@0100000000000000000000000000000000000000000000000000000000000000Ú@e0eb7a7c3b41b8ae1656e3faf19fc46ada098deb9c32b1fd866205165f49b800Ú@5f9c95bca3508c24b1d0b1559c83ef5b04445cc4581c8e86d8224eddd09f1157Ú@ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fÚ@edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fÚ@eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f)r”rnr r r©r>Ú    weak_keysr s   rÚ    test_weakzX25519_Tests.test_weak]s:€ð
ˆ    ð&ò    ,ˆAØ × Ñ œjÜ ×9Ñ9Ü'¨›lõ ,ñ    ,rN©rrrr¾rËrßrêrrrr¬r¬s„ò5ò$
ò4*ó,,rr¬có$—eZdZd„Zd„Zd„Zd„Zy)Ú
X448_Testscóê—d}|D]l\}}}tjt|««}tjt|««}t    ||d„¬«}|j |t|««Œny)N))Úp3d262fddf9ec8e88495266fea19a34d28882acef045104d0d1aae121700a779c984c24f8cdd78fbff44943eba368f54b29259a4f1c600ad3Úp06fce640fa3487bfda5f6cf2d5263f8aad88334cbd07437f020f08f9814dc031ddbdc38c19c6da2583fa5429db94ada18aa7a7fb4ef8a086Úpce3e4ff95a60dc6697da1db1d85e6afbdf79b50a2412d7546d5f239fe14fbaadeb445fc66a01b0779d98223961111e21766282f73dd96b6f)Úp203d494428b8399352665ddca42f9de8fef600908e0d461cb021f8c538345dd77c3e4806e25f46d3315c44e0a5b4371282dd2c8d5be3095fÚp0fbcc2f993cd56d3305b0b7d9e55d4c1a8fb5dbb52f8e9a1e9b6201b165d015894e56c4d3570bee52fe205e28a78b91cdfbde71ce8d157dbÚp884a02576239ff7a2f2f63b2db6a9ff37047ac13568e1e30fe63c4a7ad1b3ee3a5700df34321d62077e63633c575c1c954514e99da7c179dcó—|Sr5rrs rr!z+X448_Tests.test_rfc7748_1.<locals>.<lambda>‰rµrr7©r rrrr r<r·s        rr¾zX448_Tests.test_rfc7748_1zsp€ð
ˆð!ò    5‰MˆCcÜ×1Ñ1´)¸C³.ÓAˆHÜ×/Ñ/´    ¸#³Ó?ˆGÜ"¨gØ/7Ù'2ô4ˆFð × Ñ ˜V¤Y¨s£^Õ 4ñ     5rcóŽ—td«}tj|«}tj|«}t    ||d„¬«}|j |td««t d«D]=}tj|«}tj|«}|}t    ||d„¬«}Œ?|j |td««y)NÚp0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000có—|Sr5rrs rr!z+X448_Tests.test_rfc7748_2.<locals>.<lambda>“rÂrr7Úp3f482c8a9f19b01e6c46ee9711d9dc14fd4bf67af30765c2ae2b846a4d23a8cd0db897086239492caf350b51f833868b9bc2b3bca9cf4113rÄcó—|Sr5rrs rr!z+X448_Tests.test_rfc7748_2.<locals>.<lambda>ŸrµrÚpaa3b4749d55b9daf1e5b00288826c467274ce3ebbdd5c17b975e09d4af6c67cf10d087202db88286e2b79fceea3ec353ef54faa26e219f38)rr rrr r<rÇrÈs      rrËzX448_Tests.test_rfc7748_2ŒsÕ€Ü ðIó Jˆä×-Ñ-¨aÓ0ˆÜ×+Ñ+¨AÓ.ˆÜ¨'Ø+3Ù#.ô0ˆð     ×ÑØ Ü ðIó Jô    
ô
s“ò    4ˆAÜ×1Ñ1°&Ó9ˆHÜ×/Ñ/°Ó2ˆG؈AÜ"¨gØ/7Ù'2ô4‰Fð        4ð     ×ÑØ Ü ðIó Jõ    
rcó¢—d}d}d}d}d}tjt|««}tjt|««}tjt|««}tjt|««}    t|«}
t    ||d„¬«} t    |    |d„¬«} |j | |
«|j | |
«y)    NÚp9a8f4925d1519f5775cf46b04b5800d4ee9ee8bae8bc5565d498c28dd9c9baf574a9419744897391006382a6f127ab1d9ac2d8c0a598726bÚp9b08f7cc31b7e3e67d22d5aea121074a273bd2b83de09c63faa73d2c22c5d9bbc836647241d953d40c5b12da88120d53177f80e532c41fa0Úp1c306a7ac2a0e2e0990b294470cba339e6453772b075811d8fad0d1d6927c120bb5ee8972b0d3e21374c9c921b09d1b0366f10b65173992dÚp3eb7a829b0cd20f5bcfc0b599b6feccf6da4627107bdb0d4f345b43027d8b972fc3e34fb4232a13ca706dcb57aec3dae07bdc1c67bf33609Úp07fff4181ac6cc95ec1c16a94a0f74d12da232ce40a77552281d282bb60c0b56fd2464c335543936521c24403085d59a449a5037514a879dcó—|Sr5rrs rr!z+X448_Tests.test_rfc7748_3.<locals>.<lambda>µrÓrr7có—|Sr5rrs rr!z+X448_Tests.test_rfc7748_3.<locals>.<lambda>¸rÓrrörÕs              rrßzX448_Tests.test_rfc7748_3¦sˀðAˆðAˆðAˆðAˆðAˆä×3Ñ3´I¸c³NÓCˆÜ×1Ñ1´)¸C³.ÓAˆ Ü×1Ñ1´)¸C³.ÓAˆ Ü×/Ñ/´    ¸#³Ó?ˆ ܘ3“ˆä¨=Ø,8Ù$/ô1ˆô ¨;Ø,:Ù$/ô1ˆð     ×ј &Ô)Ø ×ј &Õ)rcór—d}|D]0}|jttjt    |««Œ2y)N)Úp0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Úp0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ÚpfefffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffÚpfffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffÚp00000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff)r”rnr rrrès   rrêzX448_Tests.test_weak¼s:€ð
ˆ    ðò    ,ˆAØ × Ñ œjÜ ×7Ñ7Ü'¨›lõ ,ñ    ,rNrërrrríríxs„ò5ò$
ò4*ó, ,rrícó4—eZdZdZd„Zd„Zd„Zd„Zd„Zd„Z    y)    ÚTestVectorsX25519WycheproofzWycheproof X25519 testscóh—d„}d„}td|d|zd|id|i¬«}|xj|z c_y)Ncó —|dS©NÚtyperrLs rÚencodingz;TestVectorsX25519Wycheproof.add_tests_hex.<locals>.encodingÒó €ØV‘9Ð rcó—t|d«S©NrO©rrPs rrOz:TestVectorsX25519Wycheproof.add_tests_hex.<locals>.privateÕó€Ü˜Q˜y™\Ó*Ð *rrRrTrrOrUrX©r>rZrrOr[s     rÚ add_tests_hexz)TestVectorsX25519Wycheproof.add_tests_hexÐóI€ò    ò    +ô.Ð.HØ.6Ø.DØ08ñ/9à9CÀXÐ8NØ8AÀ7Ð7Kô 0ˆð     Š6ÑŽrc    óp—d„}d„}d„}td|d|zd|i||dœ¬«}|xj|z c_y)    Ncó —|dSrrrLs rrz=TestVectorsX25519Wycheproof.add_tests_ascii.<locals>.encodingãrrcó —|dS©NrlrrPs rrlz;TestVectorsX25519Wycheproof.add_tests_ascii.<locals>.publicæó €ØX‘;Ð rcó —|dSrrrPs rrOz<TestVectorsX25519Wycheproof.add_tests_ascii.<locals>.privateéó €ØY‘<Ð rrRrTr©rlrOrUrX©r>rZrrlrOr[s      rÚadd_tests_asciiz+TestVectorsX25519Wycheproof.add_tests_asciiáóR€ò    ò    ò     ô.Ð.HØ.6Ø.DØ08ñ/9à9CÀXÐ8NØBHØCJñ8Lô 0ˆð     Š6ÑŽrcó¨—g|_d|_|jd«|jd«|jd«|jd«y)Nzx25519_test.jsonzx25519_asn_test.jsonzx25519_pem_test.jsonzx25519_jwk_test.json©rYr^rr#r_s rr`z!TestVectorsX25519Wycheproof.setUpösL€ØˆŒØˆŒ    à ×ÑÐ-Ô.Ø ×ÑÐ1Ô2Ø ×ÑÐ3Ô4Ø ×ÑÐ3Õ4rcó—|jSr5rbr_s rrcz,TestVectorsX25519Wycheproof.shortDescriptionÿrdrcóŠ—|jdk(r-    t|j«}t|j«}nB|jdvr@    tj|j«}tj|j«}nô|jdk(rÏd|jvryd|jvryd|jvry|jjd    «d
k7ry|jjd «d k7ry|jjd «d k7ryd „}||jd«}||jd«}    t|«}t|«}ntd|j«‚    td„¬«}|j||j «|jsJ‚y#t$rE}|jsJ‚|j
sJ‚d|j vsJ‚dt|«vsJ‚Yd}~yd}~wwxYw#tj$r'}|jrJ‚dt|«vsJ‚Yd}~yd}~wt$r/|jsJ‚|j
sJ‚d|j vsJ‚YywxYw#t$rW}|jr2|j
sJ‚d|j vsJ‚dt|«vsJ‚Yd}~ydt|«vsJ‚Yd}~yd}~wt$r|jsJ‚YŒwwxYw#t$r|jrJ‚Yyt"$r'}|jrJ‚dt|«vsJ‚Yd}~yd}~wwxYw)NÚXdhCompÚLowOrderPubliczInvalid Curve25519©Ú
XdhAsnCompÚ
XdhPemCompúUnsupported ECCÚ
XdhJwkCompÚyr ÚktyÚOKPÚcrvÚX25519có°—|jdd«jdd«}dt|«dzz
}|dk7r|d|zz }tj|«}|S©Nú-ú+rÊú/rfú=©ÚreplacerkÚbase64Ú    b64decode©Ú    input_strÚpaddingÚ decoded_bytess   rÚbase64url_decodezATestVectorsX25519Wycheproof.test_verify.<locals>.base64url_decode*ó_€Ø%×-Ñ-¨c°3Ó7×?Ñ?ÀÀSÓI    Øœs 9›~°Ñ1Ñ2Ø˜a’<Ø  w¡Ñ.IÜ &× 0Ñ 0°Ó ; Ø$Ð$rr2úIncorrect lengthúUnknown encodingcó—|Sr5rrs rr!z9TestVectorsX25519Wycheproof.test_verify.<locals>.<lambda>Irirr7rj)rr rlrnrproÚflagsrtrrOrrmÚUnsupportedEccFeatureÚgetr r<rrrs©    r>rYr?rur@rCÚ
jwk_publicÚ jwk_privaterBs             rrvz'TestVectorsX25519Wycheproof.test_verifysð€à ;‰;˜)Ò #ð Ü5°b·i±iÓ@
ô4°B·J±JÓ?ŠKØ [‰[Ð8Ñ 8ð Ü Ÿ^™^¨B¯I©IÓ6
Ü!Ÿn™n¨R¯Z©ZÓ8‘ ð[‰[˜LÒ (àb—i‘iÑØØ˜"Ÿ)™)Ñ#ØØ˜"Ÿ*™*Ñ$ØØy‰y}‰}˜UÓ# uÒ,ØØy‰y}‰}˜UÓ# xÒ/ØØz‰z~‰~˜eÓ$¨Ò0Øò %ñ*¨"¯)©)°C©.Ó9ˆJÙ*¨2¯:©:°c©?Ó;ˆKð  Ü5°jÓA
Ü7¸ ÓD‘ ôÐ/°·±Ó=Ð =ð     Ü¨Ø*5Ù"-ô/ˆAð × Ñ ˜Q §    ¡    Ô *Ø—8’8ˆO‘8øôUò Ø—x’xxØ—z’zÐ!zØ'¨2¯8©8Ñ3Ð3Ð3Ø+¬s°1«vÑ5Ð5Ð5Üûð  ûô×,Ñ,ò ØŸ8š8Ð#|Ø(¬C°«FÑ2Ð2Ð2ÜûÜò Ø—x’xxØ—z’zÐ!zØ'¨2¯8©8Ñ3Ð3Ð3Ùð     ûôDò Ø—8’8ØŸ:š:Ð%˜:Ø+¨r¯x©xÑ7Ð7Ð7Ø/´3°q³6Ñ9Ð9Ð9Üà-´°Q³Ñ7Ð7Ð7ÜûÜò  Ø—x’x“xð  ûôò     Ø—x’xÐ <‘xÜò    2Ø—x’xÐ <Ø'¬3¨q«6Ñ1Ð 1Õ1ûð    2úsw‘F:Á >H ÅI>ÆK:Æ:    HÇ;HÈHÈ I;ÈIÉ8I;É:I;É>    K7Ê9KËKËK7Ë6K7Ë:MÌMÌL=Ì=Mcóž—|jD]>}d|j|j|jfz|_|j |«Œ@y©Nz)Wycheproof XECDH Verify Test #%d (%s, %s)rxr{s  rr|z#TestVectorsX25519Wycheproof.runTestSóE€Ø—'‘'ò    !ˆBØCÀrÇuÁuÈbÏjÉjÐZ\×ZeÑZeÐFfÑfˆDŒIØ × Ñ ˜RÕ  ñ    !rN©
rrrr^rr#r`rcrvr|rrrr r Ìs'„à $€Dòò"ò*5òòOób!rr có4—eZdZdZd„Zd„Zd„Zd„Zd„Zd„Z    y)    ÚTestVectorsX448WycheproofzWycheproof X448 testscóh—d„}d„}td|d|zd|id|i¬«}|xj|z c_y)Ncó —|dSrrrLs rrz9TestVectorsX448Wycheproof.add_tests_hex.<locals>.encoding_rrcó—t|d«SrrrPs rrOz8TestVectorsX448Wycheproof.add_tests_hex.<locals>.privatebrrrRrTrrOrUrXrs     rrz'TestVectorsX448Wycheproof.add_tests_hex]rrc    óp—d„}d„}d„}td|d|zd|i||dœ¬«}|xj|z c_y)    Ncó —|dSrrrLs rrz;TestVectorsX448Wycheproof.add_tests_ascii.<locals>.encodingprrcó —|dSrrrPs rrlz9TestVectorsX448Wycheproof.add_tests_ascii.<locals>.publicsrrcó —|dSrrrPs rrOz:TestVectorsX448Wycheproof.add_tests_ascii.<locals>.privatevr rrRrTrr!rUrXr"s      rr#z)TestVectorsX448Wycheproof.add_tests_asciinr$rcó¨—g|_d|_|jd«|jd«|jd«|jd«y)Nzx448_test.jsonzx448_asn_test.jsonzx448_pem_test.jsonzx448_jwk_test.jsonr&r_s rr`zTestVectorsX448Wycheproof.setUpƒsL€ØˆŒØˆŒ    à ×ÑÐ+Ô,Ø ×ÑÐ/Ô0Ø ×ÑÐ1Ô2Ø ×ÑÐ1Õ2rcó—|jSr5rbr_s rrcz*TestVectorsX448Wycheproof.shortDescriptionŒrdrcór—|jdk(r-    t|j«}t|j«}nB|jdvr@    tj|j«}tj|j«}nô|jd    k(rÏd
|jvryd |jvryd |jvry|jjd «d k7ry|jjd«dk7ry|jjd«dk7ryd„}||jd «}||jd«}    t|«}t|«}ntd|j«‚    td„¬«}|j!||j"«|jsJ‚y#t$rl}|jsJ‚|j
sJ‚t |j«dk(rd|jvsJ‚dt|«vsJ‚dt|«vsJ‚Yd}~yd}~wwxYw#tj$r'}|jrJ‚dt|«vsJ‚Yd}~yd}~wt$rD}|jsJ‚|j
sJ‚d|jvsd|jvsJ‚Yd}~yd}~wwxYw#t$r}|jrj|j
sJ‚t |jd «dk(r-d|jvsd|jvsJ‚dt|«vsJ‚dt|«vsJ‚Yd}~ydt|«vsJ‚Yd}~yd}~wt$r|jsJ‚YŒëwxYw#t$r|jrJ‚Yyt$$r'}|jrJ‚dt|«vsJ‚Yd}~yd}~wwxYw)Nr)é8r*zInvalid Curve448zIncorrect Curve448r+r.ÚNonCanonicalPublicr/r0r r1r2r3ÚX448có°—|jdd«jdd«}dt|«dzz
}|dk7r|d|zz }tj|«}|Sr6r;r?s   rrCz?TestVectorsX448Wycheproof.test_verify.<locals>.base64url_decodeºrDrr2éKrErFcó—|Sr5rrs rr!z7TestVectorsX448Wycheproof.test_verify.<locals>.<lambda>Ýrirr7rj)rrrlrnrprorkrHrtrrOrrmrIrJr r<rrrsrKs             rrvz%TestVectorsX448Wycheproof.test_verifysX€à ;‰;˜)Ò #ð
Ü3°B·I±IÓ>
ô2°"·*±*Ó=ŠKØ [‰[Ð8Ñ 8ð Ü Ÿ^™^¨B¯I©IÓ6
Ü!Ÿn™n¨R¯Z©ZÓ8‘ ð[‰[˜LÒ (àb—i‘iÑØØ˜"Ÿ)™)Ñ#ØØ˜"Ÿ*™*Ñ$ØØy‰y}‰}˜UÓ# uÒ,ØØy‰y}‰}˜UÓ# vÒ-ØØz‰z~‰~˜eÓ$¨Ò.Øò %ñ*¨"¯)©)°C©.Ó9ˆJÙ*¨2¯:©:°c©?Ó;ˆKð  Ü3°JÓ?
Ü5°kÓB‘ ô"Ð/°·±Ó=Ð =ð     Ü¨Ø*5Ù"-ô/ˆAð × Ñ ˜Q §    ¡    Ô *Ø—8’8ˆO‘8øôcò Ø—x’xxØ—z’zÐ!zܐr—y‘y“> RÒ'Ø+¨r¯x©xÑ7Ð7Ð7Ø-´°Q³Ñ7Ð7Ð7à/´3°q³6Ñ9Ð9Ð9Üûð ûô×,Ñ,ò ØŸ8š8Ð#|Ø(¬C°«FÑ2Ð2Ð2ÜûÜò Ø—x’xxØ—z’zÐ!zØ'¨2¯8©8Ñ3Ð7KÈrÏxÉxÑ7WÐWÐWÜûð     ûôDò Ø—8’8ØŸ:š:Ð%˜:ܘ2Ÿ9™9 S™>Ó*¨bÒ0Ø/°2·8±8Ñ;Ø3°r·x±xÑ?ð@ð @à1´S¸³VÑ;Ð;Ð;à3´s¸1³vÑ=Ð=Ð=Üà-´°Q³Ñ7Ð7Ð7ÜûÜò  Ø—x’x“xð  ûôò     Ø—x’xÐ <‘xÜò    2Ø—x’xÐ <Ø'¬3¨q«6Ñ1Ð 1Õ1ûð    2ús‘F:Á >H2ÅJ:ÆM.Æ:    H/ÇA"H*È*H/È2J7ÉI'É' J7É3:J2Ê2J7Ê:    M+ËA1M Ì9M Í M+Í*M+Í.N6ÎN6ÎN1Î1N6cóž—|jD]>}d|j|j|jfz|_|j |«Œ@yrOrxr{s  rr|z!TestVectorsX448Wycheproof.runTestçrPrNrQrrrrSrSYs'„à "€Dòò"ò*3òòVóp!rrScó—g}|tt«z }|t«gz }|tt«z }|tt«z }|tt
«z }|t «gz }|t«gz }|jd«}|r    |S)NÚ
slow_tests)    rrrIr~r¬rír rSrJ)ÚconfigÚtestsrfs   rÚ    get_testsriís€à €EØ    Œ_Ô0Ó 1Ñ1€EØ    Ô'Ó)Ð *Ñ*€EØ    Œ_œZÓ (Ñ(€EØ    Œ_œ\Ó *Ñ*€EØ    Œ_œZÓ (Ñ(€EØ    Ô)Ó+Ð ,Ñ,€EØ    Ô'Ó)Ð *Ñ*€Eà—‘˜LÓ)€JÙØ à €LrÚ__main__có<—tjt««Sr5)ÚunittestÚ    TestSuiterirrrÚsuiterns€Ü×!Ñ!¤)£+Ó.Ð.rrn)Ú defaultTest):Úrer=rlÚbinasciirrÚCrypto.Util.py3compatrÚ Crypto.HashrÚCrypto.PublicKeyrÚCrypto.SelfTest.st_commonrÚCrypto.SelfTest.loaderr    r
ÚCrypto.Protocolr ÚCrypto.Protocol.DHr r rrrÚTestCaserÚtest_vectors_verifyÚ    enumerateÚidxrYÚ
isinstancertÚmatchÚresÚgrouprgrqr(r)r?r*r@ÚziutrArCrGÚsetattrrIr~r¬rír rSrirrnÚmainrrrú<module>r„sðÛ    Û Ûß'å&åÝ Ý5ßRå÷9õ9ô    ˜(×+Ñ+ô    ñ(¨Ø(GØ(Wá2FÙ2FÙ0DÙ1EÙ1Eñ )*ó    +ò    1ð/1ðñÐ,Ó-ò(YG€Cˆñ"cÔØˆbh‰hÐ-¨rÓ2ˆÙˆ
ˆsØ—Y‘Y˜q“\ˆ
Øà—‘ ZØ')§y¡yØ')§y¡yô2€Jð #—-‘- jØ"$§'¡'ô+€Kð—7‘7€Lð(Ø)Ø+ó*ð",Ø"-Ø#/ó*ñ Ð Ð!:¸SÑ!@À)ÔLØ
ˆaƒxÙÐ#Ð%BÀSÑ%HÈ-ÕXðQ(YôVF! × 1Ñ 1ôF!ôR~.×"Ñ"ô~.ôB\,8×$Ñ$ô\,ô~Q,×"Ñ"ôQ,ôhJ! (×"3Ñ"3ôJ!ôZQ! × 1Ñ 1ôQ!ðhóð$ ˆzÒò/à€H‡MM˜gÖ&ðr