From ee1bcc5e57b342bea71a84716ec268f12f660007 Mon Sep 17 00:00:00 2001 From: mtu <maxence.tury@ssi.gouv.fr> Date: Mon, 25 Jan 2016 16:37:20 +0100 Subject: [PATCH] Insert DER test data inside x509.uts and move it from scapy/layers/ to test/ (also, remove obsolete X.509 tests from test/regression.uts --- scapy/layers/x509_uts_cert.der | Bin 1302 -> 0 bytes scapy/layers/x509_uts_crl.der | Bin 546 -> 0 bytes scapy/layers/x509_uts_rsakey.der | Bin 1191 -> 0 bytes test/regression.uts | 98 ------------------------------- {scapy/layers => test}/x509.uts | 26 ++++---- 5 files changed, 12 insertions(+), 112 deletions(-) delete mode 100755 scapy/layers/x509_uts_cert.der delete mode 100644 scapy/layers/x509_uts_crl.der delete mode 100755 scapy/layers/x509_uts_rsakey.der rename {scapy/layers => test}/x509.uts (70%) diff --git a/scapy/layers/x509_uts_cert.der b/scapy/layers/x509_uts_cert.der deleted file mode 100755 index 52b2df9c07605ac287103ddef84d2da6f7795aed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1302 zcmXqLVihuIV*a&&nTe5!iIZVVT!Hg*PVPbjUN%mxHjlRNyo`*jtPBQ?+YGr4IN6v( zS=fY`+=2}G40u2s4q?`S#G=e%7@r-+7dH?E$#V(w`IZ)E6y@jVDmdpC73dkt8OVSn zxP?XG5@7*;3c;yGWtqvT#fGW|${=}WVHr<v*D@o82t88+ONEfs;u3}A)S{Biw9Mqh zl2k)=168;KIT^(yGP6_5jC4zY${cc`7V0GfEi{l5=QS`hFgG+dFgLa^wTu$yH8L|W zHa38Ahpxw(7?qGCiIJ6oxrvdV!Jvtei>Zl`kzq!7mi^1ig0q)+dwScyS$vJzW7a{A z`pw@?s=S+fe8zE3wTFS0j^fR^d%K^1Jk5N|e@6QRU9J6W%v)zZo|E&W^Jc5Nb3Tvr zynP?EZojJC)2%N4NUB7>z|e)`;l=0Szt(>0ioT)Vy7$k`6ZwA_(pk1Fm@)s~l_w!_ zzva~q)J%_i;x&8uvqKu)XQIlM<;gp{`Yc`}5V?4|!?oUT=VrIEZHiSso)$F6w(0s8 zafhf+fiq_x)hc$}6#Mj?s-xNN4U3H4o_W8)=jEi+zNZYHKf9omsphjcNJ{2Io#q+g z@LkIbpZ)*k-1jJ7beY*LUrRlvcc+$He*2ijUh-n<oj*U=&X`$$W@ch$WMEv}#3&C8 z5orTiV4{-cV-aH!`Fz9g-h}VZVlSODJ{uF(lRsU=(A%K#HAr5WrSY*r<AVmQY8E!` zS<<+3$flPjq`VEvy0XG7tOm@CjQ^1n5iq9%6A>eW*}1!nd#mI-qmLVA#&4alW-HsQ zgD<{%<zzE{IQZZy&+X<M>8Fy)=f#<)o_WcoI`dE0oLetu96EIUT~kI(^6H91|CR^6 zQ@=GO=t5ZEqshPHF5C4@>lK_JoN#i5m~Cyh`%L!gEBPMQD{Q)@J&M&-_-h#FNNwGH zq%G%+!X@9J#;fOq@5#<Qks%?%#%mVq^yH6cQpvkg*S`<ij|cwqV0Baxetqu!=9pUF zgfEwE1#a#(3y3|JU*DVL$R^b1`c=H&DOWA|9+Q7g&dV(K#eQ4F`tFBKV4ZYX?0EFc t-EVXRw=lFZt_pWQ<ep-nVI=Lh`P#qv?rN8u6C-YvFcz+_whrI-2>_&=(T)HB diff --git a/scapy/layers/x509_uts_crl.der b/scapy/layers/x509_uts_crl.der deleted file mode 100644 index edcc11ba04500b2858497043a31719f7cfd4faac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 546 zcmXqLVv;jxVr)0yW#iOp^Jx3d%gD&e%3u(0$Zf#M#vIDRCd?EXY$$FZ3gU1H^M$1r zWd>)a=jkYT<|XSHnj4scB)En3oO2S3ixmtN0!ou|GLsboiZXK(iz*eIQ;SM6(=wA2 zOEUBG6dX%SGV+TuODe^A4a^J;4U7!HAPUGeH!w0ZH!?Q0G_{N}X#8fN$Rwb1$vf%D z^d;hF^A?|&Q>A+XsLBKg4Gqmr%?wSWKuWA!?}eRaI(z4iUwN{U^p&eXC58s31{Q{v zMn=XaU?q;R9cGQ93RfGN-Bv_Ss?Y%|F$Y?2W(u?qti;{2@&DhJ#*b5fzLq#t!}}4a z#29FfrJ)5-nGsk?K}cQJqg^-3>fKk)6mX172P!c#urx9ThJb;A1z1TPckDfhPnKy- z%lcE5ER;dcg}TMS!pJbnK#56^;X;T<f<*e|wWg=^dA-!9#(~rr8W|cIS{Rvu)SyNK zb7Lce(#dbTWfv~BRXP5DgOcFp0=DR*p?8hT7R*rMNOs9Q@9(Z!K2xaWlH@vtDW`No zW@R^CVzyWoHMLjkQR2DVl4ncRBh_lc9zJO(l=9rP>a1t<E&dh%&)IPOIl1=Oy%P>8 nJZhZE6SmLU8Nl4{Eir$?gH-+m8L9NAtw&V9a-TGA3VH?r!mzUy diff --git a/scapy/layers/x509_uts_rsakey.der b/scapy/layers/x509_uts_rsakey.der deleted file mode 100755 index 362897c346d254970c29bf98a7f2ec638abde3d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1191 zcmV;Y1X%kpf&`-i0RRGm0RaG*S86}$(-E7bOG!&V?4#BLNSeV2f3x<<B<`KZn8yhw z;ZZq37lUoRi|6sn1KLlRhmb8QzXk)fnd6*n<cZmZM?-H6L!Q3yD%<LPyo)Cn;u>@x za4|#(;nC+;`mOScTi7Rsz5Ln8Z~Opf1hk--pZ?V3R9^cZCcu1`UgS!fr{=;ai_BVf zrfwfYMNFft5Lu&_K-P`+&YOh>vRxy`W>TCzg4gsHKw9!qnVZEbb3w9Q<<2ERHoLH* zGVRRouuSQa%T3BK=jPBNX(mj)QW_laeksfoSGuQh=KuObj^b|>rZ(D5IW7Y3%BMN@ z@nQ#b=#||3_y){2JM#kq0|5X50)hbmead*2OWGJn|52AT#+3Z`!+=>JnTGK&4+$#k zC!6$zj}R~fX~rX^BL#Xvf|M-S+NRx`9v9oZhG2@kXo3-ahI+uL+GL-ZBry-9L9E2? zL*G<hoO1+=92RpwX1hF;@IXXt<`-$m-lOqe*RkLLSLTfZcY|MMR%50=da^|*JI|YU zayU5k1z=G{y8ksUgplZWu+gtEw3Y2DK<V}!V@zR`In8|aU;;LPOCLi9d0G-t_ci<E zTnl$HrAB;w)Acy+h6Vfd>HcV3M7U+VMq-w}oF~n}zLnYqo09gJo3@3YLY5fTS4&g( zImNH&g`GNRHVBT)FcQhoyp~iU0)c@5$ii5|UwNAG<?&pxCvoJ(<Qi&>)-Q^oH4O@D z52nmNqhZ+_9lhEGh#|5817<n$IacKhvOeO;uK|)vSeBpa#(5kJH_mAFiLj(!9^HC` zT>S-HIw>XH(Lc&#v?yXth-}GbY+FSw;ZBJrRQs_>Ww@uB5{S#G6mpu^#V_zN0)c@5 z!a{qAGn6l;_<MO!xO68ayCOoDen0l?AoKf?riVGVuzY%7IO|Au(|BskRTclwfo^VE zU}ct|2W5nH;4v5>(*A|g>vs7$orE`G_)eamp=fmv3DF{6v{|@i<CwrWS4d0TbH(M8 zJRi*;E^~Z73HGdjy9tyy>n;zTg>{{C0)c=*z$F3~%H#}1n*SK4DvuhV(q;oHLifx> zYq<5ta)E+&C>_e%y2>Q=sMC9~c~OxYW^yf>doCM~&71T=S5ug{*a2^z_hUH6m#V$o zh5Zst!ZCL{H7?1oHjO%pPLHF70^AcvdA#<4%nt7s_BY}x28bQi<R_1Sy67vi(Kvwu zfq+u9cVGO2w4MXtozKn~HL8ralU`^u*KWkX+jKEd6*R4Y@t~yL7bfrZu9AEYH?Shi z-%`H=!BaGn_6RY6^<zOVcg{-9hGGvq0Z>MzLPvNqzSF)uIm6UQ_J;bEND(xr<rH9j z`nBr4Cs~CrNzf<p%af}O^7|mQrIfk>PaOh*fdIZx3N0N?VvXKM_i=WD0(K%<?hu1y zzDfeb_+3=td@S0!fVnHkisbo=pNy(cSqNunMde!pi^&#*YJ0I`_a%(^y;{I%%h9uw zwtBJBDPy6&t`{h2mt0_5cDEoRe`SL2k_Px75iNM^7N(v1eSUktI9BjUlviaJ?)SC0 F)JXZuN!9=W diff --git a/test/regression.uts b/test/regression.uts index af22f521..3cf4b298 100644 --- a/test/regression.uts +++ b/test/regression.uts @@ -540,103 +540,6 @@ assert(x.PDU.varbindlist[0].value == "172.31.19.2") assert(x.PDU.varbindlist[2].oid == "1.3.6.1.4.1.253.8.64.4.2.1.5.10.14130400") assert(x.PDU.varbindlist[2].value == 1) -############ -############ -+ X509 tests - -= X509 certificate assembling -~ X509 ASN1 -c=X509Cert( pubkey='\x00'+str(ASN1_SEQUENCE([ASN1_INTEGER(1),ASN1_INTEGER(2)])), signature="xxxxxx") -c.show() -str(c) == str(X509Cert(str(c))) - -= Small X509 certificate disassembling -~ X509 ASN1 -* This cert has neither the version field nor X509v3 extensions -small="""MIIB+jCCAWMCAgGjMA0GCSqGSIb3DQEBBAUAMEUxCzAJBgNVBAYTAlVTMRgw -FgYDVQQKEw9HVEUgQ29ycG9yYXRpb24xHDAaBgNVBAMTE0dURSBDeWJlclRy -dXN0IFJvb3QwHhcNOTYwMjIzMjMwMTAwWhcNMDYwMjIzMjM1OTAwWjBFMQsw -CQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMRwwGgYDVQQD -ExNHVEUgQ3liZXJUcnVzdCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB -iQKBgQC45k+625h8cXyvRLfTD0bZZOWTwUKOx7pJjTUteueLveUFMVnGsS8K -DPufpz+iCWaEVh43KRuH6X4MypqfpX/1FZSj1aJGgthoTNE3FQZor734sLPw -KfWVWgkWYXcKIiXUT0Wqx73llt/51KiOQswkwB6RJ0q1bQaAYznEol44AwID -AQABMA0GCSqGSIb3DQEBBAUAA4GBABKzdcZfHeFhVYAA1IFLezEPI2PnPfMD - +fQ2qLvZ46WXTeorKeDWanOB5sCJo9Px4KWlIjeaY8JIILTbcuPI9tl8vrGv -U9oUtCG41tWW4/5ODFlitppK+ULdjG+BqXH/9ApybW1EDp3zdHSo1TRJ6V6e -6bR64eVaH4QwnNOfpSXY """.decode("base64") -c = X509Cert(small) -c.show() -assert( str(c) == small ) -assert( c.version == None ) -assert( c.sn == 419 ) -assert( "/".join(rdn.value.val for rdn in c.issuer) == "US/GTE Corporation/GTE CyberTrust Root") -assert( c.not_after == '060223235900Z' ) -assert( c.x509v3ext == None ) -assert( c.signature == '\x00\x12\xb3u\xc6_\x1d\xe1aU\x80\x00\xd4\x81K{1\x0f#c\xe7=\xf3\x03\xf9\xf46\xa8\xbb\xd9\xe3\xa5\x97M\xea+)\xe0\xd6js\x81\xe6\xc0\x89\xa3\xd3\xf1\xe0\xa5\xa5"7\x9ac\xc2H \xb4\xdbr\xe3\xc8\xf6\xd9|\xbe\xb1\xafS\xda\x14\xb4!\xb8\xd6\xd5\x96\xe3\xfeN\x0cYb\xb6\x9aJ\xf9B\xdd\x8co\x81\xa9q\xff\xf4\nrmmD\x0e\x9d\xf3tt\xa8\xd54I\xe9^\x9e\xe9\xb4z\xe1\xe5Z\x1f\x840\x9c\xd3\x9f\xa5%\xd8' ) - - -= Big X509 certificate disassembling -~ X509 ASN1 -small="""MIIIODCCB6GgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCAR4xCzAJBgNVBAYT -AkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEu -MCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5s -LjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1 -MjE0MDIGA1UECxMrSVBTIENBIFRpbWVzdGFtcGluZyBDZXJ0aWZpY2F0aW9u -IEF1dGhvcml0eTE0MDIGA1UEAxMrSVBTIENBIFRpbWVzdGFtcGluZyBDZXJ0 -aWZpY2F0aW9uIEF1dGhvcml0eTEeMBwGCSqGSIb3DQEJARYPaXBzQG1haWwu -aXBzLmVzMB4XDTAxMTIyOTAxMTAxOFoXDTI1MTIyNzAxMTAxOFowggEeMQsw -CQYDVQQGEwJFUzESMBAGA1UECBMJQmFyY2Vsb25hMRIwEAYDVQQHEwlCYXJj -ZWxvbmExLjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBwdWJsaXNoaW5nIFNlcnZp -Y2VzIHMubC4xKzApBgNVBAoUImlwc0BtYWlsLmlwcy5lcyBDLkkuRi4gIEIt -NjA5Mjk0NTIxNDAyBgNVBAsTK0lQUyBDQSBUaW1lc3RhbXBpbmcgQ2VydGlm -aWNhdGlvbiBBdXRob3JpdHkxNDAyBgNVBAMTK0lQUyBDQSBUaW1lc3RhbXBp -bmcgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxHjAcBgkqhkiG9w0BCQEWD2lw -c0BtYWlsLmlwcy5lczCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvLju -VqWajOY2ycJioGaBjRrVetJznw6EZLqVtJCneK/K/lRhW86yIFcBrkSSQxA4 -Efdo/BdApWgnMjvEp+ZCccWZ73b/K5Uk9UmSGGjKALWkWi9uy9YbLA1UZ2t6 -KaFYq6JaANZbuxjC3/YeE1Z2m6Vo4pjOxgOKNNtMg0GmqaMCAwEAAaOCBIAw -ggR8MB0GA1UdDgQWBBSL0BBQCYHynQnVDmB4AyKiP8jKZjCCAVAGA1UdIwSC -AUcwggFDgBSL0BBQCYHynQnVDmB4AyKiP8jKZqGCASakggEiMIIBHjELMAkG -A1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNlbG9uYTESMBAGA1UEBxMJQmFyY2Vs -b25hMS4wLAYDVQQKEyVJUFMgSW50ZXJuZXQgcHVibGlzaGluZyBTZXJ2aWNl -cyBzLmwuMSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5JLkYuICBCLTYw -OTI5NDUyMTQwMgYDVQQLEytJUFMgQ0EgVGltZXN0YW1waW5nIENlcnRpZmlj -YXRpb24gQXV0aG9yaXR5MTQwMgYDVQQDEytJUFMgQ0EgVGltZXN0YW1waW5n -IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNA -bWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsG -A1UdJQRkMGIGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUF -BwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIBFgYKKwYBBAGC -NwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0RBBMw -EYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5l -czBHBglghkgBhvhCAQ0EOhY4VGltZXN0YW1waW5nIENBIENlcnRpZmljYXRl -IGlzc3VlZCBieSBodHRwOi8vd3d3Lmlwcy5lcy8wKQYJYIZIAYb4QgECBBwW -Gmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvMEAGCWCGSAGG+EIBBAQzFjFo -dHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJUaW1lc3RhbXBpbmcu -Y3JsMEUGCWCGSAGG+EIBAwQ4FjZodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAy -L3Jldm9jYXRpb25UaW1lc3RhbXBpbmcuaHRtbD8wQgYJYIZIAYb4QgEHBDUW -M2h0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbFRpbWVzdGFtcGlu -Zy5odG1sPzBABglghkgBhvhCAQgEMxYxaHR0cDovL3d3dy5pcHMuZXMvaXBz -MjAwMi9wb2xpY3lUaW1lc3RhbXBpbmcuaHRtbDB/BgNVHR8EeDB2MDegNaAz -hjFodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJUaW1lc3RhbXBp -bmcuY3JsMDugOaA3hjVodHRwOi8vd3d3YmFjay5pcHMuZXMvaXBzMjAwMi9p -cHMyMDAyVGltZXN0YW1waW5nLmNybDAvBggrBgEFBQcBAQQjMCEwHwYIKwYB -BQUHMAGGE2h0dHA6Ly9vY3NwLmlwcy5lcy8wDQYJKoZIhvcNAQEFBQADgYEA -ZbrBzAAalZHK6Ww6vzoeFAh8+4Pua2JR0zORtWB5fgTYXXk36MNbsMRnLWha -sl8OCvrNPzpFoeo2zyYepxEoxZSPhExTCMWTs/zif/WN87GphV+I3pGW7hdb -rqXqcGV4LCFkAZXOzkw+UPS2Wctjjba9GNSHSl/c7+lW8AoM6HU= """.decode("base64") -c = X509Cert(small) -c.show() -assert( str(c) == small ) -assert( c.version == 2 ) -assert( c.sn == ASN1_NULL(0) ) -assert( "/".join(rdn.value.val for rdn in c.issuer if isinstance(rdn.value,ASN1_PRINTABLE_STRING)) == "ES/Barcelona/Barcelona/IPS Internet publishing Services s.l./IPS CA Timestamping Certification Authority/IPS CA Timestamping Certification Authority") -assert( c.not_after == '251227011018Z' ) -assert( len(c.x509v3ext) == 16 ) -assert( c.signature == '\x00e\xba\xc1\xcc\x00\x1a\x95\x91\xca\xe9l:\xbf:\x1e\x14\x08|\xfb\x83\xeekbQ\xd33\x91\xb5`y~\x04\xd8]y7\xe8\xc3[\xb0\xc4g-hZ\xb2_\x0e\n\xfa\xcd?:E\xa1\xea6\xcf&\x1e\xa7\x11(\xc5\x94\x8f\x84LS\x08\xc5\x93\xb3\xfc\xe2\x7f\xf5\x8d\xf3\xb1\xa9\x85_\x88\xde\x91\x96\xee\x17[\xae\xa5\xeapex,!d\x01\x95\xce\xceL>P\xf4\xb6Y\xcbc\x8d\xb6\xbd\x18\xd4\x87J_\xdc\xef\xe9V\xf0\n\x0c\xe8u' ) - - - ############ ############ @@ -658,7 +561,6 @@ dns_ans = sr1(IP(dst="resolver1.opendns.com")/UDP()/DNS(rd=1,qd=DNSQR(qname="www DNS in dns_ans - ############ ############ + More complex tests diff --git a/scapy/layers/x509.uts b/test/x509.uts similarity index 70% rename from scapy/layers/x509.uts rename to test/x509.uts index 1eb28d69..3c0cb430 100644 --- a/scapy/layers/x509.uts +++ b/test/x509.uts @@ -1,18 +1,14 @@ -# load me with -# python scapy/tools/UTscapy.py -m scapy/layers/x509 -t scapy/layers/x509.uts -F -# -## This file is part of Scapy -## See http://www.secdev.org/projects/scapy for more informations -## Author: Maxence Tury <maxence.tury@ssi.gouv.fr> -## This program is published under a GPLv2 license - -# X509 module - Regression Test Campaign +# X.509 unit tests +# +# Launch me with: +# sudo bash test/run_tests -t test/x509.uts -F ########### Key class ############################################### + Private RSA & ECDSA keys class tests = Key class : Importing DER encoded RSA private key -x=RSAPrivateKey(open("scapy/layers/x509_uts_rsakey.der").read()) +k='MIIEowIBAAKCAQEAmFdqP+nTEZukS0lLP+yj1gNImsEIf7P2ySTunceYxwkm4VE5QReDbb2L5/HL\nA9pPmIeQLSq/BgO1meOcbOSJ2YVHQ28MQ56+8Crb6n28iycX4hp0H3AxRAjh0edX+q3yilvYJ4W9\n/NnIb/wAZwS0oJif/tTkVF77HybAfJde5Eqbp+bCKIvMWnambh9DRUyjrBBZo5dA1o32zpuFBrJd\nI8dmUpw9gtf0F0Ba8lGZm8Uqc0GyXeXOJUE2u7CiMu3M77BM6ZLLTcow5+bQImkmTL1SGhzwfinM\nE1e6p3Hm//pDjuJvFaY22k05LgLuyqc59vFiB3Toldz8+AbMNjvzAwIDAQABAoIBAH3KeJZL2hhI\n/1GXNMaU/PfDgFkgmYbxMA8JKusnm/SFjxAwBGnGI6UjBXpBgpQs2Nqm3ZseF9u8hmCKvGiCEX2G\nesCo2mSfmSQxD6RBrMTuQ99UXpxzBIscFnM/Zrs8lPBARGzmF2nI3qPxXtex4ABX5o0Cd4NfZlZj\npj96skUoO8+bd3I4OPUFYFFFuv81LoSQ6Hew0a8xtJXtKkDp9h1jTGGUOc189WACNoBLH0MGeVoS\nUfc1++RcC3cypUZ8fNP1OO6GBfv06f5oXES4ZbxGYpa+nCfNwb6V2gWbkvaYm7aFn0KWGNZXS1P3\nOcWv6IWdOmg2CI7MMBLJ0LyWVCECgYEAyMJYw195mvHl8VyxJ3HkxeQaaozWL4qhNQ0Kaw+mzD+j\nYdkbHb3aBYghsgEDZjnyOVblC7I+4smvAZJLWJaf6sZ5HAw3zmj1ibCkXx7deoRc/QVcOikl3dE/\nymO0KGJNiGzJZmxbRS3hTokmVPuxSWW4p5oSiMupFHKa18Uv8DECgYEAwkJ7iTOUL6b4e3lQuHQn\nJbsiQpd+P/bsIPP7kaaHObewfHpfOOtIdtN4asxVFf/PgW5uWmBllqAHZYR14DEYIdL+hdLrdvk5\nnYQ3YfhOnp+haHUPCdEiXrRZuGXjmMA4V0hL3HPF5ZM8H80fLnN8Pgn2rIC7CZQ46y4PnoV1nXMC\ngYBBwCUCF8rkDEWa/ximKo8aoNJmAypC98xEa7j1x3KBgnYoHcrbusok9ajTe7F5UZEbZnItmnsu\nG4/Nm/RBV1OYuNgBb573YzjHl6q93IX9EkzCMXc7NS7JrzaNOopOj6OFAtwTR3m89oHMDu8W9jfi\nKgaIHdXkJ4+AuugrstE4gQKBgFK0d1/8g7SeA+Cdz84YNaqMt5NeaDPXbsTA23QxUBU0rYDxoKTd\nFybv9a6SfA83sCLM31K/A8FTNJL2CDGA9WNBL3fOSs2GYg88AVBGpUJHeDK+0748OcPUSPaG+pVI\nETSn5RRgffq16r0nWYUvSdAn8cuTqw3y+yC1pZS6AU8dAoGBAL5QCi0dTWKN3kf3cXaCAnYiWe4Q\ng2S+SgLE+F1U4Xws2rqAuSvIiuT5i5+Mqk9ZCGdoReVbAovJFoRqe7Fj9yWM+b1awGjL0bOTtnqx\n0iljob6uFyhpl1xgW3a3ICJ/ZYLvkgb4IBEteOwWpp37fX57vzhW8EmUV2UX7ve1uNRI'.decode('base64') +x=RSAPrivateKey(k) = Key class : key version x.version == ASN1_INTEGER(0L) @@ -46,10 +42,11 @@ x.coefficient == ASN1_INTEGER(13364209135497709980522851534062695694375984073722 + X509_Cert class tests = Cert class : Importing DER encoded X.509 Certificate with RSA public key -x=X509_Cert(open("scapy/layers/x509_uts_cert.der").read()) +c='MIIFEjCCA/qgAwIBAgIJALRecEPnCQtxMA0GCSqGSIb3DQEBBQUAMIG2MQswCQYDVQQGEwJGUjEO\nMAwGA1UECBMFUGFyaXMxDjAMBgNVBAcTBVBhcmlzMRcwFQYDVQQKEw5NdXNocm9vbSBDb3JwLjEe\nMBwGA1UECxMVTXVzaHJvb20gVlBOIFNlcnZpY2VzMSUwIwYDVQQDExxJS0V2MiBYLjUwOSBUZXN0\nIGNlcnRpZmljYXRlMScwJQYJKoZIhvcNAQkBFhhpa2V2Mi10ZXN0QG11c2hyb29tLmNvcnAwHhcN\nMDYwNzEzMDczODU5WhcNMjYwMzMwMDczODU5WjCBtjELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBh\ncmlzMQ4wDAYDVQQHEwVQYXJpczEXMBUGA1UEChMOTXVzaHJvb20gQ29ycC4xHjAcBgNVBAsTFU11\nc2hyb29tIFZQTiBTZXJ2aWNlczElMCMGA1UEAxMcSUtFdjIgWC41MDkgVGVzdCBjZXJ0aWZpY2F0\nZTEnMCUGCSqGSIb3DQEJARYYaWtldjItdGVzdEBtdXNocm9vbS5jb3JwMIIBIjANBgkqhkiG9w0B\nAQEFAAOCAQ8AMIIBCgKCAQEAmFdqP+nTEZukS0lLP+yj1gNImsEIf7P2ySTunceYxwkm4VE5QReD\nbb2L5/HLA9pPmIeQLSq/BgO1meOcbOSJ2YVHQ28MQ56+8Crb6n28iycX4hp0H3AxRAjh0edX+q3y\nilvYJ4W9/NnIb/wAZwS0oJif/tTkVF77HybAfJde5Eqbp+bCKIvMWnambh9DRUyjrBBZo5dA1o32\nzpuFBrJdI8dmUpw9gtf0F0Ba8lGZm8Uqc0GyXeXOJUE2u7CiMu3M77BM6ZLLTcow5+bQImkmTL1S\nGhzwfinME1e6p3Hm//pDjuJvFaY22k05LgLuyqc59vFiB3Toldz8+AbMNjvzAwIDAQABo4IBHzCC\nARswHQYDVR0OBBYEFPPYTt6Q9+Zd0s4zzVxWjG+XFDFLMIHrBgNVHSMEgeMwgeCAFPPYTt6Q9+Zd\n0s4zzVxWjG+XFDFLoYG8pIG5MIG2MQswCQYDVQQGEwJGUjEOMAwGA1UECBMFUGFyaXMxDjAMBgNV\nBAcTBVBhcmlzMRcwFQYDVQQKEw5NdXNocm9vbSBDb3JwLjEeMBwGA1UECxMVTXVzaHJvb20gVlBO\nIFNlcnZpY2VzMSUwIwYDVQQDExxJS0V2MiBYLjUwOSBUZXN0IGNlcnRpZmljYXRlMScwJQYJKoZI\nhvcNAQkBFhhpa2V2Mi10ZXN0QG11c2hyb29tLmNvcnCCCQC0XnBD5wkLcTAMBgNVHRMEBTADAQH/\nMA0GCSqGSIb3DQEBBQUAA4IBAQA2zt0BvXofiVvHMWlftZCstQaawej1SmxrAfDB4NUM24NsG+UZ\nI88XA5XM6QolmfyKnNromMLC1+6CaFxjq3jC/qdS7ifalFLQVo7ik/te0z6Olo0RkBNgyagWPX2L\nR5kHe9RvSDuoPIsbSHMmJA98AZwatbvEhmzMINJNUoHVzhPeHZnIaBgUBg02XULk/ElidO51Rf3g\nh8dR/kgFQSQT687vs1x9TWD00z0Q2bs2UF3Ob3+NYkEGEo5F9RePQm0mY94CT2xs6WpHo060Fo7f\nVpAFktMWx1vpu+wsEbQAhgGqV0fCR2QwKDIbTrPW/p9HJtJDYVjYdAFxr3s7V77y'.decode('base64') +x=X509_Cert(c) = Cert class : Rebuild certificate -str(x) == open("scapy/layers/x509_uts_cert.der").read() +str(x) == c = Cert class : Version tbs = x.tbsCertificate @@ -129,10 +126,11 @@ str(X509_Cert(str(X509_Cert()))) == str(X509_Cert()) + X509_CRL class tests = CRL class : Importing DER encoded X.509 CRL -x=X509_CRL(open("scapy/layers/x509_uts_crl.der").read()) +c='MIICHjCCAYcwDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWdu\nLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAxIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0\naG9yaXR5Fw0wNjExMDIwMDAwMDBaFw0wNzAyMTcyMzU5NTlaMIH2MCECECzSS2LEl6QXzW6jyJx6\nLcgXDTA0MDQwMTE3NTYxNVowIQIQOkXeVssCzdzcTndjIhvU1RcNMDEwNTA4MTkyMjM0WjAhAhBB\nXYg2gRUg1YCDRqhZkngsFw0wMTA3MDYxNjU3MjNaMCECEEc5gf/9hIHxlfnrGMJ8DfEXDTAzMDEw\nOTE4MDYxMlowIQIQcFR+auK62HZ/R6mZEEFeZxcNMDIwOTIzMTcwMDA4WjAhAhB+C13eGPI5ZoKm\nj2UiOCPIFw0wMTA1MDgxOTA4MjFaMCICEQDQVEhgGGfTrTXKLw1KJ5VeFw0wMTEyMTExODI2MjFa\nMA0GCSqGSIb3DQEBBQUAA4GBACLJ9rsdoaU9JMf/sCIRs3AGW8VV3TN2oJgiCGNEac9PRyV3mRKE\n0hmuIJTKLFSaa4HSAzimWpWNKuJhztsZzXUnWSZ8VuHkgHEaSbKqzUlb2g+o/848CvzJrcbeyEBk\nDCYJI5C3nLlQA49LGJ+w4GUPYBwaZ+WFxCX1C8kzglLm'.decode('base64') +x=X509_CRL(c) = CRL class : Rebuild crl -str(x) == open("scapy/layers/x509_uts_crl.der").read() +str(x) == c = CRL class : Version tbs = x.tbsCertList -- GitLab