From 4becad5137c5fd8b75a85431e42c720496b6850a Mon Sep 17 00:00:00 2001 From: Kay Hau Date: Thu, 17 Dec 2020 07:41:31 +1100 Subject: [PATCH] Added RC4 fields to html report (#52) Added "supportsRc4", "rc4WithModern" and "rc4Only" to the html summary. --- README.md | 14 +- ReleaseNotes.md | 4 + sample/SampleHtmlOutput.png | Bin 78479 -> 107940 bytes sample/SampleServerList.txt | 1 + sample/duckduckgo.com.json | 1144 +++++++++++++++++++++++++++++++++ sample/google.com.json | 516 ++++++++++++--- sample/styles.css | 2 +- sample/summary.csv | 7 +- sample/summary.html | 2 +- setup.py | 2 +- ssllabsscan/main.py | 9 +- ssllabsscan/ssllabs_client.py | 14 +- ssllabsscan/tests/conftest.py | 5 +- 13 files changed, 1624 insertions(+), 96 deletions(-) create mode 100644 sample/duckduckgo.com.json diff --git a/README.md b/README.md index 398b2be..73b4f8a 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,22 @@ # SSL Labs Scan [![githubactions](https://github.com/kyhau/ssllabs-scan/workflows/Build-Test/badge.svg)](https://github.com/kyhau/ssllabs-scan/actions) -[![travisci](https://travis-ci.org/kyhau/ssllabs-scan.svg?branch=master)](https://travis-ci.org/kyhau/ssllabs-scan) +[![travisci](https://travis-ci.org/kyhau/ssllabs-scan.svg?branch=master)](https://travis-ci.org/kyhau/ssllabs-scan) [![codecov](https://codecov.io/gh/kyhau/ssllabs-scan/branch/master/graph/badge.svg)](https://codecov.io/gh/kyhau/ssllabs-scan) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](http://en.wikipedia.org/wiki/MIT_License) Support Python >= 3.6 -Call SSL Labs [API](https://github.com/ssllabs/ssllabs-scan/blob/stable/ssllabs-api-docs.md) to do SSL testings -on servers. +This tool calls the SSL Labs [API v2](https://github.com/ssllabs/ssllabs-scan/blob/master/ssllabs-api-docs.md) to do SSL testings on servers. + +- **TODO**: use v3 instead of v2 +- **NOTE**: Please note that the SSL Labs Assessment API has access rate limits. You can find more details in the sections "Error Response Status Codes" and "Access Rate and Rate Limiting" in the official [SSL Labs API Documentation](https://github.com/ssllabs/ssllabs-scan/blob/master/ssllabs-api-docs.md). Some common status codes are: + - 400 - invocation error (e.g., invalid parameters) + - 429 - client request rate too high or too many new assessments too fast + - 500 - internal error + - 503 - the service is not available (e.g., down for maintenance) + - 529 - the service is overloaded + ## Input and Output diff --git a/ReleaseNotes.md b/ReleaseNotes.md index c8316ff..147568c 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -1,3 +1,7 @@ +1.1.0 - 2020-12-16 +================== +- Added "supportsRc4", "rc4WithModern" and "rc4Only" to the html summary. + 1.0.1 - 2020-02-12 ================== - When the API server is overloaded with requests it returns response.status_code 529. In this case request_api() diff --git a/sample/SampleHtmlOutput.png b/sample/SampleHtmlOutput.png index 39ec10489fb01714352af25df224117b5f866d60..3b13061f1ba760ea96a3226ce491c618c6714dd7 100644 GIT binary patch literal 107940 zcmeFYXH=7G*DY+>ZWIJmnn)8-K&pcDCZd2;>76JDkuDtqgsq5(R7HYxm0m*VNC^=H z0)!$pK!6Acq4z+5kenO$e)jf!@Ar-~&hw7*@5vYpl6xd@-D|CDuDRyC68S(+gP!&h z?XhFW=ki+mj<-qGWDdzWD0w)!)ye*%9S~^4h0Z zv7fFRyuD`e$tmgzS4!OjX5EO7cNy<@Yks|nnBkRbpqFdVOyiOJw&t@t;HzhnF7K=7 zKQy>)Z=15LQB zMPvL^_thU@?o8{1l*E;rdoEV7?iTH$RQaIY-3#KzaWc~FAno1WdWJk0 zWlLYT6SVYb)u=#<>|fv0$%C8eWWotBO+<6MRHvmSb&R!0lWKZ8csR1;kb;4`r=z>e zYkEV*Dc?Ts5?xrS2PI5+mFfUJ$8awqLqvw$PVc75KkIb64D8?6;$-=ozCRA=MZoiBg!P0VxlUsDy4k&+?GQGHX4a4EF2r{Y zLBG-7)S5DzE}MJg%&I*s&bz|J5V9s14*L5a-A>iKpOpEW4yC8l=m{n-BdGS>Ga6g3 zIap;}mEH#=QfI>IIjca-(AmYiQ&_U_z^ZV^Vb3I;gj3K1Qk9n0q|%9d*FUVgtdqV+ zd3Y@#E{Lpz`l=_z8do(kNy4&20-HL9RO5vbd`3EH5jTW>~ zh>j8iKE#mUgN_zus@hSn@j>$*D|BM#`yf^i6MVCg-pc5F?k^Ddgzfsmrjhj&cEO&? z>nTxA4OrWaBX@77A~KP;8it1x2f)4Vp~QKcNNv-zJU>g|y1gxK%hIlMa;7Pa>WMB} zRkhMvG3MHS;vU$w zd3XIRTjP$gU3n&c=Nkv!w!M+kU0bWK^bQgUA%A}X_d2Q`I8bO*tUkX&0M5uG*x6{Y zL&FgipH!))K#OvQ|Cr!=AYwI@R9}}5@;dBxi}28Ia9$sg-Kx}y@HF`UTa1^)W*MkK zB(&?P1H~IQR@~96i^0>ww!Wb@rk|5TNPCvME^LMaijVuyzkq=P)D^XI z>%nwKH1C)-Gc>W}=sy>)H;a4Dwih8#!W+$#GwUGkr0X~Mf9Ya>3@5x5Q%Pin+SEH1 z6_&9o#u$=(SH_Z6^g$&Zwmm~T%?J#k1_jwhsYnu2QyC^VK9s$qr@_}OtZQV-dF>W~ zbHy-~>}lbkq+a)NsjWWrr)2%cpaGZ607}b_q_)Jfh}I}NJau7NAXA>)s7uq0Y5Td0 zm86Lsgt!pu$h2H?b%3~HCiiP2P|(&`)#xZlSDCuy??!dlsY+?Esjb}o-bdXZoZ5AL zH(HoM*gJWlrzYvUb+ZeI`*54mAX z0g&<9%g&S-XW^g~CY&SH5i+%%kF-crA%gX}F1a?;sQ8ew6!a7cpWn_3vDdC^2W~~h zW!o-Ex(}7Of;@r-6`oCUf3MPCmaW@(>?1z-Ms#Iu%@wcIK(o!o$U~X0&f*}PnEZGp zimjL4lo--?dbxZ3n};%SpKT`wSyAV;ic`p?5HFubJ`4Ggih5;pDgGCZ@qw6~jnPjI z2jP>+q(<*kgXry%9yO0N%3QF4K)aPSsp_*Yb~~v1?T6x@D2H8O+AORrZbsxB9@zSK zQIV-}$atdwpOvv$8G($B&l=`r&jY>z|6b->xpuCtwEA43S-S#Od*9oV1%hAN?hDy{ zmE0C^jHOI|-B4kVlVa4T68pwqzxX7vBu1|D!800$a=mMj6V>a^79)GlM`_F=)XZWz zQx4-sJ-@}#2!y)e3htYAsdZvaLmJ?e)jnS-WnAluNKk5r%!L6>MTGVECfUWJul_Jd zgS*dHTU&g&gZq=S`KnEO^zAC`IBU7xm0}zlKQ{+M=-h3`I|D%^)#rL$UCEmk|;9;w;wF9B<_YZsV2Q&86%-M6T`?A5i9ZeGd0^noEZYBN&6A;f!#3SGe z-fG_~6Hl{8`kAf$wih~n-p``otf(j%NL-^R4O4}$%Idg$k^%2yQ878>)M!}WHT`mK z7jEbbZWLPzRM7?v%xX-In}+%w^t$jpd%4Z<(hSwhX&oI+Cmv`F9qnBOC6kk!FuIyd zaWsrjh(vwTJxA%h$Ig_*1)tZ{uNhmL;Cf+wSA7%9t8^NyHLJm*{_F4Kq~dzryT=nr ztWXn)Nuaru*iB&*!x2j9GV9zB`>@6S#3=mEh+ObfGj*a#l{Qa%ezT`yx#JU2vZW$) z(2zJ3q!T)msXaEY2nRknE3*cbs1OpS$dWQ`svtYf;z3R}(;MHmL-y|dILhyyOl`$$ zZVuanX`P);OZ=r0k@57KlgbqFJhuqJVVYn2vceGmwDmr04%)Ni)k0=pYUsZFvCBjIJRR-ytu=hqbr5C zGU#x?hl74^r};w=<6kTj4i_q4TdXyNQtHrSgf>{l#Z7ZLSr$h>4K#>S|cc%Z_5cH0Ya~zm`zM5!ITe zMU~hb5GEeUxYy706{z6+9T&?R6njTev~{;M5igpl(#|Ww@5|3l#zbQwHVxSNR1V4JmpxOS9d;-c_N-nx;`!A5Q7o_}^ zm4c{mDk{DSU1>!b1=A!$^Clh_#rRm$+GV*e0k6lse8}!Ss{wwTr z)0@*JX82P4-7dqsh5?RBTDh({j674^(jhuJHvq1qGvw9-4X|c$^J07e^!ClH_mFx?07isn$hmK?_Q0LkRZrIUsMC1&Y^X4H= z&owjQruXKE^)O_tW+TcwvzjFy9vHA6MH4Zjy7EQRQP6T-Z=+@mNpZW7$U#6jsQq6=g@=3+CIH2YdBA=KxKms4u1 zg?8XGw?6i~A)ersUa(;W(rW`(tzCOnpW4fH_|Pszw}N^#G)h5cw_v-#AD8IcY_WDF zr7k6jc*RQ2-xi}>Pd(ylnz8NPM%5CpXz(LfLwSUhE0lpEcaoq}6(O2LzJ9IS%P*j5 zJVtLJe)-m3t{wP%#|>5U zQ*p-fY!*wwM=UdUCr(?u;fZidB}<}Z5p*qhpM+U3`Rui-Y~?wHP|2)YPYIneTeNe6 z$%r7L%8vith@PB1BGFH#lDt-vGJ|gUn)VYmzJJu`kp&mnMk?HtvPa!8oV4%G@(2!^ z^csWa`-X#%m>lbX+4gZ2iqDRIM)H2QE{#WTv0=IK*^v?l2NigR1;`6vnG5~NEpp4- z9c#K8)sByyD4<-A(D`o%8Sg0xTpCn#(N_Ir!;Q~EU7w40Iin{Co?jp}=mwXfk=|AC zMB#FOh>E680XHnQiY475vl-!nSP2xB(>2{4s7b@gZr!zAX{I8@U6xd~2yr^VJUSJp zyw%1Ag=|jofk7%k9nu9F;zB$g4lCSdW$P|8931`rvPiGRxC;qHp5c1I#ySP1c!tBh zVzNn*-vW{jVlyHYvKhK8zbT*+uoA+kKbh>Q(eC2GO-=uCRx~^kU`7Bf5LbyQSsJ!_ z;KeHb@bY3Xx~qsd+g$gH(~PK8&`m_uQCn-Cm9TFI=oI9Mm~mfhWH?RMx6xJYb*x z?CmW;i6Xw#s*R%o)#Lm+V2!M-(7=lA2~#OM1$ai?#mElRs&nFzrRn6x!yp7cBu;N+>UwZKFoXJ0;l#$ za~KVECYA|DfZwxGRu>{$5;shHRy~Qds7a#zQuj&tfxe4sVn}tB737%q`haAYAh{e= zq%Z7~MQ30>g+=Xch%=cz;V2zn9x^D9RyZh%j2uY1Q;AZeUrTkeM|P~y_@h@Dkg|K~ z&MxWX!R#eN=dA>fY;bDBzNPvUwjS!!c}a}vSEOD#YW5dsQIHbOz1GNHMP+tde0-f; z(okYl?@H<(eA`#ni-!?e#_MM)V<*b>Byb8_yX66;=2c{t=5*AoFKOgikIGY`@R~ZA zvT&%ws!=l5BQ$m{jm$2t$yS+G(O8lmgnS7Y42DX(GPeN|Y^hGVAakr=H(L=)I za+{laWveP6YPHnc>WMomu#C0Ng+0mLwUoVizK++z#C1`!*P0UK_4xc9W&={y)H=9a z+z8lt<<{VvZ*4Qbh6Y+wq#s*>v5G7hsq;(3@w1%4DRPi9eE5W zbTV^qv$&b({kYj{sJg9aav9o-QG978RwGY&k6gBv$+_qCfL)}<$$OC2d~Ii5q_i}B z!v9pa;qtT@Ny^kwi4IlF)_&haDBD9040o3cSys8qU!g3`NnYXMtUVZ-w+&!WM&?5r zT3Kp>&W=l?0d-;I`sj1&h`22b)h1=PARWa9tcF606ktFGsd@3w@hPb-aZ_Y$t>aa| z!d_W)4~0K%2D{3VQuVvXL!LHS++L{fWw#_@&~FE*ea~7>h%BYCJ+hkeD1Oyhogvry zxHHj%Do8B6>jtY@7k2s9_G=%h{5hxBth+o}_))fp3ZxL@lox&9q^98rIX1TAQX$K9 zy#cTX=Hi8q6i_%=Gr}9ZZ%DeV{G_C^_wAe0hb`1s+ z7vl0@Z^J89d>)WoOs_2$m{DR&==x(L~F zYkhkH0ooQ!N;~jrcYG3(txh_<_MrMop*bZ^Zw0 zq%VVgX;GD}QH1KX)Wa4g8V~)n+FLxSj@0}7j6?N@!!lcX{W!hxF)bQPK%80Kp0Hx5 zy_3GNE<*0KQbSm#d27T$M*{aaG4@}lR1|&~*?#wV$g%pu#Ytg!E1B&;v<;S;2?vE0F2DyPi&FsJf|&)Ec9Cl ziQ39juj9*ecv-C!Y|3S2_=Y209FRL0763^{d|6)hAc!$9cR_{H9Y=`$F@DywrCDO@ z4TOhhimNk)Z7W3ODdtjVDm;X9-}<=TucG-AC7{_=jD>^V0Qvz(W+oJISk7Yv;@E;* zLt-ksLOi|IEjoqs;2nNI=c5EV`Ulz@G?dKMt`?G#>^~!Ot)g!$OUkuwp$!}TNvMmk(vj9)XsG;eF zZ&A)|RGzmc4 z@>d3!>>G90Eyj?mHSQQiqna=s$X=_ltzFU_?Rfc1bz$;ma>bqhZ>sakn-R}iXEfXd zumUPFqD;|*PE5UR#URuzEzpwx)rc0&B^#2j!_+D|LGl)lzhW>ctCzDj2v07l08=D} z{Bi8_=k=aN7&Ftqwt4Pu{dpsXo^7^@uXM7;vl5*mDnM{3@tic_Z_XRZA$9$p)8Um| z>3?Vr$!u&I1<33TQo=z0;2S0osmWz+r|}$i1UYXpyCHpIZNmP0_2{eqBIhKi`>IjN zSZ9a72jr(RGWRXntS3{4Mny>t#|_codU_L5dsYBV$}M zqQO6Z{E84JL|UU^$bLHit2BeRhmPFs{}P1{fany3K<&-#f|T}TdQlrkn7207p%9Um zvt=D^nd~mN60FTkYzfYEp^^LVzOf6gNMUNB8Vb`A-?Emu>nehpAFiL zl5o2Y4qX2pI_|ek;REZpxx>H<^=^HzfklH2)t9yUd7Y+Sy)D8>j!7>0op5k2bRZC; zM_gAla`&F=mAOWcZsW^(nf0O>aY4d`gFJf82*whh^3qt7Cyf$Os#TDafS#kGOZYMa zroVHoMu}Ru`(GTUGg_DdKXd3s^QA-lh+ zrWj1Q_93lve7+bcBMV+7|HU{7v9Vo+pkB=O=4N|f(>kPgNjXYODUbqe>0yd^g7MT1!Qun2Bvmb^PmrO?O-!!U> z1;kNH(WcW6f~U;bldI^V8XbeJ38C@Dor|C_p{jI8+tb~c{*GEnMyk&aQ=Ao|oj3-% zW_F{Lja}=a2Oz@+iQsZwOhmtSN#CfmA~|S}?#8+*353Sh229UHUe^{RTf$?+E>zd3 z+}vwRkBp=NnA3r9P^ZX2S)c#h6*5;RY`(?W6(TLyZ|a^QqMG%K%6wb; zh#+fDCBZMwDkNm4Y+v6fv+bYzmf72x86*N84qXkxNiDIU6vf#Fzc(Y|IgD-Oh#DK$ zhrU)n!8sAvenMZb(-D1@I-Ei&iiNJ!HjwtmlOsS%p1TaS7y1zji+jb`#50KHg$j_S zQ!zRLZJUtH0eB5Ud=(#ovY1D@9EjKOuenR_;d9Fu`AX81gC1eGJ3`3|%bBjJloj2G zNo12Ju3lIi^?p*mzeFZ@S7|fATIs*Ld z69EJPyrvmTsIx={+b^o`vByWMZ|nGCpJj~?4p2x+ZLhTY?332aR~KOUC(2A64#_`l zhUYqf%}{PF*6vlrzjP%9$eY}$3={5mo-j*_b7_Vtb?=A(W`qlaDdaalS~iRhsxgb7 z#d4<&MrS&pCm(367^KZEDl9%K(z@QbUKHK+l14fNSs4>SwYicyT2MJ;_}E&)?Mu<` zf;DW3F*R@fTH6Q>)I=mPa9eb4Ugxs22G^3)xER9g$O+t;t|rgRs1;|OA1wmQ256o#rf8Ucw|CRWs8 zmXC>pkpD39kgtOJjs?85lh{M|3w=FSenemG0HGmWd57l$_{zagUCp9h@jUYL)5QTs z0Z@OCqA!^~`R+&w*HBRKQv&%-*CwCq`R*u{c^?R)RkH z*^28S57)X9yo4JVLgM9ZJW$8F5GvGMGIA}Pz?4+9pd_)h=X&o3&v?3(f_<6n-b;|& zL)ej-L)D`E27+;BpZ_HP+#T?o*4w?`JWheS+md@FUNnh4VJ7TAIVtd#qinY zm>rDT(IV|od|Pe-)NaG?m16lP|KHI?(9o?&M~1d^&$4i?BIGHelGKN|lx3OiuD z%9HD>25~fb)F!V-0xnZ#B>O=+j}gQfX7VdqKC$4Hf|g7Okh8{(Za%`nvpO#brAwy5 zXnoBueWe%uF3{3OX|g`hZ>CI@7N*Cou$R1M(en;}^`KK~S{B7VoJ z*EM`z`rfA!d`qf(U3Ds{$xF?I_<3t#G)90X%xGnHZWTJWzEa@ydz_E|YeDiQ?<_hA zt*NB3DtE}Rt?3iwjqDKdLcbG1(7n#RoJnS+s=`60+o@uhkQLrPpTfO4s#g6qEILTm zaam?qQSq=f%%igky(2mP9GawrZcNv%ATk2vxj6nNqsL;d z9NDTuok)^+Ph&Kcj3yx6lD_39p@yi^B(asyb%Z>J=R* zy0ZOVzqwh0T_y%{$0=l{Z#AkXH9>2yyU0D1KA7M>VmhI0t!&W5H=_o$sPYoKYjHmG z*3E#?<}iLyj0%)_sKfPRn+x|?X5fe)6Im{szNwhVo_c^$iLFQRlT4XUKNv*20 zJ*;dNN7M5#LiZokKrpjkz~r0BuW}-N4^hq<-h%c>7T+(=>DjhmNya`nt#(f0_Ql0rQ=d-Fh)PAVG_I-MjoG9K`PLyrg7%u+*ZYB$@U; z`LJ|0_H`_}iQ0g*B<2L{+L@qJ3$`b+K=isE%6Pp*QA1KUE-vS!@GzdzWY9Gji;9`kAnI zW_iq(`FQ7bvLS7EvDFv!Y=$q0 zc2#XwhPCzRhL{aPjfzBwKgyjy1SwC8GA!Yg^Z9W&8XoDwozZwegc^#}KUV`O%D;~k zEL<;oA0vhb+>6*tEr76zG*80oeFtnpcTZ%b6%g8M4*>hmaZOYpbS0VTK%8+d-otaM zOUB!b*wld^^OFE)*t0-qjWNh2ba?DPM;DG2=^cg8mNewO+9giiPyX6iV?OqDK1*S< z=WUyat}a(S#sdFP**)~}VsG~8wkA{g8_ijc;UFb5u@$9&ZIrSvN$IQCGbs+n#hjgdKu(SBtc&>DU_XMpufZ3 zSs4+!T?TN1cJs`C+17vrv>>DZdo)uNcBdg1tPuPHPw@N>oIeo_yCGfE4=7i(nB||_ z>~Nq*t%EJrZ?6&i4Q$H~A;5CgU6HyhB;k#-$&?p_)JkeZK8a+Z&E1o2wh0 zZ$N3J=dT|RX3+@Xv!vU&G-SA~qW!{{p~;L`{=hx*PDlkXCw!}qV0j4m$n!FpDYXaR zo1Ksz71kOzJh527Cwq;XPiqqQ~T_l0e%3lbR31 zM;`L^aL|!uv0x7xkv_zwPW!TiL1NLl%C$4|hZ;TXdA(oL06$x#<6x$!H3P3Y2u*!gs z%4-x{d%!APr}OKu^5hKgMm6Al=SAE{AU6ygJ#qekV9uPBe?qHSo$%{;_y;T=;H|)i z+pBywyIZ}(<`T6l&~uF>pSokSgc>D@gXV{qj?LI*(fvAF|MMv+YHdu%r`OvvGt_1- z!XKYX`%e9;Io#F;F!AV&-;bj+OKTEB54TLB!&^Ce3#(R7n2Hv>+`N-$C__HcZd%L@Qx(rg@U<$5{o(HAsKpcI zeop9Q``+-*VqE%!iEMf#$nQGO=XTECcDbICGo|pR5)K)KQn$J6? z`g}}XM%4Ww;{U9(e9&^%z-S*3F+^KReJ;ytKGeL$RxAA5qZcQ?W}Vke5IA9Sx_Lw^ zyGpU8+P(dBVe9E)4vBu|$AuSOAQjrHOf;JB$l$W+CLV_loqAkLXAH{$Vwlp;6ApU9 z`!eTblj;ezPqpnfyr=m%FLKA+PEkCcf9G7A=@s}aZ#A&82cqf^C*t4aUN%a+ygZ>= z0++wQS~tpXGtYleBz75N^Pya%$~18B9Yv6Qhwi2b*J*|e7cX?*TLo@%>dX3*-}-+< z-UhN$eZfhTu?)^3@!a|5iKUm(w@xJ&{`P2%!OLyvP3gC8>4iHoqafeo7ON)`9SW*C zvvRjJrr0cBJzBW^H2zEc6EQEd)6J)8UTW~g^XvascniuhFM)_v36F|)Z1 ztH14F;SAr*zkX;y3TL(ZPYM2~1piZl{{s|6OI9=06U+v)L)aKy-+^aV@&2Z{0ff1Y z%=QH3jFh@7hKF3m zO|{onn^jV8&vJ+tTqmt^rz0s>&*n2^CfC(z@syc(S_))g!Iw$m-pk1Dfv>Hws>8<~ zA6+uXgPbWJJbi}7!^EmO`=5XO_j?4XO&XQ`MNlvxXvZS39}o@sS$=mqZu0QA;TV7Q z&T(BM(yZz!4NLQTj~@B6K<~i_{)nW72!3vy_u``HUQlOej5m!mm^GB$0aRp78Yj-y-Z@^*VbNh)n(DPY#9 zi8_cgwOWIw#?SiT3oOa8XW~_%s7FSynC}qc?kINA9U%X{YX5%MJM#)&bdqi2P`m+$Oc3?^^Kqs-Pci_2Ib=alg?pat==pTX&ZheBm{ zJF0DJAkHfZL2&8(c{qWf$I!SRwSRkRk+R!G6)zrXzWa6GaQ;;48M9f^Hjy9K8 zx;Quqg{Yy42dppzNLH%K-<;7=Gclx=4waD}VwL;a4XGlhJYHxvXZw!8jJ&r?E5~G& zznbUttsvm+e(EZba^BPflRj4VvC*o;Qp2g~+rQsd@7TG#V{Tb{{`k6}VDb9WN)!Qc zFKOVFNH6kz!+Tw;{K@-&=IXh`h04^P!e^eV3Gn*WEkaUG0bGPj8a#HqaNy764S(P% zb-mVRQzX_?Z^vGmGscuRbxTT$$xg9qXm3j$z15ER-BZzhZXA+gHHrF3A);JR zp{01i>y{~#0o*DLw*m_F5x%z;K3o(j`|V&@F2Hvc=JGCSD9Tdif0Tq~I~VcmH&(-# zS(uqENL9g5XF_h(?s$dYz-j_^wzeT5uREviU-!|a`Q@Mc82VJwy%GYMXi;KXs^+ef zwT9YN!}A~_qQ##|O9`w>#0AXIs5@nz&vYj-MDyKSLBi`q*ByF~6YMrLI$ABR+U+CF zZdR*GE}6GFCt(aKVgtibmQw$tn>k_c0%JbwarZGZ^Tnj8PI=5iF?T5o``x68`I|j| z%%v&1i3~~oiIcid)XDw>><+wg2aho&I6;1+?evA`LJleVMDw4xDHD|;F z@n*=Er+V)~9C$9|%yY;xu;x+4A7{l5y97i(wtDWSZ5plIx@ub+xL>GfgB3M{r&KA$7bBg>P}nkla|ZX(nP%1P~m;Lm;XM$W#Y!&z5h&1@W!f8?&I`X zA5%uzsI&WI{S4{E#gxiFgl?Qza(odTu$o)3sHnKx!7IM@+h2=Tl9Lx0R;u%!>lY1N zO`qMOkw(*^Rs%iV&2QC8?0!-t+}c=P{+>H1tZmfSa3a=bdk*4qGk(C5?Igv`x6xS#YmeL?J$^`8MvFY5pT;3KQqS1 z=~wAx1IHfxoeTqs=^6m0wn`^9y35zPA%TY&4Xsaq?FTCjLd#r1&Z9uA0>(Mv4IwC6 z8``?6n0{Zpsj158qKOR+|7^1@QkZzJ7nG)WS?XaMtCHcA*+8{*mGl3IDMVkevN3$R zwN17NQhnyh;I*(mvpKG`tE1@eMY5ztEgNIA|LiM#4lOP+fDK>f!mcDyE2v+;+tDq` zb3Jmgtg`fVb92T`dHWpDK0}OBTa011OTfM1wTw`gz0J|&j&v(-^CAi&>HGKbTc2nV zsWJ|d+?*QscKxF>WLC$4@2&a&pGTW$*{j3Kd;Nn2bY>pooKUp?R@)F=Ual~(ziVWZgeKu#96XA1@@_S7-BujUK>$8mS1PdUl(Ou70rFI za^2cl!}8D)9^$oDuopH%f3<4A-z)Xv!NvvH8It5Ccc`M$9?Xr-o?9X&TF?d zR4AhS2P~_SK)c(NaECy>NI!|{5yzFNOQ^WcBjn68#7mAw zGD&IOIpfQ`bDJvMI_F;NJd{1Fs&Q2pnN_sn>J@RwWy8M5K_mjCqQsy0JfD?cl(D4r z{r*?M?f3PATq!B(m5MKXDol}Q7acXl!(`UJ%zVG?4DIint)_Tf7@%OKh>LZXE`(i*c3YAvuim><%~bsR?Wd^wz(` zGW}?5A6Tjb4k7+EX1`eHy}2=xVPqB&aq_ybOb?ePRntxJ&@h~W<%04g)ZICC*K)G? zE!+OypxXI}$Wum3S4744ctTtTD*6X+MCBNyzk|{2vKlq-Ft;@F!F}KmJbKq(bB5un z6rIy-yGoQ>+E;Gq$ntqwv68;N*eR^%IxZ)6lnO%cgV9(8(&ILK5ckP%`8PjBh zm}gAgyIS2(<`##plB&9zpiBKzq=>aK8Z&ru<+#>3-Y@tVe*sVquh8yeI-k50_g@t^%lasJig3Y)KPX&!^VqgdzP4McS;xr3Yg2Y7^3XR4Qh ztVaEBS(RS+NZ6)+hI^?M z#A;&nnJS9Ce3f@~yl@pqO3v@dox6W4FXv>hHZ;Bw+z*kNw>ON){{wjY(@m|@^mneU zEhZHGnJYNw?5Th4X*lOKcMiAiqQ&^i=U268MNXYsY#;vYY4|u0N@=*2l^!ixZE^6a zZ7s{Ipya-=M&w#@`ec+Y`A5K<%;w3BfrB{{yJZ-`_Ex{q!S_O`1k>2fotkv+Kb(XZ z`e|p%QdcK(#FWO(U~~GI@bI*QAH|Bk(xHXu{>}4sOHX1xp(9e>R0e-ea)&`D6p?7s zn9p=s2za{+`PS4uEtULn3HbgmTCDBRv|F3lsa+P`_OzuS^1k)O(oJUh~$78j=R z(eVo08qz(nf4I5kxQ8^Zh=;|!RSAi%4bn#@J;9(ur^U`l;LT?2u*0r`L-bC2`M$6T z;Ur1)F!)H7I=jCd`L~eC>#F&lrlqDNV+^&@*A$+gfW2G;U6LvPBkq3srxUz&Q>Ys1ZAq``a6v*&(&A5*@_Ci2cAz>_YF4`GTax|DbBt;15pX9KV{8h zy+Iu=9~ZtnhPkW2Zsl6Bb1w$3F>7d(V4ATxDOumZCfQRYF0R9%5>Hfq!!9EvrQQ%b z)Y)H_^wR%Ws`+ky;8(@1I*~ttcy`Lo$M*<^>T z+}fD1*tdj|EUDMrJkILY_0>Jvk zsE{*EaVwErFLe(|p$_N|^IgpP0A*Bsj1FGOO&?&(ni25EKY5`<;vfe6YcEcX^9_WK zFSaLEs~Jhgo63SUoQE);bqmX{sB>HpPQ?oVRE2x_x74Q=ebbgY=@cki0+eZR!?+0|oKZ5I>moGNN+>qmo`yq4~Y!F`it_Ir`Po6mrKnc0(-clULJ?D=I zU7a@!?YF`tA=>p-XEv2ZeP6tOQK=aHwqXPB@rPa^z$l=ni=s%by7*A&`SAT7J za&z&zH}_%dGTv~<#A@hm_G~Lvt^R>VdBQ%feiA-3AXC_Ti3-LyCp!QFp zXYXIzUkwS^`O0@qeOtyuxpaN_aub#YG)lafXB@HnfM@9;>JczD&o(K^N>DG=qmgbE z3tOX&<>i4;*;u>%qVrZoL|g<%pvTV7so65-`LJmm??C&^eWa=7o;A2^0Ph2)_al_( zfJeqF?LT6oJ!%Kv0)Nl9dPo*4Pl_bHeXb^H=*zCbMw`U8Uu_AnvF|>Av z`I<+UEYaOA9Q}o+W|sL8e?-4Pf@9^zh~CcSZ}5^K3=PCf1uK;(8+v{o?uAZc%jMGC z8ls#EX0Es)V|#JiF;MT~M)mTkNjaoIAEUj;;}_$sg~Bg)Xe#{eh^_txk*G)u_n-!d0W zgCHxL!5U;nW#T(1x{1%gJKj{#U!$SEmKJG@NP_Rio;?vk?i(!?DgYp>h9(p{rYmGVDQVN{` zKl#(%2xAEP^tT;x`r?H)?7`85KmGnPZhu8R=QFP#9e8H`QOA48Y#mY8t)W*A{_zSg zJecoVuk7!NmHJf0+byWVQoLK9fM2>7?vY*P`x^0#nsKY(Wo-+>gQ$2I8y9ojqxXUS z#6%A84tw4oHl#pW|&45_3jZ=A4fHK^RsEX}gQs<^FJB2^z|~5HmH=*}mfq)x2Q-PfLh>dw|IOZvXMA^DyvgSrZPC)00W(+E5{#Rbt?dOsTEBQ>!pN(QPuH zlTuZw`0jAws|r=QOIURx4Zk8whLYF&AC{B6h>LkbDVNlJRV}#}(`IAp^{k;w@EZ4V z>qxeo1>g2b6+hl1_YM3Fr2mgwc3ka_nR)%vihVyyTVmeIcPWeJE4;>0zv24I`v!e& zuD=RNKeQP0Au9G0M;Ko5zul8gGpbyuQTge7t{in)>lD;{cRa zkr8~MZ8WTSgPL$A#8aH>)S<$eYw|;ntZ9lf*?QlNd_s9`jSC}#vI+QACGta*(_aWB z5}H1u=+@D2W7T-AKE%Pndu+3z_~pvAn~*ft+Uj9mmHhxiL?SG%xMHL&??>zXg&4P_ zp_$3Vd+gP_12-mHC&CJ@X<@X7M@(jkKBO7wwWO}_XOMP&>q;kt+L)TQ5v0<;;D>DiB3d? z?gj_L4qaYxrH-KnDB(fQlgOp~jEv;*#Epkz~5yXJmI$r;6Q0wZ#M1BhC>2`8ov&e@kxaykGn(fkb+c-<1oF<(c+qLsSnY8=l}@_q%P^2s|QcaB)i zoDlrMYAngWf^1tDsD;t!$W%VDnW@God2NGZ=GLL-Wof}EtMtMGF-?qyeYxV1nBbf2 zux*+=9Dd~9WvGTK{o}Tg7$YN<@`hSMC>{kWDeR5mj2=^*MdNXLm*3NH2y0ic*N9`N z?+337T?WXD;ierLhau$c`&$ANjaq2L`4G_g+1~f{Wjg6HIL~Cao51X*EXOH-jbPIa zvb441xzitgY`%%dw@79`Z`o5LdIJYb%f7+J8yF+CGBy<} zooxcou6)4wi2Y1JFQ<3q5^0 zxSa&=%SUmZ9WZ)-f?b?3`eiBRSd~sGJ!G&@P*DLr8x3ePQc; z`jHNV@@TwA@5qrWY z0~68Cu2zO&SG&7D1y$K_QMIgZqMvAi1!qb{RBlAQoQk8`%&6?ATH`S9{T`NThS+Z} zXWkz%wA&WgxD#@7q9rFWW=s5dR>8+3Sm6afy?b>ZqWv1QXs&|tA$bOhwbq3=fQ|Y> zZ^;NAy4uaNJFTuYMuDuBRv+Fv8Wij^TDff{du6c?t-tZQaJltbU2%0SDT|(;_`2w> z=KQRG^D%BL#v5KvW7Kxmc=)z8eD~Q6XE%VaDZJWoy9IvCzTs|sZb_q6!_u~4K;GRJ z7jIhiw*QXOZ;mZgCGW1jl1z?SCCMLOaOPR07IhE}=F)6MF}_pZb>yZT%13ghXm5m` zcrdJ7yE`9Vg3skNLA8NtV}0= z)(J%YWP#Nkv;%$T{N9peZ@W=gnOVa@4iY1FKYsrW8$hZkYyRI@U= z{NCq-!D;e_rq|b;DgB$Du$@ASFtOB2wr{lu2!CW7x5-hmRCe@T@0uN}mz9)sB{s9# z$S7wNjlY|xv|s|eP*<@Xu-0lrK=z18YdZgCp2Mm40>}Oy&dg7m&J3(mJ}*uomX*f zXWwmDUpr#NW15&ak8>6BOPs%;1rPpLv}j`A2>A;w0(#HNuMfL0gWk$R?voqtAt0<4 zc?M?Cm6Q6eI4L>r{bpjz?$+E&Z)Kz}NAg2~XzUG-!9&85c;gCUo?4SsH1S2PZg^_4kiIZ_* z$O5^a<&ouEk!D+n)fP5Blc`LLlhiG?%G*gROV$4T>D^61Vqg2>iXi4=-DUU#-yW~! z=Et?WTg!L`GO+EU-uQneK?nPZ!(?O7dFe(@`NX0OdpW5_S7{q*hvBRUtQy6 z;;>D#XgII(e$Z#qH6qet&nBm#XipmxwPsn%@X9FEJ2o`LeP(48oORNQ*f~`M5t#a9 zWZCz>`1>`~>jxW4 zKAOq4=ax3n2|PNgvt}QM><%^q9gXFPy^G2>RKgm~@K(zPv7%etha|^RYgz>7<_jP3 zJp)aBvN0mm>dn4awV>p7yJ1c9{bGJq6r8i?#<{bNOn3!~GCv(?)_l7VVs@d5%2t=> z9^b$dZv|wwYCgpM(fvumvxj<>2JlpXnqgY8|M65!$Y zaAK0*t*VQoGK{eR*+K@T8r0Y-8i!H;yTt1)uG~`ls-sKhUKkPm5Vk)DU1hd-JgB$; z95li8?+1PD0r{X)1}q+$MK0CiQZFE-XdIt|q%29C1lTfGoFj29y=(afiyBn4#KmFc25`eDKY@*6-eH=gKG z?9utqDtxkNktcgd0fahw8{a#+(|T2K=GRyf5>W{~$o?~y+yTZChMOFI_ymja-6F3~ zMT-`1f#EmtF8V;D*j{)#FU?B3huKEpT%4xrcOEJ4M_VTsFpAPPuk7W4qlVIHQSJHRAJ8-XFjm3lu)f3_DsNA$K(4@*skI5c1#Cxm!Od7;A?z~AtZxyjRZv4tRGTt?he9`wn%O&@(2H?0t8B?EjNI}9y zvy#Lpg}F8 zn#}85h<{;5hguH~Ldjr}+rryg4t%dlv~O#H?&+lA_P|Js8)p!Qh>fKPdGeUy;Bz+p z_vE1rOdbmDABM@}s>~`ce%pL>pkJn!U)H(ngzv=83H;;(Tvv&I8A9vNF zD#UF!Hb13_gdwC4%!KOJqDZGcxfSw4*z>G!^HrKWD;82nHza1`zmL!pvx`jMHgh)! zW|{K;8aX`OL?HR5dNV@o;68eslf7`-jWyE%iDt!AYLaCoeaY2o-jB0E@snK6}_{%yHrsSY!1%sv1)P za5#tWm`rGPuFGB|^Oj0ZdMYb%S{Tvla$%&$U#ye1t+hPZvC4{6{v^=n%Et`(5x0kZ zJ0BXRt+qo@&&hDJhw}rGGYrq$gO4>SmVNPjf}>FDQ4u>GyY0cY^6D2K$0wjc6_rbb z2hSCtQ{+d+0%dcK#haNqGF2Q^+-%!+%xmv6#g%DL>*8d$cr_rx^6ILngFr-iko^ld zA3?6sk%5H|0sC>G!cBoL)#htKCQxRii@(Zj@(=oaEJ)X|dR{z!4;RQZo|uRr0nCRO zC?KpPIUEy8pcLjisTXB#XyM)EW9ri;vfi8Ali;VHAwL$v@#L@{d7&Z=>S~o=FhX zw5x`uBe-!B%!)$iC#X>dl3try#NXEEf3B zV?*>}Wv$M~UFVQLXa?91g1V{};+Hv#hDqpuMR5%Bw|_2qrL{B0L?6rCF_|Zr7pKDW z!6jMXMeX9-DRCijFDt_&Ptsj5H2`ZV1pMA|&d8188Tp?jSPV<#6lMSq-6`p}FQF+> zjWXp-zb9b5f2BEEbpE2>?qmZ7? z5qq5iioQd>7DL<0B+4m;<$B5vt;#uE?qM$Md7QySYv%cc{KktMd7tO!u| zFa3Ol{@fkQk`z!pWN_~DU15wQ)7q9N>zR2+Q@e$}Ev@}xjunHi_l3Q3FoV~^+}?^V zQ1B)jS-AjuG5~W1FQ4LIy1@MsfQAf#duZ`o8YOf6%T%Q2qWK{^1;A`g?vFNU+$EPL z(*v~u5?I_u%>K77VYSh18YRFCNE5%VxT~`{X_6NmXLk8v*GEQQ^tw^kWcb_c z9fy&2OusZHH+TwrzVG{zHS6DixF?nS-Vqbr>T(I2w6tSBKh+OkgBOSPE<_RVvFo90 zTtG&Cj4~G2V&SV{;=u~V)j@Vzwa{Owtj3$^{t7a+S!(E|$}PhvWs2g$bmX5w7+XETcp_u%jvaQc6%6{T-kuz!Fd@nnup@x6);)qvP zuj-U(UCfkNi)X)liQ`&^>lrrY*jPw@Wz+3$bE6d$#MunK{cR}h>lIRwx|Dx3e-O|g zn{M}1=k!#CGv;-ct+Mp%YT0uj{$hJnnT7|Yrm>sOP5rl2&jY2}@b6N+pFrs&QznM_ zSK%iE5ieVcO@O&^u8cTIUH1Lq*a9SX2Y5cUGp|+@9UlZ!`L1oV7|8m6l|HIlOs$ej zc1`9ot@S*Ta0?^|R?G*M>)0LiUDR444JF2jt~o1`K{*ZEED!9i+f11ZCi~oTLA0X@ zdh*NMLlt5YXGxW+6L=Rfpb|k5wfpUDuBo{Uu!A@4GlZ)$+K`(35{q8kijiG}#{=)O_2& z9Jl|>T2ljK-^RyQL^()ndywx4*H*N?*R1a;^qWMs*Nna9M}-z(GA%VXm`vwinf+aq zdiD}ri7LQk;&VLnI2f0Vl-`vw7WhwZw29c9G+pa6X~!SUSeX%rP1-|Bb)R`Eb$r&- z1KqqkBr|z}wBB)3KbV|1J*1i76kUr?j<}zbn}d{=tK|^2(pVaD)-PdiXxLi;lXhGV zp5*4g1pEO0Tjf*d9D6jSs~497R|9a<#S;yF(>nakT8!52PT$~5k*zTg$%NzEVLL!w zjFz0Jf&0pdgh%+5m;`NJ-5o)xrv<8-lD_lbsXZ330W2zjqemt}{psp>vdm=OFLIi- zvlCqm*l4t1wUJYQDIe=hxgB=2=Qt`dA)n5>mfi}upi>-Ozx-xqNG~{|xR5@_?+87| zZ#ICkM}(-0DMdw(2lBnz@5&9_g!HgjRN5fL ztYw@R-F~n}xZ!`k%tvF80q_AW^`50Ps|tNTZ$^%U{2A1d*2>?H6w@i(rZ`fvw0|F|5}YBIa($4ZpW00_Kv}; zd(PX>h2r3HCniBNJ`dPSFNMk1ob=)mqzNH8`&|@btZ+B1ya`z)E)_k-zvvJv55urL z6N=IkIve`(cHU=YfWYMvzI0DJ=-nG!9&>?G2`Ij@sWx-2LNg3`|7Fm1r7m><08AGB z1^~dqPV0|hkX~>2RpOoODZ+l8xLw8&`kR}la@2zt<4qT%5mO~n8n(= z&yS%kv(*4< zTK`gm2VsEZ=z3{_B=gF`%dm!2RO&tI`(-mfK?NJ+tKMPUBa3`JO*rM-r~gxo-g#oF z_etRkq1$Tmv}35EEPLNt18ISXfj3vtkL`^cpWxIOUN?p;`z!<-&DrG^_hr&lJ@4 z{e8T?Jcar{dwvn1={VU9_fG-O_kupGp>zBg%xf<{(kzM8I(eaacLFVcGN;Jj)DriY zD&6%CAA5w_ed?{Gqe*?sgRhTI6jhPt{nPxx=g={I zt>uhzqU&Lpyi^~9qC|oKLe93kM1MO^ANX<)&sZ#gEqKOoO*;FZlFUm;BVX*4&_r*) zmB6-6YD4@OgUrD$VRZ{MyO&Cg`=-U0uXx{Ge}KVzW9i49T@Ac{_=&*c;Og)_w>C2x z<*(SoPWI7!UGc$7$+doh3E;Cbz^DAfA@!UuQ#Y+thGE)C?IpwybZCqwM)&EKoJyOl zOG0#EKE1U$d-+ZlCU@Y}?8Zb{&$n9KBLa~2(!Bw^9v(vlEsTbL4)DV|PsvS-J+X%D zAfFPSRr=zx!kHyk-dXsA&9@I|>k*4&k4}GaRsCYBBDHa-X{P_cs-L>rU_Eu!3xFKD zL4B$h!B@4_*O7ZDg_b%P+(>OSdk2BonZ5efCsh|;&Q|8la*m3D@}ZB-wa${vb#Q-@ zy<9i_Y*#jsgOA~#f@5Pk`}1GujygSO&$}OQ6d9$gXr@DG@1m~RosZ?Q_4)p!zv18+ z>SbsHvNFqG>@H5c1@-QOGIY?)uU(+hb+)gs)Kl4CEy>#w`2N1$~+pJ z&}X6_4H3Y$z6Y-{dcg;EO)g-Zy@SNAxs;@2_=5`2W}Uua=_@8dpwh|$y1#;6FAc## zKDP5hMBjUaFa)F-_d)^_?9aIdW60W1)B0j_ylc2BHe2Rf#AGiwL_QbETmQ$oXz$b2 zL)=3)@0je=r}GGn6XTo{fpG@1KQ_&&g*<;1d{N|GM{MO5U{!XBG&$CN!#>VnSnIP9 zJ5_?oz(q~|5@v-K7=+|}5`b;n%o@^V65L11Mz!8wPtL{IK>%Bvzf#Sy#|&rNe86HX zc*j4olI(`bTmq5-jhr1zHvVFocxI@&lZG|4B6Ic2dokb8>tjiVJ0g9ry6c{+rEYcx zdeC^RB1Y487R+$$3_BEU4mU4&*M^%mb#%N+u@akOZG-|Jly3XK1{^PhIIb<2+G2d< zSKGw;w>C+f60Lig?i;*ezG72oUs-PUrB$%>?8t!MHq$h13H~#r2<$| zoROX%EGt*#rtN$k5KV>s-*dQqKLfS0^?Z=dggeZ{@lg&Ojtio1?Z+UmvDY`kz62&xp?>z_{zbTY{aD{LgOh!(UyR;bQ8#pU_-@R_Xp`3W*fDp1>8O$>cF?R&)Q=;w*g3Oj8Db4gN-?A#3@{XLYGQq*q`mG;C@=R0 zSs1fw*^SkA&aE@Usw#%@7oYQbE{yUO%GD6`LnwhOO}V>{GikJ9z*}9F$i$um|?q=+5>8ln77!5;+ww z^~q`0OQ6SDPB3&>%8&gxc#HpfP8z$@vx9+_zAZDqH8&T(cWL|6YUMw%`;%aN(q@HF zbbYmq*?~(XWV7^>LuuUilURIPrpOw&Ox+n5E>b?%wDyt+Pm>%jLo@0lYC085UY}qI zG_13Q&ez^il2vM_HG zb6;)`Eip1VY}&DeXfR@hu8SnQZP*K2yh(7i5j-d2OHOILn`C%_dGpTY+6zCPWIrs8 z_~k9R%oj0In38&WnY6k_g_-eHS!8uBI8-cdCGekPB}VH_C36(0_ml;}nhJl8s?PY9 z$Kc(}yAH2z*rTsI;q?==`4jXV%UR!MGU{|>#cKNhOJzu7RMAXWhmclrUq-fUqt~&1 zSCdr=Hoa2rV}COJs?SZybX)qMHDGg^=i?rOZa;uf+CCjV$2k_kUSPY^G`f=|eGlFr z=)=EKyqIO_flFALP;x{HJr;j6jec44f!yhRQN>r;QQXiuVtwapjCfD51pOf4>7dbk15$tnA=xZRlT!iTH8HBReC1AvX`m$b1%BD`r4<{BP zW6W%qb$#AbhcVxB4sT>QR$j>9?7DSz#mYdzd+0PPPoMPv^?jGz2?P_1Z4UI0nBoog zc2u=wGR1W zH*jUAh9#hNxs}tuhef07DM*%=Rm^~7H(^Xj@p1x$8(#;zlkT{P7C#RJ0mYCe;Va=u zTZ|fs%_Qu?j_aO^?vCGs(UtPFiytgBP4*TU8>QBC0cAgm-cSK=s_x5wS6Aoz=P!Iv zA3|L>qrcTOnV^5vambZI2!23-?mD-f+v&hq&uy~m?0Q|M`1{vwuV`yyyv4J9Y535; z`mgnCLAWrcxFeN`EseuowH+()PHI$*CkC47_3kwrqT~M9BR+EA?WS1|gZge%G(>dn z!MBspx2761Lk#!29dFw2=p%KnsSqCj^R!fz^;4CdnNv=M$%<@cGjlyTp&`^%;g zoAt#c{*xm)6&u(sHMx>BLjXh?d*hDl7lV$^A5(L$23VvIO#F%BK4NSi)3Sb0SO;I+ zdkVgy07Rm|aC8zb6wqOLRQrk8hVC?uep08jATv%T(Ew9{mfu1aw^g-8uSu6 zpzyJOb~gnuw~}J^iU0-4b6;K2HqOh{pW+j#&=0fU6{Qt_r(d4k`YQV~0@eZ-wMtWY zYcn9n(kgx`+k5fWB;6CeV!od71>iSlW>w2xDq1hp+B|T4aW)0O0v$Fj-FK#X&8-3} zqIIri%{u~#Ddfi%B%R3}Cm6+wR}{|X+i$jemAwg3bNg-fr&Eq}25WlPp)@o(p zJ<}|$!xZH3J0;HMcWarwS#6^f%AzGj%%m^wp!{ltWztV@-?rsCqk;lXJ`Ygp8Bu{&aH7G{5=uy>kGi-0(poRRMH5$>ETj{#s0BM26g8Tjhyw8G9XN`%x*q)GLy_Qx{D$(L#N0) z1D3ppM^5hydbQXgCCt>g_4~H2o%oHL&5!k_eH%VA8ldB!^*k*PA{AMc3J0l2t5H#%@kpCsfqnGN$Ckw-OzJ5 zoLZ5uFp(%T$}tOBlgT$x$kC|?i_}(b zEt4c#r9ee%d?f+o%Vl%yw(wK)i^p>5ro6o-Ugytxm{jA^KBRaVNz96O^2jnb&TNV2wR2a zt>vM?Onyv{Os;~?*w(?B;HquhHyLZ3_E*&7E_o1JQw;?gZ`6-d5JxvKsIZhDQt<5- zuM(J+?MdEiJdXV73w(U+ri~xk%pW>FvbHjLJ9ec!g38>(?+z*g!97T4JC7ZaT^mQP z8=f?Oel2uyPa244?p9|lE>F}|?3$1cE6+VcM#4*Ian45rcdG3uvgp3Cbo-galhsmu zg>6#-OL^YB63??&VnPsGDQm7&P-tb-J5C|<)Jp#KV}VC}DxgPA`XU?&)q6u3`K?OW zAV;q&Qff*Bv02ueOP!yF-zeEVrC|MC*t;OaTU0t@bYgxb^csBrvvBmh3qa`t#^**R zZ%|iL3E+1=#Il%%*%;h%^?!w#I2=Mu7bwQ+8G^OBmoqc>Z7*XBTKp30$!^s#xxd#ieqO?)xnK&| zGwQ2(CsCB^?fn&sz7G9Sqt6Q?TXl-^k3h1?;N2a*9;7&LqRvE;f3W}<6*9mL%q-gz zX1I>NX^0oYO&x{oDq>;^SJ{ z7JuJs6?D&jy`V5xwBy7TYSALCWz&LB( zEX&ah5ZnSDyVV=%Yp(lriZV>v1VV<5CfIr`{Jsx-yuvvIJIx0pFh$(ixHHfI2={Jh z?@-gRfQ1#xsZVC(ym+=@4!ZfpN<3i9t{HA)y@$wl?jFD&2yQb;8M``78Xn$1fq~BC znJQtiAMj#RD_4xFPWN3b-EBX%=>(`}idjid<$3nEV#ja7li@k99doOrM{sCP8*g` z;sjRZ>@<16qI$HEiDgSG+MDd)r2Z+8p6dAa$kWQqV0NoK7hj!{NyNO?{j-IpTzu@i zlP8hKB^Ya=rAUyXNxVqIyUM=$>jfd6Yp&spHTr^=>UnD{KddKS_20t=R%9C1R!ci4 zX#y0zj&aWQb7opR4G#tj#X@t!)*qa?we;DP3jy6Y^=2^V3Xso}^x;u$3uPW#xzu`Z zVSWeG>FIXvBS_xX=Yhs~K7O?h827-`=oh2~(?6yAVm#Xc9ws)p{V4fV3XPK)k>NZvvjwVVIv<|F{FvNAt2LDf++fINowN>re zuQB^X0}t$B;YdF6xG@w=;zZRDqiv=z_fIn2_10Jo)uz%upZM_3S{negG@|2f_5$!y zWKw^7Ouhh8bfiYQs@b?Jar_rT3mx?<+;-D7!>OHLFx9*04+z2Z`(m?~5i8NymiMf^ z)v3D70EK61J73{^r9G*jxDyXw=h9oOc3tnxLeZ>dj_)Q_DQ+T-*E%P+vNL^a92lUT z+G$&+i2`;JofUsEo^fA4Lz6$u5X)R9e&{?`ShJZguY_%0DgzCb0a z%^bPewec)ttq^nA^Y9nap>;p>OhbzOl(@`vUOe;r;b|Y)v48p6)P4$59etwE4l?@p zwQA18i;;d`tF6BA;apW1tnROrLPoYx0Ah;~wN#eD6$Mtn^~;+S_RAM)*tT2KAXx2b z^F0R1Drj1tbd5{(EQ9M}|02ZI+isBwbi&}YzEG|`}8t)zY67ElA#Qp#*6@ipDm zXpW`Dqi$XaoUTLDpW9|rqBpdu^-3`$0}hmStL3P7A5T|f<4x=ZyI^vbsuYr{N6?G- zy7B_pOqYDOFVOi;!**V+3J>_Z(dPqXPsb>%x%uKYhD$%^5S*k?q3gDu7Tt?8%F>t^ znd;00GL?=~&==|cLpA`EXFfqURxAfN!W@dxx1DYco&waEDAhs1rK_i}=%&2Xj@fAx zQ?L$nIQqynjIF>#5)P(Dg=epsoUD!=?qrA=i~bc zlNgA}mcC?r-z8Rm*rJm>u0cxgbP2v=aNLA3=!|B9RITZCjdh%0AN|I4yKn&2hnnw# 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%0Dq7YF3 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 diff --git a/sample/SampleServerList.txt b/sample/SampleServerList.txt index 699c65c..a29c48c 100644 --- a/sample/SampleServerList.txt +++ b/sample/SampleServerList.txt @@ -1 +1,2 @@ +duckduckgo.com google.com \ No newline at end of file diff --git a/sample/duckduckgo.com.json b/sample/duckduckgo.com.json new file mode 100644 index 0000000..e77a3a0 --- /dev/null +++ b/sample/duckduckgo.com.json @@ -0,0 +1,1144 @@ +{ + "host": "duckduckgo.com", + "port": 443, + "protocol": "http", + "isPublic": false, + "status": "READY", + "startTime": 1608111674810, + "testTime": 1608111772601, + "engineVersion": "2.1.8", + "criteriaVersion": "2009q", + "endpoints": [ + { + "ipAddress": "52.250.42.157", + "statusMessage": "Ready", + "grade": "A+", + "gradeTrustIgnored": "A+", + "hasWarnings": false, + "isExceptional": true, + "progress": 100, + "duration": 97701, + "eta": 5, + "delegation": 1, + "details": { + "hostStartTime": 1608111674810, + "key": { + "size": 2048, + "alg": "RSA", + "debianFlaw": false, + "strength": 2048 + }, + "cert": { + "subject": "CN=*.duckduckgo.com, O=\"Duck Duck Go, Inc.\", L=Paoli, ST=Pennsylvania, C=US", + "commonNames": [ + "*.duckduckgo.com" + ], + "altNames": [ + "*.duckduckgo.com", + "duckduckgo.com" + ], + "notBefore": 1602201600000, + "notAfter": 1636502400000, + "issuerSubject": "CN=DigiCert SHA2 Secure Server CA, O=DigiCert Inc, C=US", + "issuerLabel": "DigiCert SHA2 Secure Server CA", + "sigAlg": "SHA256withRSA", + "revocationInfo": 3, + "crlURIs": [ + "http://crl3.digicert.com/ssca-sha2-g7.crl" + ], + "ocspURIs": [ + "http://ocsp.digicert.com" + ], + "revocationStatus": 2, + "crlRevocationStatus": 2, + "ocspRevocationStatus": 2, + "sgc": 0, + "issues": 0, + "sct": true, + "mustStaple": 0, + "sha1Hash": "27da3af20c25c68bd13e368290c28a427b423494", + "pinSha256": "aaQNUnC/SrN0xzwnhyUVAV4OAvBKr10pcojTTdQg3j0=" + }, + "chain": { + "certs": [ + { + "subject": "CN=*.duckduckgo.com, O=\"Duck Duck Go, Inc.\", L=Paoli, ST=Pennsylvania, C=US", + "label": "*.duckduckgo.com", + "notBefore": 1602201600000, + "notAfter": 1636502400000, + "issuerSubject": "CN=DigiCert SHA2 Secure Server CA, O=DigiCert Inc, C=US", + "issuerLabel": "DigiCert SHA2 Secure Server CA", + "sigAlg": "SHA256withRSA", + "issues": 0, + "keyAlg": "RSA", + "keySize": 2048, + "keyStrength": 2048, + "revocationStatus": 2, + "crlRevocationStatus": 2, + "ocspRevocationStatus": 2, + "sha1Hash": "27da3af20c25c68bd13e368290c28a427b423494", + "pinSha256": "aaQNUnC/SrN0xzwnhyUVAV4OAvBKr10pcojTTdQg3j0=", + "raw": "-----BEGIN CERTIFICATE-----\nMIIGNDCCBRygAwIBAgIQCyGRH0tQ5EYvK8SFwKOrejANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQG\r\nEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5EaWdpQ2VydCBTSEEyIFNlY3Vy\r\nZSBTZXJ2ZXIgQ0EwHhcNMjAxMDA5MDAwMDAwWhcNMjExMTEwMDAwMDAwWjBsMQswCQYDVQQGEwJV\r\nUzEVMBMGA1UECBMMUGVubnN5bHZhbmlhMQ4wDAYDVQQHEwVQYW9saTEbMBkGA1UEChMSRHVjayBE\r\ndWNrIEdvLCBJbmMuMRkwFwYDVQQDDBAqLmR1Y2tkdWNrZ28uY29tMIIBIjANBgkqhkiG9w0BAQEF\r\nAAOCAQ8AMIIBCgKCAQEAriX48ii0YZNNQap1XyNvF2xcET9b8xyDC75sws3I1Lsqv70cgpxba7Uf\r\n7QZDdI/Tuc4NUpXQYcigi2jAzhDCxC20RaTLyeWgqVsBlR8SDXjXJuIL+POmpTjDYfBYv8FKxFGV\r\nPnhAwVrNKsNcnPWyROwnE5j3f0iwAiOVkxvWrCGiWq1kL+lI7/ySgRaxPwo/7sjUfsEMX88GgAma\r\ndrbkhZ8XQN2NO9F8NIXQQtTH6sXuqSgTibxM9Legs7JXRtR1ZXRTmhsAx+XkwRVH2Tfab3bqe/IJ\r\nnXo7+Ugi6NtCZjLL3kIdG/N9uNbAW/t5mqQEqqIPZiCddg6Oo/XS2kiPGwIDAQABo4IC7zCCAusw\r\nHwYDVR0jBBgwFoAUD4BhHIIxYdUvKOeNRji0LOHG2eIwHQYDVR0OBBYEFBhWnjl/xGxse6QlSyJT\r\nbfR2CNg6MCsGA1UdEQQkMCKCECouZHVja2R1Y2tnby5jb22CDmR1Y2tkdWNrZ28uY29tMA4GA1Ud\r\nDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwawYDVR0fBGQwYjAvoC2g\r\nK4YpaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL3NzY2Etc2hhMi1nNy5jcmwwL6AtoCuGKWh0dHA6\r\nLy9jcmw0LmRpZ2ljZXJ0LmNvbS9zc2NhLXNoYTItZzcuY3JsMEwGA1UdIARFMEMwNwYJYIZIAYb9\r\nbAEBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCAYGZ4EMAQIC\r\nMHwGCCsGAQUFBwEBBHAwbjAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEYG\r\nCCsGAQUFBzAChjpodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRTSEEyU2VjdXJl\r\nU2VydmVyQ0EuY3J0MAwGA1UdEwEB/wQCMAAwggEEBgorBgEEAdZ5AgQCBIH1BIHyAPAAdgD2XJQv\r\n0XcwIhRUGAgwlFaO400TGTO/3wwvIAvMTvFk4wAAAXUN56bbAAAEAwBHMEUCIDRdbtL7+06qIRvQ\r\nGLQ7xqdOVMzFD6busK2JLhOnGMXxAiEA9r9JNr6U7qfcScFBJgjHS7+yegk8nYbXZFDgqb2SeK4A\r\ndgBc3EOS/uarRUSxXprUVuYQN/vV+kfcoXOUsl7m9scOygAAAXUN56cqAAAEAwBHMEUCICm3BPQf\r\n0TuBFz/8cbPumqFNQm78WLh5lA/bQUjQ3hmKAiEAq1ctTcCJhP72zTuPWYKKWQ4a0JYG1ubqRnou\r\nHUIe0qAwDQYJKoZIhvcNAQELBQADggEBAH0n//gW4Awn/TV2AboAxr5cM2XjLj6qEwCZZCXV279S\r\nSAEbaeRlXmIzqfc2Sf0VBjynwkmbr+73mnQTFflEVzjt1lBl3SACqIreyMPJIP1TxXeHXqoQyI66\r\nnIf283P7LpNnVS6s3zU9tD3PlyGoK6zQcixdQUQaCNXClmL1dbpW8DcNc0nx5GszDF6E3mkAPpM1\r\nIKco1z5KqOFB+YR156emy1ZIXI0qX9Xfw50SVupKccL7nBzBmNa8Mn8u9nqHrdR9ssfzqUW013vE\r\nMqt9zv3XcEgRZOfr1y+M7CFJwtA6CzJsB4JXyx6GfhbztY/KjfEd4qZyKElSnDCgRJxDztk=\r\n-----END CERTIFICATE-----\n" + }, + { + "subject": "CN=DigiCert SHA2 Secure Server CA, O=DigiCert Inc, C=US", + "label": "DigiCert SHA2 Secure Server CA", + "notBefore": 1362744000000, + "notAfter": 1678276800000, + "issuerSubject": "CN=DigiCert Global Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US", + "issuerLabel": "DigiCert Global Root CA", + "sigAlg": "SHA256withRSA", + "issues": 0, + "keyAlg": "RSA", + "keySize": 2048, + "keyStrength": 2048, + "revocationStatus": 2, + "crlRevocationStatus": 2, + "ocspRevocationStatus": 2, + "sha1Hash": "1fb86b1168ec743154062e8c9cc5b171a4b7ccb4", + "pinSha256": "5kJvNEMw0KjrCAu7eXY5HZdvyCS13BbA0VJG1RSP91w=", + "raw": "-----BEGIN CERTIFICATE-----\nMIIElDCCA3ygAwIBAgIQAf2j627KdciIQ4tyS8+8kTANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG\r\nEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw\r\nHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0xMzAzMDgxMjAwMDBaFw0yMzAzMDgx\r\nMjAwMDBaME0xCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxJzAlBgNVBAMTHkRp\r\nZ2lDZXJ0IFNIQTIgU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\r\nggEBANyuWJBNwcQwFZA1W248ghX1LFy949v/cUP6ZCWA1O4Yok3wZtAKc24RmDYXZK83nf36QYSv\r\nx6+M/hpzTc8zl5CilodTgyu5pnVILR1WN3vaMTIa16yrBvSqXUu3R0bdKpPDkC55gIDvEwRqFDu1\r\nm5K+wgdlTvza/P96rtxcflUxDOg5B6TXvi/TC2rSsd9f/ld0Uzs1gN2ujkSYs58O09rg1/RrKatE\r\np0tYhG2SS4HD2nOLEpdIkARFdRrdNzGXkujNVA075ME/OV4uuPNcfhCOhkEAjUVmR7ChZc6gqikJ\r\nTvOX6+guqw9ypzAO+sf0/RR3w6RbKFfCs/mC/bdFWJsCAwEAAaOCAVowggFWMBIGA1UdEwEB/wQI\r\nMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMDQGCCsGAQUFBwEBBCgwJjAkBggrBgEFBQcwAYYYaHR0\r\ncDovL29jc3AuZGlnaWNlcnQuY29tMHsGA1UdHwR0MHIwN6A1oDOGMWh0dHA6Ly9jcmwzLmRpZ2lj\r\nZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RDQS5jcmwwN6A1oDOGMWh0dHA6Ly9jcmw0LmRpZ2lj\r\nZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RDQS5jcmwwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYI\r\nKwYBBQUHAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwHQYDVR0OBBYEFA+AYRyCMWHV\r\nLyjnjUY4tCzhxtniMB8GA1UdIwQYMBaAFAPeUDVW0Uy7ZvCj4hsbw5eyPdFVMA0GCSqGSIb3DQEB\r\nCwUAA4IBAQAjPt9L0jFCpbZ+QlwaRMxp0Wi0XUvgBCFsS+JtzLHgl4+mUwnNqipl5TlPHoOlblyY\r\noiQm5vuh7ZPHLgLGTUq/sELfeNqzqPlt/yGFUzZgTHbO7Djc1lGA8MXW5dRNJ2Srm8c+cftIl7gz\r\nbckTB+6WohsYFfZcTEDts8Ls/3HB40f/1LkAtDdC2iDJ6m6K7hQGrn2iWZiIqBtvLfTyyRRfJs8s\r\njX7tN8Cp1Tm5gr8ZDOo0rwAhaPitc+LJMto4JQtV05od8GiG7S5BNO98pVAdvzr508EIDObtHopY\r\nJeS4d60tbvVS3bR0j6tJLp07kzQoH3jOlOrHvdPJbRzeXDLz\r\n-----END CERTIFICATE-----\n" + } + ], + "issues": 0 + }, + "protocols": [ + { + "id": 771, + "name": "TLS", + "version": "1.2" + } + ], + "suites": { + "list": [ + { + "id": 4866, + "name": "TLS_AES_256_GCM_SHA384", + "cipherStrength": 256, + "ecdhBits": 256, + "ecdhStrength": 3072 + }, + { + "id": 4867, + "name": "TLS_CHACHA20_POLY1305_SHA256", + "cipherStrength": 256, + "ecdhBits": 256, + "ecdhStrength": 3072 + }, + { + "id": 4865, + "name": "TLS_AES_128_GCM_SHA256", + "cipherStrength": 128, + "ecdhBits": 256, + "ecdhStrength": 3072 + }, + { + "id": 49199, + "name": "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + "cipherStrength": 128, + "ecdhBits": 256, + "ecdhStrength": 3072 + }, + { + "id": 49191, + "name": "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", + "cipherStrength": 128, + "ecdhBits": 256, + "ecdhStrength": 3072 + }, + { + "id": 49171, + "name": "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", + "cipherStrength": 128, + "ecdhBits": 256, + "ecdhStrength": 3072 + }, + { + "id": 156, + "name": "TLS_RSA_WITH_AES_128_GCM_SHA256", + "cipherStrength": 128 + }, + { + "id": 49312, + "name": "TLS_RSA_WITH_AES_128_CCM_8", + "cipherStrength": 128 + }, + { + "id": 49308, + "name": "TLS_RSA_WITH_AES_128_CCM", + "cipherStrength": 128 + }, + { + "id": 60, + "name": "TLS_RSA_WITH_AES_128_CBC_SHA256", + "cipherStrength": 128 + }, + { + "id": 47, + "name": "TLS_RSA_WITH_AES_128_CBC_SHA", + "cipherStrength": 128 + }, + { + "id": 49200, + "name": "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", + "cipherStrength": 256, + "ecdhBits": 256, + "ecdhStrength": 3072 + }, + { + "id": 49192, + "name": "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384", + "cipherStrength": 256, + "ecdhBits": 256, + "ecdhStrength": 3072 + }, + { + "id": 49172, + "name": "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", + "cipherStrength": 256, + "ecdhBits": 256, + "ecdhStrength": 3072 + }, + { + "id": 157, + "name": "TLS_RSA_WITH_AES_256_GCM_SHA384", + "cipherStrength": 256 + }, + { + "id": 49313, + "name": "TLS_RSA_WITH_AES_256_CCM_8", + "cipherStrength": 256 + }, + { + "id": 49309, + "name": "TLS_RSA_WITH_AES_256_CCM", + "cipherStrength": 256 + }, + { + "id": 61, + "name": "TLS_RSA_WITH_AES_256_CBC_SHA256", + "cipherStrength": 256 + }, + { + "id": 53, + "name": "TLS_RSA_WITH_AES_256_CBC_SHA", + "cipherStrength": 256 + } + ], + "preference": true + }, + "serverSignature": "nginx", + "prefixDelegation": false, + "nonPrefixDelegation": true, + "vulnBeast": false, + "renegSupport": 2, + "stsStatus": "present", + "stsResponseHeader": "max-age=31536000", + "stsMaxAge": 31536000, + "stsSubdomains": false, + "stsPreload": false, + "sessionResumption": 2, + "compressionMethods": 0, + "supportsNpn": true, + "npnProtocols": "h2 http/1.1", + "supportsAlpn": true, + "sessionTickets": 1, + "ocspStapling": true, + "staplingRevocationStatus": 2, + "sniRequired": false, + "httpStatusCode": 200, + "supportsRc4": false, + "rc4WithModern": false, + "rc4Only": false, + "forwardSecrecy": 4, + "protocolIntolerance": 0, + "miscIntolerance": 0, + "sims": { + "results": [ + { + "client": { + "id": 56, + "name": "Android", + "version": "2.3.7", + "isReference": false + }, + "errorCode": 1, + "attempts": 0 + }, + { + "client": { + "id": 58, + "name": "Android", + "version": "4.0.4", + "isReference": false + }, + "errorCode": 1, + "attempts": 0 + }, + { + "client": { + "id": 59, + "name": "Android", + "version": "4.1.1", + "isReference": false + }, + "errorCode": 1, + "attempts": 0 + }, + { + "client": { + "id": 60, + "name": "Android", + "version": "4.2.2", + "isReference": false + }, + "errorCode": 1, + "attempts": 0 + }, + { + "client": { + "id": 61, + "name": "Android", + "version": "4.3", + "isReference": false + }, + "errorCode": 1, + "attempts": 0 + }, + { + "client": { + "id": 62, + "name": "Android", + "version": "4.4.2", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 88, + "name": "Android", + "version": "5.0.0", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 129, + "name": "Android", + "version": "6.0", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 167, + "name": "Android", + "version": "7.0", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 168, + "name": "Android", + "version": "8.0", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 157, + "name": "Android", + "version": "8.1", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4866, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 158, + "name": "Android", + "version": "9.0", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4866, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 94, + "name": "Baidu", + "version": "Jan 2015", + "isReference": false + }, + "errorCode": 1, + "attempts": 0 + }, + { + "client": { + "id": 91, + "name": "BingPreview", + "version": "Jan 2015", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 136, + "name": "Chrome", + "platform": "XP SP3", + "version": "49", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 152, + "name": "Chrome", + "platform": "Win 7", + "version": "69", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 153, + "name": "Chrome", + "platform": "Win 10", + "version": "70", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4866, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 170, + "name": "Chrome", + "platform": "Win 10", + "version": "80", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4866, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 84, + "name": "Firefox", + "platform": "Win 7", + "version": "31.3.0 ESR", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 132, + "name": "Firefox", + "platform": "Win 7", + "version": "47", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 137, + "name": "Firefox", + "platform": "XP SP3", + "version": "49", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 151, + "name": "Firefox", + "platform": "Win 7", + "version": "62", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 171, + "name": "Firefox", + "platform": "Win 10", + "version": "73", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4866, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 145, + "name": "Googlebot", + "version": "Feb 2018", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 100, + "name": "IE", + "platform": "XP", + "version": "6", + "isReference": false + }, + "errorCode": 1, + "attempts": 0 + }, + { + "client": { + "id": 19, + "name": "IE", + "platform": "Vista", + "version": "7", + "isReference": false + }, + "errorCode": 1, + "attempts": 0 + }, + { + "client": { + "id": 101, + "name": "IE", + "platform": "XP", + "version": "8", + "isReference": false + }, + "errorCode": 1, + "attempts": 0 + }, + { + "client": { + "id": 113, + "name": "IE", + "platform": "Win 7", + "version": "8-10", + "isReference": true + }, + "errorCode": 1, + "attempts": 0 + }, + { + "client": { + "id": 143, + "name": "IE", + "platform": "Win 7", + "version": "11", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49191, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 134, + "name": "IE", + "platform": "Win 8.1", + "version": "11", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49191, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 64, + "name": "IE", + "platform": "Win Phone 8.0", + "version": "10", + "isReference": false + }, + "errorCode": 1, + "attempts": 0 + }, + { + "client": { + "id": 65, + "name": "IE", + "platform": "Win Phone 8.1", + "version": "11", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49191, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 106, + "name": "IE", + "platform": "Win Phone 8.1 Update", + "version": "11", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49191, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 131, + "name": "IE", + "platform": "Win 10", + "version": "11", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 144, + "name": "Edge", + "platform": "Win 10", + "version": "15", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 159, + "name": "Edge", + "platform": "Win 10", + "version": "16", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 160, + "name": "Edge", + "platform": "Win 10", + "version": "18", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 120, + "name": "Edge", + "platform": "Win Phone 10", + "version": "13", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 25, + "name": "Java", + "version": "6u45", + "isReference": false + }, + "errorCode": 1, + "attempts": 0 + }, + { + "client": { + "id": 26, + "name": "Java", + "version": "7u25", + "isReference": false + }, + "errorCode": 1, + "attempts": 0 + }, + { + "client": { + "id": 147, + "name": "Java", + "version": "8u161", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 162, + "name": "Java", + "version": "11.0.3", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4866, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 163, + "name": "Java", + "version": "12.0.1", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4866, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 27, + "name": "OpenSSL", + "version": "0.9.8y", + "isReference": false + }, + "errorCode": 1, + "attempts": 0 + }, + { + "client": { + "id": 99, + "name": "OpenSSL", + "version": "1.0.1l", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 164, + "name": "OpenSSL", + "version": "1.0.2s", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 169, + "name": "OpenSSL", + "version": "1.1.0k", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 165, + "name": "OpenSSL", + "version": "1.1.1c", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4866, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 32, + "name": "Safari", + "platform": "OS X 10.6.8", + "version": "5.1.9", + "isReference": false + }, + "errorCode": 1, + "attempts": 0 + }, + { + "client": { + "id": 33, + "name": "Safari", + "platform": "iOS 6.0.1", + "version": "6", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49191, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 34, + "name": "Safari", + "platform": "OS X 10.8.4", + "version": "6.0.4", + "isReference": true + }, + "errorCode": 1, + "attempts": 0 + }, + { + "client": { + "id": 63, + "name": "Safari", + "platform": "iOS 7.1", + "version": "7", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49191, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 35, + "name": "Safari", + "platform": "OS X 10.9", + "version": "7", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49191, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 85, + "name": "Safari", + "platform": "iOS 8.4", + "version": "8", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49191, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 87, + "name": "Safari", + "platform": "OS X 10.10", + "version": "8", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49191, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 114, + "name": "Safari", + "platform": "iOS 9", + "version": "9", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 111, + "name": "Safari", + "platform": "OS X 10.11", + "version": "9", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 140, + "name": "Safari", + "platform": "iOS 10", + "version": "10", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 138, + "name": "Safari", + "platform": "OS X 10.12", + "version": "10", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 161, + "name": "Safari", + "platform": "MacOS 10.14.6 Beta", + "version": "12.1.2", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4866, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 166, + "name": "Safari", + "platform": "iOS 12.3.1", + "version": "12.1.1", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4866, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 112, + "name": "Apple ATS", + "platform": "iOS 9", + "version": "9", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 92, + "name": "Yahoo Slurp", + "version": "Jan 2015", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 93, + "name": "YandexBot", + "version": "Jan 2015", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49199, + "kxInfo": "ECDH secp256r1" + } + ] + }, + "heartbleed": false, + "heartbeat": false, + "openSslCcs": 1, + "openSSLLuckyMinus20": 1, + "poodle": false, + "poodleTls": 1, + "fallbackScsv": true, + "freak": false, + "hasSct": 1, + "logjam": false, + "hstsPolicy": { + "LONG_MAX_AGE": 15552000, + "header": "max-age=31536000", + "status": "present", + "maxAge": 31536000, + "directives": { + "max-age": "31536000" + } + }, + "hstsPreloads": [ + { + "source": "Chrome", + "hostname": "duckduckgo.com", + "status": "absent", + "sourceTime": 1608109802581 + }, + { + "source": "Edge", + "hostname": "duckduckgo.com", + "status": "absent", + "sourceTime": 1608111661651 + }, + { + "source": "Firefox", + "hostname": "duckduckgo.com", + "status": "absent", + "sourceTime": 1608111661651 + }, + { + "source": "IE", + "hostname": "duckduckgo.com", + "status": "absent", + "sourceTime": 1608111661651 + } + ], + "hpkpPolicy": { + "status": "absent", + "pins": [], + "matchedPins": [], + "directives": [] + }, + "hpkpRoPolicy": { + "status": "absent", + "pins": [], + "matchedPins": [], + "directives": [] + }, + "drownHosts": [], + "drownErrors": false, + "drownVulnerable": false + } + } + ] +} \ No newline at end of file diff --git a/sample/google.com.json b/sample/google.com.json index fb6814e..16d7f86 100644 --- a/sample/google.com.json +++ b/sample/google.com.json @@ -1,28 +1,28 @@ { "host": "google.com", "port": 443, - "protocol": "HTTP", + "protocol": "http", "isPublic": false, "status": "READY", - "startTime": 1554368435610, - "testTime": 1554368615496, - "engineVersion": "1.33.1", - "criteriaVersion": "2009p", + "startTime": 1608111800657, + "testTime": 1608112017068, + "engineVersion": "2.1.8", + "criteriaVersion": "2009q", "endpoints": [ { - "ipAddress": "216.58.195.238", - "serverName": "sfo03s06-in-f238.1e100.net", + "ipAddress": "216.58.194.206", + "serverName": "sfo03s01-in-f206.1e100.net", "statusMessage": "Ready", - "grade": "A", - "gradeTrustIgnored": "A", + "grade": "B", + "gradeTrustIgnored": "B", "hasWarnings": false, "isExceptional": false, "progress": 100, - "duration": 94808, + "duration": 107078, "eta": 1, "delegation": 1, "details": { - "hostStartTime": 1554368435610, + "hostStartTime": 1608111800657, "key": { "size": 256, "alg": "EC", @@ -37,11 +37,15 @@ "*.google.com", "*.android.com", "*.appengine.google.com", + "*.bdn.dev", "*.cloud.google.com", "*.crowdsource.google.com", + "*.datacompute.google.com", "*.g.co", "*.gcp.gvt2.com", + "*.gcpcdn.gvt1.com", "*.ggpht.cn", + "*.gkecnapps.cn", "*.google-analytics.com", "*.google.ca", "*.google.cl", @@ -76,6 +80,7 @@ "*.metric.gstatic.com", "*.urchin.com", "*.url.google.com", + "*.wear.gkecnapps.cn", "*.youtube-nocookie.com", "*.youtube.com", "*.youtubeeducation.com", @@ -88,6 +93,7 @@ "developers.android.google.cn", "g.co", "ggpht.cn", + "gkecnapps.cn", "goo.gl", "google-analytics.com", "google.com", @@ -102,37 +108,37 @@ "youtubekids.com", "yt.be" ], - "notBefore": 1551433437000, - "notAfter": 1558689900000, - "issuerSubject": "CN=Google Internet Authority G3, O=Google Trust Services, C=US", - "issuerLabel": "Google Internet Authority G3", + "notBefore": 1605018883000, + "notAfter": 1612276482000, + "issuerSubject": "CN=GTS CA 1O1, O=Google Trust Services, C=US", + "issuerLabel": "GTS CA 1O1", "sigAlg": "SHA256withRSA", "revocationInfo": 3, "crlURIs": [ - "http://crl.pki.goog/GTSGIAG3.crl" + "http://crl.pki.goog/GTS1O1core.crl" ], "ocspURIs": [ - "http://ocsp.pki.goog/GTSGIAG3" + "http://ocsp.pki.goog/gts1o1core" ], "revocationStatus": 2, "crlRevocationStatus": 2, "ocspRevocationStatus": 2, "sgc": 0, "issues": 0, - "sct": false, + "sct": true, "mustStaple": 0, - "sha1Hash": "f81e3171fa085bc04c83b6644b9f229f0cba8e57", - "pinSha256": "1T073i1JjmCuCjyUSt2gTRL4iGbrP3r8aeJjYFxn7F0=" + "sha1Hash": "e48943d96a40d534b9337ee5eda976d2201d2ebf", + "pinSha256": "U3xTWXJOd447ON2zOz9w35qNaPAJDpqlFO4Jt/443us=" }, "chain": { "certs": [ { "subject": "CN=*.google.com, O=Google LLC, L=Mountain View, ST=California, C=US", "label": "*.google.com", - "notBefore": 1551433437000, - "notAfter": 1558689900000, - "issuerSubject": "CN=Google Internet Authority G3, O=Google Trust Services, C=US", - "issuerLabel": "Google Internet Authority G3", + "notBefore": 1605018883000, + "notAfter": 1612276482000, + "issuerSubject": "CN=GTS CA 1O1, O=Google Trust Services, C=US", + "issuerLabel": "GTS CA 1O1", "sigAlg": "SHA256withRSA", "issues": 0, "keyAlg": "EC", @@ -141,13 +147,13 @@ "revocationStatus": 2, "crlRevocationStatus": 2, "ocspRevocationStatus": 2, - "sha1Hash": "f81e3171fa085bc04c83b6644b9f229f0cba8e57", - "pinSha256": "1T073i1JjmCuCjyUSt2gTRL4iGbrP3r8aeJjYFxn7F0=", - "raw": "-----BEGIN CERTIFICATE-----\nMIIIDTCCBvWgAwIBAgIQdCdvtO3S1SGVFWeeric83zANBgkqhkiG9w0BAQsFADBUMQswCQYDVQQG\r\nEwJVUzEeMBwGA1UEChMVR29vZ2xlIFRydXN0IFNlcnZpY2VzMSUwIwYDVQQDExxHb29nbGUgSW50\r\nZXJuZXQgQXV0aG9yaXR5IEczMB4XDTE5MDMwMTA5NDM1N1oXDTE5MDUyNDA5MjUwMFowZjELMAkG\r\nA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEzAR\r\nBgNVBAoMCkdvb2dsZSBMTEMxFTATBgNVBAMMDCouZ29vZ2xlLmNvbTBZMBMGByqGSM49AgEGCCqG\r\nSM49AwEHA0IABDos6V7pCUxMZ2A8pDa+je+faVgctzvOrRwMQCXWKgsUymr7357AkjKx2PnN2NHf\r\nt7Ua/aqD/nKV7p4DdMEU9SWjggWSMIIFjjATBgNVHSUEDDAKBggrBgEFBQcDATAOBgNVHQ8BAf8E\r\nBAMCB4AwggRXBgNVHREEggROMIIESoIMKi5nb29nbGUuY29tgg0qLmFuZHJvaWQuY29tghYqLmFw\r\ncGVuZ2luZS5nb29nbGUuY29tghIqLmNsb3VkLmdvb2dsZS5jb22CGCouY3Jvd2Rzb3VyY2UuZ29v\r\nZ2xlLmNvbYIGKi5nLmNvgg4qLmdjcC5ndnQyLmNvbYIKKi5nZ3BodC5jboIWKi5nb29nbGUtYW5h\r\nbHl0aWNzLmNvbYILKi5nb29nbGUuY2GCCyouZ29vZ2xlLmNsgg4qLmdvb2dsZS5jby5pboIOKi5n\r\nb29nbGUuY28uanCCDiouZ29vZ2xlLmNvLnVrgg8qLmdvb2dsZS5jb20uYXKCDyouZ29vZ2xlLmNv\r\nbS5hdYIPKi5nb29nbGUuY29tLmJygg8qLmdvb2dsZS5jb20uY2+CDyouZ29vZ2xlLmNvbS5teIIP\r\nKi5nb29nbGUuY29tLnRygg8qLmdvb2dsZS5jb20udm6CCyouZ29vZ2xlLmRlggsqLmdvb2dsZS5l\r\nc4ILKi5nb29nbGUuZnKCCyouZ29vZ2xlLmh1ggsqLmdvb2dsZS5pdIILKi5nb29nbGUubmyCCyou\r\nZ29vZ2xlLnBsggsqLmdvb2dsZS5wdIISKi5nb29nbGVhZGFwaXMuY29tgg8qLmdvb2dsZWFwaXMu\r\nY26CESouZ29vZ2xlY25hcHBzLmNughQqLmdvb2dsZWNvbW1lcmNlLmNvbYIRKi5nb29nbGV2aWRl\r\nby5jb22CDCouZ3N0YXRpYy5jboINKi5nc3RhdGljLmNvbYISKi5nc3RhdGljY25hcHBzLmNuggoq\r\nLmd2dDEuY29tggoqLmd2dDIuY29tghQqLm1ldHJpYy5nc3RhdGljLmNvbYIMKi51cmNoaW4uY29t\r\nghAqLnVybC5nb29nbGUuY29tghYqLnlvdXR1YmUtbm9jb29raWUuY29tgg0qLnlvdXR1YmUuY29t\r\nghYqLnlvdXR1YmVlZHVjYXRpb24uY29tghEqLnlvdXR1YmVraWRzLmNvbYIHKi55dC5iZYILKi55\r\ndGltZy5jb22CGmFuZHJvaWQuY2xpZW50cy5nb29nbGUuY29tggthbmRyb2lkLmNvbYIbZGV2ZWxv\r\ncGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNuggRnLmNv\r\ngghnZ3BodC5jboIGZ29vLmdsghRnb29nbGUtYW5hbHl0aWNzLmNvbYIKZ29vZ2xlLmNvbYIPZ29v\r\nZ2xlY25hcHBzLmNughJnb29nbGVjb21tZXJjZS5jb22CGHNvdXJjZS5hbmRyb2lkLmdvb2dsZS5j\r\nboIKdXJjaGluLmNvbYIKd3d3Lmdvby5nbIIIeW91dHUuYmWCC3lvdXR1YmUuY29tghR5b3V0dWJl\r\nZWR1Y2F0aW9uLmNvbYIPeW91dHViZWtpZHMuY29tggV5dC5iZTBoBggrBgEFBQcBAQRcMFowLQYI\r\nKwYBBQUHMAKGIWh0dHA6Ly9wa2kuZ29vZy9nc3IyL0dUU0dJQUczLmNydDApBggrBgEFBQcwAYYd\r\naHR0cDovL29jc3AucGtpLmdvb2cvR1RTR0lBRzMwHQYDVR0OBBYEFK0EWGE69tfHVmsgC1gJeREi\r\n92m2MAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUd8K4UJpndnaxLcKG0IOgfqZ+ukswIQYDVR0g\r\nBBowGDAMBgorBgEEAdZ5AgUDMAgGBmeBDAECAjAxBgNVHR8EKjAoMCagJKAihiBodHRwOi8vY3Js\r\nLnBraS5nb29nL0dUU0dJQUczLmNybDANBgkqhkiG9w0BAQsFAAOCAQEAiRzb/eu7AaK8KDzrumNr\r\niEbEhbWG5KH/ae54vRKJGLSBl9YT6bJ/u4IRNXSiigF6ZAfThvloPiMmYqxXB4BzclQBP5Deercs\r\njLRwos6QTPbKryU+SYfO/s0VtOYRCRISpG1gbPJLZPjaAw/P56khVTCVErjUXkSC5ReMIKuzfQ3V\r\n2HE8zsmioS0rFT39P6QujhcwMmOq0IeJnemwtxzqDvrN/ReqE7sdJq9Ze43vJDGvGZfUxJjHblWt\r\nsDNtqxMdMYZosRyo1YT6DZRjUDUEj3kr/z7oRjn96mRiC4AIebe5HCGHuBWxfXw2G/5PDD1Z0wdN\r\nQ4U04nzWE2bBl/VNlA==\r\n-----END CERTIFICATE-----\n" + "sha1Hash": "e48943d96a40d534b9337ee5eda976d2201d2ebf", + "pinSha256": "U3xTWXJOd447ON2zOz9w35qNaPAJDpqlFO4Jt/443us=", + "raw": "-----BEGIN CERTIFICATE-----\nMIIJcTCCCFmgAwIBAgIQbkMYuNeQFlwDAAAAALrbijANBgkqhkiG9w0BAQsFADBCMQswCQYDVQQG\r\nEwJVUzEeMBwGA1UEChMVR29vZ2xlIFRydXN0IFNlcnZpY2VzMRMwEQYDVQQDEwpHVFMgQ0EgMU8x\r\nMB4XDTIwMTExMDE0MzQ0M1oXDTIxMDIwMjE0MzQ0MlowZjELMAkGA1UEBhMCVVMxEzARBgNVBAgT\r\nCkNhbGlmb3JuaWExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxEzARBgNVBAoTCkdvb2dsZSBMTEMx\r\nFTATBgNVBAMMDCouZ29vZ2xlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABFIhx27fGJ+R\r\n9kmype5uzK8Ka/rxmEk/J/QovXjqMP/TkMyS2fVTcIQ5gYCxxh6ottMx5iAB+9Q0Kg7qLsJAP/qj\r\nggcIMIIHBDAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIw\r\nADAdBgNVHQ4EFgQUhekgVwayZa1bqtk9uha5R6cvJHEwHwYDVR0jBBgwFoAUmNH4bhDrz5vsYJ8Y\r\nkBug630J/SswaAYIKwYBBQUHAQEEXDBaMCsGCCsGAQUFBzABhh9odHRwOi8vb2NzcC5wa2kuZ29v\r\nZy9ndHMxbzFjb3JlMCsGCCsGAQUFBzAChh9odHRwOi8vcGtpLmdvb2cvZ3NyMi9HVFMxTzEuY3J0\r\nMIIEwgYDVR0RBIIEuTCCBLWCDCouZ29vZ2xlLmNvbYINKi5hbmRyb2lkLmNvbYIWKi5hcHBlbmdp\r\nbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghIqLmNsb3VkLmdvb2dsZS5jb22CGCouY3Jvd2Rzb3Vy\r\nY2UuZ29vZ2xlLmNvbYIYKi5kYXRhY29tcHV0ZS5nb29nbGUuY29tggYqLmcuY2+CDiouZ2NwLmd2\r\ndDIuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5nZ3BodC5jboIOKi5na2VjbmFwcHMuY26CFiou\r\nZ29vZ2xlLWFuYWx5dGljcy5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUu\r\nY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8q\r\nLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2ds\r\nZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYIL\r\nKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29v\r\nZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5n\r\nb29nbGVhcGlzLmNughEqLmdvb2dsZWNuYXBwcy5jboIUKi5nb29nbGVjb21tZXJjZS5jb22CESou\r\nZ29vZ2xldmlkZW8uY29tggwqLmdzdGF0aWMuY26CDSouZ3N0YXRpYy5jb22CEiouZ3N0YXRpY2Nu\r\nYXBwcy5jboIKKi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIUKi5tZXRyaWMuZ3N0YXRpYy5jb22CDCou\r\ndXJjaGluLmNvbYIQKi51cmwuZ29vZ2xlLmNvbYITKi53ZWFyLmdrZWNuYXBwcy5jboIWKi55b3V0\r\ndWJlLW5vY29va2llLmNvbYINKi55b3V0dWJlLmNvbYIWKi55b3V0dWJlZWR1Y2F0aW9uLmNvbYIR\r\nKi55b3V0dWJla2lkcy5jb22CByoueXQuYmWCCyoueXRpbWcuY29tghphbmRyb2lkLmNsaWVudHMu\r\nZ29vZ2xlLmNvbYILYW5kcm9pZC5jb22CG2RldmVsb3Blci5hbmRyb2lkLmdvb2dsZS5jboIcZGV2\r\nZWxvcGVycy5hbmRyb2lkLmdvb2dsZS5jboIEZy5jb4IIZ2dwaHQuY26CDGdrZWNuYXBwcy5jboIG\r\nZ29vLmdsghRnb29nbGUtYW5hbHl0aWNzLmNvbYIKZ29vZ2xlLmNvbYIPZ29vZ2xlY25hcHBzLmNu\r\nghJnb29nbGVjb21tZXJjZS5jb22CGHNvdXJjZS5hbmRyb2lkLmdvb2dsZS5jboIKdXJjaGluLmNv\r\nbYIKd3d3Lmdvby5nbIIIeW91dHUuYmWCC3lvdXR1YmUuY29tghR5b3V0dWJlZWR1Y2F0aW9uLmNv\r\nbYIPeW91dHViZWtpZHMuY29tggV5dC5iZTAhBgNVHSAEGjAYMAgGBmeBDAECAjAMBgorBgEEAdZ5\r\nAgUDMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9jcmwucGtpLmdvb2cvR1RTMU8xY29yZS5jcmww\r\nggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEAdgD2XJQv0XcwIhRUGAgwlFaO400TGTO/3wwvIAvMTvFk\r\n4wAAAXWyy4p7AAAEAwBHMEUCIBaIfxadDwtOlUoYpiV6u+B0G04PZv17JeceTO7xYjEfAiEA/S0V\r\ntKdopPSFFmnqlBWlliDGsn27KFh1aR9YtoSz41IAdwBElGUusO7Or8RAB9io/ijA2uaCvtjLMbU/\r\n0zOWtbaBqAAAAXWyy4rUAAAEAwBIMEYCIQDWKWwFnf9CaLYGWYqvKNRlryN0m6eQxwTP8uM54yq6\r\n3gIhAMWeB6x3v7qm3B6PmUMQRlVZaDR3FOcaz2V7O/88tHtfMA0GCSqGSIb3DQEBCwUAA4IBAQCE\r\naoPOwtxgWQb8UJYtXQTuHxxQLF2mcPwAFHszxvOJNXdCplX1G+X+fkrA3cKXgv3CoQy5xs6eRzXR\r\nKoAAUtFmki++5dvgufiMYnSnyPe62x6bcUkowoGMFjLwCA91w7vqSZ2Gnd26YbfLcABonmAb/1Hy\r\nYOxD1l1wn0kOgRBsV3MLEuVoQ+eZ3yWG38WkwzPGtSvAV+6dzWbGu+XC3BT9XhwvQ5WwABMGxPZr\r\nAW4aqW0ArD1gzr1iSz4W0pBWtwYynme0SwfqTf7VJQYKpevuF4bQNOuMy+8E2kouClssLDQ3HOJZ\r\nKkyn3byIK0NCee1+DTNQX0hl6e/f6va5HaiJ\r\n-----END CERTIFICATE-----\n" }, { - "subject": "CN=Google Internet Authority G3, O=Google Trust Services, C=US", - "label": "Google Internet Authority G3", + "subject": "CN=GTS CA 1O1, O=Google Trust Services, C=US", + "label": "GTS CA 1O1", "notBefore": 1497484842000, "notAfter": 1639526442000, "issuerSubject": "CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R2", @@ -160,9 +166,9 @@ "revocationStatus": 2, "crlRevocationStatus": 2, "ocspRevocationStatus": 2, - "sha1Hash": "eeacbd0cb452819577911e1e6203db262f84a318", - "pinSha256": "f8NnEFZxQ4ExFOhSN7EiFWtiudZQVD2oY60uauV/n78=", - "raw": "-----BEGIN CERTIFICATE-----\nMIIEXDCCA0SgAwIBAgINAeOpMBz8cgY4P5pTHTANBgkqhkiG9w0BAQsFADBMMSAwHgYDVQQLExdH\r\nbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xv\r\nYmFsU2lnbjAeFw0xNzA2MTUwMDAwNDJaFw0yMTEyMTUwMDAwNDJaMFQxCzAJBgNVBAYTAlVTMR4w\r\nHAYDVQQKExVHb29nbGUgVHJ1c3QgU2VydmljZXMxJTAjBgNVBAMTHEdvb2dsZSBJbnRlcm5ldCBB\r\ndXRob3JpdHkgRzMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDKUkvqHv/OJGuo2nIY\r\naNVWXQ5IWi01CXZaz6TIHLGp/lOJ+600/4hbn7vn6AAB3DVzdQOts7G5pH0rJnnOFUAK71G4nzKM\r\nfHCGUksW/mona+Y2emJQ2N+aicwJKetPKRSIgAuPOB6Aahh8Hb2XO3h9RUk2T0HNouB2VzxoMXlk\r\nyW7XUR5mw6JkLHnA52XDVoRTWkNty5oCINLvGmnRsJ1zouAqYGVQMc/7sy+/EYhALrVJEA8KbtyX\r\n+r8snwU5C1hUrwaW6MWOARa8qBpNQcWTkaIeoYvy/sGIJEmjR0vFEwHdp1cSaWIr6/4g72n7OqXw\r\nfinu7ZYW97EfoOSQJeAzAgMBAAGjggEzMIIBLzAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYI\r\nKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHfCuFCaZ3Z2\r\nsS3ChtCDoH6mfrpLMB8GA1UdIwQYMBaAFJviB1dnHB7AagbeWbSaLd/cGYYuMDUGCCsGAQUFBwEB\r\nBCkwJzAlBggrBgEFBQcwAYYZaHR0cDovL29jc3AucGtpLmdvb2cvZ3NyMjAyBgNVHR8EKzApMCeg\r\nJaAjhiFodHRwOi8vY3JsLnBraS5nb29nL2dzcjIvZ3NyMi5jcmwwPwYDVR0gBDgwNjA0BgZngQwB\r\nAgIwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9wa2kuZ29vZy9yZXBvc2l0b3J5LzANBgkqhkiG9w0B\r\nAQsFAAOCAQEAHLeJluRT7bvs26gyAZ8so81trUISd7O45skDUmAge1cnxhG1P2cNmSxbWsoiCt2e\r\nux9LSD+PAj2LIYRFHW31/6xoic1k4tbWXkDCjir37xTTNqRAMPUyFRWSdvt+nlPqwnb8Oa2I/maS\r\nJukcxDjNSfpDh/Bd1lZNgdd/8cLdsE3+wypufJ9uXO1iQpnh9zbuFIwsIONGl1p3A8CgxkqI/UAi\r\nh3JaGOqcpcdaCIzkBaR9uYQ1X4k2Vg5APRLouzVy7a8IVk6wuy6pm+T7HT4LY8ibS5FEZlfAFLSW\r\n8NwsVz9SBK2Vqn1N0PIMn5xA6NZVc7o835DLAFshEWfC7TIe3g==\r\n-----END CERTIFICATE-----\n" + "sha1Hash": "dfe2070c79e7ff36a925ffa327ffe3deecf8f9c2", + "pinSha256": "YZPgTZ+woNCCCIW3LH2CxQeLzB/1m42QcCTBSdgayjs=", + "raw": "-----BEGIN CERTIFICATE-----\nMIIESjCCAzKgAwIBAgINAeO0mqGNiqmBJWlQuDANBgkqhkiG9w0BAQsFADBMMSAwHgYDVQQLExdH\r\nbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xv\r\nYmFsU2lnbjAeFw0xNzA2MTUwMDAwNDJaFw0yMTEyMTUwMDAwNDJaMEIxCzAJBgNVBAYTAlVTMR4w\r\nHAYDVQQKExVHb29nbGUgVHJ1c3QgU2VydmljZXMxEzARBgNVBAMTCkdUUyBDQSAxTzEwggEiMA0G\r\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDQGM9F1IvN05zkQO9+tN1pIRvJzzyOTHW5DzEZhD2e\r\nPCnvUA0Qk28FgICfKqC9EksC4T2fWBYk/jCfC3R3VZMdS/dN4ZKCEPZRrAzDsiKUDzRrmBBJ5wud\r\ngzndIMYcLe/RGGFl5yODIKgjEv/SJH/UL+dEaltN11BmsK+eQmMF++AcxGNhr59qM/9il71I2dN8\r\nFGfcddwuaej4bXhp0LcQBbjxMcI7JP0aM3T4I+DsaxmKFsbjzaTNC9uzpFlgOIg7rR25xoynUxv8\r\nvNmkq7zdPGHXkxWY7oG9j+JkRyBABk7XrJfoucBZEqFJJSPk7XA0LKW0Y3z5oz2D0c1tJKwHAgMB\r\nAAGjggEzMIIBLzAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC\r\nMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJjR+G4Q68+b7GCfGJAboOt9Cf0rMB8GA1Ud\r\nIwQYMBaAFJviB1dnHB7AagbeWbSaLd/cGYYuMDUGCCsGAQUFBwEBBCkwJzAlBggrBgEFBQcwAYYZ\r\naHR0cDovL29jc3AucGtpLmdvb2cvZ3NyMjAyBgNVHR8EKzApMCegJaAjhiFodHRwOi8vY3JsLnBr\r\naS5nb29nL2dzcjIvZ3NyMi5jcmwwPwYDVR0gBDgwNjA0BgZngQwBAgIwKjAoBggrBgEFBQcCARYc\r\naHR0cHM6Ly9wa2kuZ29vZy9yZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAGoA+Nnn78y6p\r\nRjd9XlQWNa7HTgiZ/r3RNGkmUmYHPQq6Scti9PEajvwRT2iWTHQr02fesqOqBY2ETUwgZQ+lltoN\r\nFvhsO9tvBCOIazpswWC9aJ9xju4tWDQH8NVU6YZZ/XteDSGU9YzJqPjY8q3MDxrzmqepBCf5o8mw\r\n/wJ4a2G6xzUr6Fb6T8McDO22PLRL6u3M4Tzs3A2M1j6bykJYi8wWIRdAvKLWZu/axBVbzYmqmwkm\r\n5zLSDW5nIAJbELCQCZwMH56t2Dvqofxs6BBcCFIZUSpxu6x6td0V7SvJCCosirSmIatj/9dSSVDQ\r\nibet8q/7UK4v4ZUN80atnZz1yg==\r\n-----END CERTIFICATE-----\n" } ], "issues": 0 @@ -437,7 +443,7 @@ }, { "client": { - "id": 139, + "id": 167, "name": "Android", "version": "7.0", "isReference": false @@ -448,6 +454,45 @@ "suiteId": 52393, "kxInfo": "ECDH x25519" }, + { + "client": { + "id": 168, + "name": "Android", + "version": "8.0", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 52393, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 157, + "name": "Android", + "version": "8.1", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4867, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 158, + "name": "Android", + "version": "9.0", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4867, + "kxInfo": "ECDH x25519" + }, { "client": { "id": 94, @@ -516,6 +561,20 @@ "suiteId": 4865, "kxInfo": "ECDH x25519" }, + { + "client": { + "id": 170, + "name": "Chrome", + "platform": "Win 10", + "version": "80", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4865, + "kxInfo": "ECDH x25519" + }, { "client": { "id": 84, @@ -572,6 +631,20 @@ "suiteId": 49195, "kxInfo": "ECDH x25519" }, + { + "client": { + "id": 171, + "name": "Firefox", + "platform": "Win 10", + "version": "73", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4865, + "kxInfo": "ECDH x25519" + }, { "client": { "id": 145, @@ -735,6 +808,34 @@ "suiteId": 49195, "kxInfo": "ECDH x25519" }, + { + "client": { + "id": 159, + "name": "Edge", + "platform": "Win 10", + "version": "16", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49195, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 160, + "name": "Edge", + "platform": "Win 10", + "version": "18", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49195, + "kxInfo": "ECDH x25519" + }, { "client": { "id": 120, @@ -787,6 +888,32 @@ "suiteId": 49195, "kxInfo": "ECDH secp256r1" }, + { + "client": { + "id": 162, + "name": "Java", + "version": "11.0.3", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4865, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 163, + "name": "Java", + "version": "12.0.1", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4865, + "kxInfo": "ECDH secp256r1" + }, { "client": { "id": 27, @@ -814,17 +941,43 @@ }, { "client": { - "id": 121, + "id": 164, "name": "OpenSSL", - "version": "1.0.2e", + "version": "1.0.2s", "isReference": true }, "errorCode": 0, "attempts": 1, "protocolId": 771, - "suiteId": 49195, + "suiteId": 49199, "kxInfo": "ECDH secp256r1" }, + { + "client": { + "id": 169, + "name": "OpenSSL", + "version": "1.1.0k", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 52393, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 165, + "name": "OpenSSL", + "version": "1.1.1c", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4866, + "kxInfo": "ECDH x25519" + }, { "client": { "id": 32, @@ -979,6 +1132,34 @@ "suiteId": 49195, "kxInfo": "ECDH secp256r1" }, + { + "client": { + "id": 161, + "name": "Safari", + "platform": "MacOS 10.14.6 Beta", + "version": "12.1.2", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4867, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 166, + "name": "Safari", + "platform": "iOS 12.3.1", + "version": "12.1.1", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4867, + "kxInfo": "ECDH x25519" + }, { "client": { "id": 112, @@ -1029,7 +1210,7 @@ "poodleTls": 1, "fallbackScsv": true, "freak": false, - "hasSct": 4, + "hasSct": 1, "logjam": false, "chaCha20Preference": true, "hstsPolicy": { @@ -1042,25 +1223,25 @@ "source": "Chrome", "hostname": "google.com", "status": "absent", - "sourceTime": 1554367441126 + "sourceTime": 1608109802581 }, { "source": "Edge", "hostname": "google.com", "status": "absent", - "sourceTime": 1554367442684 + "sourceTime": 1608111661651 }, { "source": "Firefox", "hostname": "google.com", "status": "absent", - "sourceTime": 1554367442684 + "sourceTime": 1608111661651 }, { "source": "IE", "hostname": "google.com", "status": "absent", - "sourceTime": 1554367442684 + "sourceTime": 1608111661651 } ], "hpkpPolicy": { @@ -1081,19 +1262,19 @@ } }, { - "ipAddress": "2607:f8b0:4005:806:0:0:0:200e", - "serverName": "sfo03s06-in-x0e.1e100.net", + "ipAddress": "2607:f8b0:4005:805:0:0:0:200e", + "serverName": "sfo03s01-in-x0e.1e100.net", "statusMessage": "Ready", - "grade": "A", - "gradeTrustIgnored": "A", + "grade": "B", + "gradeTrustIgnored": "B", "hasWarnings": false, "isExceptional": false, "progress": 100, - "duration": 84948, + "duration": 109225, "eta": 0, "delegation": 1, "details": { - "hostStartTime": 1554368435610, + "hostStartTime": 1608111800657, "key": { "size": 256, "alg": "EC", @@ -1108,11 +1289,15 @@ "*.google.com", "*.android.com", "*.appengine.google.com", + "*.bdn.dev", "*.cloud.google.com", "*.crowdsource.google.com", + "*.datacompute.google.com", "*.g.co", "*.gcp.gvt2.com", + "*.gcpcdn.gvt1.com", "*.ggpht.cn", + "*.gkecnapps.cn", "*.google-analytics.com", "*.google.ca", "*.google.cl", @@ -1147,6 +1332,7 @@ "*.metric.gstatic.com", "*.urchin.com", "*.url.google.com", + "*.wear.gkecnapps.cn", "*.youtube-nocookie.com", "*.youtube.com", "*.youtubeeducation.com", @@ -1159,6 +1345,7 @@ "developers.android.google.cn", "g.co", "ggpht.cn", + "gkecnapps.cn", "goo.gl", "google-analytics.com", "google.com", @@ -1173,37 +1360,37 @@ "youtubekids.com", "yt.be" ], - "notBefore": 1551433437000, - "notAfter": 1558689900000, - "issuerSubject": "CN=Google Internet Authority G3, O=Google Trust Services, C=US", - "issuerLabel": "Google Internet Authority G3", + "notBefore": 1605018883000, + "notAfter": 1612276482000, + "issuerSubject": "CN=GTS CA 1O1, O=Google Trust Services, C=US", + "issuerLabel": "GTS CA 1O1", "sigAlg": "SHA256withRSA", "revocationInfo": 3, "crlURIs": [ - "http://crl.pki.goog/GTSGIAG3.crl" + "http://crl.pki.goog/GTS1O1core.crl" ], "ocspURIs": [ - "http://ocsp.pki.goog/GTSGIAG3" + "http://ocsp.pki.goog/gts1o1core" ], "revocationStatus": 2, "crlRevocationStatus": 2, "ocspRevocationStatus": 2, "sgc": 0, "issues": 0, - "sct": false, + "sct": true, "mustStaple": 0, - "sha1Hash": "f81e3171fa085bc04c83b6644b9f229f0cba8e57", - "pinSha256": "1T073i1JjmCuCjyUSt2gTRL4iGbrP3r8aeJjYFxn7F0=" + "sha1Hash": "e48943d96a40d534b9337ee5eda976d2201d2ebf", + "pinSha256": "U3xTWXJOd447ON2zOz9w35qNaPAJDpqlFO4Jt/443us=" }, "chain": { "certs": [ { "subject": "CN=*.google.com, O=Google LLC, L=Mountain View, ST=California, C=US", "label": "*.google.com", - "notBefore": 1551433437000, - "notAfter": 1558689900000, - "issuerSubject": "CN=Google Internet Authority G3, O=Google Trust Services, C=US", - "issuerLabel": "Google Internet Authority G3", + "notBefore": 1605018883000, + "notAfter": 1612276482000, + "issuerSubject": "CN=GTS CA 1O1, O=Google Trust Services, C=US", + "issuerLabel": "GTS CA 1O1", "sigAlg": "SHA256withRSA", "issues": 0, "keyAlg": "EC", @@ -1212,13 +1399,13 @@ "revocationStatus": 2, "crlRevocationStatus": 2, "ocspRevocationStatus": 2, - "sha1Hash": "f81e3171fa085bc04c83b6644b9f229f0cba8e57", - "pinSha256": "1T073i1JjmCuCjyUSt2gTRL4iGbrP3r8aeJjYFxn7F0=", - "raw": "-----BEGIN CERTIFICATE-----\nMIIIDTCCBvWgAwIBAgIQdCdvtO3S1SGVFWeeric83zANBgkqhkiG9w0BAQsFADBUMQswCQYDVQQG\r\nEwJVUzEeMBwGA1UEChMVR29vZ2xlIFRydXN0IFNlcnZpY2VzMSUwIwYDVQQDExxHb29nbGUgSW50\r\nZXJuZXQgQXV0aG9yaXR5IEczMB4XDTE5MDMwMTA5NDM1N1oXDTE5MDUyNDA5MjUwMFowZjELMAkG\r\nA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEzAR\r\nBgNVBAoMCkdvb2dsZSBMTEMxFTATBgNVBAMMDCouZ29vZ2xlLmNvbTBZMBMGByqGSM49AgEGCCqG\r\nSM49AwEHA0IABDos6V7pCUxMZ2A8pDa+je+faVgctzvOrRwMQCXWKgsUymr7357AkjKx2PnN2NHf\r\nt7Ua/aqD/nKV7p4DdMEU9SWjggWSMIIFjjATBgNVHSUEDDAKBggrBgEFBQcDATAOBgNVHQ8BAf8E\r\nBAMCB4AwggRXBgNVHREEggROMIIESoIMKi5nb29nbGUuY29tgg0qLmFuZHJvaWQuY29tghYqLmFw\r\ncGVuZ2luZS5nb29nbGUuY29tghIqLmNsb3VkLmdvb2dsZS5jb22CGCouY3Jvd2Rzb3VyY2UuZ29v\r\nZ2xlLmNvbYIGKi5nLmNvgg4qLmdjcC5ndnQyLmNvbYIKKi5nZ3BodC5jboIWKi5nb29nbGUtYW5h\r\nbHl0aWNzLmNvbYILKi5nb29nbGUuY2GCCyouZ29vZ2xlLmNsgg4qLmdvb2dsZS5jby5pboIOKi5n\r\nb29nbGUuY28uanCCDiouZ29vZ2xlLmNvLnVrgg8qLmdvb2dsZS5jb20uYXKCDyouZ29vZ2xlLmNv\r\nbS5hdYIPKi5nb29nbGUuY29tLmJygg8qLmdvb2dsZS5jb20uY2+CDyouZ29vZ2xlLmNvbS5teIIP\r\nKi5nb29nbGUuY29tLnRygg8qLmdvb2dsZS5jb20udm6CCyouZ29vZ2xlLmRlggsqLmdvb2dsZS5l\r\nc4ILKi5nb29nbGUuZnKCCyouZ29vZ2xlLmh1ggsqLmdvb2dsZS5pdIILKi5nb29nbGUubmyCCyou\r\nZ29vZ2xlLnBsggsqLmdvb2dsZS5wdIISKi5nb29nbGVhZGFwaXMuY29tgg8qLmdvb2dsZWFwaXMu\r\nY26CESouZ29vZ2xlY25hcHBzLmNughQqLmdvb2dsZWNvbW1lcmNlLmNvbYIRKi5nb29nbGV2aWRl\r\nby5jb22CDCouZ3N0YXRpYy5jboINKi5nc3RhdGljLmNvbYISKi5nc3RhdGljY25hcHBzLmNuggoq\r\nLmd2dDEuY29tggoqLmd2dDIuY29tghQqLm1ldHJpYy5nc3RhdGljLmNvbYIMKi51cmNoaW4uY29t\r\nghAqLnVybC5nb29nbGUuY29tghYqLnlvdXR1YmUtbm9jb29raWUuY29tgg0qLnlvdXR1YmUuY29t\r\nghYqLnlvdXR1YmVlZHVjYXRpb24uY29tghEqLnlvdXR1YmVraWRzLmNvbYIHKi55dC5iZYILKi55\r\ndGltZy5jb22CGmFuZHJvaWQuY2xpZW50cy5nb29nbGUuY29tggthbmRyb2lkLmNvbYIbZGV2ZWxv\r\ncGVyLmFuZHJvaWQuZ29vZ2xlLmNughxkZXZlbG9wZXJzLmFuZHJvaWQuZ29vZ2xlLmNuggRnLmNv\r\ngghnZ3BodC5jboIGZ29vLmdsghRnb29nbGUtYW5hbHl0aWNzLmNvbYIKZ29vZ2xlLmNvbYIPZ29v\r\nZ2xlY25hcHBzLmNughJnb29nbGVjb21tZXJjZS5jb22CGHNvdXJjZS5hbmRyb2lkLmdvb2dsZS5j\r\nboIKdXJjaGluLmNvbYIKd3d3Lmdvby5nbIIIeW91dHUuYmWCC3lvdXR1YmUuY29tghR5b3V0dWJl\r\nZWR1Y2F0aW9uLmNvbYIPeW91dHViZWtpZHMuY29tggV5dC5iZTBoBggrBgEFBQcBAQRcMFowLQYI\r\nKwYBBQUHMAKGIWh0dHA6Ly9wa2kuZ29vZy9nc3IyL0dUU0dJQUczLmNydDApBggrBgEFBQcwAYYd\r\naHR0cDovL29jc3AucGtpLmdvb2cvR1RTR0lBRzMwHQYDVR0OBBYEFK0EWGE69tfHVmsgC1gJeREi\r\n92m2MAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUd8K4UJpndnaxLcKG0IOgfqZ+ukswIQYDVR0g\r\nBBowGDAMBgorBgEEAdZ5AgUDMAgGBmeBDAECAjAxBgNVHR8EKjAoMCagJKAihiBodHRwOi8vY3Js\r\nLnBraS5nb29nL0dUU0dJQUczLmNybDANBgkqhkiG9w0BAQsFAAOCAQEAiRzb/eu7AaK8KDzrumNr\r\niEbEhbWG5KH/ae54vRKJGLSBl9YT6bJ/u4IRNXSiigF6ZAfThvloPiMmYqxXB4BzclQBP5Deercs\r\njLRwos6QTPbKryU+SYfO/s0VtOYRCRISpG1gbPJLZPjaAw/P56khVTCVErjUXkSC5ReMIKuzfQ3V\r\n2HE8zsmioS0rFT39P6QujhcwMmOq0IeJnemwtxzqDvrN/ReqE7sdJq9Ze43vJDGvGZfUxJjHblWt\r\nsDNtqxMdMYZosRyo1YT6DZRjUDUEj3kr/z7oRjn96mRiC4AIebe5HCGHuBWxfXw2G/5PDD1Z0wdN\r\nQ4U04nzWE2bBl/VNlA==\r\n-----END CERTIFICATE-----\n" + "sha1Hash": "e48943d96a40d534b9337ee5eda976d2201d2ebf", + "pinSha256": "U3xTWXJOd447ON2zOz9w35qNaPAJDpqlFO4Jt/443us=", + "raw": "-----BEGIN CERTIFICATE-----\nMIIJcTCCCFmgAwIBAgIQbkMYuNeQFlwDAAAAALrbijANBgkqhkiG9w0BAQsFADBCMQswCQYDVQQG\r\nEwJVUzEeMBwGA1UEChMVR29vZ2xlIFRydXN0IFNlcnZpY2VzMRMwEQYDVQQDEwpHVFMgQ0EgMU8x\r\nMB4XDTIwMTExMDE0MzQ0M1oXDTIxMDIwMjE0MzQ0MlowZjELMAkGA1UEBhMCVVMxEzARBgNVBAgT\r\nCkNhbGlmb3JuaWExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxEzARBgNVBAoTCkdvb2dsZSBMTEMx\r\nFTATBgNVBAMMDCouZ29vZ2xlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABFIhx27fGJ+R\r\n9kmype5uzK8Ka/rxmEk/J/QovXjqMP/TkMyS2fVTcIQ5gYCxxh6ottMx5iAB+9Q0Kg7qLsJAP/qj\r\nggcIMIIHBDAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIw\r\nADAdBgNVHQ4EFgQUhekgVwayZa1bqtk9uha5R6cvJHEwHwYDVR0jBBgwFoAUmNH4bhDrz5vsYJ8Y\r\nkBug630J/SswaAYIKwYBBQUHAQEEXDBaMCsGCCsGAQUFBzABhh9odHRwOi8vb2NzcC5wa2kuZ29v\r\nZy9ndHMxbzFjb3JlMCsGCCsGAQUFBzAChh9odHRwOi8vcGtpLmdvb2cvZ3NyMi9HVFMxTzEuY3J0\r\nMIIEwgYDVR0RBIIEuTCCBLWCDCouZ29vZ2xlLmNvbYINKi5hbmRyb2lkLmNvbYIWKi5hcHBlbmdp\r\nbmUuZ29vZ2xlLmNvbYIJKi5iZG4uZGV2ghIqLmNsb3VkLmdvb2dsZS5jb22CGCouY3Jvd2Rzb3Vy\r\nY2UuZ29vZ2xlLmNvbYIYKi5kYXRhY29tcHV0ZS5nb29nbGUuY29tggYqLmcuY2+CDiouZ2NwLmd2\r\ndDIuY29tghEqLmdjcGNkbi5ndnQxLmNvbYIKKi5nZ3BodC5jboIOKi5na2VjbmFwcHMuY26CFiou\r\nZ29vZ2xlLWFuYWx5dGljcy5jb22CCyouZ29vZ2xlLmNhggsqLmdvb2dsZS5jbIIOKi5nb29nbGUu\r\nY28uaW6CDiouZ29vZ2xlLmNvLmpwgg4qLmdvb2dsZS5jby51a4IPKi5nb29nbGUuY29tLmFygg8q\r\nLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xlLmNvbS5icoIPKi5nb29nbGUuY29tLmNvgg8qLmdvb2ds\r\nZS5jb20ubXiCDyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnZuggsqLmdvb2dsZS5kZYIL\r\nKi5nb29nbGUuZXOCCyouZ29vZ2xlLmZyggsqLmdvb2dsZS5odYILKi5nb29nbGUuaXSCCyouZ29v\r\nZ2xlLm5sggsqLmdvb2dsZS5wbIILKi5nb29nbGUucHSCEiouZ29vZ2xlYWRhcGlzLmNvbYIPKi5n\r\nb29nbGVhcGlzLmNughEqLmdvb2dsZWNuYXBwcy5jboIUKi5nb29nbGVjb21tZXJjZS5jb22CESou\r\nZ29vZ2xldmlkZW8uY29tggwqLmdzdGF0aWMuY26CDSouZ3N0YXRpYy5jb22CEiouZ3N0YXRpY2Nu\r\nYXBwcy5jboIKKi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIUKi5tZXRyaWMuZ3N0YXRpYy5jb22CDCou\r\ndXJjaGluLmNvbYIQKi51cmwuZ29vZ2xlLmNvbYITKi53ZWFyLmdrZWNuYXBwcy5jboIWKi55b3V0\r\ndWJlLW5vY29va2llLmNvbYINKi55b3V0dWJlLmNvbYIWKi55b3V0dWJlZWR1Y2F0aW9uLmNvbYIR\r\nKi55b3V0dWJla2lkcy5jb22CByoueXQuYmWCCyoueXRpbWcuY29tghphbmRyb2lkLmNsaWVudHMu\r\nZ29vZ2xlLmNvbYILYW5kcm9pZC5jb22CG2RldmVsb3Blci5hbmRyb2lkLmdvb2dsZS5jboIcZGV2\r\nZWxvcGVycy5hbmRyb2lkLmdvb2dsZS5jboIEZy5jb4IIZ2dwaHQuY26CDGdrZWNuYXBwcy5jboIG\r\nZ29vLmdsghRnb29nbGUtYW5hbHl0aWNzLmNvbYIKZ29vZ2xlLmNvbYIPZ29vZ2xlY25hcHBzLmNu\r\nghJnb29nbGVjb21tZXJjZS5jb22CGHNvdXJjZS5hbmRyb2lkLmdvb2dsZS5jboIKdXJjaGluLmNv\r\nbYIKd3d3Lmdvby5nbIIIeW91dHUuYmWCC3lvdXR1YmUuY29tghR5b3V0dWJlZWR1Y2F0aW9uLmNv\r\nbYIPeW91dHViZWtpZHMuY29tggV5dC5iZTAhBgNVHSAEGjAYMAgGBmeBDAECAjAMBgorBgEEAdZ5\r\nAgUDMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9jcmwucGtpLmdvb2cvR1RTMU8xY29yZS5jcmww\r\nggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEAdgD2XJQv0XcwIhRUGAgwlFaO400TGTO/3wwvIAvMTvFk\r\n4wAAAXWyy4p7AAAEAwBHMEUCIBaIfxadDwtOlUoYpiV6u+B0G04PZv17JeceTO7xYjEfAiEA/S0V\r\ntKdopPSFFmnqlBWlliDGsn27KFh1aR9YtoSz41IAdwBElGUusO7Or8RAB9io/ijA2uaCvtjLMbU/\r\n0zOWtbaBqAAAAXWyy4rUAAAEAwBIMEYCIQDWKWwFnf9CaLYGWYqvKNRlryN0m6eQxwTP8uM54yq6\r\n3gIhAMWeB6x3v7qm3B6PmUMQRlVZaDR3FOcaz2V7O/88tHtfMA0GCSqGSIb3DQEBCwUAA4IBAQCE\r\naoPOwtxgWQb8UJYtXQTuHxxQLF2mcPwAFHszxvOJNXdCplX1G+X+fkrA3cKXgv3CoQy5xs6eRzXR\r\nKoAAUtFmki++5dvgufiMYnSnyPe62x6bcUkowoGMFjLwCA91w7vqSZ2Gnd26YbfLcABonmAb/1Hy\r\nYOxD1l1wn0kOgRBsV3MLEuVoQ+eZ3yWG38WkwzPGtSvAV+6dzWbGu+XC3BT9XhwvQ5WwABMGxPZr\r\nAW4aqW0ArD1gzr1iSz4W0pBWtwYynme0SwfqTf7VJQYKpevuF4bQNOuMy+8E2kouClssLDQ3HOJZ\r\nKkyn3byIK0NCee1+DTNQX0hl6e/f6va5HaiJ\r\n-----END CERTIFICATE-----\n" }, { - "subject": "CN=Google Internet Authority G3, O=Google Trust Services, C=US", - "label": "Google Internet Authority G3", + "subject": "CN=GTS CA 1O1, O=Google Trust Services, C=US", + "label": "GTS CA 1O1", "notBefore": 1497484842000, "notAfter": 1639526442000, "issuerSubject": "CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R2", @@ -1231,9 +1418,9 @@ "revocationStatus": 2, "crlRevocationStatus": 2, "ocspRevocationStatus": 2, - "sha1Hash": "eeacbd0cb452819577911e1e6203db262f84a318", - "pinSha256": "f8NnEFZxQ4ExFOhSN7EiFWtiudZQVD2oY60uauV/n78=", - "raw": "-----BEGIN CERTIFICATE-----\nMIIEXDCCA0SgAwIBAgINAeOpMBz8cgY4P5pTHTANBgkqhkiG9w0BAQsFADBMMSAwHgYDVQQLExdH\r\nbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xv\r\nYmFsU2lnbjAeFw0xNzA2MTUwMDAwNDJaFw0yMTEyMTUwMDAwNDJaMFQxCzAJBgNVBAYTAlVTMR4w\r\nHAYDVQQKExVHb29nbGUgVHJ1c3QgU2VydmljZXMxJTAjBgNVBAMTHEdvb2dsZSBJbnRlcm5ldCBB\r\ndXRob3JpdHkgRzMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDKUkvqHv/OJGuo2nIY\r\naNVWXQ5IWi01CXZaz6TIHLGp/lOJ+600/4hbn7vn6AAB3DVzdQOts7G5pH0rJnnOFUAK71G4nzKM\r\nfHCGUksW/mona+Y2emJQ2N+aicwJKetPKRSIgAuPOB6Aahh8Hb2XO3h9RUk2T0HNouB2VzxoMXlk\r\nyW7XUR5mw6JkLHnA52XDVoRTWkNty5oCINLvGmnRsJ1zouAqYGVQMc/7sy+/EYhALrVJEA8KbtyX\r\n+r8snwU5C1hUrwaW6MWOARa8qBpNQcWTkaIeoYvy/sGIJEmjR0vFEwHdp1cSaWIr6/4g72n7OqXw\r\nfinu7ZYW97EfoOSQJeAzAgMBAAGjggEzMIIBLzAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYI\r\nKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHfCuFCaZ3Z2\r\nsS3ChtCDoH6mfrpLMB8GA1UdIwQYMBaAFJviB1dnHB7AagbeWbSaLd/cGYYuMDUGCCsGAQUFBwEB\r\nBCkwJzAlBggrBgEFBQcwAYYZaHR0cDovL29jc3AucGtpLmdvb2cvZ3NyMjAyBgNVHR8EKzApMCeg\r\nJaAjhiFodHRwOi8vY3JsLnBraS5nb29nL2dzcjIvZ3NyMi5jcmwwPwYDVR0gBDgwNjA0BgZngQwB\r\nAgIwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9wa2kuZ29vZy9yZXBvc2l0b3J5LzANBgkqhkiG9w0B\r\nAQsFAAOCAQEAHLeJluRT7bvs26gyAZ8so81trUISd7O45skDUmAge1cnxhG1P2cNmSxbWsoiCt2e\r\nux9LSD+PAj2LIYRFHW31/6xoic1k4tbWXkDCjir37xTTNqRAMPUyFRWSdvt+nlPqwnb8Oa2I/maS\r\nJukcxDjNSfpDh/Bd1lZNgdd/8cLdsE3+wypufJ9uXO1iQpnh9zbuFIwsIONGl1p3A8CgxkqI/UAi\r\nh3JaGOqcpcdaCIzkBaR9uYQ1X4k2Vg5APRLouzVy7a8IVk6wuy6pm+T7HT4LY8ibS5FEZlfAFLSW\r\n8NwsVz9SBK2Vqn1N0PIMn5xA6NZVc7o835DLAFshEWfC7TIe3g==\r\n-----END CERTIFICATE-----\n" + "sha1Hash": "dfe2070c79e7ff36a925ffa327ffe3deecf8f9c2", + "pinSha256": "YZPgTZ+woNCCCIW3LH2CxQeLzB/1m42QcCTBSdgayjs=", + "raw": "-----BEGIN CERTIFICATE-----\nMIIESjCCAzKgAwIBAgINAeO0mqGNiqmBJWlQuDANBgkqhkiG9w0BAQsFADBMMSAwHgYDVQQLExdH\r\nbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xv\r\nYmFsU2lnbjAeFw0xNzA2MTUwMDAwNDJaFw0yMTEyMTUwMDAwNDJaMEIxCzAJBgNVBAYTAlVTMR4w\r\nHAYDVQQKExVHb29nbGUgVHJ1c3QgU2VydmljZXMxEzARBgNVBAMTCkdUUyBDQSAxTzEwggEiMA0G\r\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDQGM9F1IvN05zkQO9+tN1pIRvJzzyOTHW5DzEZhD2e\r\nPCnvUA0Qk28FgICfKqC9EksC4T2fWBYk/jCfC3R3VZMdS/dN4ZKCEPZRrAzDsiKUDzRrmBBJ5wud\r\ngzndIMYcLe/RGGFl5yODIKgjEv/SJH/UL+dEaltN11BmsK+eQmMF++AcxGNhr59qM/9il71I2dN8\r\nFGfcddwuaej4bXhp0LcQBbjxMcI7JP0aM3T4I+DsaxmKFsbjzaTNC9uzpFlgOIg7rR25xoynUxv8\r\nvNmkq7zdPGHXkxWY7oG9j+JkRyBABk7XrJfoucBZEqFJJSPk7XA0LKW0Y3z5oz2D0c1tJKwHAgMB\r\nAAGjggEzMIIBLzAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC\r\nMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJjR+G4Q68+b7GCfGJAboOt9Cf0rMB8GA1Ud\r\nIwQYMBaAFJviB1dnHB7AagbeWbSaLd/cGYYuMDUGCCsGAQUFBwEBBCkwJzAlBggrBgEFBQcwAYYZ\r\naHR0cDovL29jc3AucGtpLmdvb2cvZ3NyMjAyBgNVHR8EKzApMCegJaAjhiFodHRwOi8vY3JsLnBr\r\naS5nb29nL2dzcjIvZ3NyMi5jcmwwPwYDVR0gBDgwNjA0BgZngQwBAgIwKjAoBggrBgEFBQcCARYc\r\naHR0cHM6Ly9wa2kuZ29vZy9yZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAGoA+Nnn78y6p\r\nRjd9XlQWNa7HTgiZ/r3RNGkmUmYHPQq6Scti9PEajvwRT2iWTHQr02fesqOqBY2ETUwgZQ+lltoN\r\nFvhsO9tvBCOIazpswWC9aJ9xju4tWDQH8NVU6YZZ/XteDSGU9YzJqPjY8q3MDxrzmqepBCf5o8mw\r\n/wJ4a2G6xzUr6Fb6T8McDO22PLRL6u3M4Tzs3A2M1j6bykJYi8wWIRdAvKLWZu/axBVbzYmqmwkm\r\n5zLSDW5nIAJbELCQCZwMH56t2Dvqofxs6BBcCFIZUSpxu6x6td0V7SvJCCosirSmIatj/9dSSVDQ\r\nibet8q/7UK4v4ZUN80atnZz1yg==\r\n-----END CERTIFICATE-----\n" } ], "issues": 0 @@ -1508,7 +1695,7 @@ }, { "client": { - "id": 139, + "id": 167, "name": "Android", "version": "7.0", "isReference": false @@ -1519,6 +1706,45 @@ "suiteId": 52393, "kxInfo": "ECDH x25519" }, + { + "client": { + "id": 168, + "name": "Android", + "version": "8.0", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 52393, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 157, + "name": "Android", + "version": "8.1", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4867, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 158, + "name": "Android", + "version": "9.0", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4867, + "kxInfo": "ECDH x25519" + }, { "client": { "id": 94, @@ -1587,6 +1813,20 @@ "suiteId": 4865, "kxInfo": "ECDH x25519" }, + { + "client": { + "id": 170, + "name": "Chrome", + "platform": "Win 10", + "version": "80", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4865, + "kxInfo": "ECDH x25519" + }, { "client": { "id": 84, @@ -1643,6 +1883,20 @@ "suiteId": 49195, "kxInfo": "ECDH x25519" }, + { + "client": { + "id": 171, + "name": "Firefox", + "platform": "Win 10", + "version": "73", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4865, + "kxInfo": "ECDH x25519" + }, { "client": { "id": 145, @@ -1806,6 +2060,34 @@ "suiteId": 49195, "kxInfo": "ECDH x25519" }, + { + "client": { + "id": 159, + "name": "Edge", + "platform": "Win 10", + "version": "16", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49195, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 160, + "name": "Edge", + "platform": "Win 10", + "version": "18", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 49195, + "kxInfo": "ECDH x25519" + }, { "client": { "id": 120, @@ -1858,6 +2140,32 @@ "suiteId": 49195, "kxInfo": "ECDH secp256r1" }, + { + "client": { + "id": 162, + "name": "Java", + "version": "11.0.3", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4865, + "kxInfo": "ECDH secp256r1" + }, + { + "client": { + "id": 163, + "name": "Java", + "version": "12.0.1", + "isReference": false + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4865, + "kxInfo": "ECDH secp256r1" + }, { "client": { "id": 27, @@ -1885,17 +2193,43 @@ }, { "client": { - "id": 121, + "id": 164, "name": "OpenSSL", - "version": "1.0.2e", + "version": "1.0.2s", "isReference": true }, "errorCode": 0, "attempts": 1, "protocolId": 771, - "suiteId": 49195, + "suiteId": 49199, "kxInfo": "ECDH secp256r1" }, + { + "client": { + "id": 169, + "name": "OpenSSL", + "version": "1.1.0k", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 771, + "suiteId": 52393, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 165, + "name": "OpenSSL", + "version": "1.1.1c", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4866, + "kxInfo": "ECDH x25519" + }, { "client": { "id": 32, @@ -2050,6 +2384,34 @@ "suiteId": 49195, "kxInfo": "ECDH secp256r1" }, + { + "client": { + "id": 161, + "name": "Safari", + "platform": "MacOS 10.14.6 Beta", + "version": "12.1.2", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4867, + "kxInfo": "ECDH x25519" + }, + { + "client": { + "id": 166, + "name": "Safari", + "platform": "iOS 12.3.1", + "version": "12.1.1", + "isReference": true + }, + "errorCode": 0, + "attempts": 1, + "protocolId": 772, + "suiteId": 4867, + "kxInfo": "ECDH x25519" + }, { "client": { "id": 112, @@ -2100,7 +2462,7 @@ "poodleTls": 1, "fallbackScsv": true, "freak": false, - "hasSct": 4, + "hasSct": 1, "logjam": false, "chaCha20Preference": true, "hstsPolicy": { @@ -2113,25 +2475,25 @@ "source": "Chrome", "hostname": "google.com", "status": "absent", - "sourceTime": 1554367441126 + "sourceTime": 1608109802581 }, { "source": "Edge", "hostname": "google.com", "status": "absent", - "sourceTime": 1554367442684 + "sourceTime": 1608111661651 }, { "source": "Firefox", "hostname": "google.com", "status": "absent", - "sourceTime": 1554367442684 + "sourceTime": 1608111661651 }, { "source": "IE", "hostname": "google.com", "status": "absent", - "sourceTime": 1554367442684 + "sourceTime": 1608111661651 } ], "hpkpPolicy": { diff --git a/sample/styles.css b/sample/styles.css index 51069a8..aa586d0 100644 --- a/sample/styles.css +++ b/sample/styles.css @@ -41,4 +41,4 @@ body { border-style:solid; border-width:1px; padding:8px; -} +} \ No newline at end of file diff --git a/sample/summary.csv b/sample/summary.csv index ea7a2a7..7cdb675 100644 --- a/sample/summary.csv +++ b/sample/summary.csv @@ -1,3 +1,4 @@ -#Host,Grade,HasWarnings,Cert Expiry,Chain Status,Forward Secrecy,Heartbeat ext,Vuln Beast,Vuln Drown,Vuln Heartbleed,Vuln FREAK,Vuln openSsl Ccs,Vuln openSSL LuckyMinus20,Vuln POODLE,Vuln POODLE TLS,TLS 1.3,TLS 1.2,TLS 1.1,TLS 1.0,SSL 3.0 INSECURE,SSL 2.0 INSECURE -google.com,A,False,2019-05-24,none,With modern browsers,False,True,False,False,False,False,False,False,False,No,Yes,Yes,Yes,No,No -google.com,A,False,2019-05-24,none,With modern browsers,False,True,False,False,False,False,False,False,False,No,Yes,Yes,Yes,No,No +#Host,Grade,HasWarnings,Cert Expiry,Chain Status,Forward Secrecy,Heartbeat ext,Vuln Beast,Vuln Drown,Vuln Heartbleed,Vuln FREAK,Vuln openSsl Ccs,Vuln openSSL LuckyMinus20,Vuln POODLE,Vuln POODLE TLS,Support RC4,RC4 with modern protocols,RC4 Only,TLS 1.3,TLS 1.2,TLS 1.1,TLS 1.0,SSL 3.0 INSECURE,SSL 2.0 INSECURE +duckduckgo.com,A+,False,2021-11-10,none,Yes (with most browsers) ROBUST,False,False,False,False,False,False,False,False,False,False,False,False,No,Yes,No,No,No,No +google.com,B,False,2021-02-02,none,With modern browsers,False,True,False,False,False,False,False,False,False,False,False,False,No,Yes,Yes,Yes,No,No +google.com,B,False,2021-02-02,none,With modern browsers,False,True,False,False,False,False,False,False,False,False,False,False,No,Yes,Yes,Yes,No,No diff --git a/sample/summary.html b/sample/summary.html index 7f7406b..6557def 100644 --- a/sample/summary.html +++ b/sample/summary.html @@ -9,7 +9,7 @@

SSL Labs Analysis Summary Report

- +
#HostGradeHasWarningsCert ExpiryChain StatusForward SecrecyHeartbeat extVuln BeastVuln DrownVuln HeartbleedVuln FREAKVuln openSsl CcsVuln openSSL LuckyMinus20Vuln POODLEVuln POODLE TLSTLS 1.3TLS 1.2TLS 1.1TLS 1.0SSL 3.0 INSECURESSL 2.0 INSECURE
google.comAFalse2019-05-24noneWith modern browsersFalseTrueFalseFalseFalseFalseFalseFalseFalseNoYesYesYesNoNo
google.comAFalse2019-05-24noneWith modern browsersFalseTrueFalseFalseFalseFalseFalseFalseFalseNoYesYesYesNoNo
#HostGradeHasWarningsCert ExpiryChain StatusForward SecrecyHeartbeat extVuln BeastVuln DrownVuln HeartbleedVuln FREAKVuln openSsl CcsVuln openSSL LuckyMinus20Vuln POODLEVuln POODLE TLSSupport RC4RC4 with modern protocolsRC4 OnlyTLS 1.3TLS 1.2TLS 1.1TLS 1.0SSL 3.0 INSECURESSL 2.0 INSECURE
duckduckgo.comA+False2021-11-10noneYes (with most browsers) ROBUSTFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseNoYesNoNoNoNo
google.comBFalse2021-02-02noneWith modern browsersFalseTrueFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseNoYesYesYesNoNo
google.comBFalse2021-02-02noneWith modern browsersFalseTrueFalseFalseFalseFalseFalseFalseFalseFalseFalseFalseNoYesYesYesNoNo
diff --git a/setup.py b/setup.py index 2f2e4b7..ff309b5 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ from setuptools import setup, find_packages __title__ = "ssllabsscan" -__version__ = "1.0.1" +__version__ = "1.1.0" __author__ = "Kay Hau" __email__ = "virtualda@gmail.com" __uri__ = "https://github.com/kyhau/ssllabs-scan" diff --git a/ssllabsscan/main.py b/ssllabsscan/main.py index 11ec3f1..792d912 100644 --- a/ssllabsscan/main.py +++ b/ssllabsscan/main.py @@ -1,5 +1,5 @@ """ -App"s main +App's main """ import csv import os @@ -8,8 +8,7 @@ import traceback from ssllabsscan.report_template import REPORT_HTML -from ssllabsscan.ssllabs_client import SSLLabsClient, SUMMARY_COL_NAMES - +from ssllabsscan.ssllabs_client import SUMMARY_COL_NAMES, SSLLabsClient SUMMARY_CSV = "summary.csv" SUMMARY_HTML = "summary.html" @@ -20,7 +19,7 @@ def output_summary_html(input_csv, output_html): - print("Creating {} ...".format(output_html)) + print(f"Creating {output_html} ...") data = "" with open(input_csv, "r") as csvfile: @@ -77,7 +76,7 @@ def main(): Entry point of the app. """ if len(sys.argv) != 2: - print("{} [SERVER_LIST_FILE]".format(sys.argv[0])) + print(f"{sys.argv[0]} [SERVER_LIST_FILE]") return 1 return process(server_list_file=sys.argv[1]) diff --git a/ssllabsscan/ssllabs_client.py b/ssllabsscan/ssllabs_client.py index e7e21bc..853fa3f 100644 --- a/ssllabsscan/ssllabs_client.py +++ b/ssllabsscan/ssllabs_client.py @@ -1,12 +1,12 @@ """ -See APi doc: https://github.com/ssllabs/ssllabs-scan/blob/stable/ssllabs-api-docs.md +See API doc: https://github.com/ssllabs/ssllabs-scan/blob/master/ssllabs-api-docs.md """ -from datetime import datetime import json import os -import requests import time +from datetime import datetime +import requests API_URL = "https://api.ssllabs.com/api/v2/analyze" @@ -31,6 +31,8 @@ "TLS 1.3", "TLS 1.2", "TLS 1.1", "TLS 1.0", "SSL 3.0 INSECURE", "SSL 2.0 INSECURE" ] +RC4 = ["Support RC4", "RC4 with modern protocols", "RC4 Only"] + VULNERABLES = [ "Vuln Beast", "Vuln Drown", "Vuln Heartbleed", "Vuln FREAK", "Vuln openSsl Ccs", "Vuln openSSL LuckyMinus20", "Vuln POODLE", "Vuln POODLE TLS" @@ -38,7 +40,7 @@ SUMMARY_COL_NAMES = [ "Host", "Grade", "HasWarnings", "Cert Expiry", "Chain Status", "Forward Secrecy", "Heartbeat ext" -] + VULNERABLES + PROTOCOLS +] + VULNERABLES + RC4 + PROTOCOLS class SSLLabsClient(): @@ -70,6 +72,7 @@ def start_new_scan(self, host, publish="off", startNew="on", all="done", ignoreM payload.pop("startNew") while results["status"] != "READY" and results["status"] != "ERROR": + print(f"Status: {results['status']}, wait for {self._check_progress_interval_secs} seconds...") time.sleep(self._check_progress_interval_secs) results = self.request_api(path, payload) return results @@ -111,6 +114,9 @@ def append_summary_csv(self, summary_file, host, data): False if ep["details"]["openSSLLuckyMinus20"] == 1 else True, ep["details"]["poodle"], False if ep["details"]["poodleTls"] == 1 else True, + ep["details"]["supportsRc4"], + ep["details"]["rc4WithModern"], + ep["details"]["rc4Only"], ] for protocol in PROTOCOLS: found = False diff --git a/ssllabsscan/tests/conftest.py b/ssllabsscan/tests/conftest.py index 5361b23..fd2bf15 100644 --- a/ssllabsscan/tests/conftest.py +++ b/ssllabsscan/tests/conftest.py @@ -39,7 +39,10 @@ "heartbeat": True, "cert": { "notAfter": 1521257378000, - } + }, + "supportsRc4": False, + "rc4WithModern": False, + "rc4Only": False, }, } ],