From 12f165e626e3c79dc39205b47acbe8de4a924d3f Mon Sep 17 00:00:00 2001 From: renbo Date: Mon, 14 Mar 2022 17:31:12 +0800 Subject: [PATCH] Init for Anolis OS 23 Signed-off-by: renbo --- README.md | 11 - libp11-0.4.11.tar.gz | Bin 0 -> 500433 bytes openssl-pkcs11-0.4.10-coverity.patch | 44 + openssl-pkcs11-0.4.10-openssl3.patch | 59 + ...cs11-0.4.10-set-rsa-fips-method-flag.patch | 11 + openssl-pkcs11-0.4.11-thread-safety.patch | 3929 +++++++++++++++++ openssl-pkcs11.spec | 93 + 7 files changed, 4136 insertions(+), 11 deletions(-) delete mode 100644 README.md create mode 100644 libp11-0.4.11.tar.gz create mode 100644 openssl-pkcs11-0.4.10-coverity.patch create mode 100644 openssl-pkcs11-0.4.10-openssl3.patch create mode 100644 openssl-pkcs11-0.4.10-set-rsa-fips-method-flag.patch create mode 100644 openssl-pkcs11-0.4.11-thread-safety.patch create mode 100644 openssl-pkcs11.spec diff --git a/README.md b/README.md deleted file mode 100644 index 7342728..0000000 --- a/README.md +++ /dev/null @@ -1,11 +0,0 @@ -Anolis OS -======================================= -# 代码仓库说明 -## 分支说明 ->进行代码开发工作时,请注意选择当前版本对应的分支 -* aX分支为对应大版本的主分支,如a8分支对应当前最新版本 -* aX.Y分支为对应小版本的维护分支,如a8.2分支对应8.2版本 -## 开发流程 -1. 首先fork目标分支到自己的namespace -2. 在自己的fork分支上做出修改 -3. 向对应的仓库中提交merge request,源分支为fork分支 diff --git a/libp11-0.4.11.tar.gz b/libp11-0.4.11.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..29a7b7df0496b968a60f9c43093d148b27d14e98 GIT binary patch literal 500433 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%0D1eQ@Q1d}DP%W{W98$H-Fq+LnYx`* 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

^pzQx2FE)`+xfNi`V?0cj%7j+taTo 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

MA4_C6-zTgNA- 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%0AlZTottm?f}bj*y2YnSpo*{ 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

_TT6SuRZtr7ubrwK?nMGwYRG) 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
ALx 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

nFtv5IZRb^HluRC2f4~aSlqZXgDFPhxv|;% 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

