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
Ë
ž¬`iw&ãóҗdZddlZddl­ddlZddlmZmZmZd„ZGd„dej«Z
Gd„d    ej«Z ifd
„Z e d k(rd „Zejd ¬«yy)z(Self-test suite for Crypto.PublicKey.DSAéN)Ú*)Úlist_test_casesÚa2b_hexÚb2a_hexcó°—t|t«rdj|j««St    d«j|j««S)z,Remove whitespace from a text or byte stringÚ)Ú
isinstanceÚstrÚjoinÚsplitÚb)Úss õuH:\项目\archive\测试组\脚本\Change_password\venv_build\Lib\site-packages\Crypto/SelfTest/PublicKey/test_DSA.pyÚ_swsr!s:€ä!”CÔØw‰wq—w‘w“yÓ!Ð!䐋uz‰z˜!Ÿ'™'›)Ó$Ð$ócó—eZdZed«Zed«Zed«Zed«Zed«Zed«Z    ed«Z
e e d««Z ed    «Zed
«Zed «Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zy)ÚDSATestz¯19131871 d75b1612 a819f29d 78d1b0d7 346f7aa7 7bb62a85
                9bfd6c56 75da9d21 2d3a36ef 1672ef66 0b8c7c25 5cc0ec74
                858fba33 f44c0669 9630a76b 030ee333z¯626d0278 39ea0a13 413163a5 5b4cb500 299d5522 956cefcb
                3bff10f3 99ce2c2e 71cb9de5 fa24babf 58e5b795 21925c9c
                c42e9f6f 464b088c c572af53 e6d78802z¯8df2a494 492276aa 3d25759b b06869cb eac0d83a fb8d0cf7
                cbb8324f 0d7882e5 d0762fc5 b7210eaf c2e9adac 32ab7aac
                49693dfb f83724c2 ec0736ee 31c80291z,c773218c 737ec8ee 993b4f2d ed30f48e dace915fz,2070b322 3dba372f de1c0ffc 7b2e3b49 8b260614z,358dad57 1462710f 50e254cf 1a376b2b deaadfbfz,0d516729 8202e49b 4116ac10 4fc3f415 ae52f917Úabcz,a9993e36 4706816a ba3e2571 7850c26c 9cd0d89dz,8bac1ab6 6410435c b7181f95 b16ab97c 92b341c0z,41e2345f 1f56df24 58f426d1 55b4ba2d b6dcd8c8cóF—ddlmaddlmaddlmam}mat|_y)Nr)ÚDSA)ÚRandom)Ú bytes_to_longÚinverseÚsize)    ÚCrypto.PublicKeyrÚCryptorÚCrypto.Util.numberrrrÚdsa)Úselfrs  rÚsetUpz DSATest.setUpFs€å(Ý!ßCÑC䈍rcóž—|jjd«}|j|«|j«}|j    |«y)z7DSA (default implementation) generated key (1 argument)éN)rÚgenerateÚ_check_private_keyÚ
public_keyÚ_check_public_key©rÚdsaObjÚpubs   rÚtest_generate_1argzDSATest.test_generate_1argNs@€à—‘×"Ñ" 4Ó(ˆØ ×Ñ Ô'Ø×ÑÓ!ˆØ ×јsÕ#rcóؗ|jjdtj«j«}|j |«|j «}|j|«y)z8DSA (default implementation) generated key (2 arguments)r"N)rr#rÚnewÚreadr$r%r&r's   rÚtest_generate_2argzDSATest.test_generate_2argUsN€à—‘×"Ñ" 4¬¯©«×):Ñ):Ó;ˆØ ×Ñ Ô'Ø×ÑÓ!ˆØ ×јsÕ#rcó—|j|j|j|jfDcgc]}t    t |««‘Œc}\}}}}|j j||||f«}|j|«ycc}w)z6DSA (default implementation) constructed key (4-tuple)N)    ÚyÚgÚpÚqrrrÚ    constructÚ_test_verification©rÚparamr0r1r2r3r(s       rÚtest_construct_4tuplezDSATest.test_construct_4tuple\sr€àDHÇFÁFÈDÏFÉFÐTX×TZÑTZÐ\`×\bÑ\bÐCcÖd¸%œ ¤g¨e£nÕ5Òd‰ ˆˆAˆq!Ø—‘×#Ñ# Q¨¨1¨a LÓ1ˆØ ×Ñ Õ'ùòes±BcóP—|j|j|j|j|jfDcgc]}t t |««‘Œc}\}}}}}|jj|||||f«}|j|«|j|«ycc}w)z6DSA (default implementation) constructed key (5-tuple)N) r0r1r2r3Úxrrrr4Ú _test_signingr5)rr7r0r1r2r3r:r(s        rÚtest_construct_5tuplezDSATest.test_construct_5tuplebs€àGKÇvÁvÈtÏvÉvÐW[×W]ÑW]Ð_c×_eÑ_eÐgk×gmÑgmÐFnÖo¸Uœ=¬°«Õ8Òo‰ˆˆAˆq!QØ—‘×#Ñ# Q¨¨1¨a° OÓ4ˆØ ×ј6Ô"Ø ×Ñ Õ'ùòps¼B#cóæ—|j|j|j|jfDcgc]}t    t |««‘Œc}\}}}}|||dz|f}|j t|jj|«||||dzf}|j t|jj|«|d||f}|j t|jj|«ycc}w©Né)
r0r1r2r3rrÚ assertRaisesÚ
ValueErrorrr4)rr7r0r1r2r3Útups       rÚtest_construct_bad_key4zDSATest.test_construct_bad_key4isˀØDHÇFÁFÈDÏFÉFÐTX×TZÑTZÐ\`×\bÑ\bÐCcÖd¸%œ ¤g¨e£nÕ5Òd‰ ˆˆAˆq!ؐ!Qq‘S˜!ˆnˆØ ×Ñœ* d§h¡h×&8Ñ&8¸#Ô>à!Q˜˜!™ˆnˆØ ×Ñœ* d§h¡h×&8Ñ&8¸#Ô>à!Q˜ˆlˆØ ×Ñœ* d§h¡h×&8Ñ&8¸#Õ>ùòes±C.có —|j|j|j|j|jfDcgc]}t t |««‘Œc}\}}}}}|||||dzf}|jt|jj|«|||||dzf}|jt|jj|«ycc}w)Nr?é
) r0r1r2r3r:rrr@rArr4)rr7r0r1r2r3r:rBs        rÚtest_construct_bad_key5zDSATest.test_construct_bad_key5ts³€ØGKÇvÁvÈtÏvÉvÐW[×W]ÑW]Ð_c×_eÑ_eÐgk×gmÑgmÐFnÖo¸Uœ=¬°«Õ8Òo‰ˆˆAˆq!Qؐ!Q˜˜1˜Q™3ÐˆØ ×Ñœ* d§h¡h×&8Ñ&8¸#Ô>à!Q˜˜1˜R™4РˆØ ×Ñœ* d§h¡h×&8Ñ&8¸#Õ>ùò ps¼C có´—|jd|j««|jd|j««|jd|j««|jd|j|j
kD«|jdt |j
««|jd|jdz
|j
z«|j|jt|j|j|j««|jdd|jcxkxr|j
k«yc«y)Nr?ré ) Ú assertEqualÚ has_privateÚcan_signÚ can_encryptr2r3rr0Úpowr1r:)rr(s  rr$zDSATest._check_private_key|sô€à ×ј˜F×.Ñ.Ó0Ô1Ø ×ј˜FŸO™OÓ-Ô.Ø ×ј˜F×.Ñ.Ó0Ô1ð     ×ј˜FŸH™H v§x¡xÑ/Ô0Ø ×јœd 6§8¡8›nÔ-Ø ×ј˜VŸX™X¨™\¨V¯X©XÑ5Ô6Ø ×јŸ™¤3 v§x¡x°·±¸6¿8¹8Ó#DÔEØ ×ј˜A §¡Ö3¨6¯8©8Ñ3Õ4Ñ3Õ4rcóÌ—tt|j««}tt|j««}|j    d|j ««|j    d|j ««|j    d|j««|j    dt|d««|j    d|j|jkD«|j    dt|j««|j    d|jdz
|jz«|jt|j||«|j    |j«|j«k(d«|j    |j«|j«k7d«|j    |j«|j!««y)Nrr?r:rHTF)rrÚkÚm_hashrIrJrKrLÚhasattrr2r3rr@Ú    TypeErrorÚ_signr%Ú    publickey)rr(rOrPs    rr&zDSATest._check_public_key‰so€Ü œ' $§&¡&›/Ó *ˆÜœw t§{¡{Ó3Ó4ˆð     ×ј˜F×.Ñ.Ó0Ô1Ø ×ј˜FŸO™OÓ-Ô.Ø ×ј˜F×.Ñ.Ó0Ô1ð     ×јœG F¨CÓ0Ô1ð     ×ј˜FŸH™H v§x¡xÑ/Ô0Ø ×јœd 6§8¡8›nÔ-Ø ×ј˜VŸX™X¨™\¨V¯X©XÑ5Ô6ð     ×Ñœ) V§\¡\°6¸1Ô=ð     ×ј×*Ñ*Ó,°×0AÑ0AÓ0CÑCÀDÔIØ ×ј×*Ñ*Ó,°×0AÑ0AÓ0CÑCÀEÔJà ×ј×*Ñ*Ó,¨f×.>Ñ.>Ó.@ÕArcóJ—tt|j««}tt|j««}tt|j««}tt|j
««}|j ||«\}}|j||f||f«y©N)rrrOrPÚrrrSrI)rr(rOrPrWrÚr_outÚs_outs        rr;zDSATest._test_signing£sw€Ü œ' $§&¡&›/Ó *ˆÜœw t§{¡{Ó3Ó4ˆÜ œ' $§&¡&›/Ó *ˆÜ œ' $§&¡&›/Ó *ˆØŸ™ f¨aÓ0‰ˆØ ×ј!˜Q˜ %¨ Õ0rcóJ—tt|j««}tt|j««}tt|j««}|j |j |||f««|j|j |dz||f««yr>)rrrPrWrÚ
assertTrueÚ_verifyÚ assertFalse)rr(rPrWrs     rr5zDSATest._test_verification«su€Üœw t§{¡{Ó3Ó4ˆÜ œ' $§&¡&›/Ó *ˆÜ œ' $§&¡&›/Ó *ˆØ ‰˜Ÿ™ v°°1¨vÓ6Ô7Ø ×јŸ™¨°©
°Q¸°FÓ;Õ<rcó—|j|j|j|jfDcgc]}t    t |««‘Œc}\}}}}|j j||||f«}t|«ycc}wrV)    r0r1r2r3rrrr4Úreprr6s       rÚ    test_reprzDSATest.test_repr²sk€ØDHÇFÁFÈDÏFÉFÐTX×TZÑTZÐ\`×\bÑ\bÐCcÖd¸%œ ¤g¨e£nÕ5Òd‰ ˆˆAˆq!Ø—‘×#Ñ# Q¨¨1¨a LÓ1ˆÜ ˆV ùòes±A?N)Ú__name__Ú
__module__Ú __qualname__rr0r1r2r3r:rOÚ    k_inverserr ÚmrPrWrr r*r.r8r<rCrFr$r&r;r5r`©rrrr(sτñ     ð7ó    8€Añ     ð7ó    8€Añ     ð7ó    8€Añ     Ð ?Ó@€Aá Ð ?Ó@€Aá Ð ?Ó@€AÙÐGÓH€IÙ‘%“Ó€AÙ ÐDÓ E€FÙ Ð ?Ó@€AÙ Ð ?Ó@€Aòò$ò$ò(ò (ò    ?ò?ò 5òBò41ò=órrcó$—eZdZd„Zd„Zd„Zd„Zy)Ú DSADomainTestcó¼—tjd«}|j«}tjd|¬«}|j|j|j«|j|j
|j
«|j|j |j «|j|j«|j««y)z1Verify we can generate new keys in a given domainr"©ÚdomainN)rr#rkrIr2r3r1)rÚ    dsa_key_1Ú domain_paramsÚ    dsa_key_2s    rÚ test_domain1zDSADomainTest.test_domain1ºsš€ä—L‘L Ó&ˆ    Ø!×(Ñ(Ó*ˆ ä—L‘L ¨mLÓ<ˆ    Ø ×јŸ™ i§k¡kÔ2Ø ×јŸ™ i§k¡kÔ2Ø ×јŸ™ i§k¡kÔ2à ×ј×)Ñ)Ó+¨Y×-=Ñ-=Ó-?Õ@rcóЗddlm}ddlm}|d«}|j    «dk7s|j |«|j k7rv|jd¬«}|jd¬«}||z}|jd¬«}||zd    z}|j    «dk7rŒW|j |«|j k7rŒv|d
«}d    }    |    d    k(rt||«}    |d    z }|    d    k(rŒ||    fS) Nr©ÚInteger)Ú    Primalityér"éP)Ú
exact_bitsi`r?é)    ÚCrypto.Math.NumbersrrÚ Crypto.MathrsÚ size_in_bitsÚtest_probable_primeÚPROBABLY_PRIMEÚrandomrM)
rrrrsr2Úq1Úq2r3ÚzÚhr1s
          rÚ_get_weak_domainzDSADomainTest._get_weak_domainÆsë€å/Ý)á A‹JˆØn‰nÓ $Ò&¨)×*GÑ*GÈÓ*JÈi×NfÑNfÒ*fØ—‘¨2Ó.ˆBØ—‘¨2Ó.ˆBؐR‘ˆAØ—‘¨(Ó3ˆAؐA‘˜‘    ˆAð n‰nÓ $Ó&¨)×*GÑ*GÈÓ*JÈi×NfÑNfÓ*fñ A‹JˆØ ˆØ1ŠfܐAq˜!“ ˆAØ ‰FˆAð1‹fð1aˆyÐrcór—|j«}|jttjd|¬«y)ú;Verify that domain parameters with composite q are rejectedr"rjN)r‚r@rArr#)rrms  rÚtest_generate_error_weak_domainz-DSADomainTest.test_generate_error_weak_domainÜs-€ð×-Ñ-Ó/ˆ Ø ×Ñœ*¤c§l¡l°DÀÐÕOrcó¤—ddlm}|j«\}}}t|d|«}|j    t
t j||||f«y)r„rrqéYN)rxrrr‚rMr@rArr4)rrrr2r3r1r0s      rÚ test_construct_error_weak_domainz.DSADomainTest.test_construct_error_weak_domainãsF€õ    0à×'Ñ'Ó)‰ˆˆ1ˆaÜ B˜‹]ˆØ ×Ñœ*¤c§m¡m°a¸¸A¸q°\ÕBrN)rarbrcror‚r…rˆrfrrrhrh¸s„ò
Aòò,PóCrrhcóR—g}|tt«z }|tt«z }|SrV)rrrh)ÚconfigÚtestss  rÚ    get_testsrŒís*€Ø €EØ    Œ_œWÓ %Ñ%€EØ    Œ_œ]Ó +Ñ+€EØ €LrÚ__main__có<—tjt««SrV)ÚunittestÚ    TestSuiterŒrfrrú<lambda>r‘ôs€”H×&Ñ&¤y£{Ó3€rÚsuite)Ú defaultTest)Ú__doc__ÚosÚCrypto.Util.py3compatrÚCrypto.SelfTest.st_commonrrrrÚTestCaserrhrŒrar’Úmainrfrrú<module>ršstðñ2/ã    Ü#ãßGÑGò%ôMˆh×ÑôMô`2CH×%Ñ%ô2Cðjóð  ˆzÒÙ 3€EØ€H‡MM˜gÖ&ðr