From 7e0c9bb5c59fe2c7a3fa292627e05f8877ab1027 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Thu, 2 Jan 2025 02:11:23 +0400 Subject: [PATCH] images: fixed symbols download from gatherer website, removed custom cacert key storage (close #13159, close #13157, related to #9266) --- Mage.Client/release/cacerts | Bin 104792 -> 0 bytes .../src/main/java/mage/client/MageFrame.java | 50 +++++++++++++----- .../client/remote/XmageURLConnection.java | 6 +++ .../java/mage/client/util/DownloaderTest.java | 17 ++++++ 4 files changed, 60 insertions(+), 13 deletions(-) delete mode 100644 Mage.Client/release/cacerts diff --git a/Mage.Client/release/cacerts b/Mage.Client/release/cacerts deleted file mode 100644 index f50115666131d74b50ce9a71cb94362b2042b2ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104792 zcmdqK1z1(>wl++6ce7}aT8jn==@6t_y1TnWLQ+CX8l=0WrAv?w=@LOe!T^zP0S5Z+ zz29$N|2g|V=kvO_U{2PW^O>x1-(!sXxu3^x@4vl=fPjDkf9YO-CvY`!v~aR8vo*3d zaB^ZZV>2=UXj>Xv=|Dh0s=bu%35I~xVBrMvLO?*n0|TLhCz){iTIsBnmPLZm`Ip+Z8!!a@K8Izh-lL^x!95clc;2^&ofd_QII z{g?pKwni)MXv?`U;`+)7+PBx0Tdi9Yz!Pd0HP+2&K9N?Mh4CncD4Xv z7iV)jM+;{U05d?64a5iJxp_B;-iQGJ;^pN5{C<7#%Ova^0R}g3^E5FAxHy>r>};() zK;%HuoA=`Vcnd(q(Z$Ib@W8~`&CbyZNQRHf%LC*D@c^&?Y2l-?@c?;%AU1YRUQS-E z|0kX?AoKPo2MG%S9S{Zn^unP60w4;)ASs-gwuzt*lUI}Y(J2r03LX6E)`_fphRv=-$XQd!fXY#Icg3UxiPiuv@DkPflo`$Dm7g0FG$aJ% z?csp~3mQBwN0u*suRl1PcV~R;(N%nWFS*hDa~es|>{@#3<@@X{(|4?hCxbKZ@);99 zQtOAviLnIbcQa>Al)GElInG;`BODsVac?zu1M$n;hNU@+M`vSRw>1zvm2|RHq2w@T zuE$H$)UH+3s%Q`7zGuEw=aHNaG^6C+*Ex*PMp|ORTg%LP5!9nZdXku(( zY{q^II8w_zKY;@!0|t!*Fc5Mi3mOU%3JL=`TkDK;Ijc@utYU;Z%X$xp1cv|y&np2K zFuqKF2M#U}`vy2DV&EHIf#C`_AVMJiP4Hs4xw*0Y7z>M$oehW@NO|=uXl&x2?-0Hj zBS2aVpk!y~43K2M3T_blRWyUxuA&# zAp{KJc1x+4$@`H;A&v8>D)k~UW?0;#1LR8#=gc}oB|TGL^36BI;vUGuy~;@GQ94j_ zMVd=cS|1bdphfY>JeKZl>4oNj*HfMMMYLV>(;X8BpliBfOlMIaGB0r*Su^nFiU98c z(ZPQvQfx@bOBh%nH2513?dk;j)d?8z2NiP752R=?crZ9aW35H2$*_vqa@;vV9N0 zvNREoON6Ywjy=*Job6(30shg+z}gY~ss2vfKDIyO52h6u2-5^6@9gjKcaNysn4$)o z0vfG(1BGx;)~5LpIf&YRW~cl<3x`Bs9Z4}0uu%%Z)l5s&X++D^r1 z^n&2_6lQl{WnVkSAo2@kYWsNlNn~xaJ=8E<590oE&*FxQ7@II3nS-sx5VDH|!t23t z#>BDF^QL=N#*ylBU$HSgg5T?^eB{VPfIP;afy0-X|3K<#YL%>Snm2ba&Jy_H@Bs0h z*Z{8O8ni9@L}{ifMBhgQ%Y-JqH!JKPg7v>>(_z+r#XD+Nv-GElx=tLq0oA~OioXLn z9MA?1fe{W|v%o{5z!(7avURewfto;dpei0BxBxLTVKuWb1yTUXf$(5{LW71Pg29Q| zoFED*jf%GF8uhoFlpEJTCZ8B7@+3exxh7*I3dOylXJ@Tk@zC;zEIC_ z@`KRl6=!uug7kpeZuE%mjS_O|Teb^+45NuGBz zl@IykErnt_Os$QIcjof&P6A#h;-LAABy!A+$Jjdscs=uNO*WVn4^58k*$n~qa<(5{ zcBzI1-9LbhgL61)Opb5Z8woV{z_TTvlzc}k>YDP1f226)s}jw`_=@n%IBq3eY5BRI zga?}d41|pZ6Q28b!h=mCR?mp0U|ZvbZ!K_hd3gKJi~=S+!{7Pt-_N<=__*OJf}c6} zx|Rgjn>PuU<8Kr0e_{-QP=6&3s4L=t0uu)mBt-jGtdsdt^M;NLKadh=!M^vhfQDs& zLg47}tmeyAh5`YN64%s`axdaw)NUa8F>xLb-mY42k_~A|wa3vQ=J{DV9!b39m84Fj$rYkKu#2obTE=tTCey?*pa=0Hj6? z%&+!zAN0q6rZ7n3*oE!Y-P0y&*&P@iDdo7QSLJEC@76C>XsWKBsiF~$!q^~R0Gw0X zAN0~$FB_28-Q?T`4b8{vzKM?UpRa$Cd@t6c%e}9@s=LmTfCm~QYIc%4j|J8z>@-ji zO8n~pKKe=sC;YkATEwC zL*Na>hB!@leX1BCqi;t-?YM!>F8f^1@_iVHVIPvju9#00)zz2{&3;Eyk@if&`o&d7 z1Y(Iqu7>N6`4(4RRGd0fmCJT7`io+mp>dN1@jZP_(kEDhY{@e>p9#mk#)v zP1e&9lT+o3M4NKDVZoYA%6vLkR86``d_$c7W^J@LvmQ9^pkpk%%wi_A{UW)X1YQ0Q zfI(jcSF^#KPmy&Se)kjNuIwC$sC8p=bhS~pa{DhAsWK@|1MUw|Q1mvoa2V8(xukW( zj8@8?JtZ(Dra~3)*s-yiR{1>6-zj>poK)dd>1*uW=HwI$tG>>HLi0SjH|byK%7KrX zKAOq#3C3vhQYwq>_Uk|ozE|+{F{D89?{_kNodv6}_cp(_prY`T4d*j&t;f?jJSoTS z5hrrv0OTc@{m3-Q07ujg9JT|XCQJE>!;#vCWs+T-g3Z$?bI;UjE*wv|BkCqZOobVQ zs>X27U@8Lu1Ju?`X3laAsr)s}+PD1cc=5sX|a>-UN&fvn2$hA|NJ_ z$am~p0i1#3E4&;Sk0@{<5#Fk@EjdWf(c>$~ZMDh0b}1bjJQr>h%`cwlf)$fz;!0aP zTN7`jQnrS(GgI}GsFM}4rPuPH9nUK?Od2O!doL5wLVO`9gSu>H>RYWXJa%{E*R8J|ObzZ`8o=S8?q%OgWlw(%@RmG`OYoeO6eql66+GQ=^E^>m5K zZ|lQtv|G$4soq8?=BRx+eD0q$O;*!_j;`#&Q2Y+tZDT1ifT9c@LlUzrQ~>_9OUvl7 zsqZz9<69V;*j{tE{dJrFThS`@R`?f(TY@><6wKidzH>Mdq=-LQlMtsGmGHj0)a?+v zDq7`!=Wr}=V{t7wAWDPpcumHjJ3#symZtc5?uXi-Y+~dL)(Ni3T2vSSx~6Lma6`le z;^t&$XS?c;ZXfJ6F zwDqL{BB%(vsv6CnpIc0PjN3c{g#9b(?+&Jwfn8Y+x*IGL(@!Zmz|+snA5h+mZ?s~}L7sOb&s z!%Q&+(GF>rqwDqj;n63`53#863&moJro%q2(7Tp}cX$YsTv4qa8+>W`xbJ#l&$!6I z{~3u)TZAM+ja8MHB%7tK4{z&pF@IdNMLlF^T}XO3Ix=!)sji)y`#j^gK+C64$IaM9v>5o_!Me)EK48-|Wu%apxGYLkn4iH`4W^gc;J zYhU!-$@=I-6^ua)x&4coe{WLZ{#xMvsxa3bRx)M_MCKM8o>(Qs?{?+B#>xEyHrLE7 zdA5jDiTQ-5Oit(1CR&mTVW3o~N@THd%BkCb$Pg_B*pDevw{U&S6sJ%z-usAj#O!yZB1{QSKSZOj zu=O`U!|iAs?UBY(8gAnoo@C*HUE;hTw`=q_PZp5N8oXyR?&N(MF^7~WG%G}9L-hI% zHR0T&8vFxy+aitER1+n zR&CNMw%=yDxXYGE+)aJe4ojdThs%$bN~i#nTAgZV5}~BWuK`0((_v}=@@-miX(B2N zn0Cak>464uV!FHMtn2_I{rs0Tmib@MJzewXuvt%@Fs3V&@}+ls*h^zT^Z5~q$yqlW zYko59#%E+RJiOk(MmEAPUz$ALkdN$El%OpVFNkk=ZbPjl>U_00RJJfkbn!seRo&tt zNhs1}&**n>_V7~-ukW{P1om67G~bApR`rACkVc9dPq z!HK`K^LK3+0jv$H{LqHsvC)(btepX}2395jQLw}dA_J1#a5%1txd}j3SzJj)NmW_p zhd>MZUUeg56MXNyuC%bLXShx<*J2nckobo3aa2_vFkf9l;_CUB<*y&`isgBEf!sh| z5Dz<8Apo;H==&iDkev%G@%|4T_unZ1uZjbNa&rybi$M^oiI^F5=;S2Jd})E^zz!J$ z(hsa?XKfyz@~I9~6`ux=EUY)#3W8>l0A_tBbL|Pck}!f$ukPgNgu)YV6Uq&< zrV=7ux6ViKi>TJ^`*3}3mckhY=ria03HS|PAGPI`bd!JypkP)rUCUPtod(dCLV8ML3`Bpnl>Rb}}rS*InTafT^{-&_~g-NW<*_mSZ zm)56@gfL7KHU)1E{p^BF)+|dxLtMTq02RQ1QXn!o07%iVCB5E%#g_B$jh%6x;qaF% zrWCbm)5}Hh56l8ZuHH-za~B8>i!9D8_7KqbP&0D0{yo%K|51RkfL{h=xVi=n3?&fo zLu!DA{`nIE91>W5fPoC;MuLX<12)&~KLWW@6}OoC!o{nm`NXHm#j3{sbz1ipDe`+d zkM)>j`z5t3-n~8KZ`6%)!M&g*W+_eSF&d^-gC6J&)vlI!=GiGcoQJM}3YuQZM+i)!=P6D9J5 zW&8xEuA0tH2Uq}vdn>jQX`$c<1bP28IT4zf*j?K{I9yr-&KasaaFT&dsoOK(+&+P=NvU!A&6z$4F+&X#RE%vN&Tk< zb}^puRoGB}ZgGIjfIIcpBkM#{9Slm<1eOyH0i_b(Q*uY0$fP=&3YH~ytl&YcV30F{ z&}I@;CPdh?I7rFFT^HpC3Apzj;d&Axe4Xlhc6e08f>9K=C7>ZtglEpr>Ow)_NAH%u zYJlJHeCIP+%7T;a2~rM)_5OVEqd3!wkDgY6^Dih7IMGK%K5(8{?)x&*4D(@b*i<-G zyONfTRlA!J{}FZjLG z4EYN?ftz}e`&M7wa$~~10f+8F&OHgzmyeF=H9{(pzeZQ{#)zqw7zaPJC>l%U;Xm6X z=iC%q_xDIJ&ui|^6j;eu&0iRDV_%WKorK?DbHU3G1d3A#Kxb}J|AU82ZjOa zd?@S5YwzhUUxlf3jW%JP-6j`)+_|&?nIO%MdF2cCW-fxXN9eeV`^=@T@lA7(QBoL% z=cha&9~O{$TZ40{gqNn>>>f=%B2ic=SA6^;O3-z!X^`$nFY~}w6BTZj5kGI-+p1X) zhe#@hNOrqMk|bJIoDr}uwY z=u!5tpKG_zM#Fv6188x5i+U8Lr*Xl$&vWbY1R3XsXNe_?kHqHXzd*k|#2FGg4q6)P zR9SC$i^MG#0nmg75@s{?w_=hnmk-GF9MhSahLoB=xt!ZlCP9yQXkmgx+fT;PrK9LI zQ}hfjn`?0@JfUT7gBe8^(HbGiJ6FIv{!%C#r(m>BXLn(Nq}z2ltf^HTHj%jetAwR& zh1B}1a`bWE-7V{9@&T5f#-+`IQ`@H$NOnc;(AfAtg;~k#LH=J)g#HJH@J}W|7YpW^A2%YOBl}T|AGWnQ z9kc5YwQ#&!>P>4IOZ<2^Jcj(jKwDA5H-kBIKiUWde-GaNbTpXdUeL3*Lc%t8%O>)0 zG`ZZt?EQynZ2R9geJ*d6a054L2DMI^1fvE%$9Qr4`Uix7&5fn z@4fwLL7PJWO`t#!Wi3b6LRd1dnR&aA5R;rv!nh*C=$f~}q7)t#7=6iLTQZGD|1eyI z7_(?ya%Sb11qI|a)qZIl)tI61rf^C+=Y8Ls*V2CYkd6HzF%Kfc7z5YCe|iab~ZP2plrA21nAO!#vODnxFpB~$6o07vVisv zIs-b~iZwBD5DAdzrYyh~`+gsQ%FT@c!jiYlBPz^Sr@{KsclU@WSl=>n1W^GgZUT?! zFK_=LGO^uiKiEK^>xs&n_T$Q70zUlzV@QA3S(G5>a;`)$;8fu}s^G`i;I-q_kttt% zXAqSrePU;vO9Y;@s<#onk|c`Eq!_%;1O6EIFM=Ic4K#ELE7F?pg{;7%W6dVM9ZZQq#6P zpI_C`fRxsA6z0c;gN)WGD{hRh9m&`&cx%b5#IeA4@X$qZe&HDOW#1v0ty=|G4CPCj z>ie=~0)(vGkjK*d%CIqnvQtYM9%jXYg0TJ(=;Xk!l#z z*}rFF7z7|3*iZlk3Hyh;0Pc_QyRP*Uj5W)6jkg(gvA=0`MPRGr@IIY<)(Q~e76n5oZ@OLdKMHe9tf zS*qChY?_2?R?J;Xi;7P@>C_V_U!G|xd!I2n3wm8}rD$^8YrLj#&5^$>X||jQJ-js zTS%@qzV!KU1l5z7^-+5&0*)|5UKzs%o|-N@>+_T(p@FQ=U_9MBXOsiGr-VPrgiSC- zq;JRCcPEg6$LywvQ6y}1 zWpPn?xtq*(g#i#9kme@t$-o)U<=TiTYG-2uZp*(LG_R7IsPJ{bf}3Gpb|8?04amU@ z4p_F^hyM+C{JYFmQ}fMl!lvo~&s#ko#m4n9>-~1)bJ_jJhsO-wrNk~_Oi1IwK{eC3MnQHRg*|(J0 z_Z@gVN|WL&YQlZrQJBLe<2(%=H{fcqp;OCH-|y&9yI>p5n~Q!)H4{~MJWErWv|-P4 zQqNbLem99$G&j3NTGLUM3K$Bh@$o?$iMg6-#fY#@e~sK7Rf!Vvd9t;80t+KPO>zFu zxEE2L8mGUZ{A3)lY_NozpoE*{qcm{8kYb>>>itkxqW)|2!xH|O?w}#jV7R*&hBF z!I7PLsczh%oiFg{aSGCp7ePsS13TQscQs9t64(Z6G6nezHF~7W4AC6&*@{_v!(B!1 zVPl&KQR%53>E zQcq@ax=moG?$JE<5RHgpq9k;rHN~*A$b02W_J|mCbx1tc(dYXE_LMlS7j4$a&^J)L zX@0J()Q*3csQq()L9q=C#TQ^G=G;IL8RjZsL86DyZlV4ON?FkN?gbee|E6iV@=gDo zqhtmsv4OCGm^Vm8`t^z*C!w)#oxGN-xWFlc6KsvUF?@n+&R>VX|Ju9#9T=aFQlqu8 z*wLqmi*%O=QmCXMPxuAfpJCMuwTJ5U`h`qX10POblzs4ev-w&7DPkPP>6r4;xtFg~ zSgBH&m(24)>F2tI1(8~qEuMk9ZIL@QrB7+#lVnovz_ZqpxwSt=uY>X?e%jd6#K+V! zjn%ZP>9aNl7ow*tZCS^w8^*EM;*Nrl9Bf@Ua=$jq2gO6~u#tI)VsOe@+h;Y4AvpWX zM1u4Xwc!&$%OdjB-0+uobV!U&PkPgdOZ$i3u4J9C#zx4US8@@5B=mf=Vsm7G9riGD zB_2sJ>9N+Uijt{M#fZiFt#9V^mK}@qv2`IJ2V~BK^4`HiQ$R%r4nn_7i}@~4KLZA& z{G~Abi!b$8rJ1${uWm*{)?o>^q*SS^A;>{KE_X1E{A2D2I}mCxtxOTajrLLoNv@rIVlTY$OqNuR%%u z`i_a;)__>%u5KZOx!84 zQK3BLGaLcfyadDB>wd1s2ZWISiNA!4khJBVaY2Q~lpwi~Eph*ebj zPv_FT2nX_puzbE}^(Wqiept7WZmiqR2G)Qp#2Yw+4dy?(OFNby^JUQ3Xky^Wu&aa% z09zI`u07pgWP@|=HL|aBF6inIbmd&&)B^s0zQNz2dbwgJNdX~9y>{5pv~{Z?4Oy?_MVXPQ=Pvc30^;>p~RL@ud&YDg>p5O!mJ{P@tQP-!+(~TzcAfhP?hJ!mQp>dsMbBUPJ@F5-+k?qr)a`UwZ^$FeYLd;48=&a9aij51R3bsDJ zpXE&c3M25DGZCq8GST7?_Wc@w*v6Bc;jcdV3znPTwk}p4EH*&!)!9o|9BuAGeRvHO zK{%Aarz_P>K&C;cM+T*Ji1MMTtmutqNQCXqlhcsFvnEsaVomK=YXx{tl0%HcDV5w( zqw8w-Pe;*F9N9v955=059c@HUX{Az?%o;RGzL~i?xG$jQsNrDqQiC4l6hdhMC07>} z;9H;&Vz4k`+axp43o`gh!sOI8#c zLf9*)$U1bjAZuS6j2DV_432Zub1Yulr zH4Hp9Jb0!W+}|04h=2q)`4KNlPQ4;kk_Y15!3y;xla0&yRmyKFqcn=CO*ITchwhI=Ip z;g__EM9ohM39~OS9)*~Mvf{FFcJB80&MCD1eXa;RD!ej8hZC6-dWG6=VI;Of)~u|E zn%eo=$m}U=T>{}>ESV0fC*XFj+q7Spad9Xhlp<_NPk$#Yxt!1~<(4wx@%MT3)-szP zTIB(>wr6RBJCb8V*z#qa1P&t7S=N>hLN8HhD?y=CEA5~@O8Tpm%+ZJFz|}S!&^ss~ z&PhDKbOF0(tb}BZkq>s-g9bYSZhz%(i+~l*RIb;3kWE`}7LPAUnfUP3=i+#$ufrDm zyN&>Eg?N4oT&peak&4~EkqTR^{#FVu&_0IAU1Ffe3c0MP)cuCIVi z@_jKK?+;Dm>IOf<`Y-y$^>6>lS_}aF)twn`lui&E8wc1<2VPQl)eeFs6!0O()siEy ze(}HavHmV0mdV{O!V0N=mkWT$#WTLcc>i@fvW#5xdw=bVt8j=)e8hI|_8 zmaaOo(d9d1X6XPTr<|*%oYbi{YK^; zrh!;jQ?G=z3ioLfWgY(MXVs$&&|g^d6sjksUcs`dKE9|nmPOl0hId);TW&&7)qezJ z_~Ip%XA!c_DMS{cxSRa?y_>Yp&euABdfNR$n%+ zBkKLqPFo;^gb+)sl ze5=zLudO|FJxFkR*2iSy@0#$xUlwS4zL`kWRY%y>s;k|6Np)aOID{2X_Yj)d4md_u zPgJ_3_33qSA>H$D9s%7RDeUSmuqumIM6BZn)t0{51S2Cv_(r{(Nv7yM-sbmU)qVC_ z7B^~jkCJ;hRTMetjel%ZjaizV6auc=X!{37Z{1Ya9nIJt?;uW06UA$0AuupDzIH~K zxPvp4t%3FL^wLcGi(dG^^uh(E7qT0A`KvL)?p7*P7Qe+a!p6oo#t2~%5G|1Uh9yXU zo)!OoYk-Q1!cTM7mE8r*N6^@We|;S|NnVw$*GUfuF1r&kZ%Jw5dvKU%3lu`W(b zMrgLB!kd}Y2Nke2&m9t;In*fVBlTgY^T3Bd748&T&=SO!$X3czmGH?2&n~~pT(z)k zo)MX`65Hr2+qV(cbJTJ`;I8p7$>hvG@W%JSzWoIW?=A|IA`WwO zE8a@yvV_Yvb=lsDNbRF|dknJ|>2RDf1QU#&!-^u=o<^^?nzMTtUvjl!qi(et`FeO2 zAfnzYv0RLK-1YHeB#{WL;-vU#W`QAvIW9nyKV{pym3p@53BFU9kQy$AHDB$E55%K%g(SYnpUa@Isl1fD#M7DOf@cHHV|LS zYpkU&=0V7nNCgE!{7Xv!*WXu4f{}sa?KN0ZpOk;H4df!15Ld zyvX^tf*Nem0=L85TK^4q)C4cp{<)Uc6;3w2iX{DaCn;1a zy~@NJ*Y5e9BiWv}u@CU)22b7ob3;o(0L7swAl}4fXJJ1dg|6J{rbvoC!%=63-rMJ& zupKP4c5TU7YK8*P6+WWlOjGO4J(3)6uqB3qz%Mp?j{9WkEMdY2-r2SF>eW+e|o?7Wsny(z^}Q3iiN~2#%P?-%(sDewJI+l>{dPk&)R+0 zIuWpu9+`w&K88B59E@(uei6vyl126^=4hGH+KnFNC3Pza8SPz(DvU+ZU=c^7flCC{8hH+|9aO{*BZ*@BH! z!@E&C<5hr!*rgLb+y%QjeAb)~7ldc9=8L3}muLMSBgPv>*O`vegpC9@Rte?tqR&BP z>|)6#dLLWC7U|*z4L6#ty~R!+)()JIt$D9~xwPq2N_CeRqMcLK8BuyxT7$?hj%!OX z4(*uMheQs)WnfQ~cC1}k?_QCZ*h$K^dT53Mxw=ZB;DxghYn6ft;+BR8iztz7?IDe% z<{1oG{3NY}j6y*5Qk#3jS2Ntz0rg-qbff7V!xz(fsx0pw_R=H3(C{{*F%})kCXv7k zp(>reKVS_+|5cLzs<@Rs+O>)qWkyx}S7*~Y(vPa4O^5!zoxUXxgW-C;lH}o}H|ppo zNFU)86BMT&rOctvqbYEH#Pg!KnHf;3>Q8Y#DDl&UCeXhp=Y!eFR4>)b?-3lBgrt^tQdvJw@2C{aM2>zKHgwWWVsXc+ovu2^;N7HtGMa;`hP@hhdQtLS9yUZ#> zWs2xCsG=_)(pjxm${)k;L$FM0h7KtSC%!w8oY^-PR`rh3gi2gAOn=$5uSM@1oS)VZ z+lKYQ>%r;HmSy_p^@=UgiWcus6MV+KX0BcTQ$%K)ZeRtF)Gy99O7_U0}uyR4d z(R=i>U;AU5by6r#m9{i`$iqOQ`(dOrz0v%lmZSv)OFja49}K??#ui>&rvuU-cEF!o zqukUAw|pE@JtjZ%0(3JtCp3Wdy3Fr+0cCq-6Mt6XTg;~ZSK>pk^Zr(#T`ea0PwbHL z-QUdxE+B3w|9XcM@X^o1|I{%4t|ci$!+o_O>i@7R^teI)ivw1E`5W4Vu;PbF-`j-{{e63WBD) zY{fbZIG^Hu(|i`;YBTd8=RPXqC9>muhW=P|EN8E~YA7HZ+zlc1OM8Qo*{vyeLdV#& za$aBuV!r3aPfy`<%-%Z7o14N1xs*Thp)41IlnD7q@6lg1zoCxb?Ms4ISsV9Ut){g) z>3wm*VM9-$P$J&gW%kou1U&*b`5QjF@<0DBF@*dpKeYI6PQ^*wP#}m|F`}S=BK_E= zAN@B!^gn#T?{RpoLFAydEU&#kTz7QxG)`#$!r0bAz{->1ZX;k>-}DSunXxu zGdAB1U{2T-X*i1{TQvO8reM}!-Fp0i+zN#Y9?y^4yGYx{^8=QIe$WgZOxyieNo`$b zcg!)D{kKurP1~_iacqzM$c-?_&Z3BEY^-DQ8w?<;#&c=2F&xs%*1EoQr6@Kq!Xvz5 z*;1%3I71R=%{e@}20YOZz~3|oS7;A;+B~*Q#^qAt1qBj9)G49L zzBxy+^OrrELC-c*FX`4m2^>gX_wWX@?MKOsrwN%ZrHsXgL zi>ecWwHLCgk#sWZINpKjBTjJ>crtJ(kqWP4$PnA`v$rS)FM>8PT7vSCy3Oc6I^p05 zNVs-|;)GLh$W@?=qdb?+e$o7_r;0s@;nAMd65r4T-&&ll$8#Zr%nMg3z zk+>P>URe9*m`Vc_j=XY!Y;frTYRXCpUT&ZF&~e0@ZhEf!{88OHYT7w- zrnWVl+?#Cm*C3`aFal3FTR2^9l?R@!`0nTWOXilA=>Lgj*miJ7ca^ZD9MuD~*IgBz!XlfHI3ci!ci-ke!{Ahm#G+ z%fl`AX5dcS)wdmNsAOKmnzY zKOMU^TEk-$9e8epA?tBZNlG!!p5bAZ=*2tl8+=Sr^$Zj#Rf*Rn*4G8bI1N)5DscL> zvxmcpSAn!&v(m@|3M9#4c5`{-;4)Jt+9%%0D?B6o_B51?-{fO10d-Ia#+qAi5Ps6 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°_ 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 diff --git a/Mage.Client/src/main/java/mage/client/MageFrame.java b/Mage.Client/src/main/java/mage/client/MageFrame.java index 07ce7d54e7d..cfcf25b24f2 100644 --- a/Mage.Client/src/main/java/mage/client/MageFrame.java +++ b/Mage.Client/src/main/java/mage/client/MageFrame.java @@ -26,6 +26,7 @@ import mage.client.plugins.adapters.MageActionCallback; import mage.client.plugins.impl.Plugins; import mage.client.preference.MagePreferences; import mage.client.remote.CallbackClientImpl; +import mage.client.remote.XmageURLConnection; import mage.client.table.TablesPane; import mage.client.table.TablesPanel; import mage.client.tournament.TournamentPane; @@ -54,6 +55,7 @@ import net.java.truevfs.access.TArchiveDetector; import net.java.truevfs.access.TConfig; import net.java.truevfs.kernel.spec.FsAccessOption; import org.apache.log4j.Logger; +import org.junit.Assert; import org.mage.card.arcane.ManaSymbols; import org.mage.card.arcane.SvgUtils; import org.mage.plugins.card.images.DownloadPicturesService; @@ -196,19 +198,6 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { } public MageFrame() throws MageException { - File cacertsFile = new File(System.getProperty("user.dir") + "/release/cacerts").getAbsoluteFile(); - if (!cacertsFile.exists()) { // When running from the jar file the contents of the /release folder will have been expanded into the home folder as part of packaging - cacertsFile = new File(System.getProperty("user.dir") + "/cacerts").getAbsoluteFile(); - } - if (cacertsFile.exists()) { - LOGGER.info("Custom (or bundled) Java certificate file (cacerts) file found"); - String cacertsPath = cacertsFile.getPath(); - System.setProperty("javax.net.ssl.trustStore", cacertsPath); - System.setProperty("javax.net.ssl.trustStorePassword", "changeit"); - } else { - LOGGER.info("custom Java certificate file not found at: " + cacertsFile.getAbsolutePath()); - } - setWindowTitle(); // mac os only: enable full screen support in java 8 (java 11+ try to use it all the time) @@ -403,6 +392,41 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { }); } + /** + * Init certificates store for https work (if java version is outdated) + * Debug with -Djavax.net.debug=SSL,trustmanager + */ + @Deprecated // TODO: replaced by enableAIAcaIssuers, delete that code after few releases (2025-01-01) + private void initSSLCertificates() { + // from dev build (runtime) + boolean cacertsUsed = false; + File cacertsFile = new File(System.getProperty("user.dir") + "/release/cacerts").getAbsoluteFile(); + if (cacertsFile.exists()) { + cacertsUsed = true; + LOGGER.info("SSL certificates: used runtime cacerts bundle"); + } + + // from release build (jar) + // When running from the jar file the contents of the /release folder will have been expanded into the home folder as part of packaging + if (!cacertsUsed) { + cacertsFile = new File(System.getProperty("user.dir") + "/cacerts").getAbsoluteFile(); + if (cacertsFile.exists()) { + cacertsUsed = true; + LOGGER.info("SSL certificates: used release cacerts bundle"); + } + } + + if (cacertsUsed && cacertsFile.exists()) { + String cacertsPath = cacertsFile.getPath(); + System.setProperty("javax.net.ssl.trustStoreType", "PKCS12"); // cacerts file format from java 9+ instead "jks" from java 8 + System.setProperty("javax.net.ssl.trustStore", cacertsPath); + System.setProperty("javax.net.ssl.trustStorePassword", "changeit"); + } else { + LOGGER.info("SSL certificates: used default cacerts bundle from " + System.getProperty("java.version")); + } + System.setProperty("com.sun.security.enableAIAcaIssuers", "true"); + } + private void bootstrapSetsAndFormats() { LOGGER.info("Loading sets and formats..."); ConstructedFormats.ensureLists(); diff --git a/Mage.Client/src/main/java/mage/client/remote/XmageURLConnection.java b/Mage.Client/src/main/java/mage/client/remote/XmageURLConnection.java index 2c9e7443be8..fb4c0aeb44a 100644 --- a/Mage.Client/src/main/java/mage/client/remote/XmageURLConnection.java +++ b/Mage.Client/src/main/java/mage/client/remote/XmageURLConnection.java @@ -48,6 +48,12 @@ public class XmageURLConnection { private static final AtomicLong debugLastRequestTimeMs = new AtomicLong(0); private static final ReentrantLock debugLogsWriterlock = new ReentrantLock(); + static { + // add Authority Information Access (AIA) Extension support for certificates from Windows servers like gatherer website + // fix download errors like sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target + System.setProperty("com.sun.security.enableAIAcaIssuers", "true"); + } + final String url; Proxy proxy = null; HttpURLConnection connection = null; diff --git a/Mage.Client/src/test/java/mage/client/util/DownloaderTest.java b/Mage.Client/src/test/java/mage/client/util/DownloaderTest.java index 68034c47597..a26df5a73ec 100644 --- a/Mage.Client/src/test/java/mage/client/util/DownloaderTest.java +++ b/Mage.Client/src/test/java/mage/client/util/DownloaderTest.java @@ -60,4 +60,21 @@ public class DownloaderTest { Assert.assertNotNull(stream); Assert.assertTrue("must have image data", image.getWidth() > 0); } + + @Test + public void test_DownloadFromWindowsServers() throws IOException { + // symbols download from gatherer website + // error example: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target + InputStream stream = XmageURLConnection.downloadBinary("https://gatherer.wizards.com/Handlers/Image.ashx?type=symbol&set=BIG&size=small&rarity=C"); + Assert.assertNotNull(stream); + BufferedImage image = null; + try { + image = ImageIO.read(stream); + } catch (IOException e) { + Assert.fail("Can't download image file due error: " + e); + } + Assert.assertNotNull(stream); + Assert.assertNotNull(image); + Assert.assertTrue("must have image data", image.getWidth() > 0); + } }