|x4^H)(7+Q+SD2 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%0A^96iy7c&Lz_sRy^=www#ZUEQ(gk^kRNYs5ta! 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


A_6+yEebo&3GQLUJh+p&<(35vzBjn6!&$k zF!G>M+Ssk#Y^1rhGOLW`Oz@luGH~{5oFg^oZ#e=aldTl${^p$6qGiZ$#3wfSD*=aP z{+=k(5d9_wnVjrAZa`RJFDj+~qba?jGDM|+6+EjhN7O$-!M6}^-(w;Vk+eRq8v5wK--Wp(0 zvYg{D&NFsY33#1(sMXx2xE%y_7a>zSP341IJLZ(BJK!23EqC)~X+n|iO=lC;a>z4DSK>b`m}zT27B#cW zkT>S~xuJqExtXeGg2cKol!OZVoJq&0zIF(7{jojY^A!4@=s*{^3>JFOg}!kDfrrm_ z5F-iIPi+OHD|VgJj5?yn#b8^1)h#r3hL9WH5jaCRHZk*wqVly|AWJ&sux^rd;PrZ} zYT_v7)4f81jfXv#`Bs~e@^sJ)yGX<^amU87CA81wQN!t)e*o^)v&^Tt9h>9E$4Lz4 zIH6@+^DKa@&%pcZ?%P>Rq7ac3Fa+5ofw{!l8IK2j77Kga^9KpS8(sr`A!k z^mo=Wmp+g=Xq6v4h~Jdd)PoU%9akknTaJ>=V1jh3 zpEbLJ2{)lAzm(hxkrrAsNhgpU&MQ~If%|GV5ZyDv>B($JBB$LcyWOy`gh3^A{4pey zy3gT~*P-a(yo7Z0V@o|{m91AYM379*r3Xc9ES53sxT2zA(B1C1 z(jc;neF23F%0)fsna$fq_8y}dTj7ip9$7P6Fxd9SNS{9Vd(g(;A7qds!tUaJU5Si9 z|9M)KN{I-BUK3mo#ZU3PJAP>f95CCQtZAiiQTcwgDKoeml=_T{OA<7Gt|ff;>u^qB ztD7(0>n9&hh5jf2O1AT)f9FVb3AD$09c#F|5P4!B`z}k{hLLTWZky#o7)Oq>sL)VU z-&2-f%$4LOK3SQY_e2w(tXLjPo0X4|8v;7j=v1{6rd@r&SCw8?_6a6cSx|NRBdgZG zyx^LWdI_fS zUkMW)yx>zviaQn&bmyW@~z}J4+Jq(|9^8%#VE%oErqK-MJLCariN!7 zY$s~KLKl}o|83$$=tycZyy(?`UVP@T23bb2ERKO; zg;TndQH>(Og^map7sUAmaWw@ReEh!RPNUk4=VYojR$=WJRw67(-!hBlaDQazQs5!9 zZn^1oW~c4A?-gNWW@1s45&k13b`}O13A=0r(B)^_Zz6xf-Fek<+wX)@JJUWt?n@py za{`o`#9zsgxWn?DuaC?IUTHnTzlq8fj)c{LldeQuK&)#j2%Sz$F51X05C|P1DB5SY z2E$&Ef#z#NH0nS%kguDEYeybbxSQudxd#2;(1l^ecUKSQz~)xZQzjFm>Oij;?UC^2 z;-BcBOir~I2t?tek{iCa=WB9`@(dl=yW&%A`~Eg zDPhnV-(pS`YvO+ebe1RCxCiKH*sPtiyXJ2$h9;8`^GwD|1e;U4Ng#t3Dp&K8DXduI zvyQ-@nBw?{m0T&H?2^eC3(dWt+=Q7d9Y{cfbHp`}g!Qi>D7vCTskUFgxTiV{Hq+l3 z4CwCv^K0-Rhcfq zA0(y<*ewKH=X}J?Svn!DiORAB6R5!<3~q}Rpgp`ZyuI$+D%;>P!ZnA92y0xgDPK{w zT09)nmM?J$tF`4aT&sqQ8NGFNWKvQ}`CKQl`-WYT@?NcT*alC+%W%B;oP)2nvkbyq z(V?Z9O^_RC3R<~hQzmmyPI{ey$Il*y{NQRQgSu!>_$^-~kX*w{cwn3W@tTbp zIg*glD7Dd5LP^avi}9f6tDERpI_(E}MY;SkX+@)m^Yusrg~>&8vvp-fK3Ohp-;r_i zB2jYnwkXeLbhnvy-BMB68H3wsHU#osN% ztrK^*hbhJm^Fd{mJioWV0v={tWlbHqkMziHhl<{ralY`*7j!lB?uen0OcP<)b%lN5 zy=2s71u19~=ztkfP*){%lPU<-cS5;!5$A*(Xpx+F0~G_>g!7y_yihcn^e<5BfVp=1 z-S)VIaekC7$w!bT$Z7$$vkL$6dt23qlLjYHhblUeg}CNwA`%=W%pvSgVWh*=ZQJGB zHq1lQ>z(qZKBWHdl;1z96My`{JSXF$y<5HSUFPi7FP-{tyY+uzXv~8)v1C#O_j4y_ zC-w$3DP=o9HX=eZcfr@m;CxOP_VZ@}t+*JB&OjF9se^%yEwQ(~DZlro2j;(xi>4K>y!@ViemF6|ow7I3i_Ro<^o&$k5;Hlu zn$%1IJw6+u^NfKb&FPlRPF`w0+L_;a8SjFxFbiXI-JQs~o-A_LqF}_xrXZ^L6H#G^ z_b9oVi6dIH-oy%@s)hhF{FGlDA3Z(ZeHN`@Y)<*b?%qFkpYB(q@;~>F5q}uJDXsR; zd&zm!Zgb#e1z7q?J|lj5w!~ks^$@+fe0RyN&yNZEel`xw8{}U8RTe z=-I*ZqhomSExxGY?AXHJ;-k{)c+$DJ>O@cX_M%?Db1}pVt7}lFT5XI&ZBYlbuAi9uR8r9{%mtdUgJ{Kmay?L z1qw`wH_jgqoTRIdHw-adBd@$Ttv)W<}YQ#pc<4-Zp{#iHs! z3aO9_CY)i{hH7&P5Na$7sEq9kLOz<+ps9MD6fA>YB@N;U(cs4RIQm+LBb|&6Puq_V zPkw&Z-aC4JataeT@D_BGp10fBd-CNp0gGaV?E?J(afhS}5cS;d5h5jqE~A&r!Zv}F z6};tI>~@nvC#T2z|KD1=QH#>eYP1G>p?fukO_yQ_;~G4x;;wsGrLC~UCq>F;gfikfDKuY3y%XksU0FHd{Ft6iXtr&$BzPgWh?r-9L>K+6(STw ztW-sau8Zg;Ho7(uUj}Abox5za4Gt+8U2qVSxfkJ!lsG_9)$!H%V)OZ-h5A5C2|a&) zxOwv8jVk-JHj*Yx)mGP+$IEN6Mclltz)YvyT{xX`eeL-dSf!BRSJ}M)FX8#KsPI!9 zcJ^Y9zWo-OqvhbbjV{i+9g~~xU`BvDWA~1nuQHQdsQXWk_g_TycTpUzg%wrHvDppI z#yG76bx=N4d1rpBINFQA4MaMP6iJhf2&~IT^gJo5>$7$pE^Wn6x=c*s2yQp&nQRp+ zK^%$SF>iSOs|>5*@EK5Y!Hf{o;aBL5GgjPMg0p)}z*119d-$ z;WDm7apfC-7K8Da*$fOn!gpoNKlmHFQAO1Z6qaCqAx+x<>BZ6U=?S!-!?!py14KEl z^7bhS|Wya}l3{-Zs2OUzOw$v2XF59oO_6AcK z$Tm7pJDv@~SN%x!Rsq7nCF9_AH~>n-ohFo#6hS0w6h_c28C&8#@ zN$OVP_Lutl#@N@w?lCllA_Kp1YYFrSew8_$pR?KYBfog=v@S4{h1L+Bwc#k@F*P_+ z0f^C{-|b^|72`$ZrZxM<-;&=p{0htLFN|x3r>c#%75oFi%ksBY@o);N%8tvo1O>LX zyxU>!8fgb|*Gah_;;Xl!{12Jn1;jaj0el_m9+~}F#=06~FrG+bBOp-`8@Ysu%Gk>ZytbL3VY8oO!#1U z)ownHn%ij;e{DD677v;B!0w4lK-+%m)7K?;&3$M4KW=^(Opog~qrPklr{!Lg@_DA@ z_nnXrW)hqwAXY>~z}(3|>%?2UgC?jRVecJ_KQfGxtMT;K`Y&1!7h#j2o~=*=u)L)C zF`}e=n#)ys;um`Rr=0DBRAjSZ|JPan{8l08nVV}!kISYjAnbUo?VZD@V0}^jZS*Mm z#;%dGT$|s1xuGLmF@*y#UV8r3rro}_3GAaY*b{fQwgNGtu*1&xd7|`re)Y0D{oMu| zw2L|@kuBu2T;|v+hbw+ZS!dK-kDebr-;dUr+|Bts49Bvn@(N0=v8u)oxFK)1WqQxV zGG1n&QZyK;`Tf8RPoXh=yHG{W>PUpf8jo??sY+MWUmUcBdsDc2);^+&7iTBjfjct)J!dZ*U|!jW#5KA=*V+Q#l~s}?-aQMzSH@CR9K*d+C#eR%p) zHmU2Y*W0XQbf!ABv*OL{aBDx(7*II$xig{Mwv^x-gwHF=ayv;9L?ja&O}028y?S!IzYj0kKOPXq-4_RY8kQAB-_OYZkI+;o zPEp|*Y_BfK`p6N`)L|Jue0|EP5NS^&H?UDtGj#3vW@EGQXS&_`7(;)l+T!p~ zm(|6Ca{Da&e7>I^f70#}xZe(|3K{k;Dj%NiVfNP(RS|licq^CFkb*p+6X*BS*yla512)}^bIe7* zYtr>j5T-#B&_Ee{PtjgMPcjZP61lfTluW3P_47;2b4fu(wtF21q|e%8gBKpE0&o+U zFZAyZ7Pb|Y?F2kf1*H1nXB!RQe7;t#eDaAS{yoN%sgoHz=f?TWeg6DCw#3at#LR~F z%!Y4==qZrS&XGYg-a>pRD{-FVu;Z*q0ICGQaxubtirg&GrK2MbQ=}p8^?T^DLg_Lv z{7%31nGqv|otgyQ?2LZi=@0NsWmPezCW&#wJc61Uy5Zoz%?1Mns`p5!*jzqhIU_s! z4@`2Ck6Xu_s@U0695#X6Aem`j3}+}MvvFhh_-RRi(_jjF7><$%50^5x@LMt&QE=-l zjn+<&U&6Hn{Mssh$pMy6pT9&m{n@lXNF`v_*VH$nW3CXsqAG`@p;zmZ-NO^8)+C@7 zkIviqpt~YdHU*nubzDhsm8V{pqC%?gybE`e}|o6 zV9#MRn)KMCzLIpN6%W|Aw929kI_S*=)QqHzGOq-}AR3_y{UIgV5+m)?aer!EU~7z> z(nBnA+CG2&IywW+kfNLV$o*yJCwG@P1sEP%t|RjbJ2pYTG@8BoVN~9574*1h%$<3~ z*{^uLGifO_U`yt(rON`mxi}K`F~zaGCgPjvRDAQ-KWjx&kbR)(YIK{STDuCyZmdO= z0ELA&fvOaz(Re^x;jb0ntYI?!2(hEtW#E-)ZJhMi>-|T6{qtI5oyIi< z26{G0wjz93{qAm@)H{=_`Zb1;;U6$P^*?_N;(=`<$Lo7|1r!oSd5%Gq*75t<31VZ7 zVdunE8&jP}XNZ8@v9iASp21S373HXTEr(aQhh&Kj%z^tZh>>>)ASBxb{^K9JQ~Z-U*V_N zq&{G@a$cqk_vBEI?XqyCu$`AX4KC`w{4@VMJ`8cTR}xgfCkqImK-uQk2JhX2XfX-s z9G+2n6r_)eA&c&Su`Lx7Mo*(r3Ma!OBT(_Pla}VeXhkpfThRe*wuc)R?0Rq%r28z!2@F-C(Q1quocI6!~`lNP{h_&Ua z5$}$9GnIS!%&iXC4Va$Oqoc#9UhgAzCI}F94kd7&5KVZqaH&A%8Vt@lU5uE9J$SOe zcY1L2y#0Ll**+!?|-QYkQ>ZPX;mRzwAUO#CO-9|YNdEGh8*Pi<0kjJ zm!mWT_fs$oC|@*?Mrrw_%H26|O?EFe!KD@QHkM0+X)kJw3QQATD*8MwZ^k({HQU9S zzwC{G?jW!$3|+sg#AUBLab>Id-blVL2*Tj1GeKdxGxd`H7-B3@m@p4CuTrz3ouf5w z2mX1sd;Aal*_0P!h4vO(m`PDXIpc;2@{dDCYVD(;6&RwyXn3KS!@qtM*_6#SB-T;` z66wz1x^tVNJsvp*!b0K{D9x=`E79w9mtPqtullcB?`s>a5A`N@ruoak(2VZYFI%tI zx8x0Mq9J)($dr(1g^lQk-blwKFQ+I5RPxAZlMT?|m>r8$)M&l``cdmc^9ybG3A$rV z5{w{{By94sirYsL# zBTt%+VQZT@UbPxgYx;VzqVSqpTE9bJpR4Mhjkh}DL}1#}LfZE#|0 z2GMnj&Y*lHas^%IB$9|V9#2NFlTbp}lZhvcl9S`<(voJA^X4Ra2drT#dugg)H=-Ys z*`$xbY+IPI_zI1@=4%3z7^U*P41@O&N*W1tuV=TCN`3luRB2SAHF;P=n-p^36;z!G z!n3_!hOmX`gwQ=KgV%~1RSEZE@FBFLal)d3!DJ85id6CN=F!7VjmJPTNZgv$_F*j~ z{$A5Ci7qLMmsCNdOsdB)!yf1cx0ApbBZ+BoCqlAe$)lrlcVhXp)|f;HXxW7G zP&P`wui-DPMzgn#rxkzxT3MbY5H-&q&cvx|sffGibI2P;7P68+_#q6y)3`oVBWOza zEStpnYyJoFi*{{tum4a;&B&jQ^t&3ViZxgTChzlE(B;{bit<_&;YcOT`CMVz>*iHj zw9y*f_h92|;H_P6! zo32s@ZP*t2DgLq3C;v=5=jId9Eiz+*pi$`nl~tQLxuEmFQqTz9D*Ka1X6W7H=q75# zt?c+(ah1`M5d|DI13TsKwh@e(@zZoD+X9V&B`Tjb+2Qc%rBDD8`vPN&cl7TYJUr%)&YAOu(ESWRk(4E`4BLQ% zQDnhNNOQ^|&y5gyLh2~36lYP=j+o+X`8ChqjIVod;-HMPk>nJEVSzI}iwG$(xMxx!0!WR1@|_6ZCi=xCRr{c>wFN1v2-WOcgtM zAOz){=^;4JE0~c!@YPYr8&S}>O*Y^>M@knI+;-9r_*-~3ggc~OE;sXfQg>@HAuF;f zxE;M_qPoCc-lNjo5^?@cq660Zs4f>VaWRwR{B`geEqf;*b_4Q1dAK&`0^CLZ!g(?8 zs~~5-?c9l4*wRH?H_RdXu-^VWOkSM zP%hed!6F9elzB|4N`X!k^I`^@c;`z5G*t^B#5_8F58He zTIAs7PO(v|l~8kd*?HF=O;p}-_X^26E1Bnr;kbdqOno@|fYF@HL$pe(Uqp=kh+9uQ zVWWD4pw%N%wgnrEMC~l11$=xj@HJyB)Fu__Ng#^P61#5&*0U$NgCGY;X*Ea+7;YXn zZ=a(!48|oY;9-Jzeb7274=9y|=qWjin3Hsv5<&D?1>G0jFLoV{8J!;S+#WztG&kao znVqH6{#4NINb{Wx#wlh<^G)O0rhQaP zI{YdsLf-%DD}QgrA8II9b}y+8Lc<$Q*@2DoUe40a1s>_g z{gl)6lJXetS72yS%I*yM!0*;CqKa2*Wv3#)qRs|J3HMa={HXo(@aX&Y$;|e(&LxAhkLsx`#T$^ls=Mj&;D_O6DvpThZpsiKSgh0R&hpO9Gx8eBz`5< zE-(f9kW3w_g^3L4A}J9t%iiM`yQe=83B$Y$YqKGafuCj;88?Ajpi~O5Ddn+#K zxlD%d`jgS{%0n&bX_C{Fq2cI=;VHtaqhav!gt? zQ}AY7$QILZHaANq9b6kLR=U%n*vL8^U*yh*Ah+X(4_k5U@Glmm-=Onj^Q^S^6@T5y zN8)G2n_f3~Njrui@#cgpUpzTY{+!`RcBcgSL>I#O*%@oCQ#JV% zn16DuLUP5_qO|~pKzhHkD&Iq7U;;+SgmPnXDFz=m`7&y1Dj{=8H7#4!^k+?Sy%QV4 znQPTCMY0*Lb*pq`lDW|_uhDf7#r67NT94uLHA)jKsd!D4AohATl+;Az;QP+b0Cj|% zH%fwYFMgm^y=QSTu?p(t^m?QQH|#i9vK3JeNHL53h0plG>}p)+>1aqrc+vI}%qosY z5VP#UCZWQ3jhZIK#;H!jj2TINqh++aPpYJnRV;>nRl&Zz_4dAI|osuUSLGbNUxPfC$$LirBCb4xE;vFh*aELEeh z4;!k$4QI~EP8g;Q&)bi8T5p7KwBnzr8K;A-K#TOtPfZ1hd(fmb4dn+9Dy=uBS|KxB z5jP;DHm`2XO=WNB51h+PED<5+Kva?KSQ1Pg=1lM_R{+zMCV>q9b>jKD`{m z?Krv^_J1QFS|}yEcnf(3UKL;#qK$9A-1J-6$aSPt5m7unB-F1pC4^yWXJ+u-Hu4ZdR`iOZMS8E2LYlB zIjZvEOFcef4TC@?;$0$g8e9@%I57RQKCpGS%50OYIH{H-KNYVV!O+`-WuCR411Dt9 z69zJv^JLa;{!9#$YxwNlE4xX!;@4XdJ%Ybv(*zB--T((SiNf#D^gz3jmYC*j4{gVW z_E29ts54Vn0^z_MDqJ#24cbDF9hbhil-2SB*RJwHf{YqEHBGH3iUJbS_Cbd(0=g|q z9L!82CPsn6@0b~we%1WL-UXgP5?izrKVlUg(zN54G1EN$QqIn{n1#^oTPMMc3a&VlcAgv1O5wM4zuQ6@KZIQ2 z2!w!cXPmNxxbT=@>Up>(Qp1;sHx1KqhRH!+J61ixh=kAJicxEjsnhaF*5T36v_|$| zDp`{28;2U{-M!vwc~^>%sq2YQs>oVF`SY@QYmIkOLF5K1pn%0534g~XW9LKMb;M@m zDM78Bo3zF5suoZje=~fLJByME$eio98AeD%iJ%Iq;7MP&Tu16;^%;tptd<#&k+e_Q zPVhNe{TwcV#i5p)_afj^ghRP$mF08cPj1Yon5#l+Zb-+7>yt=ZN{KvttFEZmh!ikY zAaV@b)vp^Rm7d-V(x^V@<@67|UeP#L|2Aqi$J|3UhPxz$zcJQv$tSebxLY!C@kZiQ zr3lW}L4~57XjJOJ;t!{y*z8_*h8KxD6jzMAX=zd;l^kzuFT+47?42!bcJM1Cvss4) zaak~H>wWC*cDIE5-pnoQhT=FP?cB-p8OZD^+6EV|r{(Hirku64G8|QEK<&B-Yv^6Q zF0)bSV%zJHz)#`jEJt>QF~j9pq`(&GJEQXr)B%gCk<)RDNhUn^I+Ai>v(pk&lzpQT z?2_<^HGIXXWNLiHSF2oiO8L2gV5~il zcMRO}p8W&PkY6D5mqR10KX~q{bV3qm7=4+Z4l<8fEfDr-m~@jgRsYt24Gs0HVZJ8+ zy#St|ID;Cr@N?4Y;!I1HOc#&RIb^wY!XhBYw^BIn6;DDAk}@GsXWmzZ`^R^+VRXKn zIk&sOEZzMY+Lnl+Im?NQX@Yfg&YpMh7M{3RaNymo;o$TXb`zJ3vp}8qZv^Y8hcTrI znxfI)7OSx+>kTN%$=q*@e|}-v2z|teUlX*j@x(;RK^-XkUjjwPFKwP5Oa#QzXN`Qz zNJB{G1;JTWYaLc$ZF>YY275~se3@kNgMsa4KGDyX(vr(IU)YCI5rz?N~0)Ddt&iq|2SI}rQ6PmWHaAogf8)-=oqP z3xjSV1jE-TWrcZ3d0fe%FBKa}L!Z0iy{Y8X5$E7HaT-;fBQBq*uaR59Ny4rus+kP( zevxlA=UL{6N{rcYD>C;BOv8B}K^;R!8)dX%8r$gvT`cf1+etVV0;N{tt(Nt4v0gXu z7vG=^Cwu5MVH3f%_l{57C;NLZ zkN4ZpkJ^v-UmWl6?Vj$#rWKUZ)&7vs&7*Hn+#NM8zx5wskPSTxTQG%qEL6xogvCG> zGI%QWOR_ri7%paLDJYBG8EUlxq^cPLF^Vm$G?MXz!@7c18+9||0&3?!>!fKinTF-i zl<7a~qVK5x2 zr$0X0q&d@RghmhcPTTk?JV*Ob8}nlf-$iRKo_BTInN>fhp|cSAm2wTJ#GGIhZC+&luUY;CBZTMyXr~SRm0=nDczpuN+yGp+JVfUZ=K)+7+pa0W7d~)<+|9Shz z@1ywoEG}4g>#Gp1w!3D?Ubmm^{^VuO#E0s*{`1_g+}D|;oLXq(;pW$F zhlY5BaLtZ@-S-v|9z+i4HQ!UJ29_O!QY-5u_2V5;%)!7)tpi{0bh(<5gG zdyk_^vtnP->^SeXD*5?rbMm}CJ9&I`5~O);KmM<$FJACNWOwb0qm#|dj==A~-vySs zjo^^&lb=sc_n#GQ5F}CALAE#X63H89dlNX)R>jgj{oWt4S3&qHs%%%nD=B}nsT!%} z;H2%n1Cj`L0{s^*0q<3ncUOc-af8mgX<~D0Y?W5l3TmZ1!nv>7o0w9VMpDqI8DGvk z+3xr+{So@_oFQhWHyGpcmBKKbQRLNYhM~JCcVETfnQR}mzdv}sd;GJ*eCZ?STf!=t@5WF~6JkPAB48a+X)#0@hp@Pyv3M`{1JWOPpNtGE_g6M~7aA#<8k(b@Ms zoga+Mm1plG#3|Q5wg zL>t>e=ki}a+%`jZFK@L0QpCef6bmO_7mgZ4S6Ced%e?`vs5cuE`~^|15(D;|8N!)q zPiYpnh4avFJO+Z(g=IM(RHm@W<&wisGF+$ognaYN zRKjPNs|J=H=FtC?VwJ>`&wbwM^?1b7Q5!yVIxrjeK$ycdY-c&*;+_Pb6GFv3KIgyI z$DHuDosK)#L){qb=mp~L1a$BaZOR(ntFVIbn#6oZ;>5p^Oqgu*-$Y;g>E|(5J?agE zO!ePHf2vyIm`FnL!EO6pKkZWj$r12ueZ(m78K<10?RIAhhxrV3U+uNEYzdH?oa%@G z*ozt7)|ux;tk_{ zV{_cql8~PXkVeeXyCB; znYG2g!#&`X`yD1IuNTYoVD2O?FyPLal+)egr~4qgusW`-JsM2wj{1&o?90(OIR~Q6 z4%7`eJ&~)j%8q{7#_rn^4nM0VGd$Dbsd_6My&$N@7svZg4t_E_NqyJz?wY|=ogl;+ zPZBuo6xEu0V7i5h3;eQINh+@a}I?k_<@JDQ23oFF(P!;kQC3HlK*6`kfJE5!k z8S)Z*E$(N0Ww7tyZ)n=Y(&9_l-8LnrKx352u}|6LV6@3pqWG=mk&_z9g)Vr=j#>eFulv#E+E!&k03ETDKsR;yU6j26BTc3r=%DbHD@2}7UU zDm4W=^BqQcq=Xnosd6MZ0DZ2|7$WhoXeGz!3RIS`n?7uQL=MM$e0)nP>LEJxsE*l0 zMvSyu>h~kx!V~DYM5>`Vgb~wG*L;4SV5(-uhg)x&k#%<-nlyBM;^m`0T+_6oQU9y2 zBn4e5lW~q_sSl0$+Zd#hmG`cOIwym=n-@ls#lTl9tHcY7t%H!&;@J=rjtz(dAiHl0 zndv{l^(GQSd}Ju7vn*cp_Ja*eLUqo`U zn2(0j{&1EosJDR1RBh~l+ZYkVYqUAkh~R6eQ)j4=M&h_yKo0zi)VQ@0_Nc@clSN`^ zu=PfS^_fHnNfvd^aM959)vJfW7bSoU0r96~sj6Xlgcs`%MZN0AmDF->cHmyoNQzls z(PG$$jx_f|O+0MV=&FBlDIl&4(>3VBeE9XiSGN+?#<4e0aOT8aebgj1oX8-AbEULq zl-mUj|L75)$^@Y|17@AC3)LVwOOgwt^t>gKI8D4Ag9BTbiz~~q&7z7L0XAx0XwGk=5FL#BwM{| z4~L!y*v%%nhH7thqKNXn`synoV6WkL88YtI_@Pu#9z%kGSO+a z2nTY>BBRxX@yPgqizv&z3?=HE$u!!Ih0!s?xVoKh@LRH>HN4oXk#YBbkV2g`{hKE0 zKJ~a4sj19;$d{nY1HgP|lqYWUNc;Tqyg=2`!c7^)luiOKRf5=fkluf2Ia^i-drm$e z$XKq42a>3CB2w_ctWI?f=y)C?q!gMVx6=HD%Mrse z>*myQk2%fxDws;A1lQ;FcBzS5<^|OH^lMv%ePiCl* zZGVsq3l2r}l_oBcQnC2R#8s3o;NPOpsZ%6@=mK>?eps{JsTH4bER1<=+`_iu!V=9m zXBPBgf=!zub|&(mHA!JG#)S9CF0u?nn-ch)o_KgpulrrOKZE5od(*aWhyZ;3{OD8! zs!MN|bKB|2IV8aeR7#N<++4cz_^7Zsyvh3Ftd^R#-My>)fe~DD4u>=PTI3y-jX6X) zGi}V`xGSWRSbLN@!Whe9)x2e7@dCH*dNgK^O6){yV`u@V?sDQ!9a>GRRrEo$H#k-ey6P}f>xzvsrR$2#VnU%awwbAn1trvz)`IaXGnKKO zgev@6FvRMzmx#SUoPF!v9L9>}mS9S4)GiNM?V`H0tmfrDJ<$XCp!eGA2q_wBwm({~ zFS;%~K=+{-D;cVfEdD#=^s6ZeIQ0SI=}=5sCqkX z)Kpd@E&xZT{i6Nj?!jp-@~MYsA`@Ndx|tv&eQ=#SQGLUobUb~X{(vQO*sBv_u+XW| z%A?Ej86JObD&;6)Wjb0htX7;^Gk;8G`H&AI8FY=D535xpM~mW$)SyZmrUA%GM(PzvIrZfn&Y08=dDkJm6~y^u%YQLN0a*(+$kQW)mUpu>fjp7(_f}Q zGQTBPVy++I^x%300#9C_@RvG`-Wh+wJM}@V`fbn*ny3%k@CP*~Eplt2X>^P>54S&M zT7&j}-&vhAsd{zDpx8fFiaJwmW;HX@F#FX4s{Mg{I!_Wtwxy#%DoMNzh^rCByaskh zCXF%cO$TIC8g(hW!hXd^`kb{!H6k@u`HG)D)-W7WAE`14y`$d&;bPDiakS+mO*Ze% z6$LB^xmwDF%4`d0t4(M#x;MNXlzGs`G+x^(e3EVSY=%}ZnkVr`CL%>2fVA|=@x}#; z@S64?Uoa?30a3QbMraDAO)QX0Z^~f6%WX=Xh^jrrs_Rn4C~eVo=V_(&u;Oo4(Qwmr z>}td~F86n#)B4;?U@k$I4k%66KLfJ<-sF)tQ|LS%iZj8AGk&g)u9=k; z&Tx$K7Lg3{Yl^zF30n9aSO}Qw71@wN|4?gGbD|Kc*4Dzp#sUsms$uzMi_9C(=! z6-z5>GvTRHMi`#RJMXwj4+E8|e(ozs^+4)GVgi=riWqRGPWswZk!|ypym_sfCgI7$ zdY~1j8@0$G2byJC9iL?BmKfNl3~MZ(=L~7t0WBKNQdDlGfW#FNYR<@Q-6DvPOvRoB zQU`9^ZAC-pBo#_gKJZ<4oS?_&JHG3HrSd-KgCa_=$S?%U9gxp*JQfJ=MTa50c|PV4 zEO!LvAAoyq|I%{%r06m%yv;ox#|q_3dEEnl>BLZ-96tYttTsXFFJ}KQdikxF6kHWoR{1v_>Y*(co3kWvJC> z6jK=+gi?k9OGv&gi?)f1B2x!AuB$Z)x9hF+Z%jVx|{1IJHcyFM26Z@H?%H;k37%=TOvnjxw-!QNd3t z&NVtOIM%3S_;`Hy%?^I;Pb9Yc6+K5rS^Aanj-+8>m2etxjAkPT69=!hRfAmmX?FjvgQr#R{vp*D4MpvVAZ7-enV3z}f@F3m7{{wFjcumzJ?g#e4P*P}+jSlE8 zl|qrLsd*<&yvwvfea7-`HOTI)IS&bDQ?w*HLv$Pk0~n_RflVmddzJ>Xf<0B*QWV>T z`2@X*lZKuIrcCw_-xE;M7!MwQds^0ec zl+ZVSa}hV-to+!FKy8`sLhb)_aN2&ddvN&jc;BCq_{r|+?qQrAzu69B9zsqaL8&0{ z&a-TwQ3Hh4cnwQd<9T)E2Ijeyt);}vz*DF-UZe8W7;3log+Jf-iRCkp-pjcInc4{h zmvX_NZ!22s@Mp39PK>I^q&gQJ_km{qy+WwCkOp#-cLvv;+mzjZJLE1?qx%7e1N$Nw zc5fM`=?mv$m3<7wcR5Xs{}UH^nl7FqqM;iOZ|mL(4&^p(MGi;AwWf)@&2IJCu2UheJfpPX0)mCm~`3VQo^+ApDVvJXE)D5nz! zGfb}e3%v%tlzY1Gbxlm_bN0}F1 z;P{m3OyzVnw`8Va>Qau=w}WH3uyMbJ{8nY)1wH+crxwmmrgbehEjnz5vke^T^ihGn z_a{?9GgZ6=`{%cYVx8SOh>4#@ykwJ;xR2Xgf3X`rXRik*CF|>U;gF?jP1B-0G>e3y zT!8XdaY6n%Xk~Cg{%E#WD^|;#PuH|ZrXiK+@b$OQ0US||uGf6{3JTUYUKfPo*kbj% zYEKN0>TY=FBI8|=?U~TG@WqFm?RLMw@Q>bZ+RXpH?e>YwkrVW`jN=sAbYHN)6Gdy8 z)I#q_jjx`02=<5bN*+&ZRf^(yKAK8WNO@`z6Jas>(=-{J(}xWBEpWTA)X4<%Y$XhX zX(uM$J9>8VVt+3-4wt}=<-Amk-nIA9(TPN=96Wz=6usMy-ZgsH@Q|~V9SqM$CvXJu z@G*3WSKg)IPm`&9w12bqtUzS*&;?+qbClw>+$l{hOt!ahbV&T7W zC0av|D_rr)Hx=qu<=aXXmED~Zab66p4$LJjT0J_UWEGSGtaB!?hPoem=$nU0u&(;p zDuuOiv>Y}trOsj*o@iT80uH%oI-3x7D$f?DiR6huAr1tdxWPSnIZV=SXN=*gZXv3K z0o!|u)sCG6zK}Z9pK!vjrWE~1k>kx50B^=LAxpdOa zd1G}rIb$=^BvY>6!|H6V55L;5**3{_!`9OA>Onu+(Uq`4!(~5O8?vaX2NTnS)W3~P zCaPA8AGF*j`V1eUPk;i6VZPQjp7ev=!}i_}yT>O{+=^SRsP*vS2K>7T|2~3$zlMMR z1podS{{2hq;l@Mw7v68c`we)%0q-~9{RX_>fcKm5eiPnr!uw5lzX|U*;r%AO--P#% z;Qb?b{|Mecg7=T${Udn)2;M*XOPuN7?%uxk?!UQb5*S~a1F_;N-u!5Jy0EZ}<9^at z&y77eNK*%^)#CF?=qA~!DgK;%h$-}qgB*o`)3dHx`;AA4xB=k}7hX6G8y`;n$_stZ zM7+P439;)rln&EP(BYlaO6UPy;QpL-vxHA1*mJw&$T0kpB5=elrnI6XfwC?`kDEHS zZUzK2CRL2jCU3Q_THcAMhRz5mC2Dd?GB@tbsmN^Is-sa|ak-}H;*80$@!mo|>R<+sMXq8%<&C(^jZ>_xo9^^GXZM8O<7x1VIzYd%H z?w8i^HGI-oZ=&vg2KNe3?v1zxecEo0OBbcbmBJD6_&+cV=hhrdb_Hy|Mz*}&N9^(` zOS;kS@l#CwI+@Y!0DlRp1{cDpr5du$eGq%Q2DltG@r=md20^4$RJSB{gDGPW5iDy{ z5^=hepe_Q=-^fo`0~5aS@Ygpcdl9#_jsXOcT4)`EPw=91Qw@DE!%yKq&`LV(wL52h zc>2W`1UA11L@he~;ou|!i7PsJ`8?X&i*}!!?jJ{G^cBD!s(6WoU_<^K?f>**_xa=f z$6tIw8S3996U^|$r6tWzI@G!Y zeAcUn^}oHQ|Fj}_0R^SMJ5Zo|bMrNo_Z|;$k?^@{lenL=G%JQ=|ZU8OdIB;)9CcJm3I0#lcQ$?!DN(Yowl zRF*msa|S}pI4~5%C|Y2UVND(6;NMYydQIhm33)JYI`HsMV93MKbv! zC2OIxHa{cv@($+l<1~I4CoGsjZA@WRQYCwT2y5O)j>>O=3Q!bc`yJ~Pm4Ke%H9gTj zAbBtyq6VD5QF*GLaf+UH?{?U^>UV>uvLSbJp0y{*MRLP$E;O@=8Sd!p-#S54JApum zXRukMjp0a<8uf|&3P>ux?A?M?WVxkCn%j5RL(CD-;&b8w3U?L_+rFqr!YP0 zKRKDS721pQ6UCb9hH}aP&7-=N=EbEIu64vU(+YDeM`^|6G_Aw#lEK0ao%yY<$lO># z6;uB>Lt1e@u8I)mfsN*k%HY`k1_daqpKL-rzaAnfGtLq?921&aGEFRHACk|i&p!}^ z8$9wRiopKP`)&^jQ+96ay}@Xl4BJEr%FZA1fvqyF=yqMn?jPR6{LCqh!*5(&({SdDlh@MH??8V3T=k=X6clev0bQ$!K zlgK$PuYv$^F-84^Av8#n%Nv;_+;W6eEpmZ#KAqmyWczOEwI4l}+U}0IaM>B0RmqBd{!-115J09-Q6^j9?6$vwP zXZaBNyewBSMtq7M%VwEmCL`kO-fG*GDoVFu_pXEsmNN?{KR-iN&)?&0>AZ;uiYv#k zg@2MB%)cdot8NTBDE~DEBTO_e7cK+TVz<+TKEYg{z;!o7x7kgqK8E#hM7IjFX90M% z@@%k;VE$60IP{q}p)g8=oHg-RMKOf1&Y%-^k*G7?HuSn;+M@J9@@?>;A*_ZGa7gCD zYAu@f?=$-K%+TkK+ub%=G>(|WWP0ouHdE@AU$UEgSIC*X8NdJHwMEfYWH zvLZZV4xh#039%e9(j-){c$k(lo_nsPGt77AbV(TUh4kTk0*of&=v3|D@?e!w$I|Oe zP!&_P0PCp8DvNx^`m2?db(mlz^o_yP)QZ|CYG(yCgzmbSZ!_P-B$XrYm16c^^r2a|7CyDk3M%N5(Ij^qjeDq^$|Dm1@I;aAe4N($o zkAvx0v4SlI%=)4(Nc;#NevBSHxD;^5(1C@gtoY@uq{8ZOEVs|%ay^t$p0=-j>$en? zK;L#Ig-(etzsxHU)MLgK<NTy7EN`J6eU5q%L1+8NF&d9&djBOb-=5ut_)x00H$ z+y;H-tY#Ve;nZHzF!uR3P;Rb^dE%#*(fgKROZ@r@uQX@yrl=hH6(8nZ9*F(Y;eq}0 zz#2{1{@e}JX--8Ys%i=0vKoGa_Ue@9cxSFi{tqUBKkV=QBSOt`ghm!5R0klYAjTD) z(nb{3kJ7Yr)d^<0n9UJZ^o6jew6cR9$dtE(#2)aK`PY1Q4($xu-tR^)4)(k{1K9&L zVtLgOEpxV!JulBk!@6H-c6S#a*pJ-d0nOrF?mx6c1_^Z7!%JxBbu}~mK<9_k5OmyI z(j03JJTXM;Bci&Y|%e~n}*&9(fZ%IPYLEr6uFCd`) zdg^ba`&n@Xk8JJ4x{-(JB0isMrL&-n)_iWysOX8?b2Rn~d03;kx1vL?E`MP~qNJ~K zN)uMt*B5^!02(&}^19-x$Wce*f=V^=B>q>eR`WI5d|&O>|JAAg_Iit-R0Gj6yB_4< zYZ`#VRj1HrH*ZIrC;cgvn+Tv#j)*EE5toRq^u$7^5rfoM!r96C37=5UqsH4_(!$M0 zG;uS(4Wl&8U$OLZqQFP|E2$(G?+-MmWb|al#^Q?Og;m^iyKI5W)Z-fFREUfVlyZ5+ zOq27~SNZkkD6VY5>=>jM)&I=yeclPa9^8Kr?l+6Z;g$`D!Uvz6oA`w8pidK&Zp90f zDXP%Nvw+$MUlXhfW;IdL&Yxq4^DI}(T7}qxfFo6S6g8NU4+v>5IdqqhIeN(yQ`Rxuz`HXbJ&Z^0rvjRWKED8-N@L^_{MF`H0nCFgDq zE3RQR^OD&GXD4S@ zl6LI$5>tkOG$0*FdUfk^BR>4fhnc$=_nda@r*JHA5&snEwrDm*H(FZJ%hP?z-JP?W zU5zMxXdV=NfPzPzwTN|Rw>Zkh{0~c>M#zG zoqA3GS>IYW_IUINYhQG`O{*3jj+&?y?oawR$cEWJmavMImnHOC&RT49C;t!|Wo6uS z(jT+1Q$LKOO2tSno{;L7HF;Fc4${J|F*NWS@b>m3`E}N(5G{!ZJ4>e5NivKo^+O4q zD{oZdMWO<+zr>}HCJw)4eXtP^=wJK}x;z@ZLqM{0G8#<_$5dLeB3|%~5x(ZK-n;=& zjK)=;&vx_LLk-yGn=aaaG0_X^#K_-j#npXsF?!i5nh?=d_7V=mPHgY2 zevvcJmR5XRYNfPJJ-lTIe8lDes%~bV)uwU4&J|59s zuEYcS)Qx(xgcFWpUs0ooPw`*?;>$$+SCq)YyFYC+#cz{ik<-wllVeB0?HCxwqTh z>FqfAsL6qS^6u-#=Iq++XMAGX$ILU=FnIm@2nP7_`N2<4k2G2Zn8aiVH0t#>SF%OWK zR^G1OC}Tvxm~Qi zPOzjTUwbW!KQXx!PGQ1H(zZiQ26y!3UA-^d$z8oJzg7Kt&MJC%x|d@1mt*y5ag4I8 zXn~-MS8^Qg>TmhCyZS%$mvQh56sq%Ybu|A2yU7*Z)y?~J+~8N^ySo0we{ak~{LioH z)p%$9kDn6ZS&Ksw7O8R3}up#R1RPz?#EVamG%@s{X}rgzaLTGzoF`BSJGL#H4V>D{3p{ zufoY!0mh9HL6?RFTf>dULKRy!94-Gl&vA)}fPGT*iEI7hPt22|PpYg15|Ze=QR7#g z^lwHTMx}jQSwYp-4o2U|pGAem>cvIzkAi~7TIgnOsT}o3rG8v-)gM+15UL11qx`?) zD1V%;>_|^kPNcpd9v0s+Mcr~`=#Mw!WrTmvcDByqt09<$HZvm?&)NJY^oD5%V+f^q z-`7nvKw{FYAc~UpQXh;)=-XFNuh`ybEAU@MMHhtE_P{DPC6+y{%m7)`O=?;?B^f9RzEqG`K6?fpNy@Xi}RmF zh4=P?;_A#$BvRI|(u+1HW*(*IQMYTjZhWr0DrYIfQHQhWH}iyM97s7PYDNLHXQIb2 zX)H*g=p#x>5{_{Ms=H-7`RA`|(4+o1B{T~0uo_bSl|O%t;y;0=8+P~P>4DiLwvvg( zvsgD!yBy!Isc=V=1$Eq@?7D-du^Y~FyR$yGBeP+)lCK``LIqzve!T7=z09fPhZi{= z`E@;uMQZR!$QfQgKluJx&i7Y1hUu%X|MZ%ExkE52L<4Kd) z74IKo1d;J_%1sUY}I^H?>D}h+# zcjg>g>%IlfdNd__#ySBh!=uPND){v8=r#F`7&V zc-xP0gpvc&wx2Lcam4ROgdk z9}i|1K&Wv9_@qv*4`|rC>i^d9`+zH)27|%x=y^EoblL;9&Mz&PH{GugRh_Ige2BXk zsNyb8XV{v@;m;df?9oEl|G@7y`Rvy*4JxQ{06UIh!3PI+Yubx(6D z4mDnuPrAKVgPE`w}T;lPY~anuxos1tO|RQnPC)eIt|&HzwP=yYf;py(K@64;H%HE z@ttPZ8|a75VzL+FV4^VG1ykp8Zo#c(Fp>)9#-)8+MA}lZXr6<8DeFOB;swtMM^nX1 z5RW!DK0_SZ=SQU3B84GoIYkOWT;@7@EDTDM(4BjQLClYWm>&c&Z`^Lw{QYBg=*Z6v zOS?y8^ydsrTPh??L#cd2qZ8=zi4kZShe$u}LN>vD!_V#)X1_21ZBd|kP8^C8Y3__6 z2tvz2z{rh;F_BYlpps@P%!xyDfesb~qJ7G)UM>_(M_w3<7S6)5!9Jf9jpoEDhv8^; z|5+Eldqt%22log`%bUzhkM2D~I0lDtSS}!qrZq1jjR$oPTD*uFFQUhJQE9ofv^XrS zaFga2UG^y6e<|kqf-V`9X5B(PUI@w=UTCOLLyZM)6CQ_Tq4(zdRUq_AG0SA&5ewZ` zeec{k_Z*ro`l)fh!V@HXKD0wJuDIW4!XcbnY>pqS8y(^zs?574*qk!IOXB69(<}F` zSh{0rlBvip)BIYByxsFzc6(}Np=p(04iUa?=mGIZXCri34uzmjjsS&MJyyet#}3T! zWist|iD?$hD2?VYIX^I#NAW)zpQ!(|s3B;ew-G#eTV7jdKcHjjv_G8%`Bf|ol7&CY zL5_0S`OoJFVmKfTJmnE^$HturCCWu(T`2$*GeAHs7hQ{q&1EtG0R%@>DNAIN`kbp{ zg9n-=VNfBz=?9_&aBluf61UrUOnk|nBDQe#TE$1f|e*BrXmRU;Ut)=&!R#i6r|j9>~z45@$Vd}>y>k5Yq@LMXzGm&rp3{cah zZZ)IkMXS~0C~)83%qWABB2E(`q_jo*FR_yiJ; z_bcPAAD*`Nj-Ed`cpCL)6Y;C1OIScx4FEGkUC)LWoHCDduI9E4s|K~6{Cv_rJox^2 z_xNYZ1}A+9_#@dj$|BkA(`F7QmsJw($JRF;wMiBv)w)(HH8ine{S0%-i zD-M`5;7-X~cuI;6uXbnZT`x&=$R+Wg$~xHK;-kt#ZjB@CwBn~jmVOg(f(42*SSa-<@1 z&2g!?KMj#77-yq+^U);TZvq5QrK{NPj)dysviVe%=A7VQBN6)=%D3f(11dw$0!T5Vg0!xJBHW+~L?^s1t*12d`=4 zDdEEz$U5adhc3?s8e>xUvbMlTMqM{z*Qx;@pi7Ye zfhm&an$le`q+&W{|7}99*1#L`DWnSIA9CF0aE$Z*4R()HX23d+lgZ%Ln6ai;V|TTS zZ^aeAtj428W#_5!dD2quOG|_9F*R(;p<=j2YqWpnOd+?bEv|UP%%OkUG%+@Lcc$VO z^VUHyVgfygq<%Tm3{$L#2Go*xf*$MmPQXA@4o;h`s4x4u}fcz83K2@?9rLG zo#4VANHQUExW7h?wRQoRRjI=#fhq3-vjs9#Yc)C`AAZt(yPmq_B^}-tdRb+4XvE2^ zSUP*=62Snaa-NFFC2E3iD#Ol>PX=F;7$v%hrjCM+zrUoMuiXKAKc|HJ6X^)EN5mbl zPEuBqc6m4bho4cY0+D*f&A#L!5V^rKPBrtelnR(n7f(q}Fa0;%%|-iBs5vPb^S7Vb ztwy&>VdCTyX(+{3B;`dRWmP>SW?xSGC-M<6(Xh!CeJSL?XRvel}9Xf4FwUZlS zs1TOFjH%-|XeDX@57_9~FBtKP0$2UKUFHfAL1D)>NKg;BP-WXz=m$Z7*SN^$An6muY0n2gG04xMvdINF55 zBXC@k*$~}GQ#@E@w@UUvtZ7wF-l5)zfVYfpfV593@#xInq9Q=8EO}b~CA$D zi2Kgf8`3UbFvnSH9Ij`ibJnILNet^NX;CQkp~d<%tPh`h+0F!OUUt5qb7E`cP0Cq% z2Rr2f{mx740tEe39t>g*qIc?&e!~2dC@G;)68IB!-gWu|^e$HnV{eP)sDOzc$MFA# zLKzP_g+_8IfM1DB8?*AD@MVkNphtI(0mGTZ|>&){LTG2oFE~{oTd5v zE8~*c>`hPV^g5i-br&z>Kb=opG=u+Zn8U;Msw|F%AmhlM6GG>Z?iPa&@)h|E zlL@CYQO!!&z1SF1W};@p{;xC7k)g2|6WfjLpNom@px%X;*z-4h27j3S;RE)=$ z7wA=I%EujqBT9iqsoSPeZ+3NcoB!dq&k;{??zeHY1#dQ@)>>n|RmEgW zyzY!@ZQO9=+ZIR$o8LBj$-CxoHW(->;>N>Y5m=Lxk45GEr^ov*pw^te#L>5r`P}3B z-3i;Wj4<8)xb51E!?ThtnV+HyMPjF6KuM1g$}ujD)?aqS8X=rG_gHP zXDZTUCBAQ{XAo$S3G`ghTj^Cn%!gDSYb-^9esGRz5KZi4@=z=Mj$?G+A?qK0OTT!! zRbR21uO8Sbt(b5qHzLA%2hn|qHx7_r0Z2n4FXOA>_dvg|5pEmDkNRQ+q=IRf^zoi{ z>Z%d$Hc@gYirwJEp7fG&lf1WtJVyy1rpeWK!fsZyx=tW%M*?Ycw8m_M1;!JOdTg@; zfUGu(acjizO8{2u`Do`)nL}gHyQ5%U4d!)0B^Cy|>GZ6%_Uf0Y{2KVjW^2RkTJwSt zvI&l)s8v#q7x&3paFjJ)3Z9Z#^x{TiPo=tkAH`H*rE$Jt9;sBQD$5_Bj-!+ z-ZJG%oE~uzZy*7QBn;6Gbp=kx;lbr0G7N+l0m?KjmvNx?S*wkA>n)5@r*&0&$Fb^s zb$I;MDq_@mS4DPUx0Efo)1$}?j3*J@Pi~5J`!VL}5j&4WJi0^5ev5DK_kF;S-DA(q z3;7Q(yPOGeEYNtqtsB&mjzdeR*ylT@dzr4a3v=w2_i$9tHyim&<+SK>T54dnToWa% zVi&s|nn=Feo=WhK8@6PwW=Se7!gGV&>)8LtySm)npjZ#@eZw#wc_6o92NsIy0Y{LF zWlfmvZ1GyzT;4vV(mwe%OcMpUv>lgCqEgquzXk$wL51dKGP)lbAi8&-;MGOmU{RL3 zX$BP~#(CY92J%nZmP@w031N;gT+cajl@A6|Bwf)k9IuFsbcL_C1l2GBvVx8oDHVEK_yk9BcCP{wdooS=jiGzqHw^Wfq6F0g5yh| zBRRy}zcQ6fW$aY>9%jBcrW7KS!94oF6Ixmd_m^&l1<1efWm|*}F7BlQl2@D!h<^9- z0eO4P6rbZ0cE6NBR9hv^s|aTUf9d0DLuDk*Nq8^wk2TmZ7~OesiG{BE7ngA8J0_of zIBwSnbnMpfe}*lM?5tyozGdyAEu~FuaZ&c9fjp=MLdevh32-FtgPcB0gIb zW+o*~Lji3N@434)%^VULPHiA%BelZ}fW3xm6*6;XGDg`(lwhA_A3Fy007jaN`!(ji z7LLN5s>{x#*9D%XZB(l?{y<_Rxl%h2&ZN&nebg*2IWH)*+Kh^9i)5Tf^4`irqp)#2 z6!dJ)S>BAg11ac-|N1lchXE~+U|H3{PDFDb+9_#!RX}pD&BOH8r*Mg%B9DMk zL$xRwlD+tvj0cE5scEqtX_?S=$RE^!zbS|G~hEd znM%fULhSajB{B77;e#F~=U@eRK0!>s>O8r!kd@}|a zP9i5gz;=L#?Vkzv9TlQ8lBs!POS9V*2CPHonC3Ek#WNvS_aY=sWd7bq<~A# z3}7jule3-do$!nz&&&1`In6sQha|Nu0m#Fx%<9zh+H|$v%Y2^|wRwjAktAah_S2~! z9+a!kK(>Qa9&Qy1gwG%-X9=zX;qS{v8{8T$6HgdYq=x-ImmIb1`y3WDYgjKHqe`nz zk{J&+?Hn_hri>yL7-82m4iJ-N_K`xgAOHM(_u0Xoo?BZJj@;x|5wmJFf14HSasF=| zi^u37hcaRrlNJ`fbfJKW5^94YFD9vJ*z>aVS)V)q^5MrG!|)jU+f%cKc`}eJWho>7 z2kJt;+643`bMY=6CE}=}g0+}u{QOv#)l3u1JFjLwUD}P+Q?S9j(I)4}f7NPZ-}B|u zlCuz5hRIPf78utTJLy>lvq*KU3a4yTwu_u-m7M7PVrIpfC1o2~71Z)t5qDXGo@_bb zryr#Z&BXC(>f|LoC!>#a0gOI}59LaZKgMeGJh9h;VKET^C76Woth(2q)sJ`1u#Kze z7&4RumSBsICe4l{ys+GG;QpqiKg~h@f3Q{?=E-j7JQbF4QQRRaf#3i>-B^NRdN)>Z zPz{#xd)09l>a3kp9jLjB)#8Dk+pVF>4;9S-@CY}? zd4Mq~RtIPhWf;ToHX}+~HAmp3T7dZFCuyW{6u7C%$<#YL^lL7xAv1Mh4JPM$zISGh z%iBGM#GKRoAsJpGe@r=5WX6=K!Z60m4a%n@HDw45?O>9^RMcJ+E@5C=Bi^qJrJd`; z>m2U)%fNHvEmuUChz?{)0UbZ32eKn63ODy+3H`q5ybvS9{)VUPB5-SB)wC)fCsMUTphL2($` zqWS)WHg9#$=<9#`>AMWNNNB-m{>CVXaKF^7t z%%=2GhLB~yKRr^Qpb_1#P6Mi4$O{|L4+?bvL3WIcy$N-`S=sOZ7?}TKV2T--Qbvlw zD@)vi+o+XqCpY8t_6j(Xt6sRX&ifb0%#S4XYC7VC$&4goLYlm5RNitt6aI?6&unGe z$h?Cu>D3#FRq%DCQw=vr(!+gG@7`{Ay))kA)r)Tqf2J<~T;=MyiShxQ7YNb)>Ng21j=<__u#G zuIKBh8l6&*$wO%^B9{Sg#8Bj90FZ<=UB)~{ZN-ptXa%@4KDM&-sSadVQ9-r}A}nBm z&(IhbJ9am2ADM2ljj$zx3~v>wxe|Mo@YR~|Vjz@yc8%hwlHByCQTe+{Hk}TSPH==4 zkB-Zkk!{ZzmBMAC&y8>WWPiD3hBKeg<%~;)b>%5Bv|SrmKvrht%_V-1ye474d$1hj z1L2K7a4fWwMpEXo^tluwRRk=AN+--)v;G+sd>O{8(?g^s(e&)tXB^Zaf9)7D&2I8N z%d87=GrllghC^4k>8q=x*T>y)=jL&$hUPetC`>iXqgdDq?1N{vQ78*bR#8r=uh-M= z=uu-E|7=E72cI)aP%<@1A|h&t;-Ob-sc zWbzkiYvXm})y6||cheABEH{H9*H~n36D)9$MO1cQ-;fp-dDbw-S!Iu^+VC|U7JImv zk3C_hKdq6BgVaYM0}NB$nGE{qgTV}OYO#Krvvkrt>kpe0Ygs>p%cj?hHl3*7=nhJ+ zL}d;V-iluRvIV0*n_*;B9DSP~9UO=`uFUa8M##yJm?e$2!(Vq~GHT)!?(^|z2v}L@ zy^o!fAYJ*58{K7}I!tt*hr|;^iyDxoIIQPXO|_&Jf%AF>#cs(n5Eo}6{giOw6+U$3 z93-X{gEf?4OY+B6RFO4$S_mVL9~cy!O<-4MY5Oq1lyMFs9go>?l**R3v%&9+0;hNI%3UZ$kgqV#zo>9RsxXu}Iiw$&MRF0~7% zBGYVURh+4135as+ox&A17>!8iJ?~Fa$L+XFX(_~0ntcweGu?F5a1ik%J}o7K5pb7n z*Z%E-%Bm+Y^{uMLG|6ljt`gn3$L5Gpq1e%piXj{+OKbsneS5 zi^LR4b%tKfAi@liEryyfC)9XG-RDNR*L@-hD)CYY9QH%?#==|0RHavo>p;(Kc(n4~ zG}t3KMcc>HoL~>lSDqDaq^vgNJ_E7t|M>}ab1zHJc6XjFkO{5unS%wTgNv$o>Fv4k z9aVl*k;3r1&VH>$7qcWqVD<_yv*#!#JMMjjo8uFik0mBG;7EP`!{ zbJKp@ZI$D2XRe3>9FDxZBEOoYpgjJl8_QyWEC=VZ8vT&4H-9HhXIBEWfnx6HJPN2H z#sG#?jq4B#jl(@r%mAAj8BGK6cVVY<7E2p$AVxzLH%&x@mo(Ys$-bDU;qa#`h@UM8 zX`SQ9sp9cHojA>B3miBzt;)uaM6JETPHJxD)Co5ksp2*|`=rRVPS@DiTmF`d>5J_-OU-sAh&@Ebz>@x<~}* z_TBoTbfmSY54om>Bj7IUkl~s&eQ*0lXu-{eEu*k49*f)*iW-)OUMA3GTJPsYFY{~t zbO1BIzE8t2YsC4?ohZHh3&1vtJ?*4a?UWaqw!6`F+4dD1f)q>X6#pyMhB#ZT*_f&^ zqe&KYGlC(3Mh7F@ZmAP7MEh^ddD~zPaw?{2rhP^6VEC!VjuT1?3_$#JO`uhW%*$w9 zZe%1D($ifGMrR=9a{2bSKXx=EqN}qV_+fO7X{BnsqSrJaT4Wkk|J=?KjEqe9(~%mZ zq)R?D92!j|8q8!@tVw)IWq3t6P#9%`iH3*35;0Jv;&edsesw1JKb^sLvH2RK=wu|F zmX)QTGSLst(qsUfR)G3P%~Q{wK7SdV!DR-^&I$cGz}UbJ;QUlQiUY*7WqDwAfl`gh zsoXCPkb9QQ?r=xVJN?Gm1PtSu^Kn*F5`v#E8}`6P6!k-s#!Vn7kpMosO`pDfSMpGH zint5kR2+i)guZ=Q@!5K5WL$RrE6mJ!VL4}O&kaVaJby#Aw&7NRvr!6$ape5PQFIngha z4<&cJg%KG`3!E&)sF2Fe!ep1n_xIt{2^LCf&=NL@#pzTr_c;YE9+>xKJa;peLFYdCt%+ zK5$D8a!X(~`ZU}YL2dESC)k8z?3}LY5l6bQDBr+;qCr7UOBj-AvV~?6>E^`_ zETi|$>OAM*yymJRbM&9{s>snws<`SO&Yid%o>mJGTin9OV#S(du;!PH6q04CGx=i+ zF^U`*gWMdlnv9$CaySfEu=sAKS>?3m#ZA)=oS*JC8_u7X>*?+;de6d)4M+_IuBF0K zgO9AtBf@i5kPFd{%UMD19yw=nq{Q6hGkSKj{edojxPRF5yUv8NzEq8E0Rm~6T3Jj<@<}I z*BKfx$f=lrD0-PN{3!7yXT+>IN_JIjkQx;eWez*(^wyI@Mk8RuNY~%#cKe7F$x)DA z1!t4d+hizC-m7K|o^b4n#0Z$vxwz{1JvKKC2L{5d-A3ohHR%%v_{ySsjmcTOn`|ut zdYIQ2v;RmHlnsDcCI3l<=wxidPC6QHk>;L(jaj`BM3-i4P)T@mbOw!($;&8d3c)s(I;4CuS6uXcr{0ykWRJ^KtsMMvk!X5D z%~Kz0{Y&7`gj2Q*GD)%CHw!YdAinM%6@(K&cNkt<7;U8=wuJkUEdp;XA5=0l74FHC z*)ZDMi%eQ%xYrf)Y^&s05cYohiEj95=Yk=bK~8yZ#80cuXpd4?vkE(ZcH^lKspy+B zv|0aWwE69q8^E$6R@0w;edDWS*P&~zXb)y)m3#TsSJ9sue=B7)ktzJA+wNkf@6MSS zUdA>>oF13O5PU74FSfgjVdkb1)in>v9z1gXn#_ikQXql5e|j2RT0rle`70d_fX=4g zgi%+zUf9~+UL4M7IV`3MTyIYI_D}~0lK{U||2NKL&YKT*!yk4C_b3@}$vvuua#)fbAMe?BX)C}d zb4g1-c0@l%Sjw897{fdYEOE#m&N0t8s=r2MU_l9^~~FoEM57 zYsu9WHa4gbXGz8@ipkGw(H<8L9|%3|*v={XsIUckIcGGP+HU4ncYL3!fVVv#71bo( zHFYf0G=B|eS7*uOK8;9-*Hm!L;Iqk_LZjF3kMaxNKd@E^ZW^)~+d_9+^%X zXi7fh=qf--PzR2b+>kHx{Vez$ACOd|P)k|*K05oi#>pCq-oNCW6Xxntt_4jv#zoiOijePeJ2TCjEykW0gi@U}x60)kFMFV|q2!xnq0Sj%<{jPwZhR8ev9#}l+LRSG*?6)!n)DHy}6MI=)bIv0~@j%@fA z_t4IdI$?eW>>8)-IH*#)Lai4-*7({;CK-`-*HuK9vJonB$>K@T9EO=YHo_tq8tKnx z-yxO`?g-sc`j|jPoGxs@t&3KhRcc<3scGIsLmSU=4ybiZGfr%j0)ku0 zF+looiT8AA{$B5Zxf#J4T=)dFk;;~)?A&VffSgqk&RPd}4wFY$^qQ*$K-J@^qgA=w6tIFW+79j{8X%e?4J1b18AlCk5HD-NR3q@*zCWP0hJ!|i|YA zn8u$&hru&0+BY%5Uf^=BY64X@*5Jm5!HUZ`ZD-BJDUPsH^uL?(m&T(UPehM$K?9@J ziOw)Z4=OCNx=C`0I~fj0Ni!MI#+I#c1Hm+=MwEuNI?}w-ebqhI?7@XlW zZjum;9qz&4131GqIk=DtsJ5gcD#@7G?$3VLxTmTT!g12~oHsn(F;wl^^Im(6zXdys zL^ytQD!@By?xSpskJg<>lk|0lgWGIApcA5CcBmF-uzETstRB72<5vWj-t8i=T)}?u z{E1?%D*%vItj^lh9i2)!jD%mH)d1Ia#?GQJsq_x3q~8lEAJYJ|684!F5F3+gE1P6* zxHwgMsoHs{8pv%j7{Fep7)RXDuusgWWmdWF)9KAsDq6ZF1-56+6Rz0Bc(%fS3}yzd zVvNM$EW3cApC@RbBaIq)E4(|Or0H2P=)yJfjy`;s7w7K;is>EPerelvSYs?DcOm0X z?cX>FqI%@Xu7p=2PooQ9O3I(vMGtm?3vH-fPJkS~`(^y*9ib+)gNEHc)>Q5^jQv@4 z8^P7W;TO~VYWC*eItR|X;q(+ccAAa*lN58w!~9(als zCl51j(=_Q{s#rqSJVx+ge-EKMCWo0GG2EW3?_R8R|Nb-o_r(O?jLrlOGGES-1A)iCPw_U{ zG*^6h8PP>SijRAO0;`Vrz(MTcy}}kr6X&GE);<^zAal2wR)xbGND4v9-Q?lNrHObr z%)|SO`J&(KRg+^oUPk=u;a9z;d;cuOk7#Hyu=5&-IK=U-Do!7ITU_Cc7l>_L)1gme zqQpeiPv_qeZ-#w4_YHJl^fj)^34$ zr*$IP;BLgNl9^|FyBxSMPA*`!D;)K`0sO9WRc^T=&S8H4e#Z%}Hy$x517hGXP;K{Q zNWK1fFpvGy;MD}&WBd0%fYc=NKk>WRXU&4Byb_yK&I4H6$uRkARXIJw9L!M*Bs!OQ zkDVddogo^_P4mt*nwR#GmM$)`fC02ytr?cq=`}NJ^`aR^>{He}y^adwDw2rEhue0T z5-DdlzdXO%^cL#+5*?yxMOHxsCPzLf)Ud7z?%W#I2__edX}AwGUdubX-;=LcHx_(c z?oG{S3rq{OyJ25@K{reBx9q%0Vl}~7c4GdL`4I74L2)~7^;$i5+Z$1&ywyv)oJ6s< zBjMdiw)+E)AxMcI@5DPKrqr6VWHp68&i<7i-)-wUBmOt++zsBWz13iklBvl8zpL{o z>df=mBxJpMp`zL{UX2Yi=c^5~^dNHI;npyp75)5!J~P7o2j5bn%@CIKd4byMRy;{0 z`9?xVwG$T^st?sVcTKsV$CBf~Ds16@j}DIF|L8p+y_se|=q-8}ZaWKIODCxFj_gx| zU&jC|25DDV1-fcl-p$i$lqLNkp)Ld}Q2_@RJo|Le5seu7gqQ@rNi5pfUXa+&DvisU zU3(9!pfTr)bR-FJyX2%4WMm?qyRixzla9SW{t|fcU`99vzsxX;#)b9WWi`HfS7I0` zxkw^Sz}ye&UhIlHq<{7ni*00r z=`L^Z^or#HMPtl6h2~7hbkdRj(L3#6r>?tpwft_obEPsSD~~WsPO5mkYTY2X4Kjty z#<07xv4PtzDzd5rEzhq{P00$B0T(E!;tPrs@g}|6c2vS|aIF2t`cUezINd^v>>|wp zj-E|1!?;1?gka!phBhte9IS^DzISLqZK?gVqGb%qKoAT#etFk+J#$iUSKvn#Lhd+! z3yrOErQ*11rZ=18Jb1*rBD8YSXw>}yGez8tirARD8}6?gQB@G0v82M6NQL3ghHJir zD#US$N(vej{k|ERxaVShn-hl@C!602)?^H5io~;yO~GPF;d=zBC4Ns}BDmwvQUhr} zU{8J)d~s(y+uc@kGR!Vlimu_CXhs@cIS({2DzF9K#~csjq{bl|-bc#2FrmG&Av8U- zL?Z+F4t~Gri^kaV)eUWqj_=94xXvJXzy6)x1U)BDgXe63X?3%FR!~r-x(eA~S&ToH z8MvYVupNpbmEEym-Gl8_!NDIW#s(vt|6G`7&UyW%m}; z?*oeDaOxij54kXB(pcpRMojX*ghG zvHiXEqh~KGW^-qljj}Q7MM-{0F=+zDZnzO`QkY#q5t|g9?j=!|30{*z_rgFjx7&fM zt9HBit3;yyHU8^G;+lhqNH;QpSpLhuqqx&Dgc5L_MeDMyw>Y)<;- zg}qwmo>Suv?fODnFKNe_Tq9bXuY6Z>Coj3y=D3Wz5i7x>*uqT{X5x6yyBpk}0n=Xn zBzQx$p4ow0w&%88J7z!4ooq%g8~Z|ob+fnMHr_jURe5JWOl4b6-Ppa~b+R|YUp8|S z{Bd>tU|oO5^iA^XS(+F8yUp$dk1vz#)$D%TqBWw;MH3J*OP2JfGja`KWWv}Wn8nLU zLGf$tPdvd6s-0XWS4BR!(PmikT*Le%>pz>;4y9DQZK_1S4z}YRF{+~pH!s8dShCG! z-9Yt5*rRbeJu3!wq|A{^G7LDzP*Xp~cn(%~B|XeCHXQUow#_is_)R+Kg>~YQ#7bq5 zqP#a_o+KCf_$c-zM{nZA|P;=!2L}rUj2jmQVGpbR&p8 z4|sJ>vt`%Q*9Dm9>%M@B()tSSEgQFVZ^D@wr+pB}EL7vJKcc}fTln`B1t?X1OU=4?LyU;sB{!8<_`SXsMF=w4@$5=hygQ7S zGyLabboF^#ltN5GNcT6*u@2-;GDh6K&iW}fpwq;Ser<*uSj|;s!dMa#wK?O^OW$K2zVEqYD{*bxQflb^&en@)!qbf3M( z0sWB5OBpsdz@J__DT;yW<4e<<8{4;bN2~N&L#+lTngBFO}9?#UN*p%DO1dtD70sE&Y zIMkd%0K`j|vXU{lD6m@Si#fE}(Xn(k8ON&+OlA}8l z;xjv<5pTqe-hHpW#!E8dt(M{P=FOjh)q*ZK1e-kM9hC1{m~T0Ff)-{`4U&F8y_ypK zgBx~|^%_pS9~b5Oqr-fE2+sE|`i^HnGF`-Ptg&35re{xLmyXASY(RiEh+v}#?K->J zfKw3^m{0>rK)F^zW0ghm&@PD-CsRZF;;yBDI~W%|7k1$St;q2h*)8_d9ZT7GA0 z{@dvJf)u@)rhgQwzR;{Xl)a9&d({0S)A!$v!v795{^MnHsH*X|(Ru1Mkj|=_iJh(> z_CB4*Iaq+!`xu>O_f+j1vunyb<`W>-W;2kxHt!HZ(XtCfcEw#1d}tCm-$EnulcJ6| zbChlasQV|Fct1m`B1}oNB^F0<~#%I7=A=J&Bj&q!M>JTL>Fn?~oEG~hCin~|N zLu|-0a-rR^S=A?3RSqyTd(% za<_Fh+_wE3;Boh>xH9wiJ=Z%S#JZ+fSW@_q+6-f_z}` z#=k~wJIy9F*m1tW>k!qla5a5x@w4+OA^zK`HLo1s-R>pNemL{8j`#Q#wn&?$i%wMh z%z_H9^zP%*tgIktu!7jz51G!*0sD7)DxVM~yJue+W4!j%wEgbIe?uM3ckfy+8%_nB ziRGS=0s`Q9+I=MbI#Xb>aXD_3(;xf6v}t*!o|PuQ=A2eETl(<9!JfPQAG_$w~elJQLwrwcts;iCsMSLt9wX^8T=^$E}&K;Qv(pu6XSRNN->miWRdOiif!3H~#^ zoDeLmq=UgaddfGG$c@YZ(EIUSS!eI#Ke^}swcPW^V>IXUa&>&%9T>PW2Z6Z8Ddkv1 zGS+3P#taqIWN*M&^pWmO+pyDOD}+h$Z&|)!>3TI8FG#s0w`|2RslI6MaOyR~vbP-= zHr>5<|Gahoymf!`txG#Lmi_y0yLi1`{I9rsX=>iZ8szm(dgl3*Fd}d0CG3EyT8Rcd zg_&KY*&J)enVTo;0jUa}a2z^j<}(`44M@w-o0guvy##M>1RW7H!Y|Fkz$Q z-0C^^f?Nw)W$Biv#x3ICoj7FQZA=}jn$~5^dSEqO&okqmw%K(3)D-&EK8V5ub&I)# z5|V}S2^D8@B4XQ)zFhE5s@y}JQ|#qCsyVpvN`>QSyuwGf0;5Jxu`}-#A#`(6Yuk-q zvBA8o&AexUC=};6LdU8$N~4q+-P<{si-WT{n_!Wc5#P{w5G3v9NUBoa@ej|{U9QUJ z?!GNkcbKpIwoKfvoiRMZA15bwSnJ0~%pKPGo3nF=6@GY%ZY5WXrRT1Mc&-anniHw1 zDZSkS<-Fc5rJfV+87B0$({ikM2Gs;t-~=_qP>wq%5E6S`d2f3hF@p~xKa4xiu4H-J zTb{U7CEojmJ@~LG^@L>8UL&eppZW;j`txxl;gyb6vIM^5aJ(#*KH>LqIh z6S){ELMhHC71d1+}=+!! z_G#uG6Us-TgzdmFQe*P*r*v>8_8)FV1mK_@jRF_(FmQ2TL@Z_RyK@Yl0VZf(5BXqF z20g+R(4YhH`R`$AN!TciFtuXSG%{?8PLhFh^*~i*51cgj9-ZK-Uk^7+IfzQ4M@1Z~ z3(fwWy!K8k9e;dpKIWxjRR^s8>BM9c<==uZ-AI!T3$lX;?10{-@|7m&q(7VH(;)14 z;^!sxG@(Hci5`Kg|q1@|4K70O}QGpB?{I- z7suJiLWoKLtbEtA5e@ajEcK+ms11OaQyo8;Gp)w&R=j8{<0!&T#kV)vs1333*dnqL z5IoAsoE>x02;AJvMn|ehI5r_G1-sh|#GQ??_$eIYVEak@@Krh)1%d49om>iLuSnD9 zeI5j}`>uD~!GQtKI+~po(`-7EJ)?6l&~0NOU8(wBbZ_A!6aVdR(td4eU+mM96Bd#w zC5w)wG4offVRebME8)Xn**Ww&MZPr}r6`~tP9>snwq(ywqiid66|5d^39lMvKi+8g zs!$!X+v&{~Q@xX>`?U2i=G08FH$XcFP6{!dKpMW6wEA@7CsUX3R5Aw!#N0d+2$ec= z?tH5x-8^bKm3V7po;wR6GhtrIT$sOMKD>9%jCjv2-trS&Otfqz1YHCpAhsf4RC{+x zy5uk?HD38%whFI+$yb4WVom6pJ`3k4H&)(omiQHQF|SNfBn6t<3d?)mjl|rO3tS=n z;csOU$y6H%uC`K~PvO!8F9f~L9EcDD871YIc8yta=WN>1oh{tEQLCtM@FhgaMUc zyoh#*D%Z}|ucem(>Xdj*QW4~GRHZxQbvz`fuVrB`%1+_-~en%D;jgp*vj znZnaiESMNQ*4e_eU%;?t>T4EGZ5HF2JxoZ4X>M)&pJ zk1#N>n$LK=bB7sF!(fZl8)_=MWZ{7-_Iky3rXBh^ot$Bkn}$H~5k?_>!ktEf+A;@u zn6y;qyV%K>gI^sIUbzgo!NLWiUB|C0(lWLF)v^o`lw2c@2tRRoAwM;fb)eStMx1mj zhFfwBr%5m?$0Nd#JH@G>>rLJ}Y2+md0O`O`T7eHudNBd$WGyns`}nEKo23T+)dV4# zM16XWe!J`q_AkzN%;}%_B8EfM6nx@9NDO64i9&Yf`=M8q5!X(_9eFIu= zNQ$~q@&>2slpa~%Dm@QDf$lJkyK4{mtz91UWFIu1j%J#UEnTl|$b2bIU;_U)q6?<|fxp>FqY-CU$c;D8U1a7H3XkXaS; z$B{XkjKB!_O+Je_49xxAD@`^tFCa_h$$+fK4t6PrgR@A3li%x+&t1^D4eHFd7dCA-8e7iqM*_A;M`JL#?e@cnV4RoleV?<+qj*W9YGrhOdg z0R5qEXPKPjuw@>L+p4IiqHL8wqVvtiHSDUDtG>eNEw_V{<4s5PYWovXH4Il(eQfw^ zE>sx4mkthQ^J7mc_!D+9Vx||l{DC%GBLbO&DDUPnTx8x#F5*X9$6MNPgF7S&{W|7L zYBx^MXjE3{!eNf^P3K%st7s`vDby=ffUV)U4meW!GQk+H9=TKJ6V6%X~q8t8CW>#^Os_A8Tgip?jn4H1X(}q^V>EL46@=_;7G$W z%xPmCw@lW?P-uUB+=f~jU94f(*yw)lS{%#9QrC&o|FBVZGvrIem=T?CLlWwAtU@58 zBG;EWFc4}fvj!lenD$s(O?5@+e#I$Yy+K)$22~*xsvy|Q%YoE4=?uuusLCr!1Y4-5 zGElFBM+Y0?s)rfMM%l08LIWi!>8MtXjDu7yU)PLqvqt${HzDpwY8Y9gjn-EfwWwh4 zbrqj9oVmM2mFD?ZfzUg}ge$=rcxw^P-@hsEG)1i+;6CFj)VGOa!Fe9FpM@6kc6qs4 z2hzT>8W)>*;jxzZ0wZA&wB>1$oTtGx=)9?1JI|O^S@@(;rF&Ip6~~w*Dsn>EO~^NA zcBPuE**Ns|xM9;a+W;u5M}Xg73EyAGTP*hn0rA6WAicy}RW84OPS1cPGx}!lZM#MF zF~@I)^CV7IjQZG6#nuK1Hid%NfI@%#vk_8&Y8AjR;Bs+c62WCbREeZCV_Q2C{ zyWEsjSO5B3c?RY|Ds^CTj;hpcaeSM;jfZ0sWR+DWthdU?=5YKnOJ@|)CSu4qL(vO) zE%G~s^U+h`nMnw7!TGqKIDbRslKKS>dIBXU@Pz()wYe6RsH8hDw<$QxYXjnf(Oehf z+3C>ty}ngZR`gvZ^`8=+dOT(BBhOtQCZwr=y4W~DOv?-JX^?RZ>Q9m}L|;l*l&<;uL= zM2=}Svc|nVG_d8b4fZ)3aUB8MK;+wa;JGx5_tZVNn_`;qQi8&pPvZ&`o8|fZ+>yQ& zSuPK}U)d5ipB;33K)obRT#M61#|_lw2JJ*6-$?tK63{5^O+!hi7I%lsr-Yd*D$iNf~lq@^W^;_Or zKFk<09N0wa9J)4C1MkvtY8%JF%?kaP-p;Y4s%y)>%`yFu^&Mtzr0n$F+Y*wq!jVmn$J+!X6 zF6srkrK7f6m_Ee1r??V1`DYTHMbE~(qW0734FST%Z5zi{QQkpyJI6_Qs0_C517fh< zed28r{d9p{=aAqz+pd}-d$)+`)e)HtIi*-yp&zigJf|W8fUe8RAnBziGREgspY!j;ZkSS$OB% z`|VriedMa#t9a{Mc%8&a6IgxfH^S{FOoifoIBQWjdS%8PA^}_M`H~%PK^G|YfUvu;c8PsI(OmD5F?@Av%f+&#Jw@f}X7lTadgb$uk)2j%X6yZZyz^buSj z#8JA=4Wg2%_+wom<}qz|cZawGUnMRP^;7T>-6AYaV|Js0JM-@~W69tGy~vTGTt~u^ z7TD9Rdo*tm-TLosbmuu(ig$>O@S=S+R@pE@6g`bZ09Xf(p5kw(u&kL zbh{n476NGzOYBFq#m={|`a(;k0ksSr^YP56x7bFjdKX$g=X)vYx%Zsys)ZF!i0-i6 zCS7>bM5d^-u1Ew{6wr1~tmgp%`;BjmWKY0DSIo<&gK9Ha*n5*=*XjSFjwK7ZmE7V~ z;$#=T_u(ET3ms#Q)2xv{JlVq$I+&@wYL16dInscsNJ%Cs$s^{jxJ@9j;j9ZuB=2h- zL_A4^=ZeeaD@-S7{}|U({kM4V+*Jo&pn(yL%pY1vn0d(-pZ-Q#zr~gaEsc*dZa-96UV7ze+t0^ts%NQmuFY z9B>9_2FT2>tbUJjId>%OI0pD-1C%p>!|&AuFb9}b4xQ7y9CdF)tl5PJl8%)LhlF+zFOJDe*o8=ySZ{b5M+6xks3YVS5A4VOTS zG=DYLai+SD8E<>y?;V6UOlEqO^wXZV*WJ#U4KHX^FHYi<=FcG_m4h92>+OC=|8@39 z7+sx~i;@X>uFUK-G-T3VQ<1@ws43tk3+lX!-w6O;X~mn4k?$m~tIfK5)=DpD|NMAj zOW+G%>U6{H^{oPod(E1yMBbb&fx0HTMprn&s}MMw=14@3OE_z%i0VP!8V=Q-1H^`F zXTxLd_ee%;FSf0L4d_$1nBEv0QE*0$gMvr1flXQfSY+iyF+7_qgNHHv34hVAA>;_u z*9>P{duz<~Ko}kVRjg2a_&f&*H{jKbcn6X)?M(ZKb)DmuiII+E2W|huWEaA5{@x3!bBV z?I1l*(1D$pTYT-wiO7v}!VRM$vN>mjp=`}jRzl@$w;?$|&KzGdFAcA>+NK%Z3)Eo3~@A!0gfA@I# z1%L4~$iI@yc+iWtkfp?OaNGqlTbkgLR%IurhMi!6SafHL{j7$iEBwHPr7ig^3ePt_;~Bm>UFtUt{W zGH{8~0%Zj+7p&zFmC|og1niI3R(qeJ{(=z>mT!`qPuh-pV*AG*ITkOu2(&KT?YB?2 zwhxYeJbkqDZ13Qwr#t({r^j1|Pj-&GQ1R+}1KvwKoEhBn=EKu$b+I@F|tNyU9c&8?UefcLKc4_hc{{V~~bm@OM zKz4X;9H8uIAqo*5uV^s>Q93h~3=yL(zwtp(Nn9hl0)gtOc9+a^3>ZpMDrsKF| zaaCZ=vDB^_ZwZ5wTTT-BvE0|SfU^RU>qAL-QY(7$ zZ-%CJ5tjq>tPez`t_Niff|(bBrLI8}c2KD~gnI!r>Ut#VMGn|J1ZvBHRHX5+D53b5 zK?=n`uC5=f>+g9Xzd8`2I3i?wvWbWAN-aB1Q^oxiRJq(=fwK2m6G#2n01;uxS1$H@ z!;E%AYT2-(-PmZyUTNL;m6PF>j7@zF|1!C)6Lxs>J7UW%))`yAvFM%r0XX4zLf2=P z?ge1N>mkDF%qTK=JonTDc0Z2_Z%VR(-$2#>B;$XQ@qarRH=FPS>3Q|{b%g!@E`s47 z@PK0Y;W1%2xUa%4r2_+Yc#@0@N^_R@33Dv?IoaU?Nc5f+$%X5;S7PvDA@K81hOo7T zZx*R8WT|PRseS5nFeIpG)pm+M$~Vsr51t%uJ^iM^kd&4kM<+ufL{|oJh@ed>HQHRn zcb=@$AA1GoD3Grwct9p-;reBkP13>U#ypJ{b1TTW5NGpXy`SE18yo3T{3t6ZG)b%F zKq35yEVSmM80#%MV!4U?le{S8;vxgi_~tsf>6wblz2rI6_tvQIuwTM^+3qc3bXmM5 zTW^pW4~>1NJpH~W&?ocrELolSZJjVDH?A~7H%s4(ISKvhtWs8-Iyif`WUortqJPK3 z$GWO-4xS%Bdw%@QUt31e-(t-a??kC8tiqQX$z1h=K;yuKRyqH<87U~m>TET zJ+>8*qI_0tu0~}PUAI$mLbNy;8GRlH^GcUb-mQQM-e;RHjjQM>Qp2!TkIAo_PJMfP zaIkmk6sd)TXlcH@N;2Vh!10q)j4|uw4hnZSV7OOAJ;&S3>ymae@x3SmhIbAGWX%&53tVg9Qu^CX60To*lINw1N7jQOX3bUnb(A) zR&j~{B6nEX|IaoG%~ZSpi9_L1yoWv$>^Fz>mv|)W!@kJf6#scCE$&_u$nET?*lC_) zjJ|AG*SC+EwGM0Hmg2_=@w`;bq-1vzG^Ya&u=~KhtL@p3-2+;p#$m=uGi%1;PfnZV zbkf7@l^;C84r$hY*CD)ftKecQ&?x5xBs1MTj~x_Pz6jUTKt8-SHC`^pEB0QllFxMa|y?;PFNE)()mOJa1{ z1V-unJbR<*0?4Zq3+3nMgd}0Ie%rVr)Y#*vcXS_}>pf}>fcKVogOWCqG=v5KdGtCy zPqJYVU$5lc`Si^+9i!i9Q8Msa1!G%dT2oA)ir=|GjB|P~#N2kC!}#h4K&A|7#~D#= z&pg$qlOi&kP|dKfDnN?k2K=w*_3PB>SSdf4Q%o}Hx^1|n`l^h~XOn(vVm(}6D(A|j zMtgn#)9@pwq?vcR>;1Ou-vS^3f53?66@2KrKtJBv-Ftqx(}>sN^?2=bFZ04Eo1W@N z(1+7v(np_lzg`o*ee7ImjsOU!2(`ge!70b{#S5ypNJlHs&6-Uu#0(c@e?7X}h!sNT zCeo&N^;@G=M>o?BO9j}}6evnMb^6nZM`#&6OKl1ey3WbN)OIcxP;iVUNXdkX5>h&T zolWvFX3^|bXJRy%cFn!x?QQz+HvmUB3j@~2#$*+Rc9+BdbOy)Ex-wA((IyW!?f;}TNzbb~|oWSm5;DF`Vw zt4CCLzz&`LOCbBb5c#h0hOH8W#qfq!*+Q4urRjFzoDOEAtFE;6)uIz(fKBb;(Mrep zU8=E&dM3l8p>m$aC0GW2e5cdxchIeuCNci>jr%lkHF>{4K!q=IEyYJ^D$ypYH{%Fd zIA$2mb)Ep@nq#tClQPHP01pT1UCO_*SE;89DVv>K1&9+PN3#jl_;D=6uf|QuJgjh? z$zZ@KynU7;Y7K`VE`SC#6)Ts#2PedIKx#$ z3=OwX^kQxTT?y*ureX+{BDW`p$k*l=E{5~6K)B>B!IILhUzIb+`O%SOepI26Q~(oz z*)l{@#T?+onZVIWJ~~C;V$Dr*t1;JDatJ7>wywybPyhRYdKO+uHUB+3INJR&9;6%$ z2ei<{2jC4eW)B$5(IFLJ^f?=EiRaGaP9_MYm-a4t9ZuL}Tfy%+M#^k8%pRJbgMd7l6yD*X02SnDd4O z`vg&-K=D@o>CS*jT^XdWSH?5o6V|`_+giIa4G#rlHv0M14f&#^LpTcQz=s_-Yiqg) z6MGKJIW-vkA8pTTnb9lsWV*5;j5ZsK-XzXs>NB?S&Bm~2HrLd;=3(bMA9;qg%GrnC z@cBH+NTW9FaZ~RW=OB%CcHc3s4 zZVdO?E94XsL=8l2#+dp|>ZxQ{@OPMDV3=H?<^CSfKg7HkPMb0{U2Qo?5+JVyfnDdZ z663sj*!Of~+@x{Q!@v`zo1gG~%d5H~C53u&WZXm8cKn%}&fCRO4>h#IvEXm`wGyKA zRpqP7@HB^H)|56Y*slAK7ziz<{THoLR-*_eMy?UhO}QT3qffZ(yyPw}RGoJh3KVv9 zFUY`-Tv2uYb&Kir8`FN3FJ?yZ3%o+*<)kv9OjWvRqwB?qR8p;ojY64f$gg+!YtyhS zklS0xZ#_6E{0pOz2OsNu1;am579?^*r47pYCF^#M89;K@}onHF^mWAQUA2_=F|r%2ka6T0BfF@`|&Fq{EFuo1>4 zEz8%7ULS-8&(9g;!g0qa=a{KDk@w~$nW;@MW0T9=<(l&{#8~<_KS@j+*JryZ(aH0KEny5(*^Me!ev%~!!(R8Rg-phHcS($gdb5jkYIm_o%;4O_oUA3#j4!HTjOUM~cVb$3LX3Ic8V5znWLG6BTn5h4-IL)IR zvRRJ~V_fU8pYA8-b`VsayV^=W*sy71g%-7LE^gcWV=bE>ZrA)UtEL`-+pLCxX>%dN zW?&+`wJ+7dF4lm4tNDD6S=4o|vfZw>g&uvkv$qGUOHMlEk=P)m9PLdUSrK;;s59LZ zlYUdRJ@oDy1`a^A#~U<5eba7~`d2f_;gnSNdNE6E=pJbu&}P$oM361IcdGqyN~T&x_=CCF!m#YED zEXFZA9HBQ$;Pp>L)xu7gga)<{q8V~UAe@=_fE&S@xL1M05EODV*Obs04CrNIqU{{j zfS@FxP(8T=5t4#?{P_tZ_J#7plycyYJX3iMDDxa;&gJq(dg7dY=;kx_Tfu|pEMn3R>*nA_4 zAB>9SwAC!KhO#bA`=zsHY9ZLHS~Y#S;KC_x-c?c*c)=p7m_`XHM$lD}&IWl`C4W?a z(}(Hnbd26gCOL;8?lA5iv!M(^o=w|o9Jq%-wgU#!f=g#0n1s}hXh_o37y9wp{f#GFzqTRqYFNE+M!(9k}=6#G>?Pr=My|i z7(bGc(~oth6V)0#O8Qg6v-9&uv13D@o}nWXIjs=>5Y|DV;pC3Q^$7UA;FBesfOj(J z(gz+`k%_v`T+gb4tKs}V$Eu40QNS_Xlh;(wIuuSF! z7JP^dFsd&f#tBD}jdFCl>WIXiCSw~5A~VPnp2p91xEi(NK?%fpMS}YXgfDR*BS#b> zk-2EoaYm#uv@di1F!rb{Rv3Aum#C8!EG0|_dQ_61(Nyyk@V^#w5WS2#vfVmX_UK3s zg-+A#JF%{adt>MRFv&2^q%+Pt_j?0q&p13*zvGzo^1HUxBkrPkx64BTx_U9AF;n)3 z8O`~i6Wefz0V5eq(q3f_QN^NBC802I=qLwlx&-M3l9c@n?+Bf<@|SW0tvJ)^xL3hF zjQt`V`#Bye0z8C+dYR59Spo8A&#AuG!^I1$vU*D&Ooy!=#-b57PNJpQ4WsBf7IHmd zxTT=j6JyjpyNR0ugb*)dn!Dz+t?mEZda~1wo8Rvo9_=3NM@#U8ezH9a8mUlSO2}_J3ts;Bw2d(7}aMaz89NK`6Ws& z;P}9QB23thA0swB|AsY^4G5js$A*I}!3=yInMa$JKH=9#Y-50ZgmH6dfSBQ>IDxw- z8)nlR&y|Fe%pq-H!d848v5f-O6pLtzHLUota?HFpSLl|;-y(j1)6dLFD>Cosq2A^+ zUyq36%_ld`(&~vs-$M1@adkr*k+7|;fHZM3X$x`DDXEJ(9^!?o6B3%?5sg6cbrLGz zP8xpPMG(?YE@g?N^@LMJjK4ybSLopBsAB@nd`9kPrkcG+r+d5K9&R1}bc$EKT8dbP zARK3cch*7ns!ao}+6-DQo=)4&(jhdYXvW#>0!=f#iib}rive_i zU09j5CavoT7NMUya3?;BN2LDrur!8oo2Eky-|#%Xi};`D%Z|uG>C`c6z%2w6F;eRx z?2XBcp=+6kR0wZgZdEbsi6A^rII#FnWZZ9I3dFwTdEBD5+3dIOxi8J*=Aa@l`#R_i z>lfO+Usv1(pa}r3l>7HenJp7qzkVgx=(5?11<=cMcojEp@)^ejaL^~FUBj-(B#9Ae zGGgpFGaux{z{mwE7CH4xj0gcHV5%$$JP{*AHmMFJ@!6~%qoq4cR!(2?@pD}|g)xJD|HJrw=%@%34Em`hFK;brow%hO&&Y<^9EN2dgk@Zk zvxZPGW02xzsrzM9&a8!t@ygiwnT$l{CQjI+4=UYwsx;ty^PA)`)>CJav1Ivkc(ocNl98cC zIXCO!k@zm&QePue_Hywwz?}zDi+406C5N#GS?NOk^;CgeL+k0;B zv|Q-s7yIye${x(0E)Gj)TNzu)JP3S4aoQC*c)h`vlC9S`a*8=`86RDbV^7SOFEk&r$~4 z=g2piOcVc#DE#(o6t{zj>+&Kv!}JwdB0r{_Qct|Rb8*)C;bt3fxDuvumtil$yp(QZ3q|N( zW~v%-ai%OunFla3cUf|ck$29V-bcn$^+!9yoMidOW+}t+0xf7Ay?!G|7_FqM1UFjp zmP9*}R2~3pu7#eM2oQW@=`)9!v!K>0^sXO>K8t*R$aNdzUWk1ax!1^^COHQQFpli$ zvHPy%81|mNq&*u776DSD9Yh(2(ox3LNr$SDsVDn!rNYJ6$~dmLuH1=w7Zl+)*=H55 zA^a;^NW_ny9z5D<;1F!(NXAYnO}(fKO7&=7LCIj9Gr$Pu^Ob(J8g@?TB$ztQaA^VX zvHLcPE26e(?B!`!?fdc8lLBrO%(I2)!h`fYLyv%B*1t3+0M3w$2ndqLu*jw}>Up%} z>@vYKKFi_KdX=GK9LS2BZ1)LBW@8ikhUUJdxPO^v{gmO2FLG8AsTsh898yO#Q4B#j zkOp~}b|T93+fS{X5mj8+DT*`&bIuOvksHJVQhpak*$E^-{U zCV`7w!$^}6BgR}Zfg#L>$pqagM$}j6=I$sf&Vf#fEsimc*_}iT)yZiCp?zf1w zg?l#MKG=V}`(z{NV^kgS?)!yr!rdeF?(9EWq}IiIK|=}KdpQSJ058HeN0E;6hYtzB z2LC|k(}#3*yj--e+&0>)@;*?9?^Tn#5iJpg*(iYi3pY_((R<;kG{j|IP#}zGzTC|9gCl83fY!8G0ym;-gsx4E2KttDX2; zxL2_B)2%pOU0;LEy!K%A%Q$|1v=zlWK(B6c4(~&3;cPk;yk6)Ik!LuCAj+L#&I=4B zfu=EG{S`tUIEL|lIxdjn_h;;gg6=Yukdfd*r^bB^^IoFfH+tdbNIM5UjqFlr@E^F$ zJHFjZ3%tOdJlg|WyUVf69Lx<}NVo>L*3k(7quux;S|qV|KAWAPnQ)JL*)jF6cYr}c zI1W!_7|%#G4~x|MIjUPq`gsOo>*$Piy2qq&pawYM0bS>XE*rBTMRqaf>78Quc7j2N zz@&Ed zVH;s%@tnq}Bc|8gE)*G=Ky#XB9T0k9U|DtD%BG~!$Gka_FbhMSZ+8*BF54whuO{qM z4);BAqKschvqp|1rtvGdn3IdNfDYbVWqrv=E&M~b%Ud9-J2*6625d-X)60B<5=9OT zQ3g!O)JL=aQ$CB(b}X=4aJ}))Mm)RO#RZ9bz&rEyWq>@f*`VHzTmpn)i@b9}Oc?$% zVEDZ1S<%zM5vma!Lzsn&8`Hxvg=<-UjI===!eTIRUFjQOmBuveA|h^>*5?OwPPir@ z*W?xH$lP@|DLG&$>4Xq}r@7fSP#T)=M0lRBK&(h%q7G(tOIwt-zPq84X@nEV?r%s4 z?ACPX4wIWwH{)g5xD(vCG^dDyl}=uZw;@)2ofVe^aFOs@ffSjdOMvJl$kz@%7-5ys z^^kMP(}&2_W>e==EF)*qI||qfTo8(F#%@wAWAw@74y!@=q4h?@`uLb48=DUNRzPBf z7T85{d?80F$9kry-=tGacLj?ViWNmOJ4tcg2<%$idZ2}~Y!I0V#SM=WoQ{e5#M~6u zM_V&TVS!)exKfjpu->R##N|jJpwGPKFwqa^(*g>ePEdn`C9dFQMt(6FQ%72Lndr)e z_L2lmv?wrps`Z8$d7PuaXM)#WXVJ#WFT`o_$I@}#Wp1b^;uV6@UKBROU^_S}GE37LD6E=Y%Ah(aHAsUIQP3@T zXw?gsAdC}ukL>Og-BYP2&E2h#hty8&A#g1=4{m8L5O=RF4>`fH)|0Hp8p@Mg)1Ln5H$DZ{UqOYJ<1= z)+6d##;$jG!6M6tDqNZpjM<vA1M7-b4o*|koY#m=_tdCVb%G+Y*ZNxWj ztH9LoGZxT1#6k`==8nRw0e7Vy%!~zfmPWwZO!C33&xPoGz+U-3ND){e+;KUDDGda( zr8DkRLF$U>B?eXM7AF4$0)qnLjhCuRwi(U}?~(HDMOBWj@DujXj8f`9Y#-nNlr|bA z4EslVwbKyJreZ8iB12DK8-9|N35kp)z69|*oiG8Oki#17q6|nZaUrl{m@lBxhUK6( zL<5wBEVk|x1^>i(qA8hLqC;-oJ`><%P9`<2JxH|ipCSv4jH+cUvT=VnBZLjyg_ddS z#1snv-BS0^G_vebiPu%`qF2Rg66;UwX0!misn?XlXF9!t;}JpqzmPZuM+k@pP71Ba z0xTTw9n{2m{2wPo<94my3(-_2bkXJ_i#g8Buzw@BC}n3KcRl{XvUZ85MXKosU%cD{3LH=E{yHwlUE&7x}}rsHF>e? z$A)BB`gQEgY0c`f+dVmI@+=js)YZ8nbsJN_h_Tzej-TTP`2RjSMNhIs`AXQ<(g9yq ziGt>}(Gm7wn7pwSx$ft|wH<|*!Vjp{Wms*yFR)O9TW{0}1r`Q4B5M~GryV0#jMAD` zVYzAaaje>{QE9iTcrE-yA>;7*?m-IVEvM9e*m{IS4Gp)ifwF>FMi^s67gNHUDDP8c z9#O-mUlma@QI;zyauQEeJAIp=MDjKey~tI{f0tjQHr5kAb)wDiZ1WV{#Ai~a&$ypW z`m+(<82z*;^PJGh33fW~gXDz_a7R#u5HkbsvREq;4n0D&#MvYf3E~>NK%rFV>A}Ng zctVdh+}NuW7X1uaEbKWfLl+~hY~suw@fyHlWa(>;l<1TvpJ;q^mZ~mB#YuOA0w2NK z`y7)8BEcg?Z&v7~hc!kf6`vYiQBxoPGe1M642})XAp!81KDf)X%NIt(LaX6%Kt`Aj zNq#_=c}7iybX=FAg9(^?l=$Pgz9%xOWCvsY$D==j~vo|Bg!I82JS2Z>R zi_GM*?E+Wlf>0YKs!oD+y-M?|VQT9fqTm{z7a(g``es+o+nrsR-k~4$SC#BIfxzj`qynubJka4%f?j$jn&@jQmE5fuo zA}z(ldS%eXMmIXLl*$dcyaiHmfl(uXH6=TiF9?N9m;WJ9lmGLf%J<`)!>32_*8U^3 zB|X|b-aXhqiXR^w#$vze#E*6nO#a*F_=*ZXJ$SVHcz1gXAK=oh_L#HOExHBgIpruw z%RAzsGQ`JGR}eW-q97urnYsi;9n?@!Frjk0j>yUkKGYMrO3LilbUb75 z#|^W!I0_Zzqai}a$_X*Eh0X(f21IxsB+~?@46|XAs+TnT6ryCndZ)u1pP9X4cX+H@ zDPFY9(@oMzt^s&>TD%sixi;M(X!Ul&hRwlk$VqN=*o~mW>QKAz$aGe%KAxtCdx1oT zyxJ;PNT~wdx8-9R?fG+=X0#n#B8IZu_{L?esTOJ>vO8*+TyI!kgB&*ya^zH2_N891 zZp{&z?PcLGZG?2dn1OJtxDGCzGV5t{fdkT9V?SW35wKZc7z}FiFd1LWfG2`!SpF_W zXIfG>bxakUeJ^6!Q5GL{>%#^DLal`FTqu0g-Z5&yBZ$o5Y8a_|0phlp!n?>Z2 zl5;AA8cR`r`D2Aqkecf;RcOec(Zab}W@;%?C8GOAZ732P=w|r9kmFfFi<}fi4$LG@ zC>nPr=MgsPu`MT-lpl{KnvDdq26Q|v4+lCLcAo0zCM5tHD1W9xy@w*q9VNR z*79bEblj*G@kDz|TpqG6iFmi!v_Sg{$#YP9D#927egh5D5UnJ*h}}Ia+9*|_V8Aw+ zdL&I8+)@!8T2DIGo~hVKqG3K}wGruyvgwR7mzo0_$vvtKF9)~*!jS|l0a%d*McE zNkm(oU&*OHCx~0o9V?s7bTfS;MlB*k5wy#k*Sg&&qS&S?d0><3?V%TvTpW>H9Mj7g z@wy}KZD>CXS8m!0h9^Ff(XB-U3>$1dHohUhGfGqPNsv(#sl%IZ zuZ!uD)PjHCXj!V{wh2NUM{GIDszRF zByuGrk2uLwG|zs$&uAkU$C%nnE=$~2^R z9cyV}fT(Kds;6%GPUX+-1o<|QqZtrq?$0_}B7d1drK+(S--I7`&9-rO8SgKKjTTnL zye0{jj&&-8H5qQGt!>`AWuh?Q>EM8A1O@bJHgON-sY4c4t?e|b5!<7wa=Dp&0)-oy z&o^01e_-XPjsSG2Oq`Q|H_hoEoMGnpPiO`5^K?V7;ZO zHYxOE=o~5nQ!$ST?1%=&;f9s8QXOJi(;F`k&aL@5R}%xN`&dOJa*_z(1!t#JrbLY# z)J#V%gBej!Vw)(%JlT|KSd;VuWiV8?A#-$@$JfXXMC4R)3?FtJe?10Roth&^{xyA7 zIT4fPIF1n8To7|-4E2a#g;R#yF4SYs`Wf*P4+V{(<2FS?Y6LR*gf(aCbKyuam6PpS zm{9y>#lvgee^nd@jCpr#AZt26^U$H^;sR$$t5rFb#zAK4ii)C=f^k{J<2ejZ8~;w? z*ZFWZV&gNAft(Bk6v*O?kNIdzTh1mb{y4p3!Jnl+Apezj@dL}(0TrW*mJgVJgS%Fj zT3UL6U@FinYJp}s=JDz(MNOB(JRohA2pk^NYlC^jU2|O8dhHlP z7;z&oyD`2|BZhd5j>UycW|4XNgK=MR_oNt_1_ta*=&YC0fNU~JsTX)}pwP--R8*o^ zc%D6#>2L@_INa1?S7IrG#3x^gB^{G%NLsbdr6Sp6q~Ac0409W(rv~jirR1z(9i&Wg zU6Gu2YG5=Fs7;rd|7^b093K26HoCJ(Au-xOFa^u9I?o^MfGA% z5wB5q)+G%_g|O2XFBSAmG=$0s@`UM#PI}~+F+v04IPGFgF7pdk&KLivNH4Sbis!lx zBF&40p7o)oe3VQwH5L-Syzw$dMVBMWz%dMozB_HYo6)BRMP3p&$uV3vL?pg6jhul-%DW61K1Oo&X=vsK5i3Y}D+VEZrnGbh%Q4ENU+02!) ztRii6m6Dd;>5x|9>lfUqq1pSq7jOAn-54dtdElSnNbySA45LF>n1$!m%XfTu1)kj~ zk_~5$7~pAeHTa|_D%9>!ZHd~mmZ&4r-bL(DlHuvkhY|~64sECl_irBd=&>Fo80J+N z-Q)a=(>N3uRJXbPElo$nK>j3SI;UG{PL+p@At{d6hgmaOo=^wV?g&pMGHq2SBj3Ci zB&4>}Q=_)+MM}E9ApJxtEW3o?`UjMx*3iHrUP^Q4kDiPY@~s)F6Wk?GrIhidBAq#x z$a~zlOB+;|#tIy9(1_;mmf$@4Do@^Vy~t{AC7=a0wYWnbYbrvI#sW=;v2lfG^@#R|{q@NhO<@%*Wut>da;?Ob)#GE= zdzhDjwBuu7QYWN`MB!?LfVU{6q2UgeeAb`N$Rp|oj}z;2B`8N!5XFeB90}$ocOGP8 zOfVK%``q%Bp%YV*Do9j8XP9(+F}-XX!O>H(bB7~F!a$vrYXk^I9$qizaMW|nJ$*!A zkn7vAyVkdpAp_#AIDxX@@j_hv(!d|*3cuO;j`UPB4LL&R=mFwML zxCv3}8f7=fgOOW-UNCp1&Ei3aUd3|3xTCM3w4E{+D6^#8nocrn&M6{1R7TsyV8=q= z>m#s2GT%ll6M6XM*BqS0zW2zfqdMRMCW6@*&UbP)yP!C{vJ%~z9!$_fsDL2ZhKcu6bN0WU!q2K6qE*Ri2~J8A`G;mF8LI129Ha30vogzj^=R!K-}$47na7?ICRD+ zZ3RKZj56@a2yG;!keKp42XhM4ARmZf!*z#4-JXfnxlFB9n^a}$H&BQXiC2-T@op}p z@+#!ou#-k4q`bQ}aA}dCof3-29 zIvplI8dHt^PEf6Bb}&GQRvmRpvoXU;ux-gDZziZops6Se8N*yS4%VWqpQyVetM-$U zmxRSaH$0B!EO3_H#3#x2wk90hGVq&To%PO##seigH|* zO^}yF=U|P`BdMDSERIB^g~E$WVWMNrLti8vS&TONmhF6s@^D#$J7lcpsQXT`wf%YiTwS?vX^`RQ49c5Q>TA)uNzn8 zF(TVj%)9g1GP-E6LY2&2&Hn&5go$+nk7v3SiL0hF$b95)sQjF!655T z)e)I^q{s_2M!g?R33~#iQ=E;VpUpt5hdQZI;*p?m)JD7Hbb!q+=pQKRc~rpRokkEw zY-$wO3oAxkh;%uwQuFx6M;3U#w3=ns9-7O7&G}|P6l)&Wx{1c9!s?#gblHt=OmJ4? zi=i7YA)TWgqeey6O*xI>tko!fN)k_@bH+~HHq^E(C-=^r6hY0J5%Y_1lPXj_HNBJI{!rZ z&4@IvaX~%1@*lfhi}G6K_)Dv~hSH&y1RS8;eOdl5^-Pdb1C2 z>}JtP_Jy=DP!ZT!BlyhhHyaRsYfqvYgApb&$TQim#P^w8v2-19Vkta21QsKf^~x@q zTT1N)Cc7q<`lnRp%3P`f8Ws z(UP&aNa|G0i3I3*1V}s*OIokzP@78Fbu4 za%qGWlJT}Rh%)o1DiduYI5QnqZ}ZuX;4VSFkiei+#;X6;BD@Gs=`vIr_{273*s++UsC?@1G-7DkoC_+V~ zCydiSlHG~n3?}(aGMwIUjH+|i%i)tq4A~C|&j(&&8d@M8BgU9O`OVE=)5{4N>tGx_ zM507wy%MlBNkFO7ORT)nRlE0|=B}LPa3;?uc!?S3HCp63-AA{w3LCoPK9^wz$02Gb z1T%L6E6E2lWgk>hmxc&mPCz;nyt8CzNqXv5?;yZMg6hv(;UWl2Gm{IO{^Da#{0QREX5JLz*gbGkCf$2|W6jt8flT)yJslC}&ohjiV0cx|Sy+CNK-q>~(X zY$8g949acDgqVzFl=0yTNx^7(zUn+oWV4tulWF+rRCd-Z`NX3>Flw# z-c!3$7~!@;Fe&BeuEL2tL#?BtI1p4NBO7OWBRQM@?8cg=7@3}xu1upXcTx%vMyf~} z13%EK%)=8!$MgxLk-$v=%YBieBJApt?D^ghov=!{*Te?IzSm|b)(GN#>Y<2oL>&ij zpvlaBEtF$cNCWAB0U`J_3m}9;i-GCS;Q&)KgCMDxE+R6)xzQqvElNNYDwg#@j~rfV zu^~wfBY|g>EfV#eyyoNdIufOK5n_|p;F1t8fXpo(s|>SLl9CCL0ZmOLU||>wj0tIc zhF+lABs1t#YI{&%tqA?Eu%8_6&ly26+b$7qj?AVe41N~-X2X6Yi!ZUd2x$V?1ph!q zA;Vj{T%a5;4QnvAk%>CAc}?jutL?ddQ|F%%zNMz=%oGpx^ zxf9Io=@LD`K&Xd0_L{?DQAM$b1ZkR&Qaow}-wsAWUl_kA#w(5RN-GTf92`K{`2*V* zR1RL`WY9S0BRF~Oq0mUa0o+=Y?^;y^teu{Pph=>~L@iuyBziP;65ba1Z^)%$KDl73 zGSqOwx}W`n_=l~-!>#?}pNPhN-iyE8+1`47v=bkHw-ZZ>(|GqtF)|*-j}Lct;)BQW z_IF!{Pj)(3?r;Z7>>os07a?Xi6+o#2`g`ZcEiAvgAOCQ;d%U~Fw2-yO%_ z9qc{YIV9+gm4m~GK8&Aj9UkxQ9L3KL55C`h#L+iFr{{LZhd=zbMP&`rfxw;U_v5XqDNa# zx1Q`AIh%l*7G#-DeDrK*dl!F!_ptR~t@ogN(e?oxqW^l1s|XLIl6VW26KlYI$V(RE z5yZW=uX_aAmSbs_bJ@0C-hc7l!4Yk?M_b2RG4&Y!{dNaRM~6H6Fkf_>wzjvQAHvbX z68Hu5=IA*bw%vVR6x;xGn0F5!ne&A697!@2?XY$VT0Vd*g8*#$W|czg`!V5i-o zJrM6cj*gyheQFidx3C<4B*_LydJ1p~bW-cPztv z71PK=aZ}EX*g=BlBwv{kM(qiZNHz^F2$IKA#p7p4ULRvtgSuIV$UxD^hod~fTsPh& zfnKGAHiNp<4u@Ke6GkfSghr*P6arSs;I)EsgW4hFmM`wX__ zc?`Tr!tTn1`^WelUr}9ts)&D}SIk$?0#$+R2ytUyal6NE;&%n@*FE>p#GQFtjk)s` z2{1RH+clO)2X8fu5@g>jQA!pbt2>w9dnl|tRq)zo&9IEE=wN}PTlTRo+GR$+S3MK1 zO;yCkOAP%Gphd$La(o&4cA?~@tOk-qWj7ug=Y5G7AayiFmmAa#@goYk1{gve(-2#x z;V3nbe>|)6IoB> zbQVow66P?8(07*98w{o|3a)W{$@c&`Q!;!w?zkxeUlGv(7}%<6baMWjcJGx>}>~#f~Djz zB_0HNI$l1Wx>;A!B zY#12=+w1rSh*v)TsuQol{XEHrnBry??+|{`!JH~ZrkD@k!(KxTU@~nP_5;w|jarv=RBYpY#=Qa7C9(=L7hWVc!eE!*&55D+}@;|M8@nHSW{7-+x z&(bF=XW4kAxQv$6i8k(<-^}sv2;3SwoFvnPbG`FJxra8_SJ(cdyZWHJw$@u;eHbsr z&yTk`T_HL!v7Q%W=|}-s6Q}HL_~Y8z;pg!(aCIx_ySO57Zn_0~1%^VgGUYnKv~PUp znIuYZsIiJK;^jB}70y`46*(1HFX|wBTz3L6up%=GfcXwgxE3gK6zAU~4X2S_wfPkpu;Dq7v{Rmw5AYrqX;v!|z z>_BQA8PI$IAQK}hPZc9;T#Bvv$fjk&rJPO1%x7804&OV$TWyPYwIsPSIZV3}TaDJj z@uHDe#bv_Wk^yPVFo$O1jB0{?pzI6iI2(pk=?HkAp@^u0Ch9vx_47#eJ)Js*Pb>-_ z*7TsPzEq*oY$+`L+Ov!m0r$%z={=xq4{^LVvXXok8{xNEg9hJ$^cc^wj1;7%X z9gtoRpqA%P9R(SU64ZS6ko82y3~t+5z)3H59AXm=l~+X6A0bTy>eJJ>%ygg;Sh zcX(_*Mm1c=s45;G9zX-4upmVRez(7~-Ni+~nn?QhmP3?+qT1jdJ=)pYgZhrJ0=F=) z=8o~SlfV`yUj*-;j^Si{3BaMC^OEp6io+|EM*Tdrr(H@?IvdfLajzUb_EY6#9BLzabw@z} zXB2(pgv2IfQWc^{L_fA{2U*w*P$>cJTYBE%ffJS()YL)+c#8!QwD?U3T$K7vk?2fj zsY?=ouh*J*y>k-WaqK3bc?xynCvr~RPI5d<7$)-V(IZo@-jS3;4MXR6W|3r3zSRCC znf5ViWSX39w(hl}@o=*hwW8g}N1Khf2~V5jVFRzsBjC&*9qb+hVR(Y0ZeVWF2F-I? zOx?+Y+6H+x-E6+q^4<6Jgz~b(WBh%ii+{YwnxD;xAx_SUe2Bs@%@6U|)}Id(vbFbHnUv!Uuj*kwvAMXMwe{^(=|Dwd3PfA6l)Div;Yq7Hpr240tvfZgI z;(l0Hd|-<2a=B=iY0g?fDd9%UvzVU3(UH#fwB$PZkqzPplYtb*L#%Dn7uqB9&1dN9 z%s>}j2cqcUO1KPC(ssL)Gn~SvI6{{XEj?xbar6?EvZ@0zWi2$)dF~X4^4-3xG+qYj zGl$)WF?HQ-_l?pd#r?I(eU`=ACn`GB1X3807nqGEMyhn+Rw@H`lhr%8Qqm*^W@m(i z0pDN5PYw^BKjZJ4hC&3#gsu=ONFR+TL3?aIk|R>}5f-Fxa=fw+?KeVDs=mR3^iAOo zu4&GF_zjhH_ota%GCe!H1j-$|bxu-B4UUc}lL=#8$SxG@13iD}x8M_0&H+t#;6%Y& zG!HoH+F@7FW;28~HdHk>Bs3O^88eNH4NZ)h2BJ=b2w!XnT?7{p$X%#-#;c~e6nDpI z4D#Fnu~IoB_L@c=cKhx4;X_uxbwOkb2o7R%nAd}LtR%{NegU5;VQe@%q`BTOW{=`B zJD-{_=xj;8?M9R6RpTKYk+}J_DK%;nP2Oy-n`*fCM5$!}{Byq*x9-R9;`ps71eJ%gKXx(pnMjYwM>W1-mq`ckSR3rZCZ|i<>?CBbG)I2DXe$7~OoE^Cs z8qT(^pPix|oBP4;Y4dt&yIy@0B*W|ErZ9!{HgTpAxCqI{#EgSD;!w(a)TFg==d_$W zv>ct7@kw%*LMr!Hql>frV)JDAr2WayZPS6?iWXmN=8oGn1EehWb~6dBHT!85D1ocj zsMuQFHn(M3J_Ew|%DlecuGkT*zlS}s=5GkI8R!XoYAQ3M|!y3ZO zpE?*h=3+Kj&5|qGsR`un!*rAr8a>Mw&2O+GiZz&ERN8>St#4ZpY`gi5Iy__a*Ug5T zqrn;soA9Nc-~v|e9C(ibRQgTBsX21aBGgP}IQ%b*+!x$OhrZ~8-%4F-D9fT$Ma~?Z zws1?Ozu-j}ZuDQPj)A+;$LPdHIU2|oYnHuwAL9({qDA1~KN&n7c4EsBk-LMIk>GWI z@D3tz70sOzflOz}$ihYwMh>xN2ji#I{HizH>QT9qaREJ!-@W4pjb%m>?>1Y@Oyei%w5{|Wes4jM=_I*| z8}P^G+WOxgLVx&^2DRn9e6Z@iT=!pow&s2LAb9)0d;57r%ZW;W*$7<@IckQyij~~N z7^f+Tf~R@jHO}_PaumEDOt@f+*npNr4X3aWq(U5%Nv2E-w?I|*qAGp~$P`>PqwH4- zs~w?7C1#c5lXw4%&prco*l(9vD*FeXXQw|rBWWo-xqN_ zJ4HCM)5-OwuKQ3h8vM7dzsBpUt1WpW#3#0$c!^=Lacj91fBEH?aaV@<*LZDpbv16a zTXECW^-_oNyL7ZO`*d<$+fC}0?TTd!aBmZs=%gPJrT=Yolb0GQGpxN&FHz3`v=aWY zT`1l5Wg>{03H(U^K&=U$XpXz4FNFrcn}$>Bl>JXPn_ovVbF%+_NI0)d00THkrzWv7 znMay^5hHL+*uZpj)lkVv>f)Ts3_TfK>X?{|4%)z&p)_L3K|VZ7v?`bgYH8U3luMg! zdy#@5(F-ZyIqslIzhO8Pp^Esdjv`_^#zmWwJI^76QE9{8LU0Ky)iNwq*HxL=%1TSs zx>g7m6YxHkcvG6(p=jtA^|N4Bzc~KH}{6n%D1@uMw_Y(dieZl$D zzEq#P%9CgB(#RPDlu|MwBY`IcaIBY`^4d_$xa#eSM?-SdMZ@uBrRpj2&7!JwIS#LL z@h6)OC#F4fRI`@vYqi>r;JVG1C;5gTM6;-~3Q4y`cK}>gc-^`=`sZaJ5$kQzYx33aNyc+;Ur}YeSby-v zmp}7=+p$b3UnTU9BRt1(@BZqG)%Bn8|3K|~;qU(U_S)8_+{>GP-12N=oQ1WN6!n-%UT!WNdU>Ga1Iz3oDEroUscqYB?s9J(Qz#P-EIp{VoIdK)1}> zH|Smg+}3KSpwC#P$bYxzF9_0d!=0CUf71O<#(Va$e$Qf}X@aD;+!GF5d*GV*IoP1lsEfa8H zt|C?hL3!_S_^=n2eU`eG7B`JU%xzTF7l_)CS-%Y{VntQ}5UGH`5wZcInBDQ$3Ktpw1s)cOxN1%&gsVXC-tk3lV$!N4Jp5UKGmd^)*_+MQO3PWV7hTa1IR$!N z2^0bKP0JT$<@X%@pPKL=`5XUSam)Zh}^<(pV9!YbGFWn`;xs!Ggu=M!)!94boK!|8%_#x9G-rq zl8T9JPoI?UyZa|C*kQlOV!Rafj%gr9U&=FZ<|H%^?LbmDF$)2%iv zXH>P?va>2yyGrwez9GK4&Cx*JCLOZpqG;+c3KY`VI3lF;Lj%-RX1{25#UD^B_<Y7rd48_Jv%A0haD81WdqWBa2J-WW}K?f3>bKLDUdojqg2W!uPWhuGC~Wyr5NpL zt~Lj9{$tlN@qBhG?Xa@J%Ftp!-R_9r^qJ(_7SQ^P0EMqb4Ar!hx>=2#qv<=&IrKLl4mMxzZJ%!K z?QL$yDAf#xdqM@MfWvIRbiNy>*LB~~BG!G!3|H{r$GC}^x8S&7cQ%^q8_mx)nxAhp zzbF?({U{W~_U9D*)NMlP=WxJc7kulgMVjIOuA{bts8V}4cVj?ELL&(ZM@%g)ZKyq? zrlE_3<7yK*%oOYebk7b+6!pxRQzY-6pfKUKn9=WGjL~Isg(z;UQ5(HR&yChp%Ms3x z!T2>bQD7)y(UXu-Q3-{T8L@8aMAuV*iPnQThmg>8&vkHbBUc-Gjm}S$%o0PbQGg`a zbs{grfdqO?J?q{u?|ZXF3UtiRCa%xOm!KzzfE>f(@PKDyf}RzKeY7~j(49IMQ?D@S zj&7UO54Pf-rSaLUxUmVPohle{wO|xB&JUZYpVc{|&*4P{_Y~Jftkjw0szY2fTa^Q+ zAX(2$^oOH!v~%z_WQjg8JE!3@OtQPk-QOt_>?vFRZS{V1?o0R6Krnb)(Omhfhw;Wk zPo42T?1D9?GRUE>CW@H6k-1Ny3oN_atf{Y!D*)K`ERl7$<(-afaA?C58@WxMXAVyl zc^V34K-B|tFGo;8Le_dT4;eQ4__|JDiN&59y=qeO`e!RUJyiUghcp>4r i_-+RtM1T47=g*%%fByXW^XLDnpZ^cRK@S=LFdzU&y|0}B literal 0 HcmV?d00001 diff --git a/openssl-pkcs11-0.4.10-coverity.patch b/openssl-pkcs11-0.4.10-coverity.patch new file mode 100644 index 0000000..7511d0d --- /dev/null +++ b/openssl-pkcs11-0.4.10-coverity.patch @@ -0,0 +1,44 @@ +From 1492020acd161ad4ba75be87041ebdecde77f54b Mon Sep 17 00:00:00 2001 +From: Jakub Jelen +Date: Tue, 20 Apr 2021 19:07:10 +0200 +Subject: [PATCH] Free memory on errors + +Thanks coverity +--- + src/p11_cert.c | 4 +++- + src/p11_key.c | 4 +++- + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/src/p11_cert.c b/src/p11_cert.c +index 5cc5333..d027441 100644 +--- a/src/p11_cert.c ++++ b/src/p11_cert.c +@@ -185,8 +185,10 @@ static int pkcs11_init_cert(PKCS11_CTX *ctx, PKCS11_TOKEN *token, + tpriv = PRIVTOKEN(token); + tmp = OPENSSL_realloc(tpriv->certs, + (tpriv->ncerts + 1) * sizeof(PKCS11_CERT)); +- if (!tmp) ++ if (!tmp) { ++ OPENSSL_free(cpriv); + return -1; ++ } + tpriv->certs = tmp; + cert = tpriv->certs + tpriv->ncerts++; + memset(cert, 0, sizeof(PKCS11_CERT)); +diff --git a/src/p11_key.c b/src/p11_key.c +index 494520f..451398a 100644 +--- a/src/p11_key.c ++++ b/src/p11_key.c +@@ -553,8 +553,10 @@ static int pkcs11_init_key(PKCS11_CTX *ctx, PKCS11_TOKEN *token, + return -1; + memset(kpriv, 0, sizeof(PKCS11_KEY_private)); + tmp = OPENSSL_realloc(keys->keys, (keys->num + 1) * sizeof(PKCS11_KEY)); +- if (!tmp) ++ if (!tmp) { ++ OPENSSL_free(kpriv); + return -1; ++ } + keys->keys = tmp; + key = keys->keys + keys->num++; + memset(key, 0, sizeof(PKCS11_KEY)); + diff --git a/openssl-pkcs11-0.4.10-openssl3.patch b/openssl-pkcs11-0.4.10-openssl3.patch new file mode 100644 index 0000000..2cf0401 --- /dev/null +++ b/openssl-pkcs11-0.4.10-openssl3.patch @@ -0,0 +1,59 @@ +From 433947efff5712a6a3960c53e8b99e4fe123aace Mon Sep 17 00:00:00 2001 +From: Jakub Jelen +Date: Wed, 19 May 2021 14:23:27 +0200 +Subject: [PATCH] Do not modify EC/RSA structures after assigning them to + EVP_PKEY + +This was causing OpenSSL 3.0 to fail detect our RSA/EC methods and +failing the tests ({ec,rsa}-testfork.softhsm). + +The OpenSSL issue: +https://github.com/openssl/openssl/issues/15350 +--- + src/p11_ec.c | 2 +- + src/p11_rsa.c | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/p11_ec.c b/src/p11_ec.c +index 294cbad..9c5ee0f 100644 +--- a/src/p11_ec.c ++++ b/src/p11_ec.c +@@ -365,7 +365,6 @@ static EVP_PKEY *pkcs11_get_evp_key_ec(PKCS11_KEY *key) + EC_KEY_free(ec); + return NULL; + } +- EVP_PKEY_set1_EC_KEY(pk, ec); /* Also increments the ec ref count */ + + if (key->isPrivate) { + #if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) +@@ -379,6 +378,7 @@ static EVP_PKEY *pkcs11_get_evp_key_ec(PKCS11_KEY *key) + * unless the key has the "sensitive" attribute set */ + + pkcs11_set_ex_data_ec(ec, key); ++ EVP_PKEY_set1_EC_KEY(pk, ec); /* Also increments the ec ref count */ + EC_KEY_free(ec); /* Drops our reference to it */ + return pk; + } +diff --git a/src/p11_rsa.c b/src/p11_rsa.c +index f2f3eb3..183cce2 100644 +--- a/src/p11_rsa.c ++++ b/src/p11_rsa.c +@@ -286,8 +286,6 @@ static EVP_PKEY *pkcs11_get_evp_key_rsa(PKCS11_KEY *key) + RSA_free(rsa); + return NULL; + } +- EVP_PKEY_set1_RSA(pk, rsa); /* Also increments the rsa ref count */ +- + if (key->isPrivate) { + RSA_set_method(rsa, PKCS11_get_rsa_method()); + #if OPENSSL_VERSION_NUMBER >= 0x10100005L && !defined(LIBRESSL_VERSION_NUMBER) +@@ -304,6 +302,8 @@ static EVP_PKEY *pkcs11_get_evp_key_rsa(PKCS11_KEY *key) + rsa->flags |= RSA_FLAG_SIGN_VER; + #endif + pkcs11_set_ex_data_rsa(rsa, key); ++ ++ EVP_PKEY_set1_RSA(pk, rsa); /* Also increments the rsa ref count */ + RSA_free(rsa); /* Drops our reference to it */ + return pk; + } + diff --git a/openssl-pkcs11-0.4.10-set-rsa-fips-method-flag.patch b/openssl-pkcs11-0.4.10-set-rsa-fips-method-flag.patch new file mode 100644 index 0000000..6b3e149 --- /dev/null +++ b/openssl-pkcs11-0.4.10-set-rsa-fips-method-flag.patch @@ -0,0 +1,11 @@ +--- a/src/p11_rsa.c 2019-04-03 21:58:18.000000000 +0200 ++++ b/src/p11_rsa.c 2019-11-28 15:46:18.898258545 +0100 +@@ -478,7 +478,7 @@ + if (!ops) + return NULL; + RSA_meth_set1_name(ops, "libp11 RSA method"); +- RSA_meth_set_flags(ops, 0); ++ RSA_meth_set_flags(ops, RSA_FLAG_FIPS_METHOD); + RSA_meth_set_priv_enc(ops, pkcs11_rsa_priv_enc_method); + RSA_meth_set_priv_dec(ops, pkcs11_rsa_priv_dec_method); + RSA_meth_set_finish(ops, pkcs11_rsa_free_method); diff --git a/openssl-pkcs11-0.4.11-thread-safety.patch b/openssl-pkcs11-0.4.11-thread-safety.patch new file mode 100644 index 0000000..1f59f41 --- /dev/null +++ b/openssl-pkcs11-0.4.11-thread-safety.patch @@ -0,0 +1,3929 @@ +From a6e480d7f7edd31b52b37945b98edc30874a29d6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Timo=20Ter=C3=A4s?= +Date: Sat, 20 Mar 2021 08:37:32 +0200 +Subject: [PATCH 01/12] Simplify pkcs11_try_pkey_rsa_sign() to not hold lock + over calls + +The long term lock keeping was originally added in commit e81e3355 +"NULL sig support #178" to support querying the size of the signature +with sig=NULL. However, this commit was immediately followed up +by 7a1fca41 "EVP_PKEY_FLAG_AUTOARGLEN for EVP_PKEY_meth_new()" which +refers to same issue too. + +The EVP_PKEY_FLAG_AUTOARGLEN makes OpenSSL core handle sig=NULL +case before calling the algorithm specific sign function. Thus we +never get the sig=NULL call in the current code. Thus the original +hack is unneeded. + +This effectively reverts e81e3355 and adds an error handling if +sig=NULL would happen. +--- + src/p11_pkey.c | 63 +++++++++++++++++++++++++------------------------- + 1 file changed, 31 insertions(+), 32 deletions(-) + +diff --git a/src/p11_pkey.c b/src/p11_pkey.c +index 50eef56..a92874f 100644 +--- a/src/p11_pkey.c ++++ b/src/p11_pkey.c +@@ -298,7 +298,7 @@ static int pkcs11_try_pkey_rsa_sign(EVP_PKEY_CTX *evp_pkey_ctx, + EVP_PKEY *pkey; + RSA *rsa; + PKCS11_KEY *key; +- int rv = 0; ++ int rv = 0, padding; + CK_ULONG size = *siglen; + PKCS11_SLOT *slot; + PKCS11_CTX *ctx; +@@ -306,12 +306,19 @@ static int pkcs11_try_pkey_rsa_sign(EVP_PKEY_CTX *evp_pkey_ctx, + PKCS11_SLOT_private *spriv; + PKCS11_CTX_private *cpriv; + const EVP_MD *sig_md; ++ CK_MECHANISM mechanism; ++ CK_RSA_PKCS_PSS_PARAMS pss_params; + + #ifdef DEBUG + fprintf(stderr, "%s:%d pkcs11_try_pkey_rsa_sign() " + "sig=%p *siglen=%lu tbs=%p tbslen=%lu\n", + __FILE__, __LINE__, sig, *siglen, tbs, tbslen); + #endif ++ /* RSA method has EVP_PKEY_FLAG_AUTOARGLEN set. OpenSSL core will handle ++ * the size inquiry internally. */ ++ if (!sig) ++ return -1; ++ + pkey = EVP_PKEY_CTX_get0_pkey(evp_pkey_ctx); + if (!pkey) + return -1; +@@ -334,45 +341,37 @@ static int pkcs11_try_pkey_rsa_sign(EVP_PKEY_CTX *evp_pkey_ctx, + if (tbslen != (size_t)EVP_MD_size(sig_md)) + return -1; + +- if (!cpriv->sign_initialized) { +- int padding; +- CK_MECHANISM mechanism; +- CK_RSA_PKCS_PSS_PARAMS pss_params; +- +- memset(&mechanism, 0, sizeof mechanism); +- EVP_PKEY_CTX_get_rsa_padding(evp_pkey_ctx, &padding); +- switch (padding) { +- case RSA_PKCS1_PSS_PADDING: ++ memset(&mechanism, 0, sizeof mechanism); ++ EVP_PKEY_CTX_get_rsa_padding(evp_pkey_ctx, &padding); ++ switch (padding) { ++ case RSA_PKCS1_PSS_PADDING: + #ifdef DEBUG +- fprintf(stderr, "%s:%d padding=RSA_PKCS1_PSS_PADDING\n", +- __FILE__, __LINE__); ++ fprintf(stderr, "%s:%d padding=RSA_PKCS1_PSS_PADDING\n", ++ __FILE__, __LINE__); + #endif +- if (pkcs11_params_pss(&pss_params, evp_pkey_ctx) < 0) +- return -1; +- mechanism.mechanism = CKM_RSA_PKCS_PSS; +- mechanism.pParameter = &pss_params; +- mechanism.ulParameterLen = sizeof pss_params; +- break; +- default: ++ if (pkcs11_params_pss(&pss_params, evp_pkey_ctx) < 0) ++ return -1; ++ mechanism.mechanism = CKM_RSA_PKCS_PSS; ++ mechanism.pParameter = &pss_params; ++ mechanism.ulParameterLen = sizeof pss_params; ++ break; ++ default: + #ifdef DEBUG +- fprintf(stderr, "%s:%d unsupported padding: %d\n", +- __FILE__, __LINE__, padding); ++ fprintf(stderr, "%s:%d unsupported padding: %d\n", ++ __FILE__, __LINE__, padding); + #endif +- return -1; +- } /* end switch(padding) */ ++ return -1; ++ } /* end switch(padding) */ + +- CRYPTO_THREAD_write_lock(cpriv->rwlock); +- rv = CRYPTOKI_call(ctx, +- C_SignInit(spriv->session, &mechanism, kpriv->object)); +- if (!rv && kpriv->always_authenticate == CK_TRUE) +- rv = pkcs11_authenticate(key); +- } ++ CRYPTO_THREAD_write_lock(cpriv->rwlock); ++ rv = CRYPTOKI_call(ctx, ++ C_SignInit(spriv->session, &mechanism, kpriv->object)); ++ if (!rv && kpriv->always_authenticate == CK_TRUE) ++ rv = pkcs11_authenticate(key); + if (!rv) + rv = CRYPTOKI_call(ctx, + C_Sign(spriv->session, (CK_BYTE_PTR)tbs, tbslen, sig, &size)); +- cpriv->sign_initialized = !rv && sig == NULL; +- if (!cpriv->sign_initialized) +- CRYPTO_THREAD_unlock(cpriv->rwlock); ++ CRYPTO_THREAD_unlock(cpriv->rwlock); + #ifdef DEBUG + fprintf(stderr, "%s:%d C_SignInit or C_Sign rv=%d\n", + __FILE__, __LINE__, rv); + +From e4090f6071043a4213126133b6f6a4787014a4c1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Timo=20Ter=C3=A4s?= +Date: Sat, 20 Mar 2021 08:52:40 +0200 +Subject: [PATCH 02/12] Simplify pkcs11_try_pkey_rsa_decrypt() to not hold lock + over calls + +This was originally added in commit 8356d568 "Add support for RSA-OAEP +and RSA-PKCS encryption for PIV and HSM tokens" which just cloned the +same pattern from pkcs11_try_pkey_rsa_sign(). Remove it as unneeded +for the same reason: OpenSSL core handles the special case for us. +--- + src/libp11-int.h | 1 - + src/p11_load.c | 1 - + src/p11_pkey.c | 75 ++++++++++++++++++++++++------------------------ + 3 files changed, 37 insertions(+), 40 deletions(-) + +diff --git a/src/libp11-int.h b/src/libp11-int.h +index 5c2b295..ab0893a 100644 +--- a/src/libp11-int.h ++++ b/src/libp11-int.h +@@ -49,7 +49,6 @@ typedef struct pkcs11_ctx_private { + unsigned int forkid; + PKCS11_RWLOCK rwlock; + int sign_initialized; +- int decrypt_initialized; + } PKCS11_CTX_private; + #define PRIVCTX(ctx) ((PKCS11_CTX_private *) ((ctx)->_private)) + +diff --git a/src/p11_load.c b/src/p11_load.c +index 2208861..9f478d9 100644 +--- a/src/p11_load.c ++++ b/src/p11_load.c +@@ -42,7 +42,6 @@ PKCS11_CTX *pkcs11_CTX_new(void) + cpriv->forkid = get_forkid(); + cpriv->rwlock = CRYPTO_THREAD_lock_new(); + cpriv->sign_initialized = 0; +- cpriv->decrypt_initialized = 0; + + return ctx; + fail: +diff --git a/src/p11_pkey.c b/src/p11_pkey.c +index a92874f..c378e86 100644 +--- a/src/p11_pkey.c ++++ b/src/p11_pkey.c +@@ -402,19 +402,26 @@ static int pkcs11_try_pkey_rsa_decrypt(EVP_PKEY_CTX *evp_pkey_ctx, + EVP_PKEY *pkey; + RSA *rsa; + PKCS11_KEY *key; +- int rv = 0; ++ int rv = 0, padding; + CK_ULONG size = *outlen; + PKCS11_SLOT *slot; + PKCS11_CTX *ctx; + PKCS11_KEY_private *kpriv; + PKCS11_SLOT_private *spriv; + PKCS11_CTX_private *cpriv; ++ CK_MECHANISM mechanism; ++ CK_RSA_PKCS_OAEP_PARAMS oaep_params; + + #ifdef DEBUG + fprintf(stderr, "%s:%d pkcs11_try_pkey_rsa_decrypt() " + "out=%p *outlen=%lu in=%p inlen=%lu\n", + __FILE__, __LINE__, out, *outlen, in, inlen); + #endif ++ /* RSA method has EVP_PKEY_FLAG_AUTOARGLEN set. OpenSSL core will handle ++ * the size inquiry internally. */ ++ if (!out) ++ return -1; ++ + pkey = EVP_PKEY_CTX_get0_pkey(evp_pkey_ctx); + if (!pkey) + return -1; +@@ -433,53 +440,45 @@ static int pkcs11_try_pkey_rsa_decrypt(EVP_PKEY_CTX *evp_pkey_ctx, + if (!evp_pkey_ctx) + return -1; + +- if (!cpriv->decrypt_initialized) { +- int padding; +- CK_MECHANISM mechanism; +- CK_RSA_PKCS_OAEP_PARAMS oaep_params; +- +- memset(&mechanism, 0, sizeof mechanism); +- EVP_PKEY_CTX_get_rsa_padding(evp_pkey_ctx, &padding); +- switch (padding) { +- case RSA_PKCS1_OAEP_PADDING: ++ memset(&mechanism, 0, sizeof mechanism); ++ EVP_PKEY_CTX_get_rsa_padding(evp_pkey_ctx, &padding); ++ switch (padding) { ++ case RSA_PKCS1_OAEP_PADDING: + #ifdef DEBUG +- fprintf(stderr, "%s:%d padding=RSA_PKCS1_OAEP_PADDING\n", +- __FILE__, __LINE__); ++ fprintf(stderr, "%s:%d padding=RSA_PKCS1_OAEP_PADDING\n", ++ __FILE__, __LINE__); + #endif +- if (pkcs11_params_oaep(&oaep_params, evp_pkey_ctx) < 0) +- return -1; +- mechanism.mechanism = CKM_RSA_PKCS_OAEP; +- mechanism.pParameter = &oaep_params; +- mechanism.ulParameterLen = sizeof oaep_params; +- break; +- case CKM_RSA_PKCS: ++ if (pkcs11_params_oaep(&oaep_params, evp_pkey_ctx) < 0) ++ return -1; ++ mechanism.mechanism = CKM_RSA_PKCS_OAEP; ++ mechanism.pParameter = &oaep_params; ++ mechanism.ulParameterLen = sizeof oaep_params; ++ break; ++ case CKM_RSA_PKCS: + #ifdef DEBUG +- fprintf(stderr, "%s:%d padding=CKM_RSA_PKCS\n", +- __FILE__, __LINE__); ++ fprintf(stderr, "%s:%d padding=CKM_RSA_PKCS\n", ++ __FILE__, __LINE__); + #endif +- mechanism.pParameter = NULL; +- mechanism.ulParameterLen = 0; +- break; +- default: ++ mechanism.pParameter = NULL; ++ mechanism.ulParameterLen = 0; ++ break; ++ default: + #ifdef DEBUG +- fprintf(stderr, "%s:%d unsupported padding: %d\n", +- __FILE__, __LINE__, padding); ++ fprintf(stderr, "%s:%d unsupported padding: %d\n", ++ __FILE__, __LINE__, padding); + #endif +- return -1; +- } /* end switch(padding) */ ++ return -1; ++ } /* end switch(padding) */ + +- CRYPTO_THREAD_write_lock(cpriv->rwlock); +- rv = CRYPTOKI_call(ctx, +- C_DecryptInit(spriv->session, &mechanism, kpriv->object)); +- if (!rv && kpriv->always_authenticate == CK_TRUE) +- rv = pkcs11_authenticate(key); +- } ++ CRYPTO_THREAD_write_lock(cpriv->rwlock); ++ rv = CRYPTOKI_call(ctx, ++ C_DecryptInit(spriv->session, &mechanism, kpriv->object)); ++ if (!rv && kpriv->always_authenticate == CK_TRUE) ++ rv = pkcs11_authenticate(key); + if (!rv) + rv = CRYPTOKI_call(ctx, + C_Decrypt(spriv->session, (CK_BYTE_PTR)in, inlen, out, &size)); +- cpriv->decrypt_initialized = !rv && out == NULL; +- if (!cpriv->decrypt_initialized) +- CRYPTO_THREAD_unlock(cpriv->rwlock); ++ CRYPTO_THREAD_unlock(cpriv->rwlock); + #ifdef DEBUG + fprintf(stderr, "%s:%d C_DecryptInit or C_Decrypt rv=%d\n", + __FILE__, __LINE__, rv); + +From 26e7e2616fbf46dd1f1c0b4c9991c560980129ba Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Timo=20Ter=C3=A4s?= +Date: Sat, 20 Mar 2021 08:59:25 +0200 +Subject: [PATCH 03/12] Simplify pkcs11_try_pkey_ec_sign() to not hold lock + over calls + +This was added in 592b71ae "Add EC signing through EVP api" and it +just seems to have followed the pattern set by pkcs11_try_pkey_rsa_sign(). + +In fact here the code never worked correctly, because the *siglen +is tested early with "if (*siglen < (size_t)ECDSA_size(eckey))" which +breaks the size inquiry. Often *siglen would be uninitialized, or +initialized to zero causing failure. + +This adds the proper code used by OpenSSL core to do the size +inquiry, and removes the stateful handling of lock. +--- + src/libp11-int.h | 1 - + src/p11_load.c | 1 - + src/p11_pkey.c | 29 +++++++++++++++-------------- + 3 files changed, 15 insertions(+), 16 deletions(-) + +diff --git a/src/libp11-int.h b/src/libp11-int.h +index ab0893a..aa19295 100644 +--- a/src/libp11-int.h ++++ b/src/libp11-int.h +@@ -48,7 +48,6 @@ typedef struct pkcs11_ctx_private { + void *ui_user_data; + unsigned int forkid; + PKCS11_RWLOCK rwlock; +- int sign_initialized; + } PKCS11_CTX_private; + #define PRIVCTX(ctx) ((PKCS11_CTX_private *) ((ctx)->_private)) + +diff --git a/src/p11_load.c b/src/p11_load.c +index 9f478d9..0704271 100644 +--- a/src/p11_load.c ++++ b/src/p11_load.c +@@ -41,7 +41,6 @@ PKCS11_CTX *pkcs11_CTX_new(void) + ctx->_private = cpriv; + cpriv->forkid = get_forkid(); + cpriv->rwlock = CRYPTO_THREAD_lock_new(); +- cpriv->sign_initialized = 0; + + return ctx; + fail: +diff --git a/src/p11_pkey.c b/src/p11_pkey.c +index c378e86..810ef91 100644 +--- a/src/p11_pkey.c ++++ b/src/p11_pkey.c +@@ -549,6 +549,7 @@ static int pkcs11_try_pkey_ec_sign(EVP_PKEY_CTX *evp_pkey_ctx, + PKCS11_CTX_private *cpriv; + const EVP_MD *sig_md; + ECDSA_SIG *ossl_sig; ++ CK_MECHANISM mechanism; + + #ifdef DEBUG + fprintf(stderr, "%s:%d pkcs11_try_pkey_ec_sign() " +@@ -568,6 +569,12 @@ static int pkcs11_try_pkey_ec_sign(EVP_PKEY_CTX *evp_pkey_ctx, + if (!eckey) + goto error; + ++ if (!sig) { ++ *siglen = (size_t)ECDSA_size(eckey); ++ rv = CKR_OK; ++ goto error; ++ } ++ + if (*siglen < (size_t)ECDSA_size(eckey)) + goto error; + +@@ -591,25 +598,19 @@ static int pkcs11_try_pkey_ec_sign(EVP_PKEY_CTX *evp_pkey_ctx, + goto error; + + rv = 0; +- if (!cpriv->sign_initialized) { +- CK_MECHANISM mechanism; +- memset(&mechanism, 0, sizeof mechanism); +- +- mechanism.mechanism = CKM_ECDSA; ++ memset(&mechanism, 0, sizeof mechanism); ++ mechanism.mechanism = CKM_ECDSA; + +- CRYPTO_THREAD_write_lock(cpriv->rwlock); +- rv = CRYPTOKI_call(ctx, +- C_SignInit(spriv->session, &mechanism, kpriv->object)); +- if (!rv && kpriv->always_authenticate == CK_TRUE) +- rv = pkcs11_authenticate(key); +- } ++ CRYPTO_THREAD_write_lock(cpriv->rwlock); ++ rv = CRYPTOKI_call(ctx, ++ C_SignInit(spriv->session, &mechanism, kpriv->object)); ++ if (!rv && kpriv->always_authenticate == CK_TRUE) ++ rv = pkcs11_authenticate(key); + if (!rv) + rv = CRYPTOKI_call(ctx, + C_Sign(spriv->session, (CK_BYTE_PTR)tbs, tbslen, sig, &size)); ++ CRYPTO_THREAD_unlock(cpriv->rwlock); + +- cpriv->sign_initialized = !rv && sig == NULL; +- if (!cpriv->sign_initialized) +- CRYPTO_THREAD_unlock(cpriv->rwlock); + #ifdef DEBUG + fprintf(stderr, "%s:%d C_SignInit or C_Sign rv=%d\n", + __FILE__, __LINE__, rv); + +From be8d3bf70e19068093f7df6ae66dafa53a3f28f7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Timo=20Ter=C3=A4s?= +Date: Sun, 21 Mar 2021 20:41:20 +0200 +Subject: [PATCH 04/12] Remove legacy cruft from atfork code + +This removes the __sun cruft which is never used. The #pragma +init(lib_init) makes a function named "lib_init" an initializer, +but we don't have such function. This is likely copy-paste cruft +from where this code was taken from. + +Remove also the usage of "inline" and related checks. They add +no value in .c file as the defined functions are used. Normally +"inline" is used in header inline function definitions to remove +compiler warning of unused function (as the function might not +be used in all the C files including the header). +--- + src/p11_atfork.c | 25 +++++-------------------- + 1 file changed, 5 insertions(+), 20 deletions(-) + +diff --git a/src/p11_atfork.c b/src/p11_atfork.c +index fcbd3f4..537d10a 100644 +--- a/src/p11_atfork.c ++++ b/src/p11_atfork.c +@@ -25,31 +25,16 @@ + #ifndef _WIN32 + #include + +-#ifndef __STDC_VERSION__ +-/* older than C90 */ +-#define inline +-#endif /* __STDC_VERSION__ */ +- + #ifdef HAVE___REGISTER_ATFORK + +-#ifdef __sun +-#pragma fini(lib_deinit) +-#pragma init(lib_init) +-#define _CONSTRUCTOR +-#define _DESTRUCTOR +-#else /* __sun */ +-#define _CONSTRUCTOR __attribute__((constructor)) +-#define _DESTRUCTOR __attribute__((destructor)) +-#endif /* __sun */ +- + static unsigned int P11_forkid = 0; + +-inline static unsigned int _P11_get_forkid(void) ++static unsigned int _P11_get_forkid(void) + { + return P11_forkid; + } + +-inline static int _P11_detect_fork(unsigned int forkid) ++static int _P11_detect_fork(unsigned int forkid) + { + if (forkid == P11_forkid) + return 0; +@@ -64,7 +49,7 @@ static void fork_handler(void) + extern int __register_atfork(void (*)(void), void(*)(void), void (*)(void), void *); + extern void *__dso_handle; + +-_CONSTRUCTOR ++__attribute__((constructor)) + int _P11_register_fork_handler(void) + { + if (__register_atfork(0, 0, fork_handler, __dso_handle) != 0) +@@ -74,12 +59,12 @@ int _P11_register_fork_handler(void) + + #else /* HAVE___REGISTER_ATFORK */ + +-inline static unsigned int _P11_get_forkid(void) ++static unsigned int _P11_get_forkid(void) + { + return getpid(); + } + +-inline static int _P11_detect_fork(unsigned int forkid) ++static int _P11_detect_fork(unsigned int forkid) + { + if (getpid() == forkid) + return 0; + +From 03fbac537de0c20ef29b070146f99bf49fe9ce34 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Timo=20Ter=C3=A4s?= +Date: Sat, 20 Mar 2021 20:14:23 +0200 +Subject: [PATCH 05/12] Use pthread_atfork instead of __register_atfork + +Modify build system to detect pthreads, and use pthread_atfork +for fork handling if available. It is conforming to POSIX.1-2001 +and available widely instead of the non-standard __register_atfork. + +This is especially useful on musl c-library which does not ship +the non-standard variant. Using the atfork callbacks is prefered +as the last resort alternative adds a syscall, getpid(), to many +fast path places. +--- + configure.ac | 6 +- + m4/ax_pthread.m4 | 522 +++++++++++++++++++++++++++++++++++++++++++++++ + src/p11_atfork.c | 18 +- + 3 files changed, 536 insertions(+), 10 deletions(-) + create mode 100644 m4/ax_pthread.m4 + +diff --git a/configure.ac b/configure.ac +index 6e15443..d3b9b32 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -12,6 +12,7 @@ AC_INIT([libp11],[PACKAGE_VERSION_MAJOR.PACKAGE_VERSION_MINOR.PACKAGE_VERSION_FI + AC_CONFIG_AUX_DIR([.]) + AC_CONFIG_HEADERS([src/config.h]) + AC_CONFIG_MACRO_DIR([m4]) ++AC_CANONICAL_TARGET + AM_INIT_AUTOMAKE([subdir-objects]) + + LIBP11_VERSION_MAJOR="PACKAGE_VERSION_MAJOR" +@@ -193,7 +194,10 @@ if test "${WIN32}" != "yes"; then + , + [AC_MSG_ERROR([dlopen required])] + ) +- AC_CHECK_FUNCS([__register_atfork],,) ++ AX_PTHREAD ++ LIBS="$PTHREAD_LIBS $LIBS" ++ CFLAGS="$CFLAGS $PTHREAD_CFLAGS" ++ CC="$PTHREAD_CC" + fi + + PKG_CHECK_MODULES( +diff --git a/m4/ax_pthread.m4 b/m4/ax_pthread.m4 +new file mode 100644 +index 0000000..e5858e5 +--- /dev/null ++++ b/m4/ax_pthread.m4 +@@ -0,0 +1,522 @@ ++# =========================================================================== ++# https://www.gnu.org/software/autoconf-archive/ax_pthread.html ++# =========================================================================== ++# ++# SYNOPSIS ++# ++# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) ++# ++# DESCRIPTION ++# ++# This macro figures out how to build C programs using POSIX threads. It ++# sets the PTHREAD_LIBS output variable to the threads library and linker ++# flags, and the PTHREAD_CFLAGS output variable to any special C compiler ++# flags that are needed. (The user can also force certain compiler ++# flags/libs to be tested by setting these environment variables.) ++# ++# Also sets PTHREAD_CC and PTHREAD_CXX to any special C compiler that is ++# needed for multi-threaded programs (defaults to the value of CC ++# respectively CXX otherwise). (This is necessary on e.g. AIX to use the ++# special cc_r/CC_r compiler alias.) ++# ++# NOTE: You are assumed to not only compile your program with these flags, ++# but also to link with them as well. For example, you might link with ++# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS ++# $PTHREAD_CXX $CXXFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS ++# ++# If you are only building threaded programs, you may wish to use these ++# variables in your default LIBS, CFLAGS, and CC: ++# ++# LIBS="$PTHREAD_LIBS $LIBS" ++# CFLAGS="$CFLAGS $PTHREAD_CFLAGS" ++# CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS" ++# CC="$PTHREAD_CC" ++# CXX="$PTHREAD_CXX" ++# ++# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant ++# has a nonstandard name, this macro defines PTHREAD_CREATE_JOINABLE to ++# that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX). ++# ++# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the ++# PTHREAD_PRIO_INHERIT symbol is defined when compiling with ++# PTHREAD_CFLAGS. ++# ++# ACTION-IF-FOUND is a list of shell commands to run if a threads library ++# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it ++# is not found. If ACTION-IF-FOUND is not specified, the default action ++# will define HAVE_PTHREAD. ++# ++# Please let the authors know if this macro fails on any platform, or if ++# you have any other suggestions or comments. This macro was based on work ++# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help ++# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by ++# Alejandro Forero Cuervo to the autoconf macro repository. We are also ++# grateful for the helpful feedback of numerous users. ++# ++# Updated for Autoconf 2.68 by Daniel Richard G. ++# ++# LICENSE ++# ++# Copyright (c) 2008 Steven G. Johnson ++# Copyright (c) 2011 Daniel Richard G. ++# Copyright (c) 2019 Marc Stevens ++# ++# This program is free software: you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by the ++# Free Software Foundation, either version 3 of the License, or (at your ++# option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General ++# Public License for more details. ++# ++# You should have received a copy of the GNU General Public License along ++# with this program. If not, see . ++# ++# As a special exception, the respective Autoconf Macro's copyright owner ++# gives unlimited permission to copy, distribute and modify the configure ++# scripts that are the output of Autoconf when processing the Macro. You ++# need not follow the terms of the GNU General Public License when using ++# or distributing such scripts, even though portions of the text of the ++# Macro appear in them. The GNU General Public License (GPL) does govern ++# all other use of the material that constitutes the Autoconf Macro. ++# ++# This special exception to the GPL applies to versions of the Autoconf ++# Macro released by the Autoconf Archive. When you make and distribute a ++# modified version of the Autoconf Macro, you may extend this special ++# exception to the GPL to apply to your modified version as well. ++ ++#serial 30 ++ ++AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD]) ++AC_DEFUN([AX_PTHREAD], [ ++AC_REQUIRE([AC_CANONICAL_TARGET]) ++AC_REQUIRE([AC_PROG_CC]) ++AC_REQUIRE([AC_PROG_SED]) ++AC_LANG_PUSH([C]) ++ax_pthread_ok=no ++ ++# We used to check for pthread.h first, but this fails if pthread.h ++# requires special compiler flags (e.g. on Tru64 or Sequent). ++# It gets checked for in the link test anyway. ++ ++# First of all, check if the user has set any of the PTHREAD_LIBS, ++# etcetera environment variables, and if threads linking works using ++# them: ++if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then ++ ax_pthread_save_CC="$CC" ++ ax_pthread_save_CFLAGS="$CFLAGS" ++ ax_pthread_save_LIBS="$LIBS" ++ AS_IF([test "x$PTHREAD_CC" != "x"], [CC="$PTHREAD_CC"]) ++ AS_IF([test "x$PTHREAD_CXX" != "x"], [CXX="$PTHREAD_CXX"]) ++ CFLAGS="$CFLAGS $PTHREAD_CFLAGS" ++ LIBS="$PTHREAD_LIBS $LIBS" ++ AC_MSG_CHECKING([for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS]) ++ AC_LINK_IFELSE([AC_LANG_CALL([], [pthread_join])], [ax_pthread_ok=yes]) ++ AC_MSG_RESULT([$ax_pthread_ok]) ++ if test "x$ax_pthread_ok" = "xno"; then ++ PTHREAD_LIBS="" ++ PTHREAD_CFLAGS="" ++ fi ++ CC="$ax_pthread_save_CC" ++ CFLAGS="$ax_pthread_save_CFLAGS" ++ LIBS="$ax_pthread_save_LIBS" ++fi ++ ++# We must check for the threads library under a number of different ++# names; the ordering is very important because some systems ++# (e.g. DEC) have both -lpthread and -lpthreads, where one of the ++# libraries is broken (non-POSIX). ++ ++# Create a list of thread flags to try. Items with a "," contain both ++# C compiler flags (before ",") and linker flags (after ","). Other items ++# starting with a "-" are C compiler flags, and remaining items are ++# library names, except for "none" which indicates that we try without ++# any flags at all, and "pthread-config" which is a program returning ++# the flags for the Pth emulation library. ++ ++ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" ++ ++# The ordering *is* (sometimes) important. Some notes on the ++# individual items follow: ++ ++# pthreads: AIX (must check this before -lpthread) ++# none: in case threads are in libc; should be tried before -Kthread and ++# other compiler flags to prevent continual compiler warnings ++# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) ++# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64 ++# (Note: HP C rejects this with "bad form for `-t' option") ++# -pthreads: Solaris/gcc (Note: HP C also rejects) ++# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it ++# doesn't hurt to check since this sometimes defines pthreads and ++# -D_REENTRANT too), HP C (must be checked before -lpthread, which ++# is present but should not be used directly; and before -mthreads, ++# because the compiler interprets this as "-mt" + "-hreads") ++# -mthreads: Mingw32/gcc, Lynx/gcc ++# pthread: Linux, etcetera ++# --thread-safe: KAI C++ ++# pthread-config: use pthread-config program (for GNU Pth library) ++ ++case $target_os in ++ ++ freebsd*) ++ ++ # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) ++ # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) ++ ++ ax_pthread_flags="-kthread lthread $ax_pthread_flags" ++ ;; ++ ++ hpux*) ++ ++ # From the cc(1) man page: "[-mt] Sets various -D flags to enable ++ # multi-threading and also sets -lpthread." ++ ++ ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags" ++ ;; ++ ++ openedition*) ++ ++ # IBM z/OS requires a feature-test macro to be defined in order to ++ # enable POSIX threads at all, so give the user a hint if this is ++ # not set. (We don't define these ourselves, as they can affect ++ # other portions of the system API in unpredictable ways.) ++ ++ AC_EGREP_CPP([AX_PTHREAD_ZOS_MISSING], ++ [ ++# if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS) ++ AX_PTHREAD_ZOS_MISSING ++# endif ++ ], ++ [AC_MSG_WARN([IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support.])]) ++ ;; ++ ++ solaris*) ++ ++ # On Solaris (at least, for some versions), libc contains stubbed ++ # (non-functional) versions of the pthreads routines, so link-based ++ # tests will erroneously succeed. (N.B.: The stubs are missing ++ # pthread_cleanup_push, or rather a function called by this macro, ++ # so we could check for that, but who knows whether they'll stub ++ # that too in a future libc.) So we'll check first for the ++ # standard Solaris way of linking pthreads (-mt -lpthread). ++ ++ ax_pthread_flags="-mt,-lpthread pthread $ax_pthread_flags" ++ ;; ++esac ++ ++# Are we compiling with Clang? ++ ++AC_CACHE_CHECK([whether $CC is Clang], ++ [ax_cv_PTHREAD_CLANG], ++ [ax_cv_PTHREAD_CLANG=no ++ # Note that Autoconf sets GCC=yes for Clang as well as GCC ++ if test "x$GCC" = "xyes"; then ++ AC_EGREP_CPP([AX_PTHREAD_CC_IS_CLANG], ++ [/* Note: Clang 2.7 lacks __clang_[a-z]+__ */ ++# if defined(__clang__) && defined(__llvm__) ++ AX_PTHREAD_CC_IS_CLANG ++# endif ++ ], ++ [ax_cv_PTHREAD_CLANG=yes]) ++ fi ++ ]) ++ax_pthread_clang="$ax_cv_PTHREAD_CLANG" ++ ++ ++# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC) ++ ++# Note that for GCC and Clang -pthread generally implies -lpthread, ++# except when -nostdlib is passed. ++# This is problematic using libtool to build C++ shared libraries with pthread: ++# [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460 ++# [2] https://bugzilla.redhat.com/show_bug.cgi?id=661333 ++# [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=468555 ++# To solve this, first try -pthread together with -lpthread for GCC ++ ++AS_IF([test "x$GCC" = "xyes"], ++ [ax_pthread_flags="-pthread,-lpthread -pthread -pthreads $ax_pthread_flags"]) ++ ++# Clang takes -pthread (never supported any other flag), but we'll try with -lpthread first ++ ++AS_IF([test "x$ax_pthread_clang" = "xyes"], ++ [ax_pthread_flags="-pthread,-lpthread -pthread"]) ++ ++ ++# The presence of a feature test macro requesting re-entrant function ++# definitions is, on some systems, a strong hint that pthreads support is ++# correctly enabled ++ ++case $target_os in ++ darwin* | hpux* | linux* | osf* | solaris*) ++ ax_pthread_check_macro="_REENTRANT" ++ ;; ++ ++ aix*) ++ ax_pthread_check_macro="_THREAD_SAFE" ++ ;; ++ ++ *) ++ ax_pthread_check_macro="--" ++ ;; ++esac ++AS_IF([test "x$ax_pthread_check_macro" = "x--"], ++ [ax_pthread_check_cond=0], ++ [ax_pthread_check_cond="!defined($ax_pthread_check_macro)"]) ++ ++ ++if test "x$ax_pthread_ok" = "xno"; then ++for ax_pthread_try_flag in $ax_pthread_flags; do ++ ++ case $ax_pthread_try_flag in ++ none) ++ AC_MSG_CHECKING([whether pthreads work without any flags]) ++ ;; ++ ++ *,*) ++ PTHREAD_CFLAGS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\1/"` ++ PTHREAD_LIBS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\2/"` ++ AC_MSG_CHECKING([whether pthreads work with "$PTHREAD_CFLAGS" and "$PTHREAD_LIBS"]) ++ ;; ++ ++ -*) ++ AC_MSG_CHECKING([whether pthreads work with $ax_pthread_try_flag]) ++ PTHREAD_CFLAGS="$ax_pthread_try_flag" ++ ;; ++ ++ pthread-config) ++ AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no]) ++ AS_IF([test "x$ax_pthread_config" = "xno"], [continue]) ++ PTHREAD_CFLAGS="`pthread-config --cflags`" ++ PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" ++ ;; ++ ++ *) ++ AC_MSG_CHECKING([for the pthreads library -l$ax_pthread_try_flag]) ++ PTHREAD_LIBS="-l$ax_pthread_try_flag" ++ ;; ++ esac ++ ++ ax_pthread_save_CFLAGS="$CFLAGS" ++ ax_pthread_save_LIBS="$LIBS" ++ CFLAGS="$CFLAGS $PTHREAD_CFLAGS" ++ LIBS="$PTHREAD_LIBS $LIBS" ++ ++ # Check for various functions. We must include pthread.h, ++ # since some functions may be macros. (On the Sequent, we ++ # need a special flag -Kthread to make this header compile.) ++ # We check for pthread_join because it is in -lpthread on IRIX ++ # while pthread_create is in libc. We check for pthread_attr_init ++ # due to DEC craziness with -lpthreads. We check for ++ # pthread_cleanup_push because it is one of the few pthread ++ # functions on Solaris that doesn't have a non-functional libc stub. ++ # We try pthread_create on general principles. ++ ++ AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ++# if $ax_pthread_check_cond ++# error "$ax_pthread_check_macro must be defined" ++# endif ++ static void *some_global = NULL; ++ static void routine(void *a) ++ { ++ /* To avoid any unused-parameter or ++ unused-but-set-parameter warning. */ ++ some_global = a; ++ } ++ static void *start_routine(void *a) { return a; }], ++ [pthread_t th; pthread_attr_t attr; ++ pthread_create(&th, 0, start_routine, 0); ++ pthread_join(th, 0); ++ pthread_attr_init(&attr); ++ pthread_cleanup_push(routine, 0); ++ pthread_cleanup_pop(0) /* ; */])], ++ [ax_pthread_ok=yes], ++ []) ++ ++ CFLAGS="$ax_pthread_save_CFLAGS" ++ LIBS="$ax_pthread_save_LIBS" ++ ++ AC_MSG_RESULT([$ax_pthread_ok]) ++ AS_IF([test "x$ax_pthread_ok" = "xyes"], [break]) ++ ++ PTHREAD_LIBS="" ++ PTHREAD_CFLAGS="" ++done ++fi ++ ++ ++# Clang needs special handling, because older versions handle the -pthread ++# option in a rather... idiosyncratic way ++ ++if test "x$ax_pthread_clang" = "xyes"; then ++ ++ # Clang takes -pthread; it has never supported any other flag ++ ++ # (Note 1: This will need to be revisited if a system that Clang ++ # supports has POSIX threads in a separate library. This tends not ++ # to be the way of modern systems, but it's conceivable.) ++ ++ # (Note 2: On some systems, notably Darwin, -pthread is not needed ++ # to get POSIX threads support; the API is always present and ++ # active. We could reasonably leave PTHREAD_CFLAGS empty. But ++ # -pthread does define _REENTRANT, and while the Darwin headers ++ # ignore this macro, third-party headers might not.) ++ ++ # However, older versions of Clang make a point of warning the user ++ # that, in an invocation where only linking and no compilation is ++ # taking place, the -pthread option has no effect ("argument unused ++ # during compilation"). They expect -pthread to be passed in only ++ # when source code is being compiled. ++ # ++ # Problem is, this is at odds with the way Automake and most other ++ # C build frameworks function, which is that the same flags used in ++ # compilation (CFLAGS) are also used in linking. Many systems ++ # supported by AX_PTHREAD require exactly this for POSIX threads ++ # support, and in fact it is often not straightforward to specify a ++ # flag that is used only in the compilation phase and not in ++ # linking. Such a scenario is extremely rare in practice. ++ # ++ # Even though use of the -pthread flag in linking would only print ++ # a warning, this can be a nuisance for well-run software projects ++ # that build with -Werror. So if the active version of Clang has ++ # this misfeature, we search for an option to squash it. ++ ++ AC_CACHE_CHECK([whether Clang needs flag to prevent "argument unused" warning when linking with -pthread], ++ [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG], ++ [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown ++ # Create an alternate version of $ac_link that compiles and ++ # links in two steps (.c -> .o, .o -> exe) instead of one ++ # (.c -> exe), because the warning occurs only in the second ++ # step ++ ax_pthread_save_ac_link="$ac_link" ++ ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g' ++ ax_pthread_link_step=`AS_ECHO(["$ac_link"]) | sed "$ax_pthread_sed"` ++ ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)" ++ ax_pthread_save_CFLAGS="$CFLAGS" ++ for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do ++ AS_IF([test "x$ax_pthread_try" = "xunknown"], [break]) ++ CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS" ++ ac_link="$ax_pthread_save_ac_link" ++ AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])], ++ [ac_link="$ax_pthread_2step_ac_link" ++ AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])], ++ [break]) ++ ]) ++ done ++ ac_link="$ax_pthread_save_ac_link" ++ CFLAGS="$ax_pthread_save_CFLAGS" ++ AS_IF([test "x$ax_pthread_try" = "x"], [ax_pthread_try=no]) ++ ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try" ++ ]) ++ ++ case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in ++ no | unknown) ;; ++ *) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;; ++ esac ++ ++fi # $ax_pthread_clang = yes ++ ++ ++ ++# Various other checks: ++if test "x$ax_pthread_ok" = "xyes"; then ++ ax_pthread_save_CFLAGS="$CFLAGS" ++ ax_pthread_save_LIBS="$LIBS" ++ CFLAGS="$CFLAGS $PTHREAD_CFLAGS" ++ LIBS="$PTHREAD_LIBS $LIBS" ++ ++ # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. ++ AC_CACHE_CHECK([for joinable pthread attribute], ++ [ax_cv_PTHREAD_JOINABLE_ATTR], ++ [ax_cv_PTHREAD_JOINABLE_ATTR=unknown ++ for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do ++ AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], ++ [int attr = $ax_pthread_attr; return attr /* ; */])], ++ [ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break], ++ []) ++ done ++ ]) ++ AS_IF([test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \ ++ test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \ ++ test "x$ax_pthread_joinable_attr_defined" != "xyes"], ++ [AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], ++ [$ax_cv_PTHREAD_JOINABLE_ATTR], ++ [Define to necessary symbol if this constant ++ uses a non-standard name on your system.]) ++ ax_pthread_joinable_attr_defined=yes ++ ]) ++ ++ AC_CACHE_CHECK([whether more special flags are required for pthreads], ++ [ax_cv_PTHREAD_SPECIAL_FLAGS], ++ [ax_cv_PTHREAD_SPECIAL_FLAGS=no ++ case $target_os in ++ solaris*) ++ ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS" ++ ;; ++ esac ++ ]) ++ AS_IF([test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \ ++ test "x$ax_pthread_special_flags_added" != "xyes"], ++ [PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS" ++ ax_pthread_special_flags_added=yes]) ++ ++ AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT], ++ [ax_cv_PTHREAD_PRIO_INHERIT], ++ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], ++ [[int i = PTHREAD_PRIO_INHERIT; ++ return i;]])], ++ [ax_cv_PTHREAD_PRIO_INHERIT=yes], ++ [ax_cv_PTHREAD_PRIO_INHERIT=no]) ++ ]) ++ AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \ ++ test "x$ax_pthread_prio_inherit_defined" != "xyes"], ++ [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.]) ++ ax_pthread_prio_inherit_defined=yes ++ ]) ++ ++ CFLAGS="$ax_pthread_save_CFLAGS" ++ LIBS="$ax_pthread_save_LIBS" ++ ++ # More AIX lossage: compile with *_r variant ++ if test "x$GCC" != "xyes"; then ++ case $target_os in ++ aix*) ++ AS_CASE(["x/$CC"], ++ [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6], ++ [#handle absolute path differently from PATH based program lookup ++ AS_CASE(["x$CC"], ++ [x/*], ++ [ ++ AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"]) ++ AS_IF([test "x${CXX}" != "x"], [AS_IF([AS_EXECUTABLE_P([${CXX}_r])],[PTHREAD_CXX="${CXX}_r"])]) ++ ], ++ [ ++ AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC]) ++ AS_IF([test "x${CXX}" != "x"], [AC_CHECK_PROGS([PTHREAD_CXX],[${CXX}_r],[$CXX])]) ++ ] ++ ) ++ ]) ++ ;; ++ esac ++ fi ++fi ++ ++test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" ++test -n "$PTHREAD_CXX" || PTHREAD_CXX="$CXX" ++ ++AC_SUBST([PTHREAD_LIBS]) ++AC_SUBST([PTHREAD_CFLAGS]) ++AC_SUBST([PTHREAD_CC]) ++AC_SUBST([PTHREAD_CXX]) ++ ++# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: ++if test "x$ax_pthread_ok" = "xyes"; then ++ ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1]) ++ : ++else ++ ax_pthread_ok=no ++ $2 ++fi ++AC_LANG_POP ++])dnl AX_PTHREAD +diff --git a/src/p11_atfork.c b/src/p11_atfork.c +index 537d10a..6e4b37e 100644 +--- a/src/p11_atfork.c ++++ b/src/p11_atfork.c +@@ -23,9 +23,10 @@ + #include "libp11-int.h" + + #ifndef _WIN32 +-#include + +-#ifdef HAVE___REGISTER_ATFORK ++#ifdef HAVE_PTHREAD ++ ++#include + + static unsigned int P11_forkid = 0; + +@@ -41,23 +42,22 @@ static int _P11_detect_fork(unsigned int forkid) + return 1; + } + +-static void fork_handler(void) ++static void _P11_atfork_child(void) + { + P11_forkid++; + } + +-extern int __register_atfork(void (*)(void), void(*)(void), void (*)(void), void *); +-extern void *__dso_handle; +- + __attribute__((constructor)) + int _P11_register_fork_handler(void) + { +- if (__register_atfork(0, 0, fork_handler, __dso_handle) != 0) ++ if (pthread_atfork(0, 0, _P11_atfork_child) != 0) + return -1; + return 0; + } + +-#else /* HAVE___REGISTER_ATFORK */ ++#else /* HAVE_PTHREAD */ ++ ++#include + + static unsigned int _P11_get_forkid(void) + { +@@ -71,7 +71,7 @@ static int _P11_detect_fork(unsigned int forkid) + return 1; + } + +-#endif /* HAVE___REGISTER_ATFORK */ ++#endif /* HAVE_PTHREAD */ + + #else /* !_WIN32 */ + + +From f109cf277336b29f8cf0673094c427d0126e2999 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Timo=20Ter=C3=A4s?= +Date: Sun, 21 Mar 2021 20:57:15 +0200 +Subject: [PATCH 06/12] Refactor atfork logic to elide locking on fast path + +The atfork infrastructure is modified so that on Windows it +optimizes practically to nothing. + +Otherwise the forkid is kept in a global variable, which is +updated exactly once per check round (to minimize syscalls). + +A fast path to avoid locking is added. When the atfork check +is done, it is guaranteed that the P11_forkid does not change +(it can change only for the after-fork child process). + +Only if a fork is detected, the locks are taken. Each object's +forkid is again checked in each of the check_*_int calls, so they +get updated only once even if the child is multithreaded. + +This already improves performance measurably, but is even more +important to avoid lock contention after session pooling support +is added. +--- + src/p11_atfork.c | 86 +++++++++++++++++++----------------------------- + 1 file changed, 34 insertions(+), 52 deletions(-) + +diff --git a/src/p11_atfork.c b/src/p11_atfork.c +index 6e4b37e..134c402 100644 +--- a/src/p11_atfork.c ++++ b/src/p11_atfork.c +@@ -24,23 +24,11 @@ + + #ifndef _WIN32 + +-#ifdef HAVE_PTHREAD +- +-#include +- + static unsigned int P11_forkid = 0; + +-static unsigned int _P11_get_forkid(void) +-{ +- return P11_forkid; +-} ++#ifdef HAVE_PTHREAD + +-static int _P11_detect_fork(unsigned int forkid) +-{ +- if (forkid == P11_forkid) +- return 0; +- return 1; +-} ++#include + + static void _P11_atfork_child(void) + { +@@ -55,34 +43,47 @@ int _P11_register_fork_handler(void) + return 0; + } + ++static unsigned int _P11_update_forkid(void) ++{ ++ return P11_forkid; ++} ++ + #else /* HAVE_PTHREAD */ + + #include + +-static unsigned int _P11_get_forkid(void) +-{ +- return getpid(); +-} +- +-static int _P11_detect_fork(unsigned int forkid) ++static unsigned int _P11_update_forkid(void) + { +- if (getpid() == forkid) +- return 0; +- return 1; ++ P11_forkid = (unsigned int)getpid(); ++ return P11_forkid; + } + + #endif /* HAVE_PTHREAD */ + ++#define CHECK_FORKID(ctx, forkid, function_call) \ ++ do { \ ++ int rv = 0; \ ++ _P11_update_forkid(); \ ++ if (forkid != P11_forkid) { \ ++ CRYPTO_THREAD_write_lock(PRIVCTX(ctx)->rwlock); \ ++ function_call; \ ++ CRYPTO_THREAD_unlock(PRIVCTX(ctx)->rwlock); \ ++ } \ ++ return rv; \ ++ } while (0) ++ + #else /* !_WIN32 */ + +-#define _P11_get_forkid() 0 +-#define _P11_detect_fork(x) 0 ++#define P11_forkid 0 ++#define _P11_update_forkid() 0 ++#define CHECK_FORKID(ctx, forkid, function_call) return 0 + + #endif /* !_WIN32 */ + + unsigned int get_forkid() + { +- return _P11_get_forkid(); ++ _P11_update_forkid(); ++ return P11_forkid; + } + + /* +@@ -94,10 +95,10 @@ static int check_fork_int(PKCS11_CTX *ctx) + { + PKCS11_CTX_private *cpriv = PRIVCTX(ctx); + +- if (_P11_detect_fork(cpriv->forkid)) { ++ if (cpriv->forkid != P11_forkid) { + if (pkcs11_CTX_reload(ctx) < 0) + return -1; +- cpriv->forkid = _P11_get_forkid(); ++ cpriv->forkid = P11_forkid; + } + return 0; + } +@@ -157,16 +158,9 @@ static int check_key_fork_int(PKCS11_KEY *key) + */ + int check_fork(PKCS11_CTX *ctx) + { +- PKCS11_CTX_private *cpriv; +- int rv; +- + if (!ctx) + return -1; +- cpriv = PRIVCTX(ctx); +- CRYPTO_THREAD_write_lock(cpriv->rwlock); +- rv = check_fork_int(ctx); +- CRYPTO_THREAD_unlock(cpriv->rwlock); +- return rv; ++ CHECK_FORKID(ctx, PRIVCTX(ctx)->forkid, check_fork_int(ctx)); + } + + /* +@@ -174,16 +168,10 @@ int check_fork(PKCS11_CTX *ctx) + */ + int check_slot_fork(PKCS11_SLOT *slot) + { +- PKCS11_CTX_private *cpriv; +- int rv; +- + if (!slot) + return -1; +- cpriv = PRIVCTX(SLOT2CTX(slot)); +- CRYPTO_THREAD_write_lock(cpriv->rwlock); +- rv = check_slot_fork_int(slot); +- CRYPTO_THREAD_unlock(cpriv->rwlock); +- return rv; ++ CHECK_FORKID(SLOT2CTX(slot), PRIVSLOT(slot)->forkid, ++ check_slot_fork_int(slot)); + } + + /* +@@ -201,16 +189,10 @@ int check_token_fork(PKCS11_TOKEN *token) + */ + int check_key_fork(PKCS11_KEY *key) + { +- PKCS11_CTX_private *cpriv; +- int rv; +- + if (!key) + return -1; +- cpriv = PRIVCTX(KEY2CTX(key)); +- CRYPTO_THREAD_write_lock(cpriv->rwlock); +- rv = check_key_fork_int(key); +- CRYPTO_THREAD_unlock(cpriv->rwlock); +- return rv; ++ CHECK_FORKID(KEY2CTX(key), PRIVKEY(key)->forkid, ++ check_key_fork_int(key)); + } + + /* + +From 22a19c19a009c0b467e0ac602b0899b202045014 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Timo=20Ter=C3=A4s?= +Date: Sun, 21 Mar 2021 21:08:23 +0200 +Subject: [PATCH 07/12] Remove complexity from slot reinitialization after fork + +After fork the context handler will reset the PKCS#11 module by +calling C_Initialize. After this all handles from the module should +be considered invalidated. + +This combines the session opening and logging after fork to single +function, and removes the relogin flag from functions where it's +not needed. The new pkcs11_reload_slot() properly update the state +so the normal functions operate as expected. + +This also fixes a memory leak after fork: if the slot was in +logged-in state, a session was leaked from check_slot_fork_int because: + 1. the "if loggedIn" clears state, and calls pkcs11_relogin() which + also implicitly opens a session + 2. the next "if haveSession" block fires also, and clears state, + and calls pkcs11_reopen_session. This function will explicitly + call C_OpenSession overwriting and leaking the session from step #1 +--- + src/libp11-int.h | 7 +++---- + src/libp11.h | 2 -- + src/p11_atfork.c | 18 ++++------------- + src/p11_ckr.c | 1 - + src/p11_front.c | 4 ++-- + src/p11_slot.c | 52 ++++++++++++++++++++---------------------------- + 6 files changed, 31 insertions(+), 53 deletions(-) + +diff --git a/src/libp11-int.h b/src/libp11-int.h +index aa19295..9676f2c 100644 +--- a/src/libp11-int.h ++++ b/src/libp11-int.h +@@ -169,8 +169,7 @@ extern CK_RV C_UnloadModule(void *module); + extern void pkcs11_destroy_keys(PKCS11_TOKEN *, unsigned int); + extern void pkcs11_destroy_certs(PKCS11_TOKEN *); + extern int pkcs11_reload_key(PKCS11_KEY *); +-extern int pkcs11_reopen_session(PKCS11_SLOT * slot); +-extern int pkcs11_relogin(PKCS11_SLOT * slot); ++extern int pkcs11_reload_slot(PKCS11_SLOT * slot); + + /* Managing object attributes */ + extern int pkcs11_getattr_var(PKCS11_TOKEN *, CK_OBJECT_HANDLE, +@@ -232,7 +231,7 @@ extern void pkcs11_CTX_unload(PKCS11_CTX * ctx); + extern void pkcs11_CTX_free(PKCS11_CTX * ctx); + + /* Open a session in RO or RW mode */ +-extern int pkcs11_open_session(PKCS11_SLOT * slot, int rw, int relogin); ++extern int pkcs11_open_session(PKCS11_SLOT * slot, int rw); + + /* Get a list of all slots */ + extern int pkcs11_enumerate_slots(PKCS11_CTX * ctx, +@@ -258,7 +257,7 @@ extern PKCS11_SLOT *pkcs11_find_next_token(PKCS11_CTX * ctx, + extern int pkcs11_is_logged_in(PKCS11_SLOT * slot, int so, int * res); + + /* Authenticate to the card */ +-extern int pkcs11_login(PKCS11_SLOT * slot, int so, const char *pin, int relogin); ++extern int pkcs11_login(PKCS11_SLOT * slot, int so, const char *pin); + + /* De-authenticate from the card */ + extern int pkcs11_logout(PKCS11_SLOT * slot); +diff --git a/src/libp11.h b/src/libp11.h +index e3da418..37cb432 100644 +--- a/src/libp11.h ++++ b/src/libp11.h +@@ -511,7 +511,6 @@ P11_DEPRECATED_FUNC extern int PKCS11_private_decrypt( + # define CKR_F_PKCS11_PRIVATE_DECRYPT 121 + # define CKR_F_PKCS11_PRIVATE_ENCRYPT 122 + # define CKR_F_PKCS11_RELOAD_KEY 123 +-# define CKR_F_PKCS11_REOPEN_SESSION 124 + # define CKR_F_PKCS11_SEED_RANDOM 125 + # define CKR_F_PKCS11_STORE_CERTIFICATE 126 + # define CKR_F_PKCS11_STORE_KEY 127 +@@ -544,7 +543,6 @@ P11_DEPRECATED_FUNC extern int PKCS11_private_decrypt( + #define PKCS11_F_PKCS11_PRIVATE_DECRYPT CKR_F_PKCS11_PRIVATE_DECRYPT + #define PKCS11_F_PKCS11_PRIVATE_ENCRYPT CKR_F_PKCS11_PRIVATE_ENCRYPT + #define PKCS11_F_PKCS11_RELOAD_KEY CKR_F_PKCS11_RELOAD_KEY +-#define PKCS11_F_PKCS11_REOPEN_SESSION CKR_F_PKCS11_REOPEN_SESSION + #define PKCS11_F_PKCS11_SEED_RANDOM CKR_F_PKCS11_SEED_RANDOM + #define PKCS11_F_PKCS11_STORE_CERTIFICATE CKR_F_PKCS11_STORE_CERTIFICATE + #define PKCS11_F_PKCS11_STORE_KEY CKR_F_PKCS11_STORE_KEY +diff --git a/src/p11_atfork.c b/src/p11_atfork.c +index 134c402..9313ba3 100644 +--- a/src/p11_atfork.c ++++ b/src/p11_atfork.c +@@ -116,19 +116,8 @@ static int check_slot_fork_int(PKCS11_SLOT *slot) + if (check_fork_int(SLOT2CTX(slot)) < 0) + return -1; + if (spriv->forkid != cpriv->forkid) { +- if (spriv->loggedIn) { +- int saved = spriv->haveSession; +- spriv->haveSession = 0; +- spriv->loggedIn = 0; +- if (pkcs11_relogin(slot) < 0) +- return -1; +- spriv->haveSession = saved; +- } +- if (spriv->haveSession) { +- spriv->haveSession = 0; +- if (pkcs11_reopen_session(slot) < 0) +- return -1; +- } ++ if (pkcs11_reload_slot(slot) < 0) ++ return -1; + spriv->forkid = cpriv->forkid; + } + return 0; +@@ -147,7 +136,8 @@ static int check_key_fork_int(PKCS11_KEY *key) + if (check_slot_fork_int(slot) < 0) + return -1; + if (spriv->forkid != kpriv->forkid) { +- pkcs11_reload_key(key); ++ if (pkcs11_reload_key(key) < 0) ++ return -1; + kpriv->forkid = spriv->forkid; + } + return 0; +diff --git a/src/p11_ckr.c b/src/p11_ckr.c +index 228edcd..280a722 100644 +--- a/src/p11_ckr.c ++++ b/src/p11_ckr.c +@@ -52,7 +52,6 @@ static ERR_STRING_DATA CKR_str_functs[] = { + {ERR_FUNC(CKR_F_PKCS11_PRIVATE_DECRYPT), "pkcs11_private_decrypt"}, + {ERR_FUNC(CKR_F_PKCS11_PRIVATE_ENCRYPT), "pkcs11_private_encrypt"}, + {ERR_FUNC(CKR_F_PKCS11_RELOAD_KEY), "pkcs11_reload_key"}, +- {ERR_FUNC(CKR_F_PKCS11_REOPEN_SESSION), "pkcs11_reopen_session"}, + {ERR_FUNC(CKR_F_PKCS11_SEED_RANDOM), "pkcs11_seed_random"}, + {ERR_FUNC(CKR_F_PKCS11_STORE_CERTIFICATE), "pkcs11_store_certificate"}, + {ERR_FUNC(CKR_F_PKCS11_STORE_KEY), "pkcs11_store_key"}, +diff --git a/src/p11_front.c b/src/p11_front.c +index 3a7bcd5..2bf7a7f 100644 +--- a/src/p11_front.c ++++ b/src/p11_front.c +@@ -64,7 +64,7 @@ int PKCS11_open_session(PKCS11_SLOT *slot, int rw) + { + if (check_slot_fork(slot) < 0) + return -1; +- return pkcs11_open_session(slot, rw, 0); ++ return pkcs11_open_session(slot, rw); + } + + int PKCS11_enumerate_slots(PKCS11_CTX *ctx, +@@ -118,7 +118,7 @@ int PKCS11_login(PKCS11_SLOT *slot, int so, const char *pin) + { + if (check_slot_fork(slot) < 0) + return -1; +- return pkcs11_login(slot, so, pin, 0); ++ return pkcs11_login(slot, so, pin); + } + + int PKCS11_logout(PKCS11_SLOT *slot) +diff --git a/src/p11_slot.c b/src/p11_slot.c +index 8934474..6f08269 100644 +--- a/src/p11_slot.c ++++ b/src/p11_slot.c +@@ -147,17 +147,15 @@ PKCS11_SLOT *pkcs11_find_next_token(PKCS11_CTX *ctx, PKCS11_SLOT *slots, + /* + * Open a session with this slot + */ +-int pkcs11_open_session(PKCS11_SLOT *slot, int rw, int relogin) ++int pkcs11_open_session(PKCS11_SLOT *slot, int rw) + { + PKCS11_SLOT_private *spriv = PRIVSLOT(slot); + PKCS11_CTX *ctx = SLOT2CTX(slot); + int rv; + +- if (relogin == 0) { +- if (spriv->haveSession) { +- CRYPTOKI_call(ctx, C_CloseSession(spriv->session)); +- spriv->haveSession = 0; +- } ++ if (spriv->haveSession) { ++ CRYPTOKI_call(ctx, C_CloseSession(spriv->session)); ++ spriv->haveSession = 0; + } + rv = CRYPTOKI_call(ctx, + C_OpenSession(spriv->id, +@@ -170,22 +168,6 @@ int pkcs11_open_session(PKCS11_SLOT *slot, int rw, int relogin) + return 0; + } + +-int pkcs11_reopen_session(PKCS11_SLOT *slot) +-{ +- PKCS11_SLOT_private *spriv = PRIVSLOT(slot); +- PKCS11_CTX *ctx = SLOT2CTX(slot); +- int rv; +- +- rv = CRYPTOKI_call(ctx, +- C_OpenSession(spriv->id, +- CKF_SERIAL_SESSION | (spriv->prev_rw ? CKF_RW_SESSION : 0), +- NULL, NULL, &spriv->session)); +- CRYPTOKI_checkerr(CKR_F_PKCS11_REOPEN_SESSION, rv); +- spriv->haveSession = 1; +- +- return 0; +-} +- + /* + * Determines if user is authenticated with token + */ +@@ -219,22 +201,21 @@ int pkcs11_is_logged_in(PKCS11_SLOT *slot, int so, int *res) + } + + /* +- * Authenticate with the card. relogin should be set if we automatically +- * relogin after a fork. ++ * Authenticate with the card. + */ +-int pkcs11_login(PKCS11_SLOT *slot, int so, const char *pin, int relogin) ++int pkcs11_login(PKCS11_SLOT *slot, int so, const char *pin) + { + PKCS11_CTX *ctx = SLOT2CTX(slot); + PKCS11_SLOT_private *spriv = PRIVSLOT(slot); + int rv; + +- if (!relogin && spriv->loggedIn) ++ if (spriv->loggedIn) + return 0; /* Nothing to do */ + + if (!spriv->haveSession) { + /* SO gets a r/w session by default, + * user gets a r/o session by default. */ +- if (pkcs11_open_session(slot, so, relogin)) ++ if (pkcs11_open_session(slot, so)) + return -1; + } + +@@ -257,13 +238,24 @@ int pkcs11_login(PKCS11_SLOT *slot, int so, const char *pin, int relogin) + } + + /* +- * Authenticate with the card ++ * Reopens the slot by creating a session and logging in if needed. + */ +-int pkcs11_relogin(PKCS11_SLOT *slot) ++int pkcs11_reload_slot(PKCS11_SLOT *slot) + { + PKCS11_SLOT_private *spriv = PRIVSLOT(slot); + +- return pkcs11_login(slot, spriv->prev_so, spriv->prev_pin, 1); ++ if (spriv->haveSession) { ++ spriv->haveSession = 0; ++ if (pkcs11_open_session(slot, spriv->prev_rw)) ++ return -1; ++ } ++ if (spriv->loggedIn) { ++ spriv->loggedIn = 0; ++ if (pkcs11_login(slot, spriv->prev_so, spriv->prev_pin)) ++ return -1; ++ } ++ ++ return 0; + } + + /* + +From be88be24c3c43716ca55703235e7dcf1565b62ee Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Timo=20Ter=C3=A4s?= +Date: Sun, 21 Mar 2021 21:46:46 +0200 +Subject: [PATCH 08/12] Implement atfork handling for certificates + +This removes a search operation from pkcs11_remove_certificate() +and simplifies it greatly. This makes also the handling of certificates +similar to other objects, as only this was lacking the fork handling. + +Also fixed the memory leaks on error paths of pkcs11_remove_certificate() +in case the certificate search failed. The equivalent code in +pkcs11_reload_certificate() was refactored to always free allocated +resources. +--- + src/libp11-int.h | 2 ++ + src/libp11.h | 1 + + src/p11_atfork.c | 26 ++++++++++++++-- + src/p11_cert.c | 79 ++++++++++++++++++++++++++++-------------------- + src/p11_ckr.c | 1 + + 5 files changed, 75 insertions(+), 34 deletions(-) + +diff --git a/src/libp11-int.h b/src/libp11-int.h +index 9676f2c..13f7af4 100644 +--- a/src/libp11-int.h ++++ b/src/libp11-int.h +@@ -106,6 +106,7 @@ typedef struct pkcs11_cert_private { + CK_OBJECT_HANDLE object; + unsigned char id[255]; + size_t id_len; ++ unsigned int forkid; + } PKCS11_CERT_private; + #define PRIVCERT(cert) ((PKCS11_CERT_private *) (cert)->_private) + #define CERT2SLOT(cert) TOKEN2SLOT(CERT2TOKEN(cert)) +@@ -169,6 +170,7 @@ extern CK_RV C_UnloadModule(void *module); + extern void pkcs11_destroy_keys(PKCS11_TOKEN *, unsigned int); + extern void pkcs11_destroy_certs(PKCS11_TOKEN *); + extern int pkcs11_reload_key(PKCS11_KEY *); ++extern int pkcs11_reload_certificate(PKCS11_CERT *cert); + extern int pkcs11_reload_slot(PKCS11_SLOT * slot); + + /* Managing object attributes */ +diff --git a/src/libp11.h b/src/libp11.h +index 37cb432..76027b4 100644 +--- a/src/libp11.h ++++ b/src/libp11.h +@@ -517,6 +517,7 @@ P11_DEPRECATED_FUNC extern int PKCS11_private_decrypt( + # define CKR_F_PKCS11_REMOVE_KEY 128 + # define CKR_F_PKCS11_REMOVE_CERTIFICATE 129 + # define CKR_F_PKCS11_GENERATE_KEY 130 ++# define CKR_F_PKCS11_RELOAD_CERTIFICATE 131 + + /* Backward compatibility of error function codes */ + #define PKCS11_F_PKCS11_CHANGE_PIN CKR_F_PKCS11_CHANGE_PIN +diff --git a/src/p11_atfork.c b/src/p11_atfork.c +index 9313ba3..af6e709 100644 +--- a/src/p11_atfork.c ++++ b/src/p11_atfork.c +@@ -143,6 +143,27 @@ static int check_key_fork_int(PKCS11_KEY *key) + return 0; + } + ++/* ++ * PKCS#11 reinitialization after fork ++ * Also reloads the key ++ */ ++static int check_cert_fork_int(PKCS11_CERT *cert) ++{ ++ PKCS11_SLOT *slot = CERT2SLOT(cert); ++ PKCS11_SLOT_private *spriv = PRIVSLOT(slot); ++ PKCS11_CERT_private *cpriv = PRIVCERT(cert); ++ ++ if (check_slot_fork_int(slot) < 0) ++ return -1; ++ ++ if (spriv->forkid != cpriv->forkid) { ++ if (pkcs11_reload_certificate(cert) < 0) ++ return -1; ++ cpriv->forkid = spriv->forkid; ++ } ++ return 0; ++} ++ + /* + * Locking interface to check_fork_int() + */ +@@ -186,13 +207,14 @@ int check_key_fork(PKCS11_KEY *key) + } + + /* +- * Reinitialize cert (just its token) ++ * Locking interface to check_cert_fork_int() + */ + int check_cert_fork(PKCS11_CERT *cert) + { + if (!cert) + return -1; +- return check_token_fork(CERT2TOKEN(cert)); ++ CHECK_FORKID(CERT2CTX(cert), PRIVCERT(cert)->forkid, ++ check_cert_fork_int(cert)); + } + + /* vim: set noexpandtab: */ +diff --git a/src/p11_cert.c b/src/p11_cert.c +index 19b9208..865a671 100644 +--- a/src/p11_cert.c ++++ b/src/p11_cert.c +@@ -66,47 +66,20 @@ int pkcs11_enumerate_certs(PKCS11_TOKEN *token, + /** + * Remove a certificate from the associated token + */ +-int pkcs11_remove_certificate(PKCS11_CERT *cert){ ++int pkcs11_remove_certificate(PKCS11_CERT *cert) ++{ + PKCS11_SLOT *slot = CERT2SLOT(cert); + PKCS11_CTX *ctx = CERT2CTX(cert); + PKCS11_SLOT_private *spriv = PRIVSLOT(slot); +- CK_OBJECT_HANDLE obj; +- CK_ULONG count; +- CK_ATTRIBUTE search_parameters[32]; +- unsigned int n = 0; ++ PKCS11_CERT_private *cpriv = PRIVCERT(cert); + int rv; + + /* First, make sure we have a session */ +- if (!spriv->haveSession && PKCS11_open_session(slot, 1)){ ++ if (!spriv->haveSession && PKCS11_open_session(slot, 1)) + return -1; +- } +- ++ +- pkcs11_addattr_int(search_parameters + n++, CKA_CLASS, CKO_CERTIFICATE); +- if (cert->id && cert->id_len){ +- pkcs11_addattr(search_parameters + n++, CKA_ID, cert->id, cert->id_len); +- } +- if (cert->label){ +- pkcs11_addattr_s(search_parameters + n++, CKA_LABEL, cert->label); +- } +- +- rv = CRYPTOKI_call(ctx, +- C_FindObjectsInit(spriv->session, search_parameters, n)); ++ rv = CRYPTOKI_call(ctx, C_DestroyObject(spriv->session, cpriv->object)); + CRYPTOKI_checkerr(CKR_F_PKCS11_REMOVE_CERTIFICATE, rv); +- +- rv = CRYPTOKI_call(ctx, C_FindObjects(spriv->session, &obj, 1, &count)); +- CRYPTOKI_checkerr(CKR_F_PKCS11_REMOVE_CERTIFICATE, rv); +- +- CRYPTOKI_call(ctx, C_FindObjectsFinal(spriv->session)); +- if (count!=1){ +- pkcs11_zap_attrs(search_parameters, n); +- return -1; +- } +- rv = CRYPTOKI_call(ctx, C_DestroyObject(spriv->session, obj)); +- if (rv != CKR_OK){ +- pkcs11_zap_attrs(search_parameters, n); +- return -1; +- } +- pkcs11_zap_attrs(search_parameters, n); + return 0; + } + +@@ -247,6 +220,48 @@ static int pkcs11_init_cert(PKCS11_CTX *ctx, PKCS11_TOKEN *token, + return 0; + } + ++/* ++ * Reload certificate object handle ++ */ ++int pkcs11_reload_certificate(PKCS11_CERT *cert) ++{ ++ PKCS11_SLOT *slot = CERT2SLOT(cert); ++ PKCS11_CTX *ctx = CERT2CTX(cert); ++ PKCS11_SLOT_private *spriv = PRIVSLOT(slot); ++ PKCS11_CERT_private *cpriv = PRIVCERT(cert); ++ CK_ULONG count = 0; ++ CK_ATTRIBUTE search_parameters[32]; ++ unsigned int n = 0; ++ int rv; ++ ++ /* First, make sure we have a session */ ++ if (!spriv->haveSession && PKCS11_open_session(slot, 0)) { ++ return -1; ++ } ++ ++ pkcs11_addattr_int(search_parameters + n++, CKA_CLASS, CKO_CERTIFICATE); ++ if (cert->id && cert->id_len) { ++ pkcs11_addattr(search_parameters + n++, CKA_ID, cert->id, cert->id_len); ++ } ++ if (cert->label) { ++ pkcs11_addattr_s(search_parameters + n++, CKA_LABEL, cert->label); ++ } ++ ++ rv = CRYPTOKI_call(ctx, ++ C_FindObjectsInit(spriv->session, search_parameters, n)); ++ if (rv == CKR_OK) { ++ rv = CRYPTOKI_call(ctx, ++ C_FindObjects(spriv->session, &cpriv->object, 1, &count)); ++ CRYPTOKI_call(ctx, C_FindObjectsFinal(spriv->session)); ++ } ++ pkcs11_zap_attrs(search_parameters, n); ++ CRYPTOKI_checkerr(CKR_F_PKCS11_RELOAD_CERTIFICATE, rv); ++ ++ if (count != 1) ++ return -1; ++ return 0; ++} ++ + /* + * Destroy all certs + */ +diff --git a/src/p11_ckr.c b/src/p11_ckr.c +index 280a722..fcd651b 100644 +--- a/src/p11_ckr.c ++++ b/src/p11_ckr.c +@@ -55,6 +55,7 @@ static ERR_STRING_DATA CKR_str_functs[] = { + {ERR_FUNC(CKR_F_PKCS11_SEED_RANDOM), "pkcs11_seed_random"}, + {ERR_FUNC(CKR_F_PKCS11_STORE_CERTIFICATE), "pkcs11_store_certificate"}, + {ERR_FUNC(CKR_F_PKCS11_STORE_KEY), "pkcs11_store_key"}, ++ {ERR_FUNC(CKR_F_PKCS11_RELOAD_CERTIFICATE), "pkcs11_reload_certificate"}, + {0, NULL} + }; + + +From 8ab6ca5add6b2514be57e597932ed845a24f1f0b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Timo=20Ter=C3=A4s?= +Date: Sun, 21 Mar 2021 21:46:46 +0200 +Subject: [PATCH 09/12] Refactor internal code to use session pooling + +This gets rid of locking in the crypto operation paths, and allows +concurrent use of multiple threads by making sure that each session +is not used by any two threads. + +Additionally this fixes cases where it was possible that the PKCS#11 +was called from different threads with the one per-slot session. + +The default session pool size is selected as 16, but it is dynamically +shrunk if the maximum supported session count is reached. Further +knobs to tune the session pool size can be added later. + +The pool is implemented with mutex+condition mechanism, and thus +a simple wrapper to implement pthreads API on Windows Vista and +later is added. This bumps the Windows requirement to a bit higher, +but considering Vista is already EOL, this should be acceptable. + +A FIFO style queue was chosen to support even load-balancing +between sessions. This is helps pkcs#11 libraries which in turn +are load-balancing sessions to different units in a cluster. +--- + README.md | 13 ++-- + make.rules.mak | 2 +- + src/libp11-int.h | 20 +++-- + src/libp11.h | 1 + + src/p11_attr.c | 18 +++-- + src/p11_cert.c | 63 ++++++++------- + src/p11_ckr.c | 1 + + src/p11_ec.c | 37 +++++---- + src/p11_key.c | 121 +++++++++++------------------ + src/p11_pkey.c | 56 ++++++------- + src/p11_pthread.h | 94 ++++++++++++++++++++++ + src/p11_rsa.c | 34 ++++---- + src/p11_slot.c | 194 ++++++++++++++++++++++++++++------------------ + 13 files changed, 400 insertions(+), 254 deletions(-) + create mode 100644 src/p11_pthread.h + +diff --git a/README.md b/README.md +index d155084..67b4d43 100644 +--- a/README.md ++++ b/README.md +@@ -184,11 +184,14 @@ defaults to loading the p11-kit proxy module. + + ## Thread safety in libp11 + +-Thread-safety requires dynamic callbacks to be registered by the calling +-application with the following OpenSSL functions: +-* CRYPTO_set_dynlock_create_callback +-* CRYPTO_set_dynlock_destroy_callback +-* CRYPTO_set_dynlock_lock_callback ++libp11 internally uses OS locking, and configures the PKCS#11 module to do ++the same. ++ ++Access to the the PKCS#11 tokens and objects is via a pool of PKCS#11 sessions. ++This allows concurrent usage of crypto operations in thread safe manner. ++ ++However, many of the main PKCS11_* API functions are currently not fully thread ++safe. Work to fix this is pending. + + ## Submitting pull requests + +diff --git a/make.rules.mak b/make.rules.mak +index 46e6854..8453cc0 100644 +--- a/make.rules.mak ++++ b/make.rules.mak +@@ -43,6 +43,6 @@ OPENSSL_LIB = $(OPENSSL_DIR)\lib\VC\static\libcryptoMT$(DEBUG_SUFFIX).lib + + LIBS = "$(OPENSSL_LIB)" ws2_32.lib user32.lib advapi32.lib crypt32.lib gdi32.lib + +-CFLAGS = /nologo /GS /W3 /D_CRT_SECURE_NO_DEPRECATE /MT$(DEBUG_SUFFIX) $(OPENSSL_INC) /D_WIN32_WINNT=0x0502 /DWIN32_LEAN_AND_MEAN $(DEBUG_COMPILE) ++CFLAGS = /nologo /GS /W3 /D_CRT_SECURE_NO_DEPRECATE /MT$(DEBUG_SUFFIX) $(OPENSSL_INC) /D_WIN32_WINNT=0x0600 /DWIN32_LEAN_AND_MEAN $(DEBUG_COMPILE) + + LINKFLAGS = /NOLOGO /INCREMENTAL:NO $(MACHINE) /MANIFEST:NO /NXCOMPAT /DYNAMICBASE $(DEBUG_LINK) +diff --git a/src/libp11-int.h b/src/libp11-int.h +index 13f7af4..2eb7703 100644 +--- a/src/libp11-int.h ++++ b/src/libp11-int.h +@@ -29,6 +29,8 @@ + #define CRYPTOKI_EXPORTS + #include "pkcs11.h" + ++#include "p11_pthread.h" ++ + #if OPENSSL_VERSION_NUMBER < 0x10100004L || defined(LIBRESSL_VERSION_NUMBER) + typedef int PKCS11_RWLOCK; + #else +@@ -53,15 +55,17 @@ typedef struct pkcs11_ctx_private { + + typedef struct pkcs11_slot_private { + PKCS11_CTX *parent; +- unsigned char haveSession, loggedIn; ++ pthread_mutex_t lock; ++ pthread_cond_t cond; ++ int8_t rw_mode, logged_in; + CK_SLOT_ID id; +- CK_SESSION_HANDLE session; ++ CK_SESSION_HANDLE *session_pool; ++ unsigned int session_head, session_tail, session_poolsize; ++ unsigned int num_sessions, max_sessions; + unsigned int forkid; +- int prev_rw; /* the rw status the session was open */ + + /* options used in last PKCS11_login */ + char *prev_pin; +- int prev_so; + } PKCS11_SLOT_private; + #define PRIVSLOT(slot) ((PKCS11_SLOT_private *) ((slot)->_private)) + #define SLOT2CTX(slot) (PRIVSLOT(slot)->parent) +@@ -235,6 +239,12 @@ extern void pkcs11_CTX_free(PKCS11_CTX * ctx); + /* Open a session in RO or RW mode */ + extern int pkcs11_open_session(PKCS11_SLOT * slot, int rw); + ++/* Acquire a session from the slot specific session pool */ ++extern int pkcs11_get_session(PKCS11_SLOT * slot, int rw, CK_SESSION_HANDLE *sessionp); ++ ++/* Return a session the the slot specific session pool */ ++extern void pkcs11_put_session(PKCS11_SLOT * slot, CK_SESSION_HANDLE session); ++ + /* Get a list of all slots */ + extern int pkcs11_enumerate_slots(PKCS11_CTX * ctx, + PKCS11_SLOT **slotsp, unsigned int *nslotsp); +@@ -265,7 +275,7 @@ extern int pkcs11_login(PKCS11_SLOT * slot, int so, const char *pin); + extern int pkcs11_logout(PKCS11_SLOT * slot); + + /* Authenticate a private the key operation if needed */ +-int pkcs11_authenticate(PKCS11_KEY *key); ++int pkcs11_authenticate(PKCS11_KEY *key, CK_SESSION_HANDLE session); + + /* Get a list of keys associated with this token */ + extern int pkcs11_enumerate_keys(PKCS11_TOKEN *token, unsigned int type, +diff --git a/src/libp11.h b/src/libp11.h +index 76027b4..734971b 100644 +--- a/src/libp11.h ++++ b/src/libp11.h +@@ -518,6 +518,7 @@ P11_DEPRECATED_FUNC extern int PKCS11_private_decrypt( + # define CKR_F_PKCS11_REMOVE_CERTIFICATE 129 + # define CKR_F_PKCS11_GENERATE_KEY 130 + # define CKR_F_PKCS11_RELOAD_CERTIFICATE 131 ++# define CKR_F_PKCS11_GET_SESSION 132 + + /* Backward compatibility of error function codes */ + #define PKCS11_F_PKCS11_CHANGE_PIN CKR_F_PKCS11_CHANGE_PIN +diff --git a/src/p11_attr.c b/src/p11_attr.c +index 76eac0a..d261c04 100644 +--- a/src/p11_attr.c ++++ b/src/p11_attr.c +@@ -33,20 +33,26 @@ + /* + * Query pkcs11 attributes + */ +-static int pkcs11_getattr_int(PKCS11_CTX *ctx, CK_SESSION_HANDLE session, +- CK_OBJECT_HANDLE o, CK_ATTRIBUTE_TYPE type, CK_BYTE *value, +- size_t *size) ++static int pkcs11_getattr_int(PKCS11_TOKEN *token, CK_OBJECT_HANDLE o, ++ CK_ATTRIBUTE_TYPE type, CK_BYTE *value, size_t *size) + { ++ PKCS11_SLOT *slot = TOKEN2SLOT(token); ++ PKCS11_CTX *ctx = SLOT2CTX(slot); + CK_ATTRIBUTE templ; ++ CK_SESSION_HANDLE session; + int rv; + + templ.type = type; + templ.pValue = value; + templ.ulValueLen = *size; + ++ if (pkcs11_get_session(slot, 0, &session)) ++ return -1; ++ + rv = CRYPTOKI_call(ctx, C_GetAttributeValue(session, o, &templ, 1)); +- CRYPTOKI_checkerr(CKR_F_PKCS11_GETATTR_INT, rv); ++ pkcs11_put_session(slot, session); + ++ CRYPTOKI_checkerr(CKR_F_PKCS11_GETATTR_INT, rv); + *size = templ.ulValueLen; + return 0; + } +@@ -54,9 +60,7 @@ static int pkcs11_getattr_int(PKCS11_CTX *ctx, CK_SESSION_HANDLE session, + int pkcs11_getattr_var(PKCS11_TOKEN *token, CK_OBJECT_HANDLE object, + unsigned int type, CK_BYTE *value, size_t *size) + { +- return pkcs11_getattr_int(TOKEN2CTX(token), +- PRIVSLOT(TOKEN2SLOT(token))->session, +- object, type, value, size); ++ return pkcs11_getattr_int(token, object, type, value, size); + } + + int pkcs11_getattr_val(PKCS11_TOKEN *token, CK_OBJECT_HANDLE object, +diff --git a/src/p11_cert.c b/src/p11_cert.c +index 865a671..024c03f 100644 +--- a/src/p11_cert.c ++++ b/src/p11_cert.c +@@ -26,7 +26,7 @@ + #include "libp11-int.h" + #include + +-static int pkcs11_find_certs(PKCS11_TOKEN *); ++static int pkcs11_find_certs(PKCS11_TOKEN *, CK_SESSION_HANDLE); + static int pkcs11_next_cert(PKCS11_CTX *, PKCS11_TOKEN *, CK_SESSION_HANDLE); + static int pkcs11_init_cert(PKCS11_CTX *ctx, PKCS11_TOKEN *token, + CK_SESSION_HANDLE session, CK_OBJECT_HANDLE o, PKCS11_CERT **); +@@ -38,19 +38,15 @@ int pkcs11_enumerate_certs(PKCS11_TOKEN *token, + PKCS11_CERT **certp, unsigned int *countp) + { + PKCS11_SLOT *slot = TOKEN2SLOT(token); +- PKCS11_CTX *ctx = SLOT2CTX(slot); + PKCS11_TOKEN_private *tpriv = PRIVTOKEN(token); +- PKCS11_SLOT_private *spriv = PRIVSLOT(slot); +- PKCS11_CTX_private *cpriv = PRIVCTX(ctx); ++ CK_SESSION_HANDLE session; + int rv; + +- /* Make sure we have a session */ +- if (!spriv->haveSession && PKCS11_open_session(slot, 0)) ++ if (pkcs11_get_session(slot, 0, &session)) + return -1; + +- CRYPTO_THREAD_write_lock(cpriv->rwlock); +- rv = pkcs11_find_certs(token); +- CRYPTO_THREAD_unlock(cpriv->rwlock); ++ rv = pkcs11_find_certs(token, session); ++ pkcs11_put_session(slot, session); + if (rv < 0) { + pkcs11_destroy_certs(token); + return -1; +@@ -70,15 +66,16 @@ int pkcs11_remove_certificate(PKCS11_CERT *cert) + { + PKCS11_SLOT *slot = CERT2SLOT(cert); + PKCS11_CTX *ctx = CERT2CTX(cert); +- PKCS11_SLOT_private *spriv = PRIVSLOT(slot); + PKCS11_CERT_private *cpriv = PRIVCERT(cert); ++ CK_SESSION_HANDLE session; + int rv; + +- /* First, make sure we have a session */ +- if (!spriv->haveSession && PKCS11_open_session(slot, 1)) ++ if (pkcs11_get_session(slot, 1, &session)) + return -1; + +- rv = CRYPTOKI_call(ctx, C_DestroyObject(spriv->session, cpriv->object)); ++ rv = CRYPTOKI_call(ctx, C_DestroyObject(session, cpriv->object)); ++ pkcs11_put_session(slot, session); ++ + CRYPTOKI_checkerr(CKR_F_PKCS11_REMOVE_CERTIFICATE, rv); + return 0; + } +@@ -108,11 +105,10 @@ PKCS11_CERT *pkcs11_find_certificate(PKCS11_KEY *key) + /* + * Find all certs of a given type (public or private) + */ +-static int pkcs11_find_certs(PKCS11_TOKEN *token) ++static int pkcs11_find_certs(PKCS11_TOKEN *token, CK_SESSION_HANDLE session) + { + PKCS11_SLOT *slot = TOKEN2SLOT(token); + PKCS11_CTX *ctx = SLOT2CTX(slot); +- PKCS11_SLOT_private *spriv = PRIVSLOT(slot); + CK_OBJECT_CLASS cert_search_class; + CK_ATTRIBUTE cert_search_attrs[] = { + {CKA_CLASS, &cert_search_class, sizeof(cert_search_class)}, +@@ -121,14 +117,14 @@ static int pkcs11_find_certs(PKCS11_TOKEN *token) + + /* Tell the PKCS11 lib to enumerate all matching objects */ + cert_search_class = CKO_CERTIFICATE; +- rv = CRYPTOKI_call(ctx, C_FindObjectsInit(spriv->session, cert_search_attrs, 1)); ++ rv = CRYPTOKI_call(ctx, C_FindObjectsInit(session, cert_search_attrs, 1)); + CRYPTOKI_checkerr(CKR_F_PKCS11_FIND_CERTS, rv); + + do { +- res = pkcs11_next_cert(ctx, token, spriv->session); ++ res = pkcs11_next_cert(ctx, token, session); + } while (res == 0); + +- CRYPTOKI_call(ctx, C_FindObjectsFinal(spriv->session)); ++ CRYPTOKI_call(ctx, C_FindObjectsFinal(session)); + + return (res < 0) ? -1 : 0; + } +@@ -227,17 +223,15 @@ int pkcs11_reload_certificate(PKCS11_CERT *cert) + { + PKCS11_SLOT *slot = CERT2SLOT(cert); + PKCS11_CTX *ctx = CERT2CTX(cert); +- PKCS11_SLOT_private *spriv = PRIVSLOT(slot); + PKCS11_CERT_private *cpriv = PRIVCERT(cert); + CK_ULONG count = 0; + CK_ATTRIBUTE search_parameters[32]; ++ CK_SESSION_HANDLE session; + unsigned int n = 0; + int rv; + +- /* First, make sure we have a session */ +- if (!spriv->haveSession && PKCS11_open_session(slot, 0)) { ++ if (pkcs11_get_session(slot, 0, &session)) + return -1; +- } + + pkcs11_addattr_int(search_parameters + n++, CKA_CLASS, CKO_CERTIFICATE); + if (cert->id && cert->id_len) { +@@ -248,12 +242,13 @@ int pkcs11_reload_certificate(PKCS11_CERT *cert) + } + + rv = CRYPTOKI_call(ctx, +- C_FindObjectsInit(spriv->session, search_parameters, n)); ++ C_FindObjectsInit(session, search_parameters, n)); + if (rv == CKR_OK) { + rv = CRYPTOKI_call(ctx, +- C_FindObjects(spriv->session, &cpriv->object, 1, &count)); +- CRYPTOKI_call(ctx, C_FindObjectsFinal(spriv->session)); ++ C_FindObjects(session, &cpriv->object, 1, &count)); ++ CRYPTOKI_call(ctx, C_FindObjectsFinal(session)); + } ++ pkcs11_put_session(slot, session); + pkcs11_zap_attrs(search_parameters, n); + CRYPTOKI_checkerr(CKR_F_PKCS11_RELOAD_CERTIFICATE, rv); + +@@ -294,10 +289,10 @@ int pkcs11_store_certificate(PKCS11_TOKEN *token, X509 *x509, char *label, + { + PKCS11_SLOT *slot = TOKEN2SLOT(token); + PKCS11_CTX *ctx = SLOT2CTX(slot); +- PKCS11_SLOT_private *spriv = PRIVSLOT(slot); ++ CK_SESSION_HANDLE session; + CK_OBJECT_HANDLE object; + CK_ATTRIBUTE attrs[32]; +- unsigned int n = 0; ++ unsigned int n = 0, r = -1; + int rv; + int signature_nid; + const EVP_MD* evp_md; +@@ -307,7 +302,7 @@ int pkcs11_store_certificate(PKCS11_TOKEN *token, X509 *x509, char *label, + unsigned int md_len; + + /* First, make sure we have a session */ +- if (!PRIVSLOT(slot)->haveSession && PKCS11_open_session(slot, 1)) ++ if (pkcs11_get_session(slot, 1, &session)) + return -1; + + /* Now build the template */ +@@ -361,15 +356,19 @@ int pkcs11_store_certificate(PKCS11_TOKEN *token, X509 *x509, char *label, + pkcs11_addattr(attrs + n++, CKA_ID, id, id_len); + + /* Now call the pkcs11 module to create the object */ +- rv = CRYPTOKI_call(ctx, C_CreateObject(spriv->session, attrs, n, &object)); ++ rv = CRYPTOKI_call(ctx, C_CreateObject(session, attrs, n, &object)); + + /* Zap all memory allocated when building the template */ + pkcs11_zap_attrs(attrs, n); + +- CRYPTOKI_checkerr(CKR_F_PKCS11_STORE_CERTIFICATE, rv); +- + /* Gobble the key object */ +- return pkcs11_init_cert(ctx, token, spriv->session, object, ret_cert); ++ if (rv == CKR_OK) { ++ r = pkcs11_init_cert(ctx, token, session, object, ret_cert); ++ } ++ pkcs11_put_session(slot, session); ++ ++ CRYPTOKI_checkerr(CKR_F_PKCS11_STORE_CERTIFICATE, rv); ++ return r; + } + + /* vim: set noexpandtab: */ +diff --git a/src/p11_ckr.c b/src/p11_ckr.c +index fcd651b..53e90ed 100644 +--- a/src/p11_ckr.c ++++ b/src/p11_ckr.c +@@ -56,6 +56,7 @@ static ERR_STRING_DATA CKR_str_functs[] = { + {ERR_FUNC(CKR_F_PKCS11_STORE_CERTIFICATE), "pkcs11_store_certificate"}, + {ERR_FUNC(CKR_F_PKCS11_STORE_KEY), "pkcs11_store_key"}, + {ERR_FUNC(CKR_F_PKCS11_RELOAD_CERTIFICATE), "pkcs11_reload_certificate"}, ++ {ERR_FUNC(CKR_F_PKCS11_GET_SESSION), "pkcs11_get_session"}, + {0, NULL} + }; + +diff --git a/src/p11_ec.c b/src/p11_ec.c +index 7e4b676..0fddff7 100644 +--- a/src/p11_ec.c ++++ b/src/p11_ec.c +@@ -385,7 +385,7 @@ static int pkcs11_ecdsa_sign(const unsigned char *msg, unsigned int msg_len, + PKCS11_SLOT *slot = KEY2SLOT(key); + PKCS11_CTX *ctx = KEY2CTX(key); + PKCS11_KEY_private *kpriv = PRIVKEY(key); +- PKCS11_SLOT_private *spriv = PRIVSLOT(slot); ++ CK_SESSION_HANDLE session; + CK_MECHANISM mechanism; + CK_ULONG ck_sigsize; + +@@ -394,15 +394,17 @@ static int pkcs11_ecdsa_sign(const unsigned char *msg, unsigned int msg_len, + memset(&mechanism, 0, sizeof(mechanism)); + mechanism.mechanism = CKM_ECDSA; + +- CRYPTO_THREAD_write_lock(PRIVCTX(ctx)->rwlock); ++ if (pkcs11_get_session(slot, 0, &session)) ++ return -1; ++ + rv = CRYPTOKI_call(ctx, +- C_SignInit(spriv->session, &mechanism, kpriv->object)); ++ C_SignInit(session, &mechanism, kpriv->object)); + if (!rv && kpriv->always_authenticate == CK_TRUE) +- rv = pkcs11_authenticate(key); ++ rv = pkcs11_authenticate(key, session); + if (!rv) + rv = CRYPTOKI_call(ctx, +- C_Sign(spriv->session, (CK_BYTE *)msg, msg_len, sigret, &ck_sigsize)); +- CRYPTO_THREAD_unlock(PRIVCTX(ctx)->rwlock); ++ C_Sign(session, (CK_BYTE *)msg, msg_len, sigret, &ck_sigsize)); ++ pkcs11_put_session(slot, session); + + if (rv) { + CKRerr(CKR_F_PKCS11_ECDSA_SIGN, rv); +@@ -544,7 +546,7 @@ static int pkcs11_ecdh_derive(unsigned char **out, size_t *outlen, + PKCS11_CTX *ctx = KEY2CTX(key); + PKCS11_TOKEN *token = KEY2TOKEN(key); + PKCS11_KEY_private *kpriv = PRIVKEY(key); +- PKCS11_SLOT_private *spriv = PRIVSLOT(slot); ++ CK_SESSION_HANDLE session; + CK_MECHANISM mechanism; + int rv; + +@@ -585,24 +587,33 @@ static int pkcs11_ecdh_derive(unsigned char **out, size_t *outlen, + return -1; + } + +- rv = CRYPTOKI_call(ctx, C_DeriveKey(spriv->session, &mechanism, kpriv->object, ++ if (pkcs11_get_session(slot, 0, &session)) ++ return -1; ++ ++ rv = CRYPTOKI_call(ctx, C_DeriveKey(session, &mechanism, kpriv->object, + newkey_template, sizeof(newkey_template)/sizeof(*newkey_template), &newkey)); +- CRYPTOKI_checkerr(CKR_F_PKCS11_ECDH_DERIVE, rv); ++ if (rv != CKR_OK) ++ goto error; + + /* Return the value of the secret key and/or the object handle of the secret key */ + if (out && outlen) { /* pkcs11_ec_ckey only asks for the value */ + if (pkcs11_getattr_alloc(token, newkey, CKA_VALUE, out, outlen)) { +- CKRerr(CKR_F_PKCS11_ECDH_DERIVE, CKR_ATTRIBUTE_VALUE_INVALID); +- CRYPTOKI_call(ctx, C_DestroyObject(spriv->session, newkey)); +- return -1; ++ CRYPTOKI_call(ctx, C_DestroyObject(session, newkey)); ++ goto error; + } + } + if (tmpnewkey) /* For future use (not used by pkcs11_ec_ckey) */ + *tmpnewkey = newkey; + else /* Destroy the temporary key */ +- CRYPTOKI_call(ctx, C_DestroyObject(spriv->session, newkey)); ++ CRYPTOKI_call(ctx, C_DestroyObject(session, newkey)); ++ ++ pkcs11_put_session(slot, session); + + return 0; ++error: ++ pkcs11_put_session(slot, session); ++ CKRerr(CKR_F_PKCS11_ECDH_DERIVE, rv); ++ return -1; + } + + static int pkcs11_ecdh_compute_key(unsigned char **buf, size_t *buflen, +diff --git a/src/p11_key.c b/src/p11_key.c +index e2ffe3b..d42386b 100644 +--- a/src/p11_key.c ++++ b/src/p11_key.c +@@ -29,7 +29,7 @@ + /* The maximum length of PIN */ + #define MAX_PIN_LENGTH 32 + +-static int pkcs11_find_keys(PKCS11_TOKEN *, unsigned int); ++static int pkcs11_find_keys(PKCS11_TOKEN *, CK_SESSION_HANDLE, unsigned int); + static int pkcs11_next_key(PKCS11_CTX *ctx, PKCS11_TOKEN *token, + CK_SESSION_HANDLE session, CK_OBJECT_CLASS type); + static int pkcs11_init_key(PKCS11_CTX *ctx, PKCS11_TOKEN *token, +@@ -98,8 +98,8 @@ int pkcs11_reload_key(PKCS11_KEY *key) + { + PKCS11_KEY_private *kpriv = PRIVKEY(key); + PKCS11_SLOT *slot = KEY2SLOT(key); +- PKCS11_SLOT_private *spriv = PRIVSLOT(slot); + PKCS11_CTX *ctx = SLOT2CTX(slot); ++ CK_SESSION_HANDLE session; + CK_OBJECT_CLASS key_search_class = + key->isPrivate ? CKO_PRIVATE_KEY : CKO_PUBLIC_KEY; + CK_ATTRIBUTE key_search_attrs[2] = { +@@ -109,18 +109,18 @@ int pkcs11_reload_key(PKCS11_KEY *key) + CK_ULONG count; + int rv; + +- /* this is already covered with a per-ctx lock */ +- +- rv = CRYPTOKI_call(ctx, +- C_FindObjectsInit(spriv->session, key_search_attrs, 2)); +- CRYPTOKI_checkerr(CKR_F_PKCS11_RELOAD_KEY, rv); ++ if (pkcs11_get_session(slot, 0, &session)) ++ return -1; + + rv = CRYPTOKI_call(ctx, +- C_FindObjects(spriv->session, &kpriv->object, 1, &count)); ++ C_FindObjectsInit(session, key_search_attrs, 2)); ++ if (rv == CKR_OK) { ++ rv = CRYPTOKI_call(ctx, ++ C_FindObjects(session, &kpriv->object, 1, &count)); ++ CRYPTOKI_call(ctx, C_FindObjectsFinal(session)); ++ } + CRYPTOKI_checkerr(CKR_F_PKCS11_RELOAD_KEY, rv); + +- CRYPTOKI_call(ctx, C_FindObjectsFinal(spriv->session)); +- + return 0; + } + +@@ -132,8 +132,7 @@ int pkcs11_generate_key(PKCS11_TOKEN *token, int algorithm, unsigned int bits, + + PKCS11_SLOT *slot = TOKEN2SLOT(token); + PKCS11_CTX *ctx = TOKEN2CTX(token); +- PKCS11_SLOT_private *spriv = PRIVSLOT(slot); +- ++ CK_SESSION_HANDLE session; + CK_ATTRIBUTE pubkey_attrs[32]; + CK_ATTRIBUTE privkey_attrs[32]; + unsigned int n_pub = 0, n_priv = 0; +@@ -146,8 +145,7 @@ int pkcs11_generate_key(PKCS11_TOKEN *token, int algorithm, unsigned int bits, + + (void)algorithm; /* squash the unused parameter warning */ + +- /* make sure we have a session */ +- if (!spriv->haveSession && PKCS11_open_session(slot, 1)) ++ if (pkcs11_get_session(slot, 1, &session)) + return -1; + + /* pubkey attributes */ +@@ -175,7 +173,7 @@ int pkcs11_generate_key(PKCS11_TOKEN *token, int algorithm, unsigned int bits, + + /* call the pkcs11 module to create the key pair */ + rv = CRYPTOKI_call(ctx, C_GenerateKeyPair( +- spriv->session, ++ session, + &mechanism, + pubkey_attrs, + n_pub, +@@ -184,6 +182,7 @@ int pkcs11_generate_key(PKCS11_TOKEN *token, int algorithm, unsigned int bits, + &pub_key_obj, + &priv_key_obj + )); ++ pkcs11_put_session(slot, session); + + /* zap all memory allocated when building the template */ + pkcs11_zap_attrs(privkey_attrs, n_priv); +@@ -222,17 +221,13 @@ static int pkcs11_store_key(PKCS11_TOKEN *token, EVP_PKEY *pk, + { + PKCS11_SLOT *slot = TOKEN2SLOT(token); + PKCS11_CTX *ctx = TOKEN2CTX(token); +- PKCS11_SLOT_private *spriv = PRIVSLOT(slot); ++ CK_SESSION_HANDLE session; + CK_OBJECT_HANDLE object; + CK_ATTRIBUTE attrs[32]; + unsigned int n = 0; +- int rv; ++ int rv, r = -1; + const BIGNUM *rsa_n, *rsa_e, *rsa_d, *rsa_p, *rsa_q, *rsa_dmp1, *rsa_dmq1, *rsa_iqmp; + +- /* First, make sure we have a session */ +- if (!spriv->haveSession && PKCS11_open_session(slot, 1)) +- return -1; +- + /* Now build the key attrs */ + pkcs11_addattr_int(attrs + n++, CKA_CLASS, type); + if (label) +@@ -291,16 +286,26 @@ static int pkcs11_store_key(PKCS11_TOKEN *token, EVP_PKEY *pk, + return -1; + } + ++ if (pkcs11_get_session(slot, 1, &session)) { ++ pkcs11_zap_attrs(attrs, n); ++ return -1; ++ } ++ + /* Now call the pkcs11 module to create the object */ +- rv = CRYPTOKI_call(ctx, C_CreateObject(spriv->session, attrs, n, &object)); ++ rv = CRYPTOKI_call(ctx, C_CreateObject(session, attrs, n, &object)); + + /* Zap all memory allocated when building the template */ + pkcs11_zap_attrs(attrs, n); + ++ if (rv == CKR_OK) { ++ /* Gobble the key object */ ++ r = pkcs11_init_key(ctx, token, session, object, type, ret_key); ++ } ++ pkcs11_put_session(slot, session); ++ + CRYPTOKI_checkerr(CKR_F_PKCS11_STORE_KEY, rv); ++ return r; + +- /* Gobble the key object */ +- return pkcs11_init_key(ctx, token, spriv->session, object, type, ret_key); + } + + /* +@@ -348,11 +353,10 @@ EVP_PKEY *pkcs11_get_key(PKCS11_KEY *key, int isPrivate) + * Authenticate a private the key operation if needed + * This function *only* handles CKU_CONTEXT_SPECIFIC logins. + */ +-int pkcs11_authenticate(PKCS11_KEY *key) ++int pkcs11_authenticate(PKCS11_KEY *key, CK_SESSION_HANDLE session) + { + PKCS11_TOKEN *token = KEY2TOKEN(key); + PKCS11_SLOT *slot = TOKEN2SLOT(token); +- PKCS11_SLOT_private *spriv = PRIVSLOT(slot); + PKCS11_CTX *ctx = SLOT2CTX(slot); + PKCS11_CTX_private *cpriv = PRIVCTX(ctx); + char pin[MAX_PIN_LENGTH+1]; +@@ -363,7 +367,7 @@ int pkcs11_authenticate(PKCS11_KEY *key) + /* Handle CKF_PROTECTED_AUTHENTICATION_PATH */ + if (token->secureLogin) { + rv = CRYPTOKI_call(ctx, +- C_Login(spriv->session, CKU_CONTEXT_SPECIFIC, NULL, 0)); ++ C_Login(session, CKU_CONTEXT_SPECIFIC, NULL, 0)); + return rv == CKR_USER_ALREADY_LOGGED_IN ? 0 : rv; + } + +@@ -394,7 +398,7 @@ int pkcs11_authenticate(PKCS11_KEY *key) + + /* Login with the PIN */ + rv = CRYPTOKI_call(ctx, +- C_Login(spriv->session, CKU_CONTEXT_SPECIFIC, ++ C_Login(session, CKU_CONTEXT_SPECIFIC, + (CK_UTF8CHAR *)pin, strlen(pin))); + OPENSSL_cleanse(pin, MAX_PIN_LENGTH+1); + return rv == CKR_USER_ALREADY_LOGGED_IN ? 0 : rv; +@@ -408,22 +412,18 @@ int pkcs11_enumerate_keys(PKCS11_TOKEN *token, unsigned int type, + PKCS11_KEY ** keyp, unsigned int *countp) + { + PKCS11_SLOT *slot = TOKEN2SLOT(token); +- PKCS11_CTX *ctx = TOKEN2CTX(token); + PKCS11_TOKEN_private *tpriv = PRIVTOKEN(token); +- PKCS11_SLOT_private *spriv = PRIVSLOT(slot); +- PKCS11_CTX_private *cpriv = PRIVCTX(ctx); + PKCS11_keys *keys = (type == CKO_PRIVATE_KEY) ? &tpriv->prv : &tpriv->pub; + PKCS11_KEY *first_key_prev = keys->keys; ++ CK_SESSION_HANDLE session; + int rv; + int i; + +- /* Make sure we have a session */ +- if (!spriv->haveSession && PKCS11_open_session(slot, 0)) ++ if (pkcs11_get_session(slot, 0, &session)) + return -1; + +- CRYPTO_THREAD_write_lock(cpriv->rwlock); +- rv = pkcs11_find_keys(token, type); +- CRYPTO_THREAD_unlock(cpriv->rwlock); ++ rv = pkcs11_find_keys(token, session, type); ++ pkcs11_put_session(slot, session); + if (rv < 0) { + pkcs11_destroy_keys(token, type); + return -1; +@@ -448,57 +448,30 @@ int pkcs11_enumerate_keys(PKCS11_TOKEN *token, unsigned int type, + /** + * Remove a key from the associated token + */ +-int pkcs11_remove_key(PKCS11_KEY *key) { ++int pkcs11_remove_key(PKCS11_KEY *key) ++{ + PKCS11_SLOT *slot = KEY2SLOT(key); + PKCS11_CTX *ctx = KEY2CTX(key); +- PKCS11_SLOT_private *spriv = PRIVSLOT(slot); +- CK_OBJECT_HANDLE obj; +- CK_ULONG count; +- CK_ATTRIBUTE search_parameters[32]; +- unsigned int n = 0; ++ CK_SESSION_HANDLE session; ++ PKCS11_KEY_private *kpriv = PRIVKEY(key); + int rv; + +- /* First, make sure we have a session */ +- if (!spriv->haveSession && PKCS11_open_session(slot, 1)) ++ if (pkcs11_get_session(slot, 1, &session)) + return -1; +- if (key->isPrivate) +- pkcs11_addattr_int(search_parameters + n++, CKA_CLASS, CKO_PRIVATE_KEY); +- else +- pkcs11_addattr_int(search_parameters + n++, CKA_CLASS, CKO_PUBLIC_KEY); +- if (key->id && key->id_len) +- pkcs11_addattr(search_parameters + n++, CKA_ID, key->id, key->id_len); +- if (key->label) +- pkcs11_addattr_s(search_parameters + n++, CKA_LABEL, key->label); + +- rv = CRYPTOKI_call(ctx, +- C_FindObjectsInit(spriv->session, search_parameters, n)); +- CRYPTOKI_checkerr(CKR_F_PKCS11_REMOVE_KEY, rv); +- +- rv = CRYPTOKI_call(ctx, C_FindObjects(spriv->session, &obj, 1, &count)); ++ rv = CRYPTOKI_call(ctx, C_DestroyObject(session, kpriv->object)); ++ pkcs11_put_session(slot, session); + CRYPTOKI_checkerr(CKR_F_PKCS11_REMOVE_KEY, rv); + +- CRYPTOKI_call(ctx, C_FindObjectsFinal(spriv->session)); +- if (count!=1) { +- pkcs11_zap_attrs(search_parameters, n); +- return -1; +- } +- rv = CRYPTOKI_call(ctx, C_DestroyObject(spriv->session, obj)); +- if (rv != CKR_OK) { +- pkcs11_zap_attrs(search_parameters, n); +- return -1; +- } +- pkcs11_zap_attrs(search_parameters, n); + return 0; + } + + /* + * Find all keys of a given type (public or private) + */ +-static int pkcs11_find_keys(PKCS11_TOKEN *token, unsigned int type) ++static int pkcs11_find_keys(PKCS11_TOKEN *token, CK_SESSION_HANDLE session, unsigned int type) + { +- PKCS11_SLOT *slot = TOKEN2SLOT(token); + PKCS11_CTX *ctx = TOKEN2CTX(token); +- PKCS11_SLOT_private *spriv = PRIVSLOT(slot); + CK_OBJECT_CLASS key_search_class; + CK_ATTRIBUTE key_search_attrs[1] = { + {CKA_CLASS, &key_search_class, sizeof(key_search_class)}, +@@ -508,14 +481,14 @@ static int pkcs11_find_keys(PKCS11_TOKEN *token, unsigned int type) + /* Tell the PKCS11 lib to enumerate all matching objects */ + key_search_class = type; + rv = CRYPTOKI_call(ctx, +- C_FindObjectsInit(spriv->session, key_search_attrs, 1)); ++ C_FindObjectsInit(session, key_search_attrs, 1)); + CRYPTOKI_checkerr(CKR_F_PKCS11_FIND_KEYS, rv); + + do { +- res = pkcs11_next_key(ctx, token, spriv->session, type); ++ res = pkcs11_next_key(ctx, token, session, type); + } while (res == 0); + +- CRYPTOKI_call(ctx, C_FindObjectsFinal(spriv->session)); ++ CRYPTOKI_call(ctx, C_FindObjectsFinal(session)); + + return (res < 0) ? -1 : 0; + } +diff --git a/src/p11_pkey.c b/src/p11_pkey.c +index 810ef91..cf14a36 100644 +--- a/src/p11_pkey.c ++++ b/src/p11_pkey.c +@@ -303,9 +303,8 @@ static int pkcs11_try_pkey_rsa_sign(EVP_PKEY_CTX *evp_pkey_ctx, + PKCS11_SLOT *slot; + PKCS11_CTX *ctx; + PKCS11_KEY_private *kpriv; +- PKCS11_SLOT_private *spriv; +- PKCS11_CTX_private *cpriv; + const EVP_MD *sig_md; ++ CK_SESSION_HANDLE session; + CK_MECHANISM mechanism; + CK_RSA_PKCS_PSS_PARAMS pss_params; + +@@ -331,8 +330,6 @@ static int pkcs11_try_pkey_rsa_sign(EVP_PKEY_CTX *evp_pkey_ctx, + slot = KEY2SLOT(key); + ctx = KEY2CTX(key); + kpriv = PRIVKEY(key); +- spriv = PRIVSLOT(slot); +- cpriv = PRIVCTX(ctx); + + if (!evp_pkey_ctx) + return -1; +@@ -363,15 +360,17 @@ static int pkcs11_try_pkey_rsa_sign(EVP_PKEY_CTX *evp_pkey_ctx, + return -1; + } /* end switch(padding) */ + +- CRYPTO_THREAD_write_lock(cpriv->rwlock); ++ if (pkcs11_get_session(slot, 0, &session)) ++ return -1; ++ + rv = CRYPTOKI_call(ctx, +- C_SignInit(spriv->session, &mechanism, kpriv->object)); ++ C_SignInit(session, &mechanism, kpriv->object)); + if (!rv && kpriv->always_authenticate == CK_TRUE) +- rv = pkcs11_authenticate(key); ++ rv = pkcs11_authenticate(key, session); + if (!rv) + rv = CRYPTOKI_call(ctx, +- C_Sign(spriv->session, (CK_BYTE_PTR)tbs, tbslen, sig, &size)); +- CRYPTO_THREAD_unlock(cpriv->rwlock); ++ C_Sign(session, (CK_BYTE_PTR)tbs, tbslen, sig, &size)); ++ pkcs11_put_session(slot, session); + #ifdef DEBUG + fprintf(stderr, "%s:%d C_SignInit or C_Sign rv=%d\n", + __FILE__, __LINE__, rv); +@@ -407,8 +406,7 @@ static int pkcs11_try_pkey_rsa_decrypt(EVP_PKEY_CTX *evp_pkey_ctx, + PKCS11_SLOT *slot; + PKCS11_CTX *ctx; + PKCS11_KEY_private *kpriv; +- PKCS11_SLOT_private *spriv; +- PKCS11_CTX_private *cpriv; ++ CK_SESSION_HANDLE session; + CK_MECHANISM mechanism; + CK_RSA_PKCS_OAEP_PARAMS oaep_params; + +@@ -434,8 +432,6 @@ static int pkcs11_try_pkey_rsa_decrypt(EVP_PKEY_CTX *evp_pkey_ctx, + slot = KEY2SLOT(key); + ctx = KEY2CTX(key); + kpriv = PRIVKEY(key); +- spriv = PRIVSLOT(slot); +- cpriv = PRIVCTX(ctx); + + if (!evp_pkey_ctx) + return -1; +@@ -470,15 +466,17 @@ static int pkcs11_try_pkey_rsa_decrypt(EVP_PKEY_CTX *evp_pkey_ctx, + return -1; + } /* end switch(padding) */ + +- CRYPTO_THREAD_write_lock(cpriv->rwlock); ++ if (pkcs11_get_session(slot, 0, &session)) ++ return -1; ++ + rv = CRYPTOKI_call(ctx, +- C_DecryptInit(spriv->session, &mechanism, kpriv->object)); ++ C_DecryptInit(session, &mechanism, kpriv->object)); + if (!rv && kpriv->always_authenticate == CK_TRUE) +- rv = pkcs11_authenticate(key); ++ rv = pkcs11_authenticate(key, session); + if (!rv) + rv = CRYPTOKI_call(ctx, +- C_Decrypt(spriv->session, (CK_BYTE_PTR)in, inlen, out, &size)); +- CRYPTO_THREAD_unlock(cpriv->rwlock); ++ C_Decrypt(session, (CK_BYTE_PTR)in, inlen, out, &size)); ++ pkcs11_put_session(slot, session); + #ifdef DEBUG + fprintf(stderr, "%s:%d C_DecryptInit or C_Decrypt rv=%d\n", + __FILE__, __LINE__, rv); +@@ -545,8 +543,7 @@ static int pkcs11_try_pkey_ec_sign(EVP_PKEY_CTX *evp_pkey_ctx, + PKCS11_SLOT *slot; + PKCS11_CTX *ctx; + PKCS11_KEY_private *kpriv; +- PKCS11_SLOT_private *spriv; +- PKCS11_CTX_private *cpriv; ++ CK_SESSION_HANDLE session; + const EVP_MD *sig_md; + ECDSA_SIG *ossl_sig; + CK_MECHANISM mechanism; +@@ -575,6 +572,12 @@ static int pkcs11_try_pkey_ec_sign(EVP_PKEY_CTX *evp_pkey_ctx, + goto error; + } + ++ if (sig == NULL) { ++ *siglen = (size_t)ECDSA_size(eckey); ++ rv = CKR_OK; ++ goto error; ++ } ++ + if (*siglen < (size_t)ECDSA_size(eckey)) + goto error; + +@@ -585,8 +588,6 @@ static int pkcs11_try_pkey_ec_sign(EVP_PKEY_CTX *evp_pkey_ctx, + slot = KEY2SLOT(key); + ctx = KEY2CTX(key); + kpriv = PRIVKEY(key); +- spriv = PRIVSLOT(slot); +- cpriv = PRIVCTX(ctx); + + if (!evp_pkey_ctx) + goto error; +@@ -601,15 +602,16 @@ static int pkcs11_try_pkey_ec_sign(EVP_PKEY_CTX *evp_pkey_ctx, + memset(&mechanism, 0, sizeof mechanism); + mechanism.mechanism = CKM_ECDSA; + +- CRYPTO_THREAD_write_lock(cpriv->rwlock); ++ if (pkcs11_get_session(slot, 0, &session)) ++ return -1; + rv = CRYPTOKI_call(ctx, +- C_SignInit(spriv->session, &mechanism, kpriv->object)); ++ C_SignInit(session, &mechanism, kpriv->object)); + if (!rv && kpriv->always_authenticate == CK_TRUE) +- rv = pkcs11_authenticate(key); ++ rv = pkcs11_authenticate(key, session); + if (!rv) + rv = CRYPTOKI_call(ctx, +- C_Sign(spriv->session, (CK_BYTE_PTR)tbs, tbslen, sig, &size)); +- CRYPTO_THREAD_unlock(cpriv->rwlock); ++ C_Sign(session, (CK_BYTE_PTR)tbs, tbslen, sig, &size)); ++ pkcs11_put_session(slot, session); + + #ifdef DEBUG + fprintf(stderr, "%s:%d C_SignInit or C_Sign rv=%d\n", +diff --git a/src/p11_pthread.h b/src/p11_pthread.h +new file mode 100644 +index 0000000..625ca96 +--- /dev/null ++++ b/src/p11_pthread.h +@@ -0,0 +1,94 @@ ++/* libp11, a simple layer on to of PKCS#11 API ++ * Copyright (C) 2017 Douglas E. Engert ++ * Copyright (C) 2017-2018 Michał Trojnara ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ */ ++ ++#if defined(HAVE_PTHREAD) ++ ++#include ++ ++#elif defined( _WIN32) ++ ++/* Simple wrappers for used pthread API using Windows Vista+ APIs. */ ++#if _WIN32_WINNT < 0x0600 ++#error Windows Vista (or Server 2008) or later required. ++#endif ++ ++#include ++ ++typedef CRITICAL_SECTION pthread_mutex_t; ++typedef void pthread_mutexattr_t; ++ ++static int pthread_mutex_init(pthread_mutex_t *mutex, pthread_mutexattr_t *attr) ++{ ++ (void)attr; ++ InitializeCriticalSection(mutex); ++ return 0; ++} ++ ++static int pthread_mutex_destroy(pthread_mutex_t *mutex) ++{ ++ DeleteCriticalSection(mutex); ++ return 0; ++} ++ ++static int pthread_mutex_lock(pthread_mutex_t *mutex) ++{ ++ EnterCriticalSection(mutex); ++ return 0; ++} ++ ++static int pthread_mutex_unlock(pthread_mutex_t *mutex) ++{ ++ LeaveCriticalSection(mutex); ++ return 0; ++} ++ ++typedef CONDITION_VARIABLE pthread_cond_t; ++typedef void pthread_condattr_t; ++ ++static int pthread_cond_init(pthread_cond_t *cond, pthread_condattr_t *attr) ++{ ++ (void)attr; ++ InitializeConditionVariable(cond); ++ return 0; ++} ++ ++static int pthread_cond_destroy(pthread_cond_t *cond) ++{ ++ (void)cond; ++ return 0; ++} ++ ++static int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) ++{ ++ if (!SleepConditionVariableCS(cond, mutex, INFINITE)) ++ return 1; ++ return 0; ++} ++ ++static int pthread_cond_signal(pthread_cond_t *cond) ++{ ++ WakeConditionVariable(cond); ++ return 0; ++} ++ ++#else ++ ++#error Locking not supported on this platform. ++ ++#endif +diff --git a/src/p11_rsa.c b/src/p11_rsa.c +index ff12ed7..83d79fd 100644 +--- a/src/p11_rsa.c ++++ b/src/p11_rsa.c +@@ -81,9 +81,9 @@ int pkcs11_private_encrypt(int flen, + PKCS11_SLOT *slot = KEY2SLOT(key); + PKCS11_CTX *ctx = KEY2CTX(key); + PKCS11_KEY_private *kpriv = PRIVKEY(key); +- PKCS11_SLOT_private *spriv = PRIVSLOT(slot); + CK_MECHANISM mechanism; + CK_ULONG size; ++ CK_SESSION_HANDLE session; + int rv; + + size = pkcs11_get_key_size(key); +@@ -91,26 +91,28 @@ int pkcs11_private_encrypt(int flen, + if (pkcs11_mechanism(&mechanism, padding) < 0) + return -1; + +- CRYPTO_THREAD_write_lock(PRIVCTX(ctx)->rwlock); ++ if (pkcs11_get_session(slot, 0, &session)) ++ return -1; ++ + /* Try signing first, as applications are more likely to use it */ + rv = CRYPTOKI_call(ctx, +- C_SignInit(spriv->session, &mechanism, kpriv->object)); ++ C_SignInit(session, &mechanism, kpriv->object)); + if (!rv && kpriv->always_authenticate == CK_TRUE) +- rv = pkcs11_authenticate(key); ++ rv = pkcs11_authenticate(key, session); + if (!rv) + rv = CRYPTOKI_call(ctx, +- C_Sign(spriv->session, (CK_BYTE *)from, flen, to, &size)); ++ C_Sign(session, (CK_BYTE *)from, flen, to, &size)); + if (rv == CKR_KEY_FUNCTION_NOT_PERMITTED) { + /* OpenSSL may use it for encryption rather than signing */ + rv = CRYPTOKI_call(ctx, +- C_EncryptInit(spriv->session, &mechanism, kpriv->object)); ++ C_EncryptInit(session, &mechanism, kpriv->object)); + if (!rv && kpriv->always_authenticate == CK_TRUE) +- rv = pkcs11_authenticate(key); ++ rv = pkcs11_authenticate(key, session); + if (!rv) + rv = CRYPTOKI_call(ctx, +- C_Encrypt(spriv->session, (CK_BYTE *)from, flen, to, &size)); ++ C_Encrypt(session, (CK_BYTE *)from, flen, to, &size)); + } +- CRYPTO_THREAD_unlock(PRIVCTX(ctx)->rwlock); ++ pkcs11_put_session(slot, session); + + if (rv) { + CKRerr(CKR_F_PKCS11_PRIVATE_ENCRYPT, rv); +@@ -127,7 +129,7 @@ int pkcs11_private_decrypt(int flen, const unsigned char *from, unsigned char *t + PKCS11_SLOT *slot = KEY2SLOT(key); + PKCS11_CTX *ctx = KEY2CTX(key); + PKCS11_KEY_private *kpriv = PRIVKEY(key); +- PKCS11_SLOT_private *spriv = PRIVSLOT(slot); ++ CK_SESSION_HANDLE session; + CK_MECHANISM mechanism; + CK_ULONG size = flen; + CK_RV rv; +@@ -135,16 +137,18 @@ int pkcs11_private_decrypt(int flen, const unsigned char *from, unsigned char *t + if (pkcs11_mechanism(&mechanism, padding) < 0) + return -1; + +- CRYPTO_THREAD_write_lock(PRIVCTX(ctx)->rwlock); ++ if (pkcs11_get_session(slot, 0, &session)) ++ return -1; ++ + rv = CRYPTOKI_call(ctx, +- C_DecryptInit(spriv->session, &mechanism, kpriv->object)); ++ C_DecryptInit(session, &mechanism, kpriv->object)); + if (!rv && kpriv->always_authenticate == CK_TRUE) +- rv = pkcs11_authenticate(key); ++ rv = pkcs11_authenticate(key, session); + if (!rv) + rv = CRYPTOKI_call(ctx, +- C_Decrypt(spriv->session, (CK_BYTE *)from, size, ++ C_Decrypt(session, (CK_BYTE *)from, size, + (CK_BYTE_PTR)to, &size)); +- CRYPTO_THREAD_unlock(PRIVCTX(ctx)->rwlock); ++ pkcs11_put_session(slot, session); + + if (rv) { + CKRerr(CKR_F_PKCS11_PRIVATE_DECRYPT, rv); +diff --git a/src/p11_slot.c b/src/p11_slot.c +index 6f08269..fe04ac3 100644 +--- a/src/p11_slot.c ++++ b/src/p11_slot.c +@@ -149,54 +149,88 @@ PKCS11_SLOT *pkcs11_find_next_token(PKCS11_CTX *ctx, PKCS11_SLOT *slots, + */ + int pkcs11_open_session(PKCS11_SLOT *slot, int rw) + { +- PKCS11_SLOT_private *spriv = PRIVSLOT(slot); + PKCS11_CTX *ctx = SLOT2CTX(slot); +- int rv; ++ PKCS11_SLOT_private *spriv = PRIVSLOT(slot); + +- if (spriv->haveSession) { +- CRYPTOKI_call(ctx, C_CloseSession(spriv->session)); +- spriv->haveSession = 0; ++ pthread_mutex_lock(&spriv->lock); ++ /* If different mode requested, flush pool */ ++ if (rw != spriv->rw_mode) { ++ CRYPTOKI_call(ctx, C_CloseAllSessions(spriv->id)); ++ spriv->rw_mode = rw; + } +- rv = CRYPTOKI_call(ctx, +- C_OpenSession(spriv->id, +- CKF_SERIAL_SESSION | (rw ? CKF_RW_SESSION : 0), +- NULL, NULL, &spriv->session)); +- CRYPTOKI_checkerr(CKR_F_PKCS11_OPEN_SESSION, rv); +- spriv->haveSession = 1; +- spriv->prev_rw = rw; ++ spriv->num_sessions = 0; ++ spriv->session_head = spriv->session_tail = 0; ++ pthread_mutex_unlock(&spriv->lock); ++ ++ return 0; ++} ++ ++int pkcs11_get_session(PKCS11_SLOT * slot, int rw, CK_SESSION_HANDLE *sessionp) ++{ ++ PKCS11_CTX *ctx = SLOT2CTX(slot); ++ PKCS11_SLOT_private *spriv = PRIVSLOT(slot); ++ int rv = CKR_OK; ++ ++ if (rw < 0) ++ return -1; ++ ++ pthread_mutex_lock(&spriv->lock); ++ if (spriv->rw_mode < 0) ++ spriv->rw_mode = rw; ++ rw = spriv->rw_mode; ++ do { ++ /* Get session from the pool */ ++ if (spriv->session_head != spriv->session_tail) { ++ *sessionp = spriv->session_pool[spriv->session_head]; ++ spriv->session_head = (spriv->session_head + 1) % spriv->session_poolsize; ++ break; ++ } ++ ++ /* Check if new can be instantiated */ ++ if (spriv->num_sessions < spriv->max_sessions) { ++ rv = CRYPTOKI_call(ctx, ++ C_OpenSession(spriv->id, ++ CKF_SERIAL_SESSION | (rw ? CKF_RW_SESSION : 0), ++ NULL, NULL, sessionp)); ++ if (rv == CKR_OK) { ++ spriv->num_sessions++; ++ break; ++ } ++ ++ /* Remember the maximum session count */ ++ if (rv == CKR_SESSION_COUNT) ++ spriv->max_sessions = spriv->num_sessions; ++ } ++ ++ /* Wait for a session to become available */ ++ pthread_cond_wait(&spriv->cond, &spriv->lock); ++ } while (1); ++ pthread_mutex_unlock(&spriv->lock); + + return 0; + } + ++void pkcs11_put_session(PKCS11_SLOT * slot, CK_SESSION_HANDLE session) ++{ ++ PKCS11_SLOT_private *spriv = PRIVSLOT(slot); ++ ++ pthread_mutex_lock(&spriv->lock); ++ ++ spriv->session_pool[spriv->session_tail] = session; ++ spriv->session_tail = (spriv->session_tail + 1) % spriv->session_poolsize; ++ pthread_cond_signal(&spriv->cond); ++ ++ pthread_mutex_unlock(&spriv->lock); ++} ++ + /* + * Determines if user is authenticated with token + */ + int pkcs11_is_logged_in(PKCS11_SLOT *slot, int so, int *res) + { +- PKCS11_CTX *ctx = SLOT2CTX(slot); + PKCS11_SLOT_private *spriv = PRIVSLOT(slot); +- CK_SESSION_INFO session_info; +- int rv; +- +- if (spriv->loggedIn) { +- *res = 1; +- return 0; +- } +- if (!spriv->haveSession) { +- /* SO gets a r/w session by default, +- * user gets a r/o session by default. */ +- if (PKCS11_open_session(slot, so)) +- return -1; +- } + +- rv = CRYPTOKI_call(ctx, C_GetSessionInfo(spriv->session, &session_info)); +- CRYPTOKI_checkerr(CKR_F_PKCS11_IS_LOGGED_IN, rv); +- if (so) { +- *res = session_info.state == CKS_RW_SO_FUNCTIONS; +- } else { +- *res = session_info.state == CKS_RO_USER_FUNCTIONS || +- session_info.state == CKS_RW_USER_FUNCTIONS; +- } ++ *res = spriv->logged_in == so; + return 0; + } + +@@ -207,25 +241,24 @@ int pkcs11_login(PKCS11_SLOT *slot, int so, const char *pin) + { + PKCS11_CTX *ctx = SLOT2CTX(slot); + PKCS11_SLOT_private *spriv = PRIVSLOT(slot); ++ CK_SESSION_HANDLE session; + int rv; + +- if (spriv->loggedIn) ++ if (spriv->logged_in >= 0) + return 0; /* Nothing to do */ + +- if (!spriv->haveSession) { +- /* SO gets a r/w session by default, +- * user gets a r/o session by default. */ +- if (pkcs11_open_session(slot, so)) +- return -1; +- } ++ /* SO needs a r/w session, user can be checked with a r/o session. */ ++ if (pkcs11_get_session(slot, so, &session)) ++ return -1; + + rv = CRYPTOKI_call(ctx, +- C_Login(spriv->session, so ? CKU_SO : CKU_USER, ++ C_Login(session, so ? CKU_SO : CKU_USER, + (CK_UTF8CHAR *) pin, pin ? (unsigned long) strlen(pin) : 0)); +- if (rv && rv != CKR_USER_ALREADY_LOGGED_IN) /* logged in -> OK */ +- CRYPTOKI_checkerr(CKR_F_PKCS11_LOGIN, rv); +- spriv->loggedIn = 1; ++ pkcs11_put_session(slot, session); + ++ if (rv && rv != CKR_USER_ALREADY_LOGGED_IN) { /* logged in -> OK */ ++ CRYPTOKI_checkerr(CKR_F_PKCS11_LOGIN, rv); ++ } + if (spriv->prev_pin != pin) { + if (spriv->prev_pin) { + OPENSSL_cleanse(spriv->prev_pin, strlen(spriv->prev_pin)); +@@ -233,7 +266,7 @@ int pkcs11_login(PKCS11_SLOT *slot, int so, const char *pin) + } + spriv->prev_pin = OPENSSL_strdup(pin); + } +- spriv->prev_so = so; ++ spriv->logged_in = so; + return 0; + } + +@@ -243,15 +276,13 @@ int pkcs11_login(PKCS11_SLOT *slot, int so, const char *pin) + int pkcs11_reload_slot(PKCS11_SLOT *slot) + { + PKCS11_SLOT_private *spriv = PRIVSLOT(slot); ++ int logged_in = spriv->logged_in; + +- if (spriv->haveSession) { +- spriv->haveSession = 0; +- if (pkcs11_open_session(slot, spriv->prev_rw)) +- return -1; +- } +- if (spriv->loggedIn) { +- spriv->loggedIn = 0; +- if (pkcs11_login(slot, spriv->prev_so, spriv->prev_pin)) ++ spriv->num_sessions = 0; ++ spriv->session_head = spriv->session_tail = 0; ++ if (logged_in >= 0) { ++ spriv->logged_in = -1; ++ if (pkcs11_login(slot, logged_in, spriv->prev_pin)) + return -1; + } + +@@ -265,7 +296,8 @@ int pkcs11_logout(PKCS11_SLOT *slot) + { + PKCS11_CTX *ctx = SLOT2CTX(slot); + PKCS11_SLOT_private *spriv = PRIVSLOT(slot); +- int rv; ++ CK_SESSION_HANDLE session; ++ int rv = CKR_OK; + + /* Calling PKCS11_logout invalidates all cached + * keys we have */ +@@ -274,14 +306,13 @@ int pkcs11_logout(PKCS11_SLOT *slot) + pkcs11_destroy_keys(slot->token, CKO_PUBLIC_KEY); + pkcs11_destroy_certs(slot->token); + } +- if (!spriv->haveSession) { +- P11err(P11_F_PKCS11_LOGOUT, P11_R_NO_SESSION); +- return -1; +- } + +- rv = CRYPTOKI_call(ctx, C_Logout(spriv->session)); ++ if (pkcs11_get_session(slot, spriv->logged_in, &session) == 0) { ++ rv = CRYPTOKI_call(ctx, C_Logout(session)); ++ pkcs11_put_session(slot, session); ++ } + CRYPTOKI_checkerr(CKR_F_PKCS11_LOGOUT, rv); +- spriv->loggedIn = 0; ++ spriv->logged_in = -1; + return 0; + } + +@@ -323,16 +354,17 @@ int pkcs11_init_pin(PKCS11_TOKEN *token, const char *pin) + { + PKCS11_SLOT *slot = TOKEN2SLOT(token); + PKCS11_CTX *ctx = SLOT2CTX(slot); +- PKCS11_SLOT_private *spriv = PRIVSLOT(slot); ++ CK_OBJECT_HANDLE session; + int len, rv; + +- if (!spriv->haveSession) { ++ if (pkcs11_get_session(slot, 1, &session)) { + P11err(P11_F_PKCS11_INIT_PIN, P11_R_NO_SESSION); + return -1; + } + + len = pin ? (int) strlen(pin) : 0; +- rv = CRYPTOKI_call(ctx, C_InitPIN(spriv->session, (CK_UTF8CHAR *) pin, len)); ++ rv = CRYPTOKI_call(ctx, C_InitPIN(session, (CK_UTF8CHAR *) pin, len)); ++ pkcs11_put_session(slot, session); + CRYPTOKI_checkerr(CKR_F_PKCS11_INIT_PIN, rv); + + return pkcs11_check_token(ctx, TOKEN2SLOT(token)); +@@ -345,10 +377,10 @@ int pkcs11_change_pin(PKCS11_SLOT *slot, const char *old_pin, + const char *new_pin) + { + PKCS11_CTX *ctx = SLOT2CTX(slot); +- PKCS11_SLOT_private *spriv = PRIVSLOT(slot); ++ CK_SESSION_HANDLE session; + int old_len, new_len, rv; + +- if (!spriv->haveSession) { ++ if (pkcs11_get_session(slot, 1, &session)) { + P11err(P11_F_PKCS11_CHANGE_PIN, P11_R_NO_SESSION); + return -1; + } +@@ -356,8 +388,9 @@ int pkcs11_change_pin(PKCS11_SLOT *slot, const char *old_pin, + old_len = old_pin ? (int) strlen(old_pin) : 0; + new_len = new_pin ? (int) strlen(new_pin) : 0; + rv = CRYPTOKI_call(ctx, +- C_SetPIN(spriv->session, (CK_UTF8CHAR *) old_pin, old_len, ++ C_SetPIN(session, (CK_UTF8CHAR *) old_pin, old_len, + (CK_UTF8CHAR *) new_pin, new_len)); ++ pkcs11_put_session(slot, session); + CRYPTOKI_checkerr(CKR_F_PKCS11_CHANGE_PIN, rv); + + return pkcs11_check_token(ctx, slot); +@@ -370,16 +403,17 @@ int pkcs11_seed_random(PKCS11_SLOT *slot, const unsigned char *s, + unsigned int s_len) + { + PKCS11_CTX *ctx = SLOT2CTX(slot); +- PKCS11_SLOT_private *spriv = PRIVSLOT(slot); ++ CK_SESSION_HANDLE session; + int rv; + +- if (!spriv->haveSession && PKCS11_open_session(slot, 0)) { ++ if (pkcs11_get_session(slot, 0, &session)) { + P11err(P11_F_PKCS11_SEED_RANDOM, P11_R_NO_SESSION); + return -1; + } + + rv = CRYPTOKI_call(ctx, +- C_SeedRandom(spriv->session, (CK_BYTE_PTR) s, s_len)); ++ C_SeedRandom(session, (CK_BYTE_PTR) s, s_len)); ++ pkcs11_put_session(slot, session); + CRYPTOKI_checkerr(CKR_F_PKCS11_SEED_RANDOM, rv); + + return pkcs11_check_token(ctx, slot); +@@ -392,16 +426,18 @@ int pkcs11_generate_random(PKCS11_SLOT *slot, unsigned char *r, + unsigned int r_len) + { + PKCS11_CTX *ctx = SLOT2CTX(slot); +- PKCS11_SLOT_private *spriv = PRIVSLOT(slot); ++ CK_SESSION_HANDLE session; + int rv; + +- if (!spriv->haveSession && PKCS11_open_session(slot, 0)) { ++ if (pkcs11_get_session(slot, 0, &session)) { + P11err(P11_F_PKCS11_GENERATE_RANDOM, P11_R_NO_SESSION); + return -1; + } + + rv = CRYPTOKI_call(ctx, +- C_GenerateRandom(spriv->session, (CK_BYTE_PTR) r, r_len)); ++ C_GenerateRandom(session, (CK_BYTE_PTR) r, r_len)); ++ pkcs11_put_session(slot, session); ++ + CRYPTOKI_checkerr(CKR_F_PKCS11_GENERATE_RANDOM, rv); + + return pkcs11_check_token(ctx, slot); +@@ -427,9 +463,14 @@ static int pkcs11_init_slot(PKCS11_CTX *ctx, PKCS11_SLOT *slot, CK_SLOT_ID id) + spriv->parent = ctx; + spriv->id = id; + spriv->forkid = PRIVCTX(ctx)->forkid; +- spriv->prev_rw = 0; + spriv->prev_pin = NULL; +- spriv->prev_so = 0; ++ spriv->logged_in = -1; ++ spriv->rw_mode = -1; ++ spriv->max_sessions = 16; ++ spriv->session_poolsize = spriv->max_sessions + 1; ++ spriv->session_pool = OPENSSL_malloc(spriv->session_poolsize * sizeof(CK_SESSION_HANDLE)); ++ pthread_mutex_init(&spriv->lock, 0); ++ pthread_cond_init(&spriv->cond, 0); + + slot->description = PKCS11_DUP(info.slotDescription); + slot->manufacturer = PKCS11_DUP(info.manufacturerID); +@@ -462,6 +503,9 @@ static void pkcs11_release_slot(PKCS11_CTX *ctx, PKCS11_SLOT *slot) + OPENSSL_free(spriv->prev_pin); + } + CRYPTOKI_call(ctx, C_CloseAllSessions(spriv->id)); ++ OPENSSL_free(spriv->session_pool); ++ pthread_mutex_destroy(&spriv->lock); ++ pthread_cond_destroy(&spriv->cond); + } + OPENSSL_free(slot->_private); + OPENSSL_free(slot->description); + +From c20f2b719df52cf472cd3709a60943909ffa65ca Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Timo=20Ter=C3=A4s?= +Date: Mon, 22 Mar 2021 09:55:13 +0200 +Subject: [PATCH 10/12] Replace the context rwlock with a mutex + +The only remaining user for this is the after-fork code, so rename +the lock also as fork_lock. +--- + src/libp11-int.h | 2 +- + src/p11_atfork.c | 4 ++-- + src/p11_load.c | 4 ++-- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/libp11-int.h b/src/libp11-int.h +index 2eb7703..a70c248 100644 +--- a/src/libp11-int.h ++++ b/src/libp11-int.h +@@ -49,7 +49,7 @@ typedef struct pkcs11_ctx_private { + UI_METHOD *ui_method; /* UI_METHOD for CKU_CONTEXT_SPECIFIC PINs */ + void *ui_user_data; + unsigned int forkid; +- PKCS11_RWLOCK rwlock; ++ pthread_mutex_t fork_lock; + } PKCS11_CTX_private; + #define PRIVCTX(ctx) ((PKCS11_CTX_private *) ((ctx)->_private)) + +diff --git a/src/p11_atfork.c b/src/p11_atfork.c +index af6e709..224b189 100644 +--- a/src/p11_atfork.c ++++ b/src/p11_atfork.c +@@ -65,9 +65,9 @@ static unsigned int _P11_update_forkid(void) + int rv = 0; \ + _P11_update_forkid(); \ + if (forkid != P11_forkid) { \ +- CRYPTO_THREAD_write_lock(PRIVCTX(ctx)->rwlock); \ ++ pthread_mutex_lock(&PRIVCTX(ctx)->fork_lock); \ + function_call; \ +- CRYPTO_THREAD_unlock(PRIVCTX(ctx)->rwlock); \ ++ pthread_mutex_unlock(&PRIVCTX(ctx)->fork_lock); \ + } \ + return rv; \ + } while (0) +diff --git a/src/p11_load.c b/src/p11_load.c +index 0704271..97b10f2 100644 +--- a/src/p11_load.c ++++ b/src/p11_load.c +@@ -40,7 +40,7 @@ PKCS11_CTX *pkcs11_CTX_new(void) + memset(ctx, 0, sizeof(PKCS11_CTX)); + ctx->_private = cpriv; + cpriv->forkid = get_forkid(); +- cpriv->rwlock = CRYPTO_THREAD_lock_new(); ++ pthread_mutex_init(&cpriv->fork_lock, 0); + + return ctx; + fail: +@@ -170,7 +170,7 @@ void pkcs11_CTX_free(PKCS11_CTX *ctx) + if (cpriv->handle) { + OPENSSL_free(cpriv->handle); + } +- CRYPTO_THREAD_lock_free(cpriv->rwlock); ++ pthread_mutex_destroy(&cpriv->fork_lock); + OPENSSL_free(ctx->manufacturer); + OPENSSL_free(ctx->description); + OPENSSL_free(ctx->_private); + +From 5b1c61ba713ce0ceca3e89674697f5890513d584 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Timo=20Ter=C3=A4s?= +Date: Mon, 22 Mar 2021 10:31:38 +0200 +Subject: [PATCH 11/12] Convert and fix engine context locking + +Optimize also ctx_init_libp11 to elide locking if the one time +intialization is completed already. + +Basic locking to key and certificate loading is added, because +the underlying functions they use are not thread safe. + +Also remove the old compat functions which are no longer needed. + +add simple locking +--- + src/eng_back.c | 84 ++++++++++++++++++------------------------------ + src/libp11-int.h | 20 ------------ + src/p11_misc.c | 28 ---------------- + 3 files changed, 31 insertions(+), 101 deletions(-) + +diff --git a/src/eng_back.c b/src/eng_back.c +index 37ee076..b4004f0 100644 +--- a/src/eng_back.c ++++ b/src/eng_back.c +@@ -27,6 +27,7 @@ + */ + + #include "engine.h" ++#include "p11_pthread.h" + #include + #include + +@@ -54,13 +55,7 @@ struct st_engine_ctx { + UI_METHOD *ui_method; + void *callback_data; + int force_login; +- +- /* Engine initialization mutex */ +-#if OPENSSL_VERSION_NUMBER >= 0x10100004L && !defined(LIBRESSL_VERSION_NUMBER) +- CRYPTO_RWLOCK *rwlock; +-#else +- int rwlock; +-#endif ++ pthread_mutex_t lock; + + /* Current operations */ + PKCS11_CTX *pkcs11_ctx; +@@ -224,6 +219,7 @@ ENGINE_CTX *ctx_new() + if (!ctx) + return NULL; + memset(ctx, 0, sizeof(ENGINE_CTX)); ++ pthread_mutex_init(&ctx->lock, 0); + + mod = getenv("PKCS11_MODULE_PATH"); + if (mod) { +@@ -236,13 +232,6 @@ ENGINE_CTX *ctx_new() + #endif + } + +-#if OPENSSL_VERSION_NUMBER >= 0x10100004L && !defined(LIBRESSL_VERSION_NUMBER) +- ctx->rwlock = CRYPTO_THREAD_lock_new(); +-#else +- ctx->rwlock = CRYPTO_get_dynlock_create_callback() ? +- CRYPTO_get_new_dynlockid() : 0; +-#endif +- + return ctx; + } + +@@ -253,12 +242,7 @@ int ctx_destroy(ENGINE_CTX *ctx) + ctx_destroy_pin(ctx); + OPENSSL_free(ctx->module); + OPENSSL_free(ctx->init_args); +-#if OPENSSL_VERSION_NUMBER >= 0x10100004L && !defined(LIBRESSL_VERSION_NUMBER) +- CRYPTO_THREAD_lock_free(ctx->rwlock); +-#else +- if (ctx->rwlock) +- CRYPTO_destroy_dynlockid(ctx->rwlock); +-#endif ++ pthread_mutex_destroy(&ctx->lock); + OPENSSL_free(ctx); + } + return 1; +@@ -302,20 +286,14 @@ static void ctx_init_libp11_unlocked(ENGINE_CTX *ctx) + + static int ctx_init_libp11(ENGINE_CTX *ctx) + { +-#if OPENSSL_VERSION_NUMBER >= 0x10100004L && !defined(LIBRESSL_VERSION_NUMBER) +- CRYPTO_THREAD_write_lock(ctx->rwlock); +-#else +- if (ctx->rwlock) +- CRYPTO_w_lock(ctx->rwlock); +-#endif +- if (!ctx->pkcs11_ctx|| !ctx->slot_list) ++ if (ctx->pkcs11_ctx && ctx->slot_list) ++ return 0; ++ ++ pthread_mutex_lock(&ctx->lock); ++ if (!ctx->pkcs11_ctx || !ctx->slot_list) + ctx_init_libp11_unlocked(ctx); +-#if OPENSSL_VERSION_NUMBER >= 0x10100004L && !defined(LIBRESSL_VERSION_NUMBER) +- CRYPTO_THREAD_unlock(ctx->rwlock); +-#else +- if (ctx->rwlock) +- CRYPTO_w_unlock(ctx->rwlock); +-#endif ++ pthread_mutex_unlock(&ctx->lock); ++ + return ctx->pkcs11_ctx && ctx->slot_list ? 0 : -1; + } + +@@ -327,21 +305,7 @@ int ctx_init(ENGINE_CTX *ctx) + * Double-locking a non-recursive rwlock causes the application to + * crash or hang, depending on the locking library implementation. */ + +- /* Only attempt initialization when dynamic locks are unavailable. +- * This likely also indicates a single-threaded application, +- * so temporarily unlocking CRYPTO_LOCK_ENGINE should be safe. */ +-#if OPENSSL_VERSION_NUMBER < 0x10100004L && !defined(LIBRESSL_VERSION_NUMBER) +- if (CRYPTO_get_dynlock_create_callback() == NULL || +- CRYPTO_get_dynlock_lock_callback() == NULL || +- CRYPTO_get_dynlock_destroy_callback() == NULL) { +- CRYPTO_w_unlock(CRYPTO_LOCK_ENGINE); +- ctx_init_libp11_unlocked(ctx); +- CRYPTO_w_lock(CRYPTO_LOCK_ENGINE); +- return ctx->pkcs11_ctx && ctx->slot_list ? 1 : 0; +- } +-#else + (void)ctx; /* squash the unused parameter warning */ +-#endif + return 1; + } + +@@ -389,9 +353,6 @@ static X509 *ctx_load_cert(ENGINE_CTX *ctx, const char *s_slot_cert_id, + char flags[64]; + size_t matched_count = 0; + +- if (ctx_init_libp11(ctx)) /* Delayed libp11 initialization */ +- return NULL; +- + if (s_slot_cert_id && *s_slot_cert_id) { + if (!strncasecmp(s_slot_cert_id, "pkcs11:", 7)) { + n = parse_pkcs11_uri(ctx, s_slot_cert_id, &match_tok, +@@ -640,13 +601,21 @@ static int ctx_ctrl_load_cert(ENGINE_CTX *ctx, void *p) + ENGerr(ENG_F_CTX_CTRL_LOAD_CERT, ENG_R_INVALID_PARAMETER); + return 0; + } ++ ++ if (ctx_init_libp11(ctx)) { /* Delayed libp11 initialization */ ++ ENGerr(ENG_F_CTX_CTRL_LOAD_CERT, ENG_R_INVALID_PARAMETER); ++ return 0; ++ } ++ + ERR_clear_error(); ++ pthread_mutex_lock(&ctx->lock); + if (!ctx->force_login) + parms->cert = ctx_load_cert(ctx, parms->s_slot_cert_id, 0); + if (!parms->cert) { /* Try again with login */ + ERR_clear_error(); + parms->cert = ctx_load_cert(ctx, parms->s_slot_cert_id, 1); + } ++ pthread_mutex_unlock(&ctx->lock); + if (!parms->cert) { + if (!ERR_peek_last_error()) + ENGerr(ENG_F_CTX_CTRL_LOAD_CERT, ENG_R_OBJECT_NOT_FOUND); +@@ -678,9 +647,6 @@ static EVP_PKEY *ctx_load_key(ENGINE_CTX *ctx, const char *s_slot_key_id, + char flags[64]; + size_t matched_count = 0; + +- if (ctx_init_libp11(ctx)) /* Delayed libp11 initialization */ +- goto error; +- + ctx_log(ctx, 1, "Loading %s key \"%s\"\n", + (char *)(isPrivate ? "private" : "public"), + s_slot_key_id); +@@ -941,12 +907,18 @@ EVP_PKEY *ctx_load_pubkey(ENGINE_CTX *ctx, const char *s_key_id, + EVP_PKEY *pk = NULL; + + ERR_clear_error(); ++ ++ if (ctx_init_libp11(ctx)) /* Delayed libp11 initialization */ ++ return NULL; ++ ++ pthread_mutex_lock(&ctx->lock); + if (!ctx->force_login) + pk = ctx_load_key(ctx, s_key_id, ui_method, callback_data, 0, 0); + if (!pk) { /* Try again with login */ + ERR_clear_error(); + pk = ctx_load_key(ctx, s_key_id, ui_method, callback_data, 0, 1); + } ++ pthread_mutex_unlock(&ctx->lock); + if (!pk) { + ctx_log(ctx, 0, "PKCS11_load_public_key returned NULL\n"); + if (!ERR_peek_last_error()) +@@ -962,12 +934,18 @@ EVP_PKEY *ctx_load_privkey(ENGINE_CTX *ctx, const char *s_key_id, + EVP_PKEY *pk = NULL; + + ERR_clear_error(); ++ ++ if (ctx_init_libp11(ctx)) /* Delayed libp11 initialization */ ++ return NULL; ++ ++ pthread_mutex_lock(&ctx->lock); + if (!ctx->force_login) + pk = ctx_load_key(ctx, s_key_id, ui_method, callback_data, 1, 0); + if (!pk) { /* Try again with login */ + ERR_clear_error(); + pk = ctx_load_key(ctx, s_key_id, ui_method, callback_data, 1, 1); + } ++ pthread_mutex_unlock(&ctx->lock); + if (!pk) { + ctx_log(ctx, 0, "PKCS11_get_private_key returned NULL\n"); + if (!ERR_peek_last_error()) +diff --git a/src/libp11-int.h b/src/libp11-int.h +index a70c248..d05665c 100644 +--- a/src/libp11-int.h ++++ b/src/libp11-int.h +@@ -31,12 +31,6 @@ + + #include "p11_pthread.h" + +-#if OPENSSL_VERSION_NUMBER < 0x10100004L || defined(LIBRESSL_VERSION_NUMBER) +-typedef int PKCS11_RWLOCK; +-#else +-typedef CRYPTO_RWLOCK *PKCS11_RWLOCK; +-#endif +- + /* get private implementations of PKCS11 structures */ + + /* +@@ -140,20 +134,6 @@ extern int ERR_load_CKR_strings(void); + pkcs11_strdup((char *) s, sizeof(s)) + extern char *pkcs11_strdup(char *, size_t); + +-/* Emulate the OpenSSL 1.1 locking API for older OpenSSL versions */ +-#if OPENSSL_VERSION_NUMBER < 0x10100004L || defined(LIBRESSL_VERSION_NUMBER) +-int CRYPTO_THREAD_lock_new(); +-void CRYPTO_THREAD_lock_free(int); +-#define CRYPTO_THREAD_write_lock(type) \ +- if(type) CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE,type,__FILE__,__LINE__) +-#define CRYPTO_THREAD_unlock(type) \ +- if(type) CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_WRITE,type,__FILE__,__LINE__) +-#define CRYPTO_THREAD_read_lock(type) \ +- if(type) CRYPTO_lock(CRYPTO_LOCK|CRYPTO_READ,type,__FILE__,__LINE__) +-#define CRYPTO_THREAD_read_unlock(type) \ +- if(type) CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_READ,type,__FILE__,__LINE__) +-#endif +- + /* Emulate the OpenSSL 1.1 getters */ + #if OPENSSL_VERSION_NUMBER < 0x10100003L || defined(LIBRESSL_VERSION_NUMBER) + #define EVP_PKEY_get0_RSA(key) ((key)->pkey.rsa) +diff --git a/src/p11_misc.c b/src/p11_misc.c +index d871f9c..7458d74 100644 +--- a/src/p11_misc.c ++++ b/src/p11_misc.c +@@ -39,32 +39,4 @@ char *pkcs11_strdup(char *mem, size_t size) + return res; + } + +-/* +- * CRYPTO dynlock wrappers: 0 is an invalid dynamic lock ID +- */ +- +-#if OPENSSL_VERSION_NUMBER < 0x10100004L || defined(LIBRESSL_VERSION_NUMBER) +- +-int CRYPTO_THREAD_lock_new() +-{ +- int i; +- +- if (CRYPTO_get_dynlock_create_callback() == NULL || +- CRYPTO_get_dynlock_lock_callback() == NULL || +- CRYPTO_get_dynlock_destroy_callback() == NULL) +- return 0; /* Dynamic callbacks not set */ +- i = CRYPTO_get_new_dynlockid(); +- if (i == 0) +- ERR_clear_error(); /* Dynamic locks are optional -> ignore */ +- return i; +-} +- +-void CRYPTO_THREAD_lock_free(int i) +-{ +- if (i) +- CRYPTO_destroy_dynlockid(i); +-} +- +-#endif +- + /* vim: set noexpandtab: */ + +From b750e5fa91bce4286bd87d0654f9256a1d761178 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Timo=20Ter=C3=A4s?= +Date: Mon, 22 Mar 2021 10:50:58 +0200 +Subject: [PATCH 12/12] Refactor attribute getting to include session handle + +This avoids one thread to get two sessions from the pool, and +speeds up operation as locking is not needed to get the attribute. +--- + src/libp11-int.h | 32 ++++++++------------------------ + src/p11_attr.c | 44 ++++++++++++++++---------------------------- + src/p11_cert.c | 10 +++++----- + src/p11_ec.c | 26 +++++++++++++++++--------- + src/p11_key.c | 22 +++++++++++----------- + src/p11_rsa.c | 23 +++++++++++++++++------ + 6 files changed, 74 insertions(+), 83 deletions(-) + +diff --git a/src/libp11-int.h b/src/libp11-int.h +index d05665c..f743eb9 100644 +--- a/src/libp11-int.h ++++ b/src/libp11-int.h +@@ -158,34 +158,18 @@ extern int pkcs11_reload_certificate(PKCS11_CERT *cert); + extern int pkcs11_reload_slot(PKCS11_SLOT * slot); + + /* Managing object attributes */ +-extern int pkcs11_getattr_var(PKCS11_TOKEN *, CK_OBJECT_HANDLE, +- unsigned int, CK_BYTE *, size_t *); +-extern int pkcs11_getattr_val(PKCS11_TOKEN *, CK_OBJECT_HANDLE, +- unsigned int, void *, size_t); +-extern int pkcs11_getattr_alloc(PKCS11_TOKEN *, CK_OBJECT_HANDLE, +- unsigned int, CK_BYTE **, size_t *); ++extern int pkcs11_getattr_var(PKCS11_CTX *, CK_SESSION_HANDLE, CK_OBJECT_HANDLE, ++ CK_ATTRIBUTE_TYPE, CK_BYTE *, size_t *); ++extern int pkcs11_getattr_val(PKCS11_CTX *, CK_SESSION_HANDLE, CK_OBJECT_HANDLE, ++ CK_ATTRIBUTE_TYPE, void *, size_t); ++extern int pkcs11_getattr_alloc(PKCS11_CTX *, CK_SESSION_HANDLE, CK_OBJECT_HANDLE, ++ CK_ATTRIBUTE_TYPE, CK_BYTE **, size_t *); + /* + * Caution: the BIGNUM ** shall reference either a NULL pointer or a + * pointer to a valid BIGNUM. + */ +-extern int pkcs11_getattr_bn(PKCS11_TOKEN *, CK_OBJECT_HANDLE, +- unsigned int, BIGNUM **); +- +-#define key_getattr_var(key, t, p, s) \ +- pkcs11_getattr_var(KEY2TOKEN((key)), PRIVKEY((key))->object, (t), (p), (s)) +- +-#define key_getattr_val(key, t, p, s) \ +- pkcs11_getattr_val(KEY2TOKEN((key)), PRIVKEY((key))->object, (t), (p), (s)) +- +-#define key_getattr_alloc(key, t, p, s) \ +- pkcs11_getattr_alloc(KEY2TOKEN((key)), PRIVKEY((key))->object, (t), (p), (s)) +- +-/* +- * Caution: bn shall reference either a NULL pointer or a pointer to +- * a valid BIGNUM. +- */ +-#define key_getattr_bn(key, t, bn) \ +- pkcs11_getattr_bn(KEY2TOKEN((key)), PRIVKEY((key))->object, (t), (bn)) ++extern int pkcs11_getattr_bn(PKCS11_CTX *, CK_SESSION_HANDLE, CK_OBJECT_HANDLE, ++ CK_ATTRIBUTE_TYPE, BIGNUM **); + + typedef int (*pkcs11_i2d_fn) (void *, unsigned char **); + extern void pkcs11_addattr(CK_ATTRIBUTE_PTR, int, const void *, size_t); +diff --git a/src/p11_attr.c b/src/p11_attr.c +index d261c04..7c0fa93 100644 +--- a/src/p11_attr.c ++++ b/src/p11_attr.c +@@ -33,49 +33,37 @@ + /* + * Query pkcs11 attributes + */ +-static int pkcs11_getattr_int(PKCS11_TOKEN *token, CK_OBJECT_HANDLE o, +- CK_ATTRIBUTE_TYPE type, CK_BYTE *value, size_t *size) ++int pkcs11_getattr_var(PKCS11_CTX *ctx, CK_SESSION_HANDLE session, ++ CK_OBJECT_HANDLE object, CK_ATTRIBUTE_TYPE type, ++ CK_BYTE *value, size_t *size) + { +- PKCS11_SLOT *slot = TOKEN2SLOT(token); +- PKCS11_CTX *ctx = SLOT2CTX(slot); + CK_ATTRIBUTE templ; +- CK_SESSION_HANDLE session; + int rv; + + templ.type = type; + templ.pValue = value; + templ.ulValueLen = *size; +- +- if (pkcs11_get_session(slot, 0, &session)) +- return -1; +- +- rv = CRYPTOKI_call(ctx, C_GetAttributeValue(session, o, &templ, 1)); +- pkcs11_put_session(slot, session); +- ++ rv = CRYPTOKI_call(ctx, C_GetAttributeValue(session, object, &templ, 1)); + CRYPTOKI_checkerr(CKR_F_PKCS11_GETATTR_INT, rv); + *size = templ.ulValueLen; + return 0; + } + +-int pkcs11_getattr_var(PKCS11_TOKEN *token, CK_OBJECT_HANDLE object, +- unsigned int type, CK_BYTE *value, size_t *size) +-{ +- return pkcs11_getattr_int(token, object, type, value, size); +-} +- +-int pkcs11_getattr_val(PKCS11_TOKEN *token, CK_OBJECT_HANDLE object, +- unsigned int type, void *value, size_t size) ++int pkcs11_getattr_val(PKCS11_CTX *ctx, CK_SESSION_HANDLE session, ++ CK_OBJECT_HANDLE object, CK_ATTRIBUTE_TYPE type, ++ void *value, size_t size) + { +- return pkcs11_getattr_var(token, object, type, value, &size); ++ return pkcs11_getattr_var(ctx, session, object, type, value, &size); + } + +-int pkcs11_getattr_alloc(PKCS11_TOKEN *token, CK_OBJECT_HANDLE object, +- unsigned int type, CK_BYTE **value, size_t *size) ++int pkcs11_getattr_alloc(PKCS11_CTX *ctx, CK_SESSION_HANDLE session, ++ CK_OBJECT_HANDLE object, CK_ATTRIBUTE_TYPE type, ++ CK_BYTE **value, size_t *size) + { + CK_BYTE *data; + size_t len = 0; + +- if (pkcs11_getattr_var(token, object, type, NULL, &len)) ++ if (pkcs11_getattr_var(ctx, session, object, type, NULL, &len)) + return -1; + data = OPENSSL_malloc(len+1); + if (!data) { +@@ -83,7 +71,7 @@ int pkcs11_getattr_alloc(PKCS11_TOKEN *token, CK_OBJECT_HANDLE object, + return -1; + } + memset(data, 0, len+1); /* also null-terminate the allocated data */ +- if (pkcs11_getattr_var(token, object, type, data, &len)) { ++ if (pkcs11_getattr_var(ctx, session, object, type, data, &len)) { + OPENSSL_free(data); + return -1; + } +@@ -94,14 +82,14 @@ int pkcs11_getattr_alloc(PKCS11_TOKEN *token, CK_OBJECT_HANDLE object, + return 0; + } + +-int pkcs11_getattr_bn(PKCS11_TOKEN *token, CK_OBJECT_HANDLE object, +- unsigned int type, BIGNUM **bn) ++int pkcs11_getattr_bn(PKCS11_CTX *ctx, CK_SESSION_HANDLE session, ++ CK_OBJECT_HANDLE object, CK_ATTRIBUTE_TYPE type, BIGNUM **bn) + { + CK_BYTE *binary; + size_t size; + + size = 0; +- if (pkcs11_getattr_alloc(token, object, type, &binary, &size)) ++ if (pkcs11_getattr_alloc(ctx, session, object, type, &binary, &size)) + return -1; + /* + * @ALON: invalid object, +diff --git a/src/p11_cert.c b/src/p11_cert.c +index 024c03f..5cc5333 100644 +--- a/src/p11_cert.c ++++ b/src/p11_cert.c +@@ -165,7 +165,7 @@ static int pkcs11_init_cert(PKCS11_CTX *ctx, PKCS11_TOKEN *token, + + /* Ignore unknown certificate types */ + size = sizeof(CK_CERTIFICATE_TYPE); +- if (pkcs11_getattr_var(token, obj, CKA_CERTIFICATE_TYPE, (CK_BYTE *)&cert_type, &size)) ++ if (pkcs11_getattr_var(ctx, session, obj, CKA_CERTIFICATE_TYPE, (CK_BYTE *)&cert_type, &size)) + return -1; + if (cert_type != CKC_X_509) + return 0; +@@ -192,23 +192,23 @@ static int pkcs11_init_cert(PKCS11_CTX *ctx, PKCS11_TOKEN *token, + memset(cert, 0, sizeof(PKCS11_CERT)); + + /* Fill public properties */ +- pkcs11_getattr_alloc(token, obj, CKA_LABEL, (CK_BYTE **)&cert->label, NULL); ++ pkcs11_getattr_alloc(ctx, session, obj, CKA_LABEL, (CK_BYTE **)&cert->label, NULL); + size = 0; +- if (!pkcs11_getattr_alloc(token, obj, CKA_VALUE, &data, &size)) { ++ if (!pkcs11_getattr_alloc(ctx, session, obj, CKA_VALUE, &data, &size)) { + const unsigned char *p = data; + + cert->x509 = d2i_X509(NULL, &p, (long)size); + OPENSSL_free(data); + } + cert->id_len = 0; +- pkcs11_getattr_alloc(token, obj, CKA_ID, &cert->id, &cert->id_len); ++ pkcs11_getattr_alloc(ctx, session, obj, CKA_ID, &cert->id, &cert->id_len); + + /* Fill private properties */ + cert->_private = cpriv; + cpriv->object = obj; + cpriv->parent = token; + cpriv->id_len = sizeof cpriv->id; +- if (pkcs11_getattr_var(token, obj, CKA_ID, cpriv->id, &cpriv->id_len)) ++ if (pkcs11_getattr_var(ctx, session, obj, CKA_ID, cpriv->id, &cpriv->id_len)) + cpriv->id_len = 0; + + if (ret) +diff --git a/src/p11_ec.c b/src/p11_ec.c +index 0fddff7..294cbad 100644 +--- a/src/p11_ec.c ++++ b/src/p11_ec.c +@@ -187,14 +187,15 @@ static void free_ec_ex_index() + + /* Retrieve EC parameters from key into ec + * return nonzero on error */ +-static int pkcs11_get_params(EC_KEY *ec, PKCS11_KEY *key) ++static int pkcs11_get_params(EC_KEY *ec, PKCS11_KEY *key, CK_SESSION_HANDLE session) + { + CK_BYTE *params; + size_t params_len = 0; + const unsigned char *a; + int rv; + +- if (key_getattr_alloc(key, CKA_EC_PARAMS, ¶ms, ¶ms_len)) ++ if (pkcs11_getattr_alloc(KEY2CTX(key), session, PRIVKEY(key)->object, ++ CKA_EC_PARAMS, ¶ms, ¶ms_len)) + return -1; + + a = params; +@@ -205,7 +206,7 @@ static int pkcs11_get_params(EC_KEY *ec, PKCS11_KEY *key) + + /* Retrieve EC point from key into ec + * return nonzero on error */ +-static int pkcs11_get_point_key(EC_KEY *ec, PKCS11_KEY *key) ++static int pkcs11_get_point_key(EC_KEY *ec, PKCS11_KEY *key, CK_SESSION_HANDLE session) + { + CK_BYTE *point; + size_t point_len = 0; +@@ -213,7 +214,8 @@ static int pkcs11_get_point_key(EC_KEY *ec, PKCS11_KEY *key) + ASN1_OCTET_STRING *os; + int rv = -1; + +- if (!key || key_getattr_alloc(key, CKA_EC_POINT, &point, &point_len)) ++ if (!key || pkcs11_getattr_alloc(KEY2CTX(key), session, PRIVKEY(key)->object, ++ CKA_EC_POINT, &point, &point_len)) + return -1; + + /* PKCS#11-compliant modules should return ASN1_OCTET_STRING */ +@@ -268,6 +270,8 @@ static int pkcs11_get_point_cert(EC_KEY *ec, PKCS11_CERT *cert) + + static EC_KEY *pkcs11_get_ec(PKCS11_KEY *key) + { ++ PKCS11_SLOT *slot = KEY2SLOT(key); ++ CK_SESSION_HANDLE session; + EC_KEY *ec; + int no_params, no_point; + +@@ -280,12 +284,17 @@ static EC_KEY *pkcs11_get_ec(PKCS11_KEY *key) + * Continue even if it fails, as the sign operation does not need + * it if the PKCS#11 module or the hardware can figure this out + */ +- no_params = pkcs11_get_params(ec, key); +- no_point = pkcs11_get_point_key(ec, key); ++ if (pkcs11_get_session(slot, 0, &session)) { ++ EC_KEY_free(ec); ++ return NULL; ++ } ++ no_params = pkcs11_get_params(ec, key, session); ++ no_point = pkcs11_get_point_key(ec, key, session); + if (no_point && key->isPrivate) /* Retry with the public key */ +- no_point = pkcs11_get_point_key(ec, pkcs11_find_key_from_key(key)); ++ no_point = pkcs11_get_point_key(ec, pkcs11_find_key_from_key(key), session); + if (no_point && key->isPrivate) /* Retry with the certificate */ + no_point = pkcs11_get_point_cert(ec, pkcs11_find_certificate(key)); ++ pkcs11_put_session(slot, session); + + if (key->isPrivate && EC_KEY_get0_private_key(ec) == NULL) { + BIGNUM *bn = BN_new(); +@@ -544,7 +553,6 @@ static int pkcs11_ecdh_derive(unsigned char **out, size_t *outlen, + { + PKCS11_SLOT *slot = KEY2SLOT(key); + PKCS11_CTX *ctx = KEY2CTX(key); +- PKCS11_TOKEN *token = KEY2TOKEN(key); + PKCS11_KEY_private *kpriv = PRIVKEY(key); + CK_SESSION_HANDLE session; + CK_MECHANISM mechanism; +@@ -597,7 +605,7 @@ static int pkcs11_ecdh_derive(unsigned char **out, size_t *outlen, + + /* Return the value of the secret key and/or the object handle of the secret key */ + if (out && outlen) { /* pkcs11_ec_ckey only asks for the value */ +- if (pkcs11_getattr_alloc(token, newkey, CKA_VALUE, out, outlen)) { ++ if (pkcs11_getattr_alloc(ctx, session, newkey, CKA_VALUE, out, outlen)) { + CRYPTOKI_call(ctx, C_DestroyObject(session, newkey)); + goto error; + } +diff --git a/src/p11_key.c b/src/p11_key.c +index d42386b..494520f 100644 +--- a/src/p11_key.c ++++ b/src/p11_key.c +@@ -333,13 +333,6 @@ EVP_PKEY *pkcs11_get_key(PKCS11_KEY *key, int isPrivate) + key->evp_key = kpriv->ops->get_evp_key(key); + if (!key->evp_key) + return NULL; +- kpriv->always_authenticate = CK_FALSE; +- if (isPrivate && key_getattr_val(key, CKA_ALWAYS_AUTHENTICATE, +- &kpriv->always_authenticate, sizeof(CK_BBOOL))) { +-#ifdef DEBUG +- fprintf(stderr, "Missing CKA_ALWAYS_AUTHENTICATE attribute\n"); +-#endif +- } + } + #if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + EVP_PKEY_up_ref(key->evp_key); +@@ -531,7 +524,7 @@ static int pkcs11_init_key(PKCS11_CTX *ctx, PKCS11_TOKEN *token, + + /* Ignore unknown key types */ + size = sizeof(CK_KEY_TYPE); +- if (pkcs11_getattr_var(token, obj, CKA_KEY_TYPE, (CK_BYTE *)&key_type, &size)) ++ if (pkcs11_getattr_var(ctx, session, obj, CKA_KEY_TYPE, (CK_BYTE *)&key_type, &size)) + return -1; + switch (key_type) { + case CKK_RSA: +@@ -567,17 +560,24 @@ static int pkcs11_init_key(PKCS11_CTX *ctx, PKCS11_TOKEN *token, + memset(key, 0, sizeof(PKCS11_KEY)); + + /* Fill public properties */ +- pkcs11_getattr_alloc(token, obj, CKA_LABEL, (CK_BYTE **)&key->label, NULL); ++ pkcs11_getattr_alloc(ctx, session, obj, CKA_LABEL, (CK_BYTE **)&key->label, NULL); + key->id_len = 0; +- pkcs11_getattr_alloc(token, obj, CKA_ID, &key->id, &key->id_len); ++ pkcs11_getattr_alloc(ctx, session, obj, CKA_ID, &key->id, &key->id_len); + key->isPrivate = (type == CKO_PRIVATE_KEY); ++ if (key->isPrivate && pkcs11_getattr_val(ctx, session, obj, ++ CKA_ALWAYS_AUTHENTICATE, ++ &kpriv->always_authenticate, sizeof(CK_BBOOL))) { ++#ifdef DEBUG ++ fprintf(stderr, "Missing CKA_ALWAYS_AUTHENTICATE attribute\n"); ++#endif ++ } + + /* Fill private properties */ + key->_private = kpriv; + kpriv->object = obj; + kpriv->parent = token; + kpriv->id_len = sizeof kpriv->id; +- if (pkcs11_getattr_var(token, obj, CKA_ID, kpriv->id, &kpriv->id_len)) ++ if (pkcs11_getattr_var(ctx, session, obj, CKA_ID, kpriv->id, &kpriv->id_len)) + kpriv->id_len = 0; + kpriv->ops = ops; + kpriv->forkid = get_forkid(); +diff --git a/src/p11_rsa.c b/src/p11_rsa.c +index 83d79fd..f2f3eb3 100644 +--- a/src/p11_rsa.c ++++ b/src/p11_rsa.c +@@ -179,17 +179,24 @@ int pkcs11_verify(int type, const unsigned char *m, unsigned int m_len, + */ + static RSA *pkcs11_get_rsa(PKCS11_KEY *key) + { +- RSA *rsa; ++ PKCS11_CTX *ctx = KEY2CTX(key); ++ PKCS11_SLOT *slot = KEY2SLOT(key); + PKCS11_KEY *keys; ++ CK_OBJECT_HANDLE object = PRIVKEY(key)->object; ++ CK_SESSION_HANDLE session; ++ RSA *rsa; + unsigned int i, count; + BIGNUM *rsa_n = NULL, *rsa_e = NULL; + +- /* Retrieve the modulus */ +- if (key_getattr_bn(key, CKA_MODULUS, &rsa_n)) ++ if (pkcs11_get_session(slot, 0, &session)) + return NULL; + ++ /* Retrieve the modulus */ ++ if (pkcs11_getattr_bn(ctx, session, object, CKA_MODULUS, &rsa_n)) ++ goto failure; ++ + /* Retrieve the public exponent */ +- if (!key_getattr_bn(key, CKA_PUBLIC_EXPONENT, &rsa_e)) { ++ if (!pkcs11_getattr_bn(ctx, session, object, CKA_PUBLIC_EXPONENT, &rsa_e)) { + if (!BN_is_zero(rsa_e)) /* A valid public exponent */ + goto success; + BN_clear_free(rsa_e); +@@ -201,10 +208,12 @@ static RSA *pkcs11_get_rsa(PKCS11_KEY *key) + if (!PKCS11_enumerate_public_keys(KEY2TOKEN(key), &keys, &count)) { + for (i = 0; i < count; i++) { + BIGNUM *pubmod = NULL; +- if (!key_getattr_bn(&keys[i], CKA_MODULUS, &pubmod)) { ++ if (!pkcs11_getattr_bn(ctx, session, PRIVKEY(&keys[i])->object, ++ CKA_MODULUS, &pubmod)) { + int found = BN_cmp(rsa_n, pubmod) == 0; + BN_clear_free(pubmod); +- if (found && !key_getattr_bn(&keys[i], ++ if (found && !pkcs11_getattr_bn(ctx, session, ++ PRIVKEY(&keys[i])->object, + CKA_PUBLIC_EXPONENT, &rsa_e)) + goto success; + } +@@ -217,6 +226,7 @@ static RSA *pkcs11_get_rsa(PKCS11_KEY *key) + goto success; + + failure: ++ pkcs11_put_session(slot, session); + if (rsa_n) + BN_clear_free(rsa_n); + if (rsa_e) +@@ -224,6 +234,7 @@ static RSA *pkcs11_get_rsa(PKCS11_KEY *key) + return NULL; + + success: ++ pkcs11_put_session(slot, session); + rsa = RSA_new(); + if (!rsa) + goto failure; diff --git a/openssl-pkcs11.spec b/openssl-pkcs11.spec new file mode 100644 index 0000000..8034278 --- /dev/null +++ b/openssl-pkcs11.spec @@ -0,0 +1,93 @@ +%define anolis_release 1 + +# Define the directory where the OpenSSL engines are installed +%global enginesdir %{_libdir}/engines-3 + +Name: openssl-pkcs11 +Version: 0.4.11 +Release: %{anolis_release}%{?dist} +Summary: A PKCS#11 engine for use with OpenSSL +# The source code is LGPLv2+ except eng_back.c and eng_parse.c which are BSD +License: LGPLv2+ and BSD +URL: https://github.com/OpenSC/libp11 +Source0: https://github.com/OpenSC/libp11/releases/download/libp11-%{version}/libp11-%{version}.tar.gz + +# Downstream only for now to make RSA operations working in FIPS mode +Patch4: openssl-pkcs11-0.4.10-set-rsa-fips-method-flag.patch +# Coverity issues +# https://github.com/OpenSC/libp11/pull/400 +Patch5: openssl-pkcs11-0.4.10-coverity.patch +# https://github.com/OpenSC/libp11/pull/406 +Patch6: openssl-pkcs11-0.4.10-openssl3.patch +# https://github.com/OpenSC/libp11/pull/396 +Patch7: openssl-pkcs11-0.4.11-thread-safety.patch + +BuildRequires: make +BuildRequires: autoconf automake libtool +BuildRequires: openssl-devel +BuildRequires: openssl >= 3.0.0 +BuildRequires: pkgconfig +BuildRequires: pkgconfig(p11-kit-1) +# Needed for testsuite +BuildRequires: softhsm opensc procps-ng + + +Requires: p11-kit-trust +Requires: openssl-libs >= 3.0.0 + +# Package renamed from libp11 to openssl-pkcs11 in release 0.4.7-4 +Provides: libp11%{?_isa} = %{version}-%{release} +Obsoletes: libp11 < 0.4.7-4 +# The engine_pkcs11 subpackage is also provided +Provides: engine_pkcs11%{?_isa} = %{version}-%{release} +Obsoletes: engine_pkcs11 < 0.4.7-4 + + +%description -n openssl-pkcs11 +openssl-pkcs11 enables hardware security module (HSM), and smart card support in +OpenSSL applications. More precisely, it is an OpenSSL engine which makes +registered PKCS#11 modules available for OpenSSL applications. The engine is +optional and can be loaded by configuration file, command line or through the +OpenSSL ENGINE API. + + +%prep +%autosetup -p 1 -n libp11-%{version} + +%build +autoreconf -fvi +export CFLAGS="%{optflags}" +%configure --disable-static --with-enginesdir=%{enginesdir} +make V=1 %{?_smp_mflags} + +%install +mkdir -p %{buildroot}%{enginesdir} +make install DESTDIR=%{buildroot} + +# Remove libtool .la files +rm -f %{buildroot}%{_libdir}/*.la +rm -f %{buildroot}%{enginesdir}/*.la + +## Remove development files +rm -f %{buildroot}%{_libdir}/libp11.so +rm -f %{buildroot}%{_libdir}/pkgconfig/libp11.pc +rm -f %{buildroot}%{_includedir}/*.h + +# Remove documentation automatically installed by make install +rm -rf %{buildroot}%{_docdir}/libp11/ + +%check +make check %{?_smp_mflags} || if [ $? -ne 0 ]; then cat tests/*.log; exit 1; fi; + +%ldconfig_scriptlets + +%files +%license COPYING +%doc NEWS +%{_libdir}/libp11.so.* +%{enginesdir}/*.so + + +%changelog +* Mon Mar 14 2022 Renbo - 0.4.11-1 +- Init for Anolis OS 23 -- Gitee