ó õùPc@sddlmZdZddlZddlmZddlTddlTddlm Z ddl m Z dd „Z d ej fd „ƒYZd efd „ƒYZdefd„ƒYZedkrÐejƒnid„Zedkrd„ZejddƒndS(iÿÿÿÿ(t nested_scopess$Id$N(tRSA(t*(tinverse(tasn1tPUBLICcCsŒddl}gtdt|ƒdƒD] }|j|||d!ƒ^q%}td|ƒ}|tdƒj|ƒ7}|td|ƒ7}|S(Niÿÿÿÿii0s-----BEGIN %s KEY----- ts-----END %s KEY-----(tbinasciitrangetlent b2a_base64tbtjoin(tderttextRtitchunkstpem((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pytder2pem#s  ?tImportKeyTestscBsÖeZdZdZd,d-fZdZd Zed jd d ƒƒZ ed jd d ƒƒZ edjd d ƒƒZ e djd d ƒdƒZ dZe djd d ƒdƒZe djd d ƒdƒZe djd d ƒdƒZe djd d ƒdƒZeeeƒZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd „Zd!„Z d"„Z!d#„Z"d$„Z#d%„Z$d&„Z%d'„Z&d(„Z'd)„Z&d*„Z'd+„Z(RS(.uð-----BEGIN RSA PRIVATE KEY----- MIIBOwIBAAJBAL8eJ5AKoIsjURpcEoGubZMxLD7+kT+TLr7UkvEtFrRhDDKMtuII q19FrL4pUIMymPMSLBn3hJLe30Dw48GQM4UCAwEAAQJACUSDEp8RTe32ftq8IwG8 Wojl5mAd1wFiIOrZ/Uv8b963WJOJiuQcVN29vxU5+My9GPZ7RA3hrDBEAoHUDPrI OQIhAPIPLz4dphiD9imAkivY31Rc5AfHJiQRA7XixTcjEkojAiEAyh/pJHks/Mlr +rdPNEpotBjfV4M4BkgGAA/ipcmaAjcCIQCHvhwwKVBLzzTscT2HeUdEeBMoiXXK JACAr3sJQJGxIQIgarRp+m1WSKV1MciwMaTOnbU7wxFs9DP1pva76lYBzgUCIQC9 n0CnZCJ6IZYqSt0H5N7+Q+2Ro64nuwV/OSQfM6sBwQ== -----END RSA PRIVATE KEY-----u -----BEGIN PRIVATE KEY----- MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAvx4nkAqgiyNRGlwS ga5tkzEsPv6RP5MuvtSS8S0WtGEMMoy24girX0WsvilQgzKY8xIsGfeEkt7fQPDj wZAzhQIDAQABAkAJRIMSnxFN7fZ+2rwjAbxaiOXmYB3XAWIg6tn9S/xv3rdYk4mK 5BxU3b2/FTn4zL0Y9ntEDeGsMEQCgdQM+sg5AiEA8g8vPh2mGIP2KYCSK9jfVFzk B8cmJBEDteLFNyMSSiMCIQDKH+kkeSz8yWv6t080Smi0GN9XgzgGSAYAD+KlyZoC NwIhAIe+HDApUEvPNOxxPYd5R0R4EyiJdcokAICvewlAkbEhAiBqtGn6bVZIpXUx yLAxpM6dtTvDEWz0M/Wm9rvqVgHOBQIhAL2fQKdkInohlipK3Qfk3v5D7ZGjrie7 BX85JB8zqwHB -----END PRIVATE KEY-----ttestu+-----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-CBC,AF8F9A40BD2FA2FC Ckl9ex1kaVEWhYC2QBmfaF+YPiR4NFkRXA7nj3dcnuFEzBnY5XULupqQpQI3qbfA u8GYS7+b3toWWiHZivHbAAUBPDIZG9hKDyB9Sq2VMARGsX1yW1zhNvZLIiVJzUHs C6NxQ1IJWOXzTew/xM2I26kPwHIvadq+/VaT8gLQdjdH0jOiVNaevjWnLgrn1mLP BCNRMdcexozWtAFNNqSzfW58MJL2OdMi21ED184EFytIc1BlB+FZiGZduwKGuaKy 9bMbdb/1PSvsSzPsqW7KSSrTw6MgJAFJg6lzIYvR5F4poTVBxwBX3+EyEmShiaNY IRX3TgQI0IjrVuLmvlZKbGWP18FXj7I7k9tSsNOOzllTTdq3ny5vgM3A+ynfAaxp dysKznQ6P+IoqML1WxAID4aGRMWka+uArOJ148Rbj9s= -----END RSA PRIVATE KEY-----s¯š@½/¢ütrockingu0-----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,C05D6C07F7FC02F6 w4lwQrXaVoTTJ0GgwY566htTA2/t1YlimhxkxYt9AEeCcidS5M0Wq9ClPiPz9O7F m6K5QpM1rxo1RUE/ZyI85gglRNPdNwkeTOqit+kum7nN73AToX17+irVmOA4Z9E+ 4O07t91GxGMcjUSIFk0ucwEU4jgxRvYscbvOMvNbuZszGdVNzBTVddnShKCsy9i7 nJbPlXeEKYi/OkRgO4PtfqqWQu5GIEFVUf9ev1QV7AvC+kyWTR1wWYnHX265jU5c sopxQQtP8XEHIJEdd5/p1oieRcWTCNyY8EkslxDSsrf0OtZp6mZH9N+KU47cgQtt 9qGORmlWnsIoFFKcDohbtOaWBTKhkj5h6OkLjFjfU/sBeV1c+7wDT3dAy5tawXjG YSxC7qDQIT/RECvV3+oQKEcmpEujn45wAnkTi12BH30= -----END RSA PRIVATE KEY-----sÀ]l÷üöuµ-----BEGIN PUBLIC KEY----- MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL8eJ5AKoIsjURpcEoGubZMxLD7+kT+T Lr7UkvEtFrRhDDKMtuIIq19FrL4pUIMymPMSLBn3hJLe30Dw48GQM4UCAwEAAQ== -----END PUBLIC KEY-----s…ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAQQC/HieQCqCLI1EaXBKBrm2TMSw+/pE/ky6+1JLxLRa0YQwyjLbiCKtfRay+KVCDMpjzEiwZ94SS3t9A8OPBkDOF comment sµ3082013b020100024100bf1e27900aa08b23511a5c1281ae6d93312c3efe 913f932ebed492f12d16b4610c328cb6e208ab5f45acbe2950833298f312 2c19f78492dedf40f0e3c190338502030100010240094483129f114dedf6 7edabc2301bc5a88e5e6601dd7016220ead9fd4bfc6fdeb75893898ae41c 54ddbdbf1539f8ccbd18f67b440de1ac30440281d40cfac839022100f20f 2f3e1da61883f62980922bd8df545ce407c726241103b5e2c53723124a23 022100ca1fe924792cfcc96bfab74f344a68b418df578338064806000fe2 a5c99a023702210087be1c3029504bcf34ec713d877947447813288975ca 240080af7b094091b12102206ab469fa6d5648a57531c8b031a4ce9db53b c3116cf433f5a6f6bbea5601ce05022100bd9f40a764227a21962a4add07 e4defe43ed91a3ae27bb057f39241f33ab01c1 t Rsî30820155020100300d06092a864886f70d01010105000482013f3082013 b020100024100bf1e27900aa08b23511a5c1281ae6d93312c3efe913f932 ebed492f12d16b4610c328cb6e208ab5f45acbe2950833298f3122c19f78 492dedf40f0e3c190338502030100010240094483129f114dedf67edabc2 301bc5a88e5e6601dd7016220ead9fd4bfc6fdeb75893898ae41c54ddbdb f1539f8ccbd18f67b440de1ac30440281d40cfac839022100f20f2f3e1da 61883f62980922bd8df545ce407c726241103b5e2c53723124a23022100c a1fe924792cfcc96bfab74f344a68b418df578338064806000fe2a5c99a0 23702210087be1c3029504bcf34ec713d877947447813288975ca240080a f7b094091b12102206ab469fa6d5648a57531c8b031a4ce9db53bc3116cf 433f5a6f6bbea5601ce05022100bd9f40a764227a21962a4add07e4defe4 3ed91a3ae27bb057f39241f33ab01c1 sÐ305c300d06092a864886f70d0101010500034b003048024100bf1e27900a a08b23511a5c1281ae6d93312c3efe913f932ebed492f12d16b4610c328c b6e208ab5f45acbe2950833298f3122c19f78492dedf40f0e3c190338502 03010001 s¿BF 1E 27 90 0A A0 8B 23 51 1A 5C 12 81 AE 6D 93 31 2C 3E FE 91 3F 93 2E BE D4 92 F1 2D 16 B4 61 0C 32 8C B6 E2 08 AB 5F 45 AC BE 29 50 83 32 98 F3 12 2C 19 F7 84 92 DE DF 40 F0 E3 C1 90 33 85ils¿09 44 83 12 9F 11 4D ED F6 7E DA BC 23 01 BC 5A 88 E5 E6 60 1D D7 01 62 20 EA D9 FD 4B FC 6F DE B7 58 93 89 8A E4 1C 54 DD BD BF 15 39 F8 CC BD 18 F6 7B 44 0D E1 AC 30 44 02 81 D4 0C FA C8 39sb00 F2 0F 2F 3E 1D A6 18 83 F6 29 80 92 2B D8 DF 54 5C E4 07 C7 26 24 11 03 B5 E2 C5 37 23 12 4A 23sb00 CA 1F E9 24 79 2C FC C9 6B FA B7 4F 34 4A 68 B4 18 DF 57 83 38 06 48 06 00 0F E2 A5 C9 9A 02 37sb00 BD 9F 40 A7 64 22 7A 21 96 2A 4A DD 07 E4 DE FE 43 ED 91 A3 AE 27 BB 05 7F 39 24 1F 33 AB 01 C1cCsš|jj|jƒ}|j|jƒƒ|j|j|jƒ|j|j|jƒ|j|j|jƒ|j|j |j ƒ|j|j |j ƒdS(s+Verify import of RSAPrivateKey DER SEQUENCEN( trsat importKeyt rsaKeyDERt failUnlesst has_privatet assertEqualtntetdtptq(tselftkey((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyttestImportKey1žscCsX|jj|jƒ}|j|jƒƒ|j|j|jƒ|j|j|jƒdS(s2Verify import of SubjectPublicKeyInfo DER SEQUENCEN(RRtrsaPublicKeyDERtfailIfRRRR(R"R#((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyttestImportKey2¨scCsštj|jƒ}|j|jƒtƒ|j|j|jƒ|j|j|jƒ|j|j|jƒ|j|j |j ƒ|j|j |j ƒdS(sHVerify import of RSAPrivateKey DER SEQUENCE, encoded with PEM as unicodeN( RRt rsaKeyPEMRRtTrueRRRR R!(R"R#((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyttestImportKey3unicode¯scCs tjt|jƒƒ}|j|jƒtƒ|j|j|jƒ|j|j|jƒ|j|j |j ƒ|j|j |j ƒ|j|j |j ƒdS(sLVerify import of RSAPrivateKey DER SEQUENCE, encoded with PEM as byte stringN( RRR R(RRR)RRRR R!(R"R#((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyttestImportKey3bytes¹scCsXtj|jƒ}|j|jƒtƒ|j|j|jƒ|j|j|jƒdS(sHVerify import of RSAPrivateKey DER SEQUENCE, encoded with PEM as unicodeN(RRtrsaPublicKeyPEMRRtFalseRR(R"R#((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyttestImportKey4unicodeÃscCs^tjt|jƒƒ}|j|jƒtƒ|j|j|jƒ|j|j|jƒdS(sSVerify import of SubjectPublicKeyInfo DER SEQUENCE, encoded with PEM as byte stringN( RRR R,RRR-RR(R"R#((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyttestImportKey4bytesÊscCsQtj|jƒ}|j|jtdƒƒdƒ}|j|dtdƒƒdS(s8Verifies that the imported key is still a valid RSA pairtTestiN(RRR(tencrypttdecryptR R(R"R#tidem((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyttestImportKey5Ñs!cCsQtj|jƒ}|j|jtdƒƒdƒ}|j|dtdƒƒdS(s8Verifies that the imported key is still a valid RSA pairR0iN(RRRR1R2R R(R"R#R3((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyttestImportKey6×s!cCsE|jj|jƒ}|j|j|jƒ|j|j|jƒdS(s#Verify import of OpenSSH public keyN(RRtrsaPublicKeyOpenSSHRRR(R"R#((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyttestImportKey7ÝscCs¶x¯|jD]¤}|jj|d|dƒ}|j|jƒƒ|j|j|jƒ|j|j|jƒ|j|j|jƒ|j|j |j ƒ|j|j |j ƒq WdS(s6Verify import of encrypted PrivateKeyInfo DER SEQUENCEiiN( trsaKeyEncryptedPEMRRRRRRRRR R!(R"ttR#((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyttestImportKey8ãscCsš|jj|jƒ}|j|jƒƒ|j|j|jƒ|j|j|jƒ|j|j|jƒ|j|j |j ƒ|j|j |j ƒdS(s8Verify import of unencrypted PrivateKeyInfo DER SEQUENCEN( RRt rsaKeyDER8RRRRRRR R!(R"R#((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyttestImportKey9îscCsš|jj|jƒ}|j|jƒƒ|j|j|jƒ|j|j|jƒ|j|j|jƒ|j|j |j ƒ|j|j |j ƒdS(sJVerify import of unencrypted PrivateKeyInfo DER SEQUENCE, encoded with PEMN( RRt rsaKeyPEM8RRRRRRR R!(R"R#((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyttestImportKey10øscCsWtjddgƒjƒ}|jj|ƒ}|j|jdƒ|j|jdƒdS(s*Verify import of RSAPublicKey DER SEQUENCEiiN(Rt DerSequencetencodeRRRRR(R"R R#((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyttestImportKey11scCsctjddgƒjƒ}t|ƒ}|jj|ƒ}|j|jdƒ|j|jdƒdS(s<Verify import of RSAPublicKey DER SEQUENCE, encoded with PEMiiN( RR?R@RRRRRR(R"R RR#((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyttestImportKey12 s  cCs\|jj|j|j|j|j|j|jgƒ}|jdƒ}|j ||j ƒdS(NtDER( Rt constructRRRR R!tpInvt exportKeyRR(R"R#tderKey((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyttestExportKey1s6cCsD|jj|j|jgƒ}|jdƒ}|j||jƒdS(NRC(RRDRRRFRR%(R"R#RG((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyttestExportKey2scCsb|jj|j|j|j|j|j|jgƒ}|jdƒ}|j |t |j ƒƒdS(NtPEM( RRDRRRR R!RERFRR R((R"R#tpemKey((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyttestExportKey3s6cCsJ|jj|j|jgƒ}|jdƒ}|j|t|jƒƒdS(NRJ(RRDRRRFRR R,(R"R#RK((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyttestExportKey4!scCsv|jj|j|jgƒ}|jdƒjƒ}|jjƒ}|j|d|dƒ|j|d|dƒdS(NtOpenSSHii(RRDRRRFtsplitR6R(R"R#t openssh_1t openssh_2((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyttestExportKey5&s csŒ|jj|j|j|j|j|j|jgƒ}tt |j dƒ‰‡fd†|_ |j dˆdƒ}|j |ˆdƒdS(Nics5ˆdt|tˆdƒtˆdƒƒd| S(Nii(tdivmodR (tN(R9(sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyt2sRJi(RRDRRRR R!REtmapR R8t _randfuncRFR(R"R#RK((R9sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyRM-s 6cCsb|jj|j|j|j|j|j|jgƒ}|jdddƒ}|j ||j ƒdS(NRCtpkcsi( RRDRRRR R!RERFRR;(R"R#RG((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyRR6s6cCsh|jj|j|j|j|j|j|jgƒ}|jdddƒ}|j |t |j ƒƒdS(NRJRXi( RRDRRRR R!RERFRR R=(R"R#RK((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyttestExportKey6;s6(Ru+-----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-CBC,AF8F9A40BD2FA2FC Ckl9ex1kaVEWhYC2QBmfaF+YPiR4NFkRXA7nj3dcnuFEzBnY5XULupqQpQI3qbfA u8GYS7+b3toWWiHZivHbAAUBPDIZG9hKDyB9Sq2VMARGsX1yW1zhNvZLIiVJzUHs C6NxQ1IJWOXzTew/xM2I26kPwHIvadq+/VaT8gLQdjdH0jOiVNaevjWnLgrn1mLP BCNRMdcexozWtAFNNqSzfW58MJL2OdMi21ED184EFytIc1BlB+FZiGZduwKGuaKy 9bMbdb/1PSvsSzPsqW7KSSrTw6MgJAFJg6lzIYvR5F4poTVBxwBX3+EyEmShiaNY IRX3TgQI0IjrVuLmvlZKbGWP18FXj7I7k9tSsNOOzllTTdq3ny5vgM3A+ynfAaxp dysKznQ6P+IoqML1WxAID4aGRMWka+uArOJ148Rbj9s= -----END RSA PRIVATE KEY-----s¯š@½/¢ü(Ru0-----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,C05D6C07F7FC02F6 w4lwQrXaVoTTJ0GgwY566htTA2/t1YlimhxkxYt9AEeCcidS5M0Wq9ClPiPz9O7F m6K5QpM1rxo1RUE/ZyI85gglRNPdNwkeTOqit+kum7nN73AToX17+irVmOA4Z9E+ 4O07t91GxGMcjUSIFk0ucwEU4jgxRvYscbvOMvNbuZszGdVNzBTVddnShKCsy9i7 nJbPlXeEKYi/OkRgO4PtfqqWQu5GIEFVUf9ev1QV7AvC+kyWTR1wWYnHX265jU5c sopxQQtP8XEHIJEdd5/p1oieRcWTCNyY8EkslxDSsrf0OtZp6mZH9N+KU47cgQtt 9qGORmlWnsIoFFKcDohbtOaWBTKhkj5h6OkLjFjfU/sBeV1c+7wDT3dAy5tawXjG YSxC7qDQIT/RECvV3+oQKEcmpEujn45wAnkTi12BH30= -----END RSA PRIVATE KEY-----sÀ]l÷üö()t__name__t __module__R(R=R8R,R6ta2b_hextreplaceRR;R%tlongRRRR R!tqInvRRER$R'R*R+R.R/R4R5R7R:R<R>RARBRHRIRLRMRRRY(((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyR+sZ                    tImportKeyTestsSlowcBseZd„ZRS(cCstjddƒ|_dS(Nt use_fast_mathi(RtRSAImplementationR(R"((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pytsetUpAs(RZR[Rc(((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyR`@stImportKeyTestsFastcBseZd„ZRS(cCstjddƒ|_dS(NRai(RRbR(R"((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyRcEs(RZR[Rc(((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyRdDst__main__cCsRg}y$ddlm}|ttƒ7}Wntk r=nX|ttƒ7}|S(Niÿÿÿÿ(t _fastmath(tCrypto.PublicKeyRftlist_test_casesRdt ImportErrorR`(tconfigttestsRf((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyt get_testsKs cCstjtƒƒS(N(tunittestt TestSuiteRl(((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyRUVst defaultTesttsuite(t __future__Rt __revision__RmRgRtCrypto.SelfTest.st_commontCrypto.Util.py3compattCrypto.Util.numberRt Crypto.UtilRRtTestCaseRR`RdRZtmainRlRp(((sC..\python\site-packages\Crypto\SelfTest\PublicKey\test_importKey.pyts$    ÿ