From 17f6e442e5d8fee952279c16b31b91e196231026 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Sun, 17 Jul 2022 05:22:44 -0700 Subject: [PATCH 01/15] Add TLS (https) support --- .gitmodules | 3 + cores/rp2040/RP2040Support.h | 22 + lib/libbearssl.a | Bin 0 -> 7626624 bytes libraries/WiFi/src/BearSSLHelpers.cpp | 1002 ++++++++++ libraries/WiFi/src/BearSSLHelpers.h | 247 +++ libraries/WiFi/src/CertStoreBearSSL.cpp | 236 +++ libraries/WiFi/src/CertStoreBearSSL.h | 73 + libraries/WiFi/src/WiFi.h | 4 +- libraries/WiFi/src/WiFiClientSecure.h | 25 + .../WiFi/src/WiFiClientSecureBearSSL.cpp | 1666 +++++++++++++++++ libraries/WiFi/src/WiFiClientSecureBearSSL.h | 465 +++++ libraries/WiFi/src/WiFiServerSecure.h | 23 + .../WiFi/src/WiFiServerSecureBearSSL.cpp | 118 ++ libraries/WiFi/src/WiFiServerSecureBearSSL.h | 88 + platform.txt | 5 +- tools/libbearssl/Makefile | 29 + tools/libbearssl/README.md | 45 + tools/libbearssl/bearssl | 1 + 18 files changed, 4048 insertions(+), 4 deletions(-) create mode 100644 lib/libbearssl.a create mode 100644 libraries/WiFi/src/BearSSLHelpers.cpp create mode 100644 libraries/WiFi/src/BearSSLHelpers.h create mode 100644 libraries/WiFi/src/CertStoreBearSSL.cpp create mode 100644 libraries/WiFi/src/CertStoreBearSSL.h create mode 100644 libraries/WiFi/src/WiFiClientSecure.h create mode 100644 libraries/WiFi/src/WiFiClientSecureBearSSL.cpp create mode 100644 libraries/WiFi/src/WiFiClientSecureBearSSL.h create mode 100644 libraries/WiFi/src/WiFiServerSecure.h create mode 100644 libraries/WiFi/src/WiFiServerSecureBearSSL.cpp create mode 100644 libraries/WiFi/src/WiFiServerSecureBearSSL.h create mode 100644 tools/libbearssl/Makefile create mode 100644 tools/libbearssl/README.md create mode 160000 tools/libbearssl/bearssl diff --git a/.gitmodules b/.gitmodules index 5c045088..6724a4de 100644 --- a/.gitmodules +++ b/.gitmodules @@ -25,3 +25,6 @@ [submodule "libraries/FreeRTOS/lib/FreeRTOS-Kernel"] path = libraries/FreeRTOS/lib/FreeRTOS-Kernel url = https://github.com/earlephilhower/FreeRTOS-Kernel.git +[submodule "tools/libbearssl/bearssl"] + path = tools/libbearssl/bearssl + url = https://github.com/earlephilhower/bearssl-esp8266.git diff --git a/cores/rp2040/RP2040Support.h b/cores/rp2040/RP2040Support.h index a4bcf0d9..cbc18a40 100644 --- a/cores/rp2040/RP2040Support.h +++ b/cores/rp2040/RP2040Support.h @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -274,6 +275,27 @@ public: // Multicore comms FIFO _MFIFO fifo; + + // TODO - Not so great HW random generator. 32-bits wide. Cryptographers somewhere are crying + uint32_t hwrand32() { + // Try and whiten the HW ROSC bit + uint32_t r = 0; + for (int k = 0; k < 32; k++) { + unsigned long int b; + do { + b = rosc_hw->randombit & 1; + if (b != (rosc_hw->randombit & 1)) break; + } while (true); + r <<= 1; + r |= b; + } + // Stir using the cycle count LSBs. In any WiFi use case this will be a random # since the connection time is not cycle-accurate + uint64_t rr = (((uint64_t)~r) << 32LL) | r; + rr >>= rp2040.getCycleCount() & 32LL; + + return (uint32_t)rr; + } + private: static void _SystickHandler() { rp2040._epoch += 1LL << 24; diff --git a/lib/libbearssl.a b/lib/libbearssl.a new file mode 100644 index 0000000000000000000000000000000000000000..778be3a306450bc1a54ee03e5c67382797aee51f GIT binary patch literal 7626624 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ĺig{M!7V75?PpqHNWTh46w&6@Xml=sU zLP|W18J-dkVumyE42Deik$_(2W^pjW101B5oy9Tv zyd|uxgPA7CnOifQx1B8H=W13Ks&!a@26?z-26<=~4En5uWM)zZmOS3jXdfKJkmJfg z7AMv7=Pg(`uX_I6YJ9_0RfUhbyz~6|wV>+e*8=d{l6&ULwGEbKDfefo=_*4h_23GL zacTvot8uDCsnva}NG@wk&nF+abY)X|bKU%PYYe}+yG^1buJNdqYtze*Zrr$X^HJ$l z%a@xp%T}g0ty{Ww&8l@PS1{f3wM*BzawVLen_ghjx^$gOZ%iMxX)WHVVm=Au)ggpM zy2f;E8p?U$dA{&`Ul=8LX&~JTFZ9Cm(p3`foLe`a@oUy?tgfLV2(Qhm!`h>vmeKL3 zrJK_$m#3T79KTZ1l5T8Tsu{@Z(hWoWZ6Dqpz9 z7oO`2OWyTIAG@;A=-RlVap^iXC*-eeT3=T)e|}mxpqthneJm}?I5!OIO4_ETl~Tqg zTAUR}noUit_?pe>jcblV?L6MGYu4e8FjEfGX`Y*qiSdhSP-6{N7_2uaMnrhCp*sxj zGI)-`OM&dKR~fv~;2j3$P*X~6nxK>|gl+w< zK&d!B_fl_aj+;h>Y=^hd;c?)E9!u5%Y&&Oi3=nnR%^}#A;8RZr->j+7$(BxGMLris zlokC0AkxfCA!lhmA?JH2%C?!zWOyLrTtOlD|MFC!Wtt;Z;awPaZ!OB^Mlr>W;N*qZfgQ?_EiQn;C@=OHPCSg@g#9xRV+!7ckf?on6g@%3U!$65 zjAB^Dzm0f%w-yf}&EOSWiPrA0?~SfO&o4~l%i#M)OX9+Gzq0Swjar!AsqAk`I2xZs zbA2n;O@VO^I{Vu~6cnagwkrF9QBR?iMEr49p7kHAaC zPbKllguj8Ph~GldKh7Tym8Qqj%yS?%55%m(G~V*H9~aS8AfVup<64jq<$YSsS+yZ@-XxDHK^B{~o*buSRc! zF*e5MQozgc3c%+0>lFRl0uHMay*J7b!b=CsphU6_JW2pJm})p)ykOq*~GCi5IW?3#MLJEQu2_Ft4n^0`F4hKe}uUD^oK)5j|0~xKLZ`?vvkV!$rw|9G!$d?HYN{H z>l;HkXCvk2vF!Ht&7m>u>8q`=x3Tyyg+{X{ueHWL$J&266n_b6p9_s$#-Vm+DA56d zFNDS(%~I|P<-Ug4--lq+?=ZO)oezjGoUqw{r6pbm>1zogryxJl?3a{}<6N`{4E8f$ zO0wKG`#aMx7rS334P;CNBi4)<_A42AAx)p)(wIF@VK=I<#zipfO4u-Qd%6|90V$F) z-e*{&NT_55;_R80bOAeg1F2b-bb%^`lRo3W1M8#E%@K+==s*XEgpBu`_LqW+;Lpl5W&{$qHRPwLva2JF|v+3;Q zg<#nih7wE|O@5!<;i6EIvvWnVn_7N6R7mrzP8L#?i$k-RV|{WDEB=YlxG$r`&B+RO z)JsB#aL{xlUuVisYN{{!D|U`cHMJ|rMT31=C@~(g&q@}sZ+t40mtm+SJb zPc~DRD|Egala(y*)0(<1`BWjO&uHqddLeTNrn>9zu_(7`qUQ z79*8tnuQCUqv^#iomAsqvp*ZkX#pddptWxZjVGa!Z8+PX3ytju?ou&MqzsCf2`WZQ zb1)cs{A>2dLSc4~QqBzaHK9DVROz3n>gPjwEK!&J4L1|KBh-VLu*oUo(3Q>!#&;1; z*cZW$WgJ6pM}Ae|M8+XU z_;@sAWI@S=5D=!Va(-UE8vMutoC=1}b4qi55&Z^;covVR6ZShe z7tO?p1qb4jV3bh-pIjzHrfP7@4}pPlK5UgzmGVXyHs?7*9FIgfi$gl58eKW(T0=a? zWRb9rxdT#iwi==aEtT`ECY)Co^D{ef7cgPpi*wl%I2FrvMk<)8<)mv+esphX2MTq@ z!rrk9t!Zx{b>sz{N)Di~c^ERdynvSWX!|5_StC?LV++9b}PZpI}-!iS}|b&C?+n25@$k zWBA9uV@feR!+kdpC}n-;p}_}YR2BSD%wCq8gVMAfE|ls?^w}$KxvDs zkl*4?$ZzpHO&N=i4aJ^EHluh=D8B%`42nMrX0e?7ia!Bv!cOBH(Lokj#Gw~OwqiL+ zda`uynT2kGJkLnZU*qiLBQADWXxdZ`_#&K2;Lt^-Vuy#KUjU_Rusl$M)qxtU3)J9* zQ0!r3izlBzUyluhVt)mdNRC6dh<#jBMJfI_K6YIwb_n|8*cAU~AG;$In-8i~mEDUB z#d7l3^#O{pC*mB@K`K}F8q>-t(@6d<_HUBwF(zeM*-4Ex-eo*X_r?3mE=5#%9r_2R z_X>9K@+3GhCtSf!Q{F=&FFcVAQQpI0G%8#{P0N3Si8J<`$+L=ve$nLl9>#m@Ws|3! z#2-waZ)19jeZ$t}e4GOAw{DO`8=zAQLN~0FcbED zI7_eo1p<14AE{S6tuT4)u~_1FlIwMx%PL?cUkQ#dxld7wh31=jAQ;hS+t8u;b$}h2`EJ+Xo^V=cO+9-q_>JqRK7< z6w68U_IE8fCP59W67N%^Qd z?q`-lUJLTxjXehYR$xy1F5{_)j;HyM>z80i=b=)W z5)tzj(^I)j`eI|#(cnrZYMaUAM$ZPf{8WsryoyjMwJqlpr@WKGLgXdlpNn0OB!xXH zextb$zZn*d-z1i{3)@xvX5mNUKZKFuw+KJ3!as+~@ms@Nkr}rFqCYjti|4-{dl}4l zF8WpepXGL56>eAge-SZu{CEtQ{J)79JOtQE>aFlTXq2M=(W*WE<|8Z6Yf3ROfUGbdoBWU7+KZYqM!nDr!QR9L>t9%VP3vepI z6r)NDwp-DALCF%KV8~saahXzZo)vo*QFiiTBrU*_^L0?sMqgB6P(0u_>zVb+4% ztk?uliR5YM2nF|8`8A-5l6Rv;3VvdZJsA{k0Ukp3Vma~d9$n%97zuj?&Ji7?CS@!| zCu6rlf)~kUX`1V`KBE4{C>AYIV2ozLTntkKmpPftwK(x8Zsch*PDoyZ{0aL>IWt$n zu0uq5j1~T!RZ7*$`@t_L3kwlG6hz^lDn5x+k&ob1a3ky*FMKWfZy@B#Quw9}VLUQG zOrf%(ze9{Ii>JavtTE$~u%UiP@eCr0<;0PNvVQ{xCQY0pFG!F=;r)-cL{d4i#}`vo zJ#U)vsgu8ss@b{3#mPAtZq3oZsXVb8`na-IY!RQjecG@Xcg1oN^WZk&$VJlBMKMh<$z*2apCV< z6!6y4N7BYZLishwldxYvNeP=JIH#i*7k%3FTbP7yj6qLZ!-wFgXKO`fsgHtjMlTV`X->qmRSX#Hg2dtA9ik*xo=++1*meUhK>wFPKxaQc5M7U&& zG8E|?VEN-hhwcCoX~U^xA(|*rI6f4;0hBJXJmfdW>`?46MA008VmW<4kq;wL!rm@t ziY(uTYgu7qXbQC`AK=hAHZ+y-&SFd!g{`5P{BKU=b#O|yqbiBQwotSZEUipO$lp7L zLb2lz1!ax`6w67Lhr!h+G-yIRsxEp^nsXnm{jt!j?I0p)oJtm=t0oH12}SpS(xqJx zsQRZvu^%7`rQHW8mea_keFyOgyGzcLR{kPO`+8_P6)67+nziu0(4mZXK8D^~_=C{& ze+LnH8K;sGE~yIlhoTkZT|FKN)cToFY$Kwe$7(>aoOqw*>yiG2+Bzh{^A(6r*c9oE z;xKy!<%5VEk5kFt#n8VEMXv;T)!#wY5yh$liskeHMScf~681JZQ)KxD44A^Q z@DyrM{tV}Y$>FJt&x-QQ@dw#>v`ilpRg-+GHoISdtUfOF3Dkjf&{Fc=9)BkWo20 zE}@(TOzxwi(eQ^MGeW`TKf_2Hl^ZR4mP9j&JVR7tW*-$d#5fYgnusNlwgUecl_!)l z@CX3mDN~Wx8edMngHn{5dOpCKZ&{6C@dtY=Yfr*vc4dvSrWB0H3m1$p*pwV)B`^<# zDpX$H;dx=C3m>Aw1&i_)=Pk@zgT3-I=uxFk1_n&W0tjM z4Eebek$Mg~LEe}^`nW$m@7nVVp$aayW2|t2UvME3MqRy_Fu{b>V3Z_vGCGV7$i$>F zrdUnGxGO5Qrj=-QiXBn@5HBk#MKzNqtJIODj14d#tHe{xWEp2FWXSQx9)>LS=T~aN z7?`IXx|C5DmRMe^4JIXisDyDT{HrhjYk!2amh(q7A|d zhc(dOs^$z0^v~()Y?-sIwRKK&fA{R3-k$c^?aeKna~4+CR94UF>}l;9YHQaC4KW9w zr85tFjVQ2`!gqxF?VnZ(9vE!H>v5GG)H6MJT3`DB!sy@q?fBYR2l>^74k0n#2hfRI z@U1T2KjRmv;Glvo2VP}@4Eb&&$l~|xK~6KiE)8<{+F3v_UY85de7PyefkFX>Cgd%C z1ZhjhQjRo9`0F9d35{{A$e54~O9!1Z%6n6-UCnrpQHf)=LB-Dnj9W|;<9&HdZNCjwoIW} zxlENZ9RzP{S}#fm!tcc>8132+JQLl{+3# z-Ju@8u&&;1re4ypqP?%K`uk2_FZMbiztzt0vrNMwHqh7J+PSq8->{kq0$(Y6ADQ;; z?5`6`nnp2RuF%AodV@N{!*{UccP^RUpzEdGhI&26khPTH?~{RV(e)%Xr=z#K zeGVq_uJ$=g``hrnRPP*Ew{0grv6|D@+1fj&zptjMwrb8`Z*SKCFFj_CpJPzDjp3US zbvb$nq__4AsO@YJ*vYutV6XMfLvl@_t}++$OC%DRv5Ysy-4O&n%EKSN8|0%`Odj;5 z3I`)_8NyuR9@3QD+S_|-C+6XuZJ3|Y+W3G+dn=}B@9ke-mrVC=-AacYoN_b1M?60Q zZc{60C>Kf=2%ng6XX6cVqqx^AeY$&JlKF}cbo_MRya6S%g4a1YJ>WXhux9N_VjG;s z@RLEfDsJ93P@@Kh`sgkJolAPGOj`lzKD%jq&acfHE9tdIFF!KfxN`ZX#-=sLtW0lI z>GuBqo?fw74>}tS;dwNJmD7B;oHfrhxHkyMHe;H9Chip6>lvy{haf$8-3ck!Ydn9rY4~TsWL>4;rAB|tH@u^pZqVM{4zCbBt!ZTLu)J{PcC<<2`8MH-@P1>;70e^taCOt+&!W zbeh?V3+lG!?r!aH7oltm_}!qun^1duSLXnlUCPERz|{q(ub^4vsHreImeV2(kz<}!zi95)}9JFYVyT@(LgESDU}Km%hG z%T-j5J7aaZwBSnOIRsaxQ?lE_v##`ujDdoNpvF60jdhLPu5WB5ow2PK^CXv&NPZfV zV==}h8_wF%lJ+d?ns;koFTPDca;%56N9c^`z#tW8!We!ngS|UjjWxu(h-(g+ioFjp z{VENgpwK$3rtyT~n@X(*~qV*Mt~;KZI2ujItA>4vZdI-bf+3 z9@0m5;o_yzaNOLCn><`2j0Hy+R+-sMyKU)d?slE_47=9JijNg@yI42+qq~CjdcIlu z4RqjQ2ARF)-^ zII`6(5LiC2lW~E9yGEHtI(qTK@Tzs2Qp>9sq~xJNs-~)XVRco_ywvo5ES)hZ4o#h~ zwDBl;z_4(33zpuk9Vz%H=%h2IRLz0~^A;{VDK)#hwQuM!xQT}{#pN7tlgZ{?DVOM%(AMI%DQR`y{( zjmsanoqf%-`_Q?~sPd)*w`UrDD?1uy0{=A|V@ZapdvA-RnOhQHgL)#e1c2`wr|wlr zhK6xv=#Gx`fWA0y?UB1kF?i=d8)g=>gzA+Wmy9%jmzS#;9K6vF0v)jPTB#JiPg<0k zUOjKo!r5%6+1qPpSK*r0GdNUz=zpaB@Tgg-_wln-XmIOnLCHQFw+imhaLtW{!-v&!@XE+p}Oe9q$jZ1wv4ZkQOBr!W~#*gPO} zIblA0^8LbivgFr|kJ9jhitmA%%`eR4x0w&h6dq>#eqj}n^cfbO&ij60q^G>hFFQXT zYWsfpzQjkdK0)om3eR$Vzc4=n^8LaJkG6fkF#hG||AiHvTKaxrb%^AkP1!D^S##f# zvSLtG$i0v6u9*)TLq^RI)Mq{-H6h}$rC`e7bc0m}>kKY2xZ2=)gPRR*G1y_S&)_bD zXBoV};H3tyGI+hgn+@J!aG${k4DL60z~EB`UoiNJ!PgAFWsqG>>TfV%kl*u=pE5Yz zAiu*Qzs}$igR2d)=Y-I_Z1E795iiXM;=kL1?1!NQ9w-wLIot3T8(d~^jlp#WPcqnM zu+QL5gC8+?uEC29US{w*gLfMImcf?{zHX2Mk$Usf5MqhJDF&+z9&YehgKY-48@$2b z?FR2N$Zygp_ooJbY4A@5-!&M+l)-d|7_2Z@WAH-;*BU(D;AsZWH+Y4?8w}oV@M(j; zG5BYLd;yH*@@*{QN`q;GT?S7xc%H$_4PI~X34<>hbH zw;6oU;E5Or)VI^%PJ{fMkNnFG-fr-IgAW;e%Akd*mgx%(PB1vr;6j6|3~n;mYH+*3 zGYx*i;I#(7WbhjXzi;qygZ!^C%m0(XzZ-0bYW_xppD=ih!F>iT%oWUEU~s&_SqAG2 zt}%Fw!B&IY4W4Q6T7zFQcobeAp#0+vZZkM&@S_I#2`1BBYw%`+KQ;KG!9N?caBX1v zLW2_w&NO(9!P^Y-ElQ@}Z}3TjFBxpYgvj`Ig98RXYVeZ=uQOPT|J^eEG=uXDE;qQr zVA^1}!7~gVhB=t|k1%+w!8U{24SvMn#|>U(@Cyd-H27_Uj~IN~;BO56*&r7REEoSo z6&z=9n!#FwOAW3wc!I$WgF^<-Huy<{dklWb;PVEj;F`j6=NnvZaJ@mkzsUGg3_fG< zHwOP~(8e{1=|&kWGdR;=oxw(fTMYIX+->kE$e^6#4W41}a)UP*{I0=g48CIUJ%e#9 zbtq??!RZE97;JRou|#6JSq2vxY%thlaErligQpuj-{2JnZ!mbf!TSvEH~3S7aa`D0 z?lgmS29Gef+2B@#g9gtwc&Wk98obS5JKn#d++8obotbp~%SxX<83zDt07a}6#v zc(lQj4F16269#`{@J)mKzcuAxw^G3lgF6hKWAG`1zc%=WK^qGl<{xb^Ww71gPJ`zf zyxibZ27hhv4TCn`S`m2$QwFyf>^FFp!AlH2YVcWuuNZvWU=%O3Q0^fHPcYbR@C<_& z8hq5?vj$%`_@2Qy{+~~IvkfjXxXR#0gWC;WVDK{rZ!~zP!3PZf*x-u>|7h?XgHgO^ z!g6OATtLL!TW{#qL|mJ3Syds-kr?hm0|c>55bWUk3+d3kRS07X&8gE>4xH8vrzWbB zPs0Q|+>kutu9OE$l`Z&JcO@PYRFYYV`(occMxS%r_4jwsRe>6X9IHwCff?W|PQ&qx;dN==X<|_t{`0;G35)U&f zn+FH`J6o_@-T>Y-AKR0^Svas%P)l&|cjE#rAH!VkkC~47R^Xt#8XWx9zRjZxR*+&VYI2B{708?E5Puab%m7T?;rU?nmczvO`W9t$NrE~ym`mtGd(9v$19bSm9?dB)oXVj+pw-- zWy3ETUby@GI}*5Mxw>K0wHGv8)9`pXp7`t;b6sR+^;1RH+Kb~eX9J(jnejy7(YkJr8VmP zzrFW*x#FXT%>zJs*9idx(-kF$u^Qxu>H8b|u`;*6qu3p*jlOsWGI4~}^c5>+p z*5nhG-FIG7!?=R^li%J5j4#lbTL)}xu;#wK@kqoj0tJjO)|gulJVIjUEnr`%(0lg-w&qA*|R#~Y%FGr8O?>v^k@>v4Q z2crBRy?jR7V=q6@@cw)6zyI3ZM>jMyJlXKT-K)ABJgY-LoiqNi+R0Zpq!wS*@X-}# zttgx}y<^&vaK}sIpY5zs*EB3`n5+)0TBKGtRF_bP-nLR>t=GPpnEdScs~WCZR{S_6 ze00T;4a*vyl2k>L8&+J^FumjE72%FVeSOIh4bOKjZAeVsx9ZWCYpWi>n~0Rv)%Fzh z>bu)kOS<4l>#@FXPEmkhs7C~O zFKQ^p%Z6v)p{AEVRs>B7Cr@5-Rl`f;ni{^kLd{(L*j!~jd<6PdxI>acCPB!0Ie6PYddF`Tn$P4q4&R!UA$|?u0?%KORNPm`>c8QEc@$Y z*S<_W?>%5?J*&4v&s^wv`jTr;Jg=e@kAfwjBzv0uHMUEU&Cdqac2 zyth!^p}US;GP7@SpS8f6w-4pDq7B}G^pug#rF5CxVKBqh#fex z;ag*i=9li8u)AwXDRlVSvbP>v)3Bt0?Y^%oE`8`Nj5f4)E!$i7aN4h~;~rRVlKOe) z8r1maRZmJEIp>ai)hW5v^ic;+X|N`%iq5iQ${srLFDIU|q-gm#WzD@5V|q*3^~)b9 zwD0Kqrj>f<<*!e5=WE+~9QTv)!!UDh$0BgG%uD*@`gxiJGVJ+zdIa+<{5*+Uj;Os1 z3r=SjR+r(7pQjXNc=#dd1Gs*k#^6E+KTo%!DEN7L2-7+IJk7wW0DhjHgNX2F7-RfA z(RYIF`gyXApQkAE7(Y)RW`cwId9sb4Cw}5@yMCUIMjdR=&lA6cwLL#iyg_%2pQme} zQ^fdr8iQ1h@$*!OE9_Xu_<8yyBYb|I9M{iN5~&>5&l8{PIIf>3dM$B$ex96v;OB|n z9x5E;=V=WH$My5nhU=H(`g!^xRd@Y7wV=X|>*wiQG^peHdD;f^JFcInayFUk=V=`Y z*UwW8MSFgpj)TRcmSg-p&0w7C=cxkgAjkFdbTWl|ex9Bnb#OmVuR_O5EywtI5<|Lv zp1#JMuAir;(H9-p&l5Fq{y9HS{{|sZ$M|`=pK7{(o)*v`S$>}C(b^qO#?O=E^Yi5R z{5(0XpQnduV%N_TA4ofXKTnS9=ZTM!9M{j&7B;=>=jlZBL&x>=#Jdj1_49NxTf+78 z^ea~1@8`+!`+0Kwex4lH&(lY!o9pLkIlGMC&y(Z&dHNcS;`(`_qbtYt^K=cnwd?1J zcZH7Y=ZW6H9M{j&(J-3xulsq5qe|0l$My3>S4WQL=P61(JU>q#p^BcLr*l}i=jVwI z;T+G;(-|Cao}Z_mV#aYiKToqbHatI1D_EZA=V<}+d48VGWJ=G^Q=A>e^Yb)?`8+>Q zOE{)IKTkKY{X9QU^d#kYex6RF)}Egyc6%q|=V=3r&-i)jX3mVCCx?Y({5&1YQbzFe z#P5v%EBbkw&u--Ud0LOU#2weqlZr0EWz{hL?1uSf56X^_T< zexCSWN9Uk^o>rh~{7= z!lUr{WT92G&!;GSK1~3XNVdQjQTTkK+lZnh|KSpa&!cw+=QLO^61Bk1qb3MgHc8Wd~%r( znGOTD{1w&>KA)&c`IotZfX^o(T97CTpHD)Rpj$`b^GS$Sv_%v?pM+>*CE@c)i2XD% zd_IwI_AmxMpB_Lt3H#ru$O}}2n(GQ?YB^~+Vq(VU(@SWVT=;x?54_0laVnulwxV44 zd}@NsB%3PN^Z9fRYLM&seEJCHiCoX;6I(79KA%oQHtm5Z7e1f%f`SJkI%_JHQ$~-3 z-NQ)x-&wQ{vdA(za4MFQXfG$zJcE+qOq`upFcsv&=hHVpM81Gi$>mU|C>K7T;;4aE z-1GS)ihDkvL~+mOlPC_KPc_J96o=2J&7hz-oi!E9$*=e{M%r|_7|}r%Sw;s=#c~>^ z_-x5ghqLotS`9v*`ancZ#;N31v~f``d_H|2lvW%sRm@_KOp4;3&nHpb^Z6u-!{^iQ zkj*F#pHJh^4p5w5br;LYulNh#ChSvjj_4qZEaK3k@1|loNqVvZ{!xA-IbX-w`8wiq z;q$2mSt2Q%O1i*F<-+IFS3&6-cs`$`2ASk&ZI0WJLxR8O2UpJs*I)k;{9b$M^yQr(LZwG^NAh2{55cL;q!@|rhFCV z&RqC>VndYwh1G`7Cu&;G7XxzP^GWBSq2cpM@^rAn!{?La$t3}wPm+fpcFU=P$x zL*PzYiB6OE(^ASQKMyUI2cJ(Q!k0k#_+90N zxC%w+ov7e^RIeg_cl0yh#6N~?ao6Y54^f-=k7M6JgdIl@?Hhxw(_9rAw zehU3Mes(y;*-eS(yZFb#iOqyTqyX#u=X z{S~3)u^1`^_>i3gSS1gGjSAp>Di@EU?d0+3c?Ix3MJk%4+wKB*pQ-?*y-yXu`_xgO z5=r{0D}eW@?VyU1pNGN)@ILh=Q1Cvr4CPRS_A#{@6zajk#rqV+1!5AEL3JqF=Y5J| zq}BE0kg#VkAx9od)d`2C;p-S8jJjl}$)wJN*p;E)P9%5gF%uQQ`_zRfIr0^7%1?w^ z1@Jy~KZ&I@54=waF#+SU0N$sBn2zCA0Pj;mETG-teM$(v_ErGzQ$h?f8N5#kF@`bl zJ|#q&Eeh{bLc9%)3gCT8h{w^J3*dc9h(D2l_bDNMf=*um?^8l-pa6KEB9W7T2av1q zzK3|9Dtxt=-H_g=3V&b3{sZq*g)hbKM}qjb(T;_F?^A_;uy-N?jyVb$^~W&fM3~mO z5;cZ9pYrF)`4LVflvP>??^EmXA2M026nfsL=oYdN-lw)B%1&|(Sct{%`Jkdn`fo0T z_o>f;iYND@M;5{p&(}aDlJs$22=7z-K@}yhLyHu``_!ADa5J(6P%J0oeQGQ7*w0WS z9i%2@EJY`iUXIo!m!)a0*ZRo&2}ZGKi2~zhgvI+5HE@~tkoilTcoe_F(;sm{^8F|q z?qEQ`@04&JMY#My%qWHMK1J2aPX`|!QiKRsGtr+arr;l`5qg6v*ufb-@mlmm5OR%6 zxZbBOLQFzg(T^g=mStQ5-ly&WWxP-IAy_OYb3xh-M#4_v9N8g33KhRjw;)g~C-!)s z_bD?zb@KC(3ODT#0`F7%K}5ceQ^}9feDMUlPg(ePs5ErK^FH+~MnwYNr=}swmX&7$ z-lzC_54=wu0w|Ufizzl`O#(Mze~;ozB}lQN<$9)<)5u!t5goBdr0vPtl%61N8ZA zh=K+u0E*?ryEk8vAD}@q^1ykbXuuN6xhPM-`xKQbKNNBj@IJ+O=P}kE-lwicvdH;3 zmE3~qB9VaisRu!6-Qa!7XB~K-dJ|F5?G-?=oL&f8=W7_Lt~vgQL~su%XNq*_G(7?D zQ*pcw6?q$+61pf%B;b8&0a&_7c%Sl_1Ky{$A&TYz6wB!Yifl$AJVTH(MV7C{wJZVe zQ`Dk-C5H~YPch!vhp9FJ?^9QUh@6j8$zilr0^X+{1f`XM_bFff;eF~)h=MY|0u;+h z7OKH@Ff{lr;!$-uQ<}4dJptaQa_|aIrT!T>2Q;T1iVj$@bXyXHE>FPEQW^n zDZaO+i-h+nU)AA#>Lf(5>VRT7eL#`NB2mKryA(;0<$PX{fcGhCQT{Q`3GhC}_*e}H zz6A$IQuNGJ9)l_&IFcf-oGy4na3m$fJ`Bka97ze$1+#_VNQ#6wl6pkT_zttZ&XjN@ zMc%lg5FAO(!8=7sF33WjBPlMULU1I-%Z#0ju_Vut6c=0}IFe#qJh>0OG?Z~9^&_kg zLU1JY3rLSpaJhVy07p`M+phdG7(pR8k`m%#Owu7Zk`iKw1RP0`m{J9cSnDiHu6@wA z4u`d8LK*x8wGQrL)Fcv6S$Jrk}2?M!mRv1>`Sr%z!#-G76k&tq=d%T0hg;5TcBP&1LzN z^I;yV#Ml@R68fzwRF;2w6$J*1mDz|F2em8>gSu&yW zJk6pzt{>x=wFtsLKUJw)v^t?(P-;WyG{kH~%CAM zwM41P&FD%Nzc|6B0ytZHswcvBV%`0vRQFIc$V41fd=g{rpF*3S4tfiDtI!9m{k5#Y zEJTmPF^3=4TKkvM3U`6N9!K?BG?Dd?+#)m~xBy3u)bwGw{TPeE&aW=!Vv1Lx6f%rw zh9`3=Q9-L!KW+&i6sl zJ+`XlHY{w#mragWB**iJ`#Ixh--(lFOIm72t+CYHDnz}K(ydW!i6Z>+;%~@T`yS#b zwvq8rq|_3*ry!n>Xr@DxQcF}h2jtl}R4uO}RDQtZnWFQ27Ljxgt7fs=u^}%*0`$1h zPBx%b1+AqmlB?J_WJJ%N`TVr{*oA*qy3i zBFl86nY4)=2;CihN6mghr#g5FRat=kVcm&>&=5GRJ=Z~`?pSwDV8{9vD*1IBx+B~r z9pN3&f59;e(}w7Ow$_84n0+C%L$n$!VrAK(btgUqeat#f%KDU)wSSUZ)_IdzRxReS zsW^0pJ+GD%1V2N$7>Dk#=Shd~3DAhnX=tp;?;PGBcKCGU*m}cBnyJ;!Z@(e+T2nT4YT@n7>^xnziRv zkh*CWmC;;hL-W&dRB>9e7R{l#z61Im@@_{qYtdnB4jW6Ox5%R?YjGa`v2i?j8*x-| zsoeGMxCRoDbyd zdSTFqSR_vo2DXPEovhTtix9!jXPR*={4j`f5%?I6MV|)2|6*K&L)GPgdXo8gf>o8( z8UADi@=QVm|Ka~t91Dv<{0M=EaV(k*g8vx#C62|5O@4>@VK5asClp#w0mmTb9VGd8 z91GWgNMM5HmJ5rTLGV+ZDL7O;CA`UuJmEG=h0YCyB=_Nnug4*|n-Ji4Jd*nq1Uhgi zbr`cBLj#ktdcr?(%l;_h`D{jVe+Gdoa2(E5BI3)SZpDF~*@Y8(<{QY$>E*ID9L~Is zVAezY&4}j|l0fHRJg*s<>F4W+#R#mF$PE(N7`kk=9+9)??2)q9nY=^zx3ypPe8f|B zzmCrtR6EeUEw_Ns87O~=Npq=t6dDv}rp2IVF4iBZcywQ1< zyLk>^5(-6-hgQ^iBAGmqP>R!l&XZ^Ito%`dQZGQ0QEKH+9HrjFJj%=S|2WcA{}(&b zth5f|Hx+Dv$Hc6vvruOESr>D%LON@ipq&PrgW3fKm^ED0C}jHQ*9+k|wLni9>H znQYQzm>W!u47mbXOoL7<(HU0KU*szxZxS&KDf|j)zA>WUsYdPzgd_4~6L}SQqL15*hIKQa|u`Ah~QRXw<_Ix zC&FB!Ap@ZvhZ{vDb+c|nBKN1qFwbT*yEqytXdl#+uuOuR2uI+Es3G2*WZO(@wJD?3 z5VV>kT0Nl!5Z?3&VE8>9m1SF9jZK+qXj!a=ZgH`7o77M%12OV*Yl4OYO&g-S(|*_M z;6A|p5^N$oAi>QnUJG6i#zB8u5YvVO%|=irD!*DEY?K$zcI zKcpi7KF;03ZAyH&k0=;JcdB=dJ<>o6B4n3pbI(%p@aT(QH_}jZDctuI53Y9^vK*u z*o6c3N$h1nS8Zda#74J7s*;(>ZAd~>X8m-rQo}k#S?U-9Z{8y)krO4uOC@RpVTCU$ z%Mx0XV=|f?r0${xyM-?N*y%>BrH-XU&I$-pjJDgc2xa{?g66!4xs1>w!OaBbcGMCq zH1=i`X>v_ssm+KV_S*^$`UK$;2_8$h28ZrV3~{_cErf>sIPIc05Ons<{_Gp}X0nf1 zI_1&IXlTO45?bAv0 z|E8@yTJa&f?CRm}cmb2bNv_`D1CR8)4L(pMcY_ZE=}cDdlp)U8&9)!zb{=Mf4?LK2 zIeLQ+A444ELV}M)kNrW8+2F&UMmG5HF=T@eA5CAbK_T#+sTuVxL!DiNvpah@*2k=2oUWGFy- zhzTF(j3O|*;6x{`X`U;2N;$>CndKA^QJ#=iq{eX~R?5i@cc&aH{2i5I(czP~4mmj# zmvRbFD0xRSp%Y)~#1M=#E^?S1LY_}kTC!-2GXc!JR4QdNF8uUvYYb{M3gN>g-R0m* zIxBqdnf@#^!W^A@STGMVV=0QITJ^AT_?~|zGm}qryxdx)n|7x}b4bdoM5x#)nBasa zItArSeI#mTIfo!8Qq6Hf<&ndV3mAdQRZAjN@6<}Sc2!cl0|6@xtB2U8vQq1D+in;# zV!=s{ztfxtA~a@9Q4(Dyywh?b;n-%W1;`!fGU42Mkl`_BI}zxaGs%gRNpt~vNknP@ zQ$s{#TM}v?>V&4isASn2C;Ej*R&vBiUo%PN|Mm=5!PinJUV%4_V>dO3`R1 z`W+Plu#?q`5*AB_bd-$p5kUWuRf~0jRUI<(rWR_dYG~* zb(rH!gbK69jFFBUM$d;eqy!X*(oj?=a>7`Ng`G=|(8ilX4Z=5{xfx?wGK3>@s>Of_ z7!p>gPgOdOjHbhQF7n2rW=?eS^-wd3CYty$PLlj`kL@NKC&@VnBp8Big;7a0MpZ(6 z8JK7#=?1gFt_5q1W6!4Lawa;3<*Z9IeA;Hmo+kDvL~nwjImc+6s7F1jGLjKa)mAf4;702dRTwcRU^Elq5AyIVBP|tima>>zza-yq5iIxShvK zK3Dc(!|W{fjielH(D6ZYvQ_728Pm>mW@Ll8JJD}hFvE4$!Ht3Ggt`=&N%r6>xzn_+ zva6ER109f<3c+_V#)xucp%T7R_KzAfmi>8`b%Ya{F5^f~5l$F$BPVo_m@GKOi}vf|er&jjWLjoUMeNic}v7*<8aI)xo=&KO>jLQuh8V~RiADKy1P7pQl1tCa_}5cAbLR*e&y5t(dGb|bS+&YUd&-|C!Ld$ido*ro{Eo_?B+U_}S_iw6&uUR}xmC`;yx$i6xoOq04Gb1rojvL9cDQ}d-b%%_kKTEL`q7ZC z!+siSr0t*n8}7>0(>k}NMK(*oZZvMA&#yiB23@p6a8Pg?8*Wg-P1*E51Kc8p%{E6b z-v9gW;1$@j3p@Dq{7V~mweb}MbRih(e|GQ6?B5dHujv2yzFipSvK7`p+`h{UcD
L9(wZ20xxc7HEUKRvD0^D)=| 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

!6^nCEKa1-i9HpuK!*u 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 z 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 z

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 _AcFujA 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
7)G!`w_sJykk1nfZ?#L{a|I^8;!hxs8hZJ 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

NRfJHX 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 z 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 +(7g-ND=2KWSZ40 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

@>ci1Ir3x_*w`MVN0Lc@i_9ri@E*r2#b@lqlh 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 z zTYQBv)Y|$F4u7DvRf};6wYJWr5om2KWYwY8*83Rog4WhtrUhDCP1t3j*49a^Jk;9y z1FcWj+M0#-3R+t>kb&0LFIY0r+S-oe6=-d-Cx4~Z*6&bBsI~Qbb~Di0x|svgM{Da; z?CrlvYb(y-3beMKW4AV|we=7;CD7Wsft&LAT3Z*g>OgC2AQd9AJEF&_$AThzM$G_9?hxhMY`t*v#uMul2i z{MYBFX>Hxk=@4pd?Z!TbT3c^%Cx=>F6uB>GZBd`0ptbcXI~{6m-NkaBqP0cW2nDUJ zBY4^kwYKOEqoB1lk?nuAsGb8e8}jt*xDz_V>`*>d(;*wYGNR(ELxdws>av z-`3jV3;Lnf*6Hj(ptZFt=7O}g;>TbE1DP$poEGQ*v;&!~%W(WbW{VO~2@YvFRk|p% zbtjDEN5~ngi!xg=%#ec27R6%I9vEcGY?*NoGErvBjPaP(l-V-l zXUqnfEi*1dEtJ_ZV-!xll-Z);J_02Vqv3`koL?f4iby4SO5f0a#EFJ@i~Ht9G| zN03%P=xvKRO_?pq3ndOkP_>P995P!!f#r7`|8$(d8JV$;hca8%@la;VIu4mFDqt04 zwuWGjq2tdWGHpS$<1ZpM<*q=O@K@PnB@ewy6iZuR`5DzqlI9gF`8GoDcQ~0*W{a9g zi5!Be3lL*6Ti3zzw;+_+vMmT@wrmSRnJwD_$ZS#DDw%l*bDc6VY zAhR_bRzYTK0W8RD-HqaD3!>ZlAYxPQM1%={m7S~pka;aA?4;-vd(28b$E<9tZ`KLi zD|jy&N!4sUk{)e)ERwSPv5_)coZwmNpi*XwlP1fb@hG#!9g$tm!w524>}mFCoH!}7 zWo5>42q3d%Wp2XpPMIw$a{vvlHybir zR^|!L707H^nZ2>Ol-aT}U*d59nJp_rU0BL&S(%eLI*{42GTq!b$ZT1ez1aiEY+1^$ z*eGPSnBuMHWo??Gs@`nOo|Pw<S2d8vcU z)(b4+RG$x|EwFw^r`E+tO1b>XnR3}cHOu>X!_Fe$LUtwG!v&DL{ z|A`T#%oYvvUZ!*Gm-GFvdJY z)a`E}J6O#oEgPb5V+5P^%W-e@I;TC%bauo~=kTG_?+{^=hn*_4h!htQ)$Cj$f1smP zjaVzh-WCc4$#W2!-4jO^WwzMcEZ%N3nJpS7vvm!!L}j)v$KY;GX6ptF(k3!nohZDC z%+|YzO#T7cHz%{T6AqYy%+?;XK8W9i628n<3;x5HxfI7ZWwv-Ra5D6(M47F1NOCjZ z#N?&S7A+`2ptF?OIu}+!X6sH^sm!-nH)OV6g;kK*%2x75t@38H$SQm>t=nN?JJ`6% zY_YmtDJL<7-C@-cnJre+OJ?iBpbEC?XWS&ueL-dHOW!<&+=VqxAaw6dl=HrflN4pP zK0(WgQK%q$22OR9*_uk@7!D6)w#?WCGnq15W?YFKPnj(GfZ;}GFxW!$8koPEi?X;6+mW-hRJM| zW zRw{E4CIV%)c7#=#`5yKNWws87g|7fVNAa`;lG%C|5h-^cgb9C@J*j3Zem0xs*t?8n zYkq9F_fa;E*lIRyNry{wa4M60&qW zN0}{lEtJ`!5y)(r6xON8T7Ch>l`>n8!LTb!D6@4vQYf=U@hsPFo+z_58vopv%+@PN zNLw%gO{4915Rr1vL6~^MR#~YDSmjVEZ2@O|M8HbNr=R^JWcOxa%28&^bg(9%Toqk> zn#|T}Shk}JGFxRhL@2XG?JU>s_b9XVAS}pioerceU^8j8^)1Av+&KsnXWJ^PwO-zh zm9zz$@1>vpV&uy1&vqfR#cDhXs8D9>Z5W9c5ENv#hT?a-%wo)Q%4~7K9s5E`nXQA7 zgbVZDK-vP{_(yIE_|-CEa*WMH=a-^P%6$VZrChe)9fDa*nJwyCC2A2=O~>3dnXL<8 z`8|Nl)&vw$4>0GSLlS!MD3G>*-YYDvXCugseMbCEp{r)hwdn|#dI&r zzCmV-0#u2Q5K}b}Cm)m9+73~E-ypLU86C)M9gZaQ?NA_X!Hc~|=Lcva7>)*H!X?{6 zR_XEUDrL4PbCu{oP>|WW7M9;6WVRy10hz7mki_8t(iVJ1lTRWO1g9)ymDvMvEu+j9 zdy#GBp#zyMrh7S@Zz!`xDXPRrh^gWiHIv!e4pDw*AhQ+Oe#mS!A_<*25J+2Kw}-v& zKGB0b(y{3lvNrF0jy7brsCAWCfuM@Y?k2N!1uVZc$ZSP69Wq;wBMGhD1Eek3d}|LO z9WqlEvbOA_GN5>{iNbG2Lsx?4`^W1*j75BBp8(M#yBgrXb4i2V}M)TMe15 z!;pl2ECJFM@OxHdMn-Sc4nijUf5k#p>A5`2AhSi8tHd${RqxwCLuTt@Sbmd`*@|pB zWVRkh5;q-4Tksi8K7>pVm$Q&nX7|AXLzyl1BKsqr6Ckt2^pdIA{*SQ&nXPx3IG0_4 z%ogLad}xv~TV`B2&>+M;2_ z8`UiuRz;XaV?4)~o0?O)`yfV)-JE(=DYUBw;v|9x0(hg!DOTi6jc7Gt=2~pb1d3n; z3$xF}C*~|AwzJhG#EyO}!pJfb>)YakdWh-xlsKJ5(sH87qKFFQonYC5BTP?R;9RR^ zUa+zmn}=rH`4W!fqW>lBBmc3Ce-rJaPfRyOCS4K}09D8U z`T?c2A|~a0rp=xXIUiqB0q=14wAf4EkymSbzyI0M*@oAAO41>!f~kev3R2 z6e#qDvVF%dz zwV^mguv?cmcIUS!6KN{;v~_hf);BL}hPIOJibjZ^Ei>JXsLDyO8+tk#`1&*6Acy1~ z2RpJ;xKEe2wAVof2Ct`oiZYR3WQ!=#r->339*5-UauJaL-p-F{`n(vA+Fz|Hl({0+|L9m6TTotR5i&Y@Jv|5!HtJq zEukM%D~-bXJO#~Kae=IFYNVzNgerSUjs^Gh63N1KG~5>j@rzy}C3ZKpx}i3zk!4y| zxS@$EWII$<%X0frsLjRttsdh%q)SyUySx0-9>10Byv5xa5G8MvmGR7~b zY%0Zbx(nJl&}SU%A(D;(%8HZB}a9bpZoHkRrF`Xk{N{P}q&Kg|E zoILI+Y9YJZ+#QVIW+c7}ldZFn>U_N?49^{fn|R791$(U(b23oa3=avZQg$`9cXsDA zEhr&JAr>AxoD9$^vsR$jwzg*46nGi$v7604(==#jS(_;WYx@7AMTfSi4b@DUIwLn0 zFSRv7l51S<;Q5R9GPUP96YHQ6THloGY+Tjc)!g2en>uUOj5%|@oSO*A*q$BgvCA9R zOl+Of(bCg}xbCK&);bUpT(#X3p%T4ASNpPVMAUZHH|+rZ=v6Z(w&o@-&rRHWYHs2( zibr;%)`|FLNTP~moW4;TH^+!=?x>yEfqAXlxbRF6%uK~^Q5*W4{f7U9;ot4O^oIDK zvtXHrmHFkB1+^jC{72lsgw7ED!5&%S4*uUCSvJ)j!f#=bC2k{Ah=@D*g&?xTd%Y>g z{~q#xn}ual9iqxmXJ{U>QD?~45en`aB054Age;mf($576X+2TTRsaPkri${xm9fRdA7jF~~#Ho<+%fv2mo%mIe@4Q%f@doiF z@lBDB*)U%jeg!7C7RQOR#LGmw`(wVl#V5pHif@T|T)dcXrFg9PRgtg0F#Sq#7}jY| z6X%P2i+m`R=_|yw;>qIfxCAi$OJcp)As#KBDt=SEM7&PCU3@@%O5{7Qtp6SH6ETS= zUKw8{juxkh^TfTxgT&=xxA+zD4Dmei3h_qqb+HCNgR|WQB7YXAeTdjBt`c7n-w{6% zQ+U#n<+c&G6=#VH#Y4pw@d$CfcpxsZtY?{cvba&aR(x1|MSM@B-X6;j7DtQI#eKv> zgLM3G&iu2*UBty=UThK9iYJL*6E7666>kym5uXrW5(nc6G`2fUTqu4?Y!Exeb>bP~ z2JtHKW^pB+t75&!h^L7g#4E*{#Jj|acvgw!b`tjz4;Gun$Hf=LcSJs)!1Co{o!BiN zC!Q(3EWRy%ET-^K5bLQHCx|P>B0f=;9`v^$ZZJ#qr{9VqR<&j}%W4zbRfO-Yot^d`x^n zd_#Pf#O-rA9z`X5agSH2(EL#abdoBT+tFd+p!RKP=-m}_^ig93zi^l9wIPZ z!#YmDM0*7HCOAFPLleJ|S-r5JzbDVE;MN5!&DC}sv zOXfMwI>fPEjziGyN~{NEu%-=R^__tApbS=>=W~8O zu5$^})?qzb-^=p~_2JejtnVDG2W7D8{4R&5>NYbjXCp0I-+S}??PULOOB2?25!PAX z6nwbg=?&*(9-La3#?Q54kni+q!4qtL#vtD<%IC*A&TGgQlwlmlnafT1MEm#Qyu$Y4 zRw3-)Jy^#a?Eq{Uj0reCFhI7;g^Ub?vk>`mh};VCxOK7mxLIs7nDbb58fM^mL9S>C z>SLK`zT|wzc{0cZ2Ko4dW>-(0FYW@>mYSI}X3d#VGjrMutWTLTB@)h@IUUyQ*|UMa zO5ep@WDWMwcS+!Fuk6g317ec~K2kK&$?dmbl{5L^{s+$$dDi*tolSj-OGVh3a z+wNC1{jvpbKl;{fPVU23CsYSx@5Y|S1W5h`v!1#xyZ{7CRM#c`Xl6Fzp~g~%F@vtl zFL2g|t_#IUy{}_R#y?ZnWiqZ=&~@SMc0t#r2WJuJx|HI(L!4rr?xgY~(MJ4g)aiEH zdOz2_G=4uKi>d44UY^{G>wJRR{Zw5S_o9-Ikt;ckxuUu*?v>sZNWeQ9{958(6@La+ znH%Sq2v52$zeb-D$+A&MiEoEo-iWOSqvi75vAKi2>BXnQNM6l^h^~t_s~-!v$$gQ_ z3v^vh#E^QkDw&c@-h;E5H*0Gesfzp>$D3VB{k2Lw@i_%7Ng}uqpZ*+WwD&%Ok>1?m z5tzkED#Up^mawpsY{b0vb~3|F{*+x0bX_jSp7El(F5UvmmP#Iv;r9Yvm!%jNZ=t0O zPMR)HpzAW5Rrk?#@%ApJ3{R3T^Lc@;%OTih-o7PFSU2zpRvzlQ{D#)2>$;3b<7dXa zy5b+PQX9xX*X5@y8P#?1qPi~L@@kI7dJNbau;ft${MdkH5&I;JLFK_VP28%bi7;rom!D!?RdA@dT}zzv5V@u zcu`#!?~Vaap% zQu|dFU*ftv$do0n%TyLp&UNu_jHcdz_iIs%biu$x5}#MD%K;olBO-(1n1XdjqS9$^ zOeAqJ+A%Nl-Ev)GJWk7XSxsx>T$hy?4;gQ}Na96iathmW`^Z2VPM)+&Z%$yv^H;Mc zKY;7v9T%;rL_ztZP&veF?g2i@>AR*^3DpvZp@#_63VzP-Z??oJ$b%+>wN;Qi+5qP zVi9VWf0u`7xh^x=G#`WO;(a+9`!>=HCfCI~FIxFG9Qoka+4z@6E4N07ljKmp8GEwI z*E&P^{nK~pQ~z@~xh1@S^xeC#@4GxV*S|pTk?@7bE8_hm+~ocoEI4k-DC#tj>*7s` z<(WYPxh|gJx@?WHP%*iV-&o>!#S$7gVV%MXBiDw%2 zg@1fUI2nRH1}A=-xDQ5p9bzW_Q(h8r@?SxBB>;C}9&Y}2T7bK}04spIBmj4bW0(YR zm&CY8lCZr1?vj`pshSC^CjTA4i(E=M3)fEr2N97$dV3#gF}NKTwmJ@DQY16|?D1iLJ< z{zAqThwWbWHvVc!a4cMJ3eFWNz+G;K5&sUH0Pd2yE0P$1S_T!ja2Kg~8Qdjh;Vv9< zDZpK}glffKk0iNVqvE3=IdQ@jAICsfxH7>mi>%*=amCr7;snP4@dH=jE-AoWR=|k2 zzzN_kDZpLshZR)Z!d;}|WpJ02g}X?_0e5)=$+Y5)(W(aY7%KiOJagiNEB<@<`mS(g zf?XC_!>Lz?WI1spKE2AC{#8l&H@M#Kv2vsUci9q2;v?bIeG@)~)EA>45m;%-{uVMrB#+N7YzW2&!l4q403o z;}O&_45KpT#71y{H{kURCk40*2TjA5XaMfQju5y@3UC+JwBc7+I8%VTNSev$gcRT| zlIDAu?&E;a2H9l zHJci67fHj#Jq5Unq`8`D0C$lzguA2wcabzxnE~J~lIBcC1KdT@e1(S%xJytD#|q#s zl4dpzHwCzhq#@iT1-Of(d6}~ra2H8)7+VK$7fD07OA2roNkh0x3UC(*`85j#+=U_D z89Z#jU3j|p-3Q^ysOB*T3;f1LwYMjlJO#MRJCZ7jg|~hhoKOloG)kw5U|RfuIgjL+ z5x7g`@eOm3GS1`y+@H>!uT2sZ9Kc;FZ%w|y zBu@P$keoPD@9@yN0ztk@l8o=NfO@76;@Zk0=tc%Hw@@}Zcz+3BfxA>bKA8D5T!R*@ z1l)y&z+KWeHq_wWPCN!DfV-q`N_-QBz+KX}>CtcrN&hl=I|2f@OZpix66urCu<2Kl zKW7qwyQJSq{t-q1cS+|W$r$cm)#Qg_>H`@kmi1;Vcgu7IINBq-H>={(K>Z;gEBrb=$WY#6$hNr+?GH=FZq-K{p znZHUlZklkH%v+KT?g|j@l6gD!Go%`OlGXh`f*CJOMB9Y zpkg4MwN0@4Y)RuVHV@z~V$8ru&H(Nr2H`Flz+J>3+$96J zix`BvWB_*&gK(D&;4Wei?verAMGV4SGJv~?@gN#31GtMAgu7$_cM*edmki)8VpL>u4fBMaO(>_iu5{}f|BamMw&ha=7c?y?_!c7zkaU9y0?JOE2B5wa`HW#x}C zda{7KyoMk*Pj+7xmz+`Dl}_Zp!>j>!83HSvuST1cm*)6pqR5g%}uOAr*mU3|b@9)<7`$`+&Qwf)QT~r;ac{-#UIl?FwL

4I1XK0=H{Kp)&|_=7#Q(xICZrgs{XOj#5J&j(g1e}9XjAH zPap`TJqXE(v+>d%K{${$;xe~}J6RgwF06pSU3|b@818jo^!k9ir0`%z{B8KuRj`Hp z`=W_y@CxbyxJ&4$0e5Lb5bCinBqt8PXN7t_e4$oEB-~#SmsxrdPBXw={sTt*5IA-6 z71IaYXHQF0*Xd4im-)+=aDhxPc7~xC_IR zWbnrDbO*pJZ!>Tb`aBA_3;i1I!Q_kr?jpv8n37SzUBtKs$)bR}&=9!G4nZC>ne1-H zyeU4IeuHYF(M0k)*b}%*G?oai$mB9A3b+eTGj6_~C0V!&FSw$ByD%)Be++FKtw_jn z@8hQ~oW!GmyX=cRXZ;Zl*!FOSDoA!d;?(yGRHL5>dciXpAH{9&i^q^`W}c z@rj(j4o?w`YKH$N+{5IQZS*4eZ1xs>B72T%>01VC8q>{3=q~t-X#pdmL9P|gf_VzP zz=A1Ag&%_TAbmREBP5u=zX29+O(&zME@^651m=4g6#N;J6! zZL7REW)Ig1AW`_}ic!~g1pEda~-F2Qc& zc3rU0i4KfOYsAL$5MgDc^i|v)EW4|@JBGU`Yd~aVrn)kg*)+2tKOo{`HN}t3m6czp zrNc$DW3Gq?e%oMmdxUTxwTtRk?NLjLHbiL{(YxWF#`Tn*OPwh&>TQ zxw5(}emWd~I>M{6s0uC`sw1&XIO8lLCW3P2Rx_f{h^)Z?iRzW=Ft9973>IACjm9!r zlZ%Y53##+~21qlvnlPEB+OucXu^UE#Kx11mn!kA#I)8MTA5NzqNTu0)NMv&LyvQxH zDi`DzR_NoGL~^GtFqNwQ&Omnj`} zCaq-_SZP?V0)%;Bmo;Hx#(>DiBa^!TLC-#jKF7ee8O8e-a*JD=In(7eqTNi-UN0guITNV zxNPa7iA!2qkgYujS%V?Y$;jY#a{xC9sx?D8GZU=NY;qGb?y5nh?ZtCe`e zwznNVSZ|EaA+5|W)Glc(@GIUO=#3Y;Gd(!W2+Wd#o)hdJb)CoHlLp42NJHdB2W$I8rU-~I+>W^2~nIgcbDxMAvEmUn*rc4Y#&@C3K41x(GM5`W0Y6cMMZz%T4PCHJDXE3A|wn%)J2N}{t~~&gZ0?z;A)|*r@61Irzlq^ z#a>w>mi87~Ry8{eyn_gUZkfbzoNy))mR6)Q5%?rd3nOBrr(}cIoO| z!n|-L3SQ*0vTREWC{avP8iR2YVy=cJmR|HbMX;n0k9beHU@A7ZwmJdgY5kSDmtQ=% zC~~cA@4`C+JM6ZgFnjWr1-S)MXq+^8Mn7Oku2F-N8Ub{etmYh5>Ry6v&6!Cq`q8vJ z&g`2Kt$-eLPZ^M!C{IJA}SAks4?Z;Y0LKM#B%`~-sg zrNJ#=%NGi+r%G@k*sL{gCik<2`q@JLY$418{06)f6N0)@^*GftRIgRNUG;v|Csg?l zl9@iMIz)A>>I~H#R2QhWsPY{#raw~kWYuq~Ua5Ms>Q7W3RefIdb=7~W&cQFH%$LvV zP)}ApPxThn2!45Gct&+o)p4rZsLoa0Pj!iEpXxEHr>S18$~V-Q|AF|OiF$}CU+JZN zoa*VSYgMmS{ekL>s()5>u}CxhKvn*nN1OiwlsZ%OD%CqwA5eW#^(9sQ(`}~X<0;fb zRgYCYUG*Z>YgI=fF5^#EoukVC%}oDAs@k4kB;P(4QVR8_vh z%R8q3s@tp1Q!T14Q(dikyy_XM{Kurs z{~Fa>Ro_tEf=^)}dJ6%os=liFchxL@yJmfcsE$>gp}Ih|#e~-c@wZXkNp&C9R@LRI zN2q>P^&Hj9Rc}!Jk?Mo0PpZDCIs{KcvYyjb=c?|nx>R+g>T#-Ps9vo4UDZ2O55@1x z%=gQxr>S17dadehsy|b0Niwh zR{fi543Ax~{G94=)yb-ds-CENmg;4yFRT7dHHII)B|p{Ss*_chtA1Ja>#A#2pH+QL z_3x^ccz%lc)~SwGU8Z`3>ep1yQ+-zTHPs}35@$Y}s18@1q`IqWt7?zxQL3k?p09e9 z>K&^0tNvQ`1=V$`?@;lBa}6FYB2%bVb*k!g)g4p~TWDXk4^TZswM(^+ihNH{`>U$w zsa~jht?CV`w^5PqPAb;^2i5-})hAV-QGHSM6;+&uBt4c@QA`I>3O4%OwVhp8T^dY0;Ws+XvKOZ6Jn>s4=2yS+6 zw%n!$VqH9&BHK{7Xg)rlBHQ}$7{+ZhKJ14Ni#HB&m?m8Abl7Gy-^jOxhsm2^%kY`R zr;2nlVVq-Fa-1gh=d)5fV$O5UVra-SLaf)W_?R@i0%;|&?=I6n({ znBDymFI?`9vxy}M%4K;x4r(VpCJlC-7l%1cfjhdHu!CWT^Lt{uV7&7f)8 zgIy;+9FNX%M>iApAF#vu{Q>z+f*$^8C>rLRuIPU@8A=TSGC2)`A;`%Jd?g1@l4+IW4YYEhflbE1=Nr0 z1?z{)Ia|Mbu#Yj?4Uz2}KTUl~fcjAW)0WexG=4<>)1BK&ftLSNhnIi4Z%UsScd}Ef zoDl;m9@-r5^iOgkGv9mb-S?bvZ#~?7M<>pSK^wb~zo4Vj1ux({h3bySqCEbl$Lk~~ zYB^7}Xd7^zUckx?&eItf#ol)@^r9cgdD;orG2lEsh@wiIrz5ahfb%p8^E!4jLSo8! z;{Uph8O~EI#CeJ-=jj)W@V=a;yk$@h4bWwI8UzOJRODc z=^D-xzbm?i^YlaZOqlcJ8qO2{CAMogPu*x2*KnTr<=r)$r@ff3!$qjR!T*G;KirpXPJh@@clWRCnylvtd&eK0wj^R8# z%wZkoJh_JR^fzX0I8T>y+WxDYC)aSE2>Ev{=c$|Zu$-qmSw+ivdX9x#&eQMNw3hSq zL*`P(d2%i1iHrf)a-Pm%tu5zi4bxf9({~xOjPvAL&eLk9vz(_@oYQ5TC-*4Bd5SWo z0b8a2XLO;Fz3m&oF~4#@0M|%+%nFS zYdKH5v6hzeRKu!R&eM08i{(6x=Rmcbr@t|#WvJe|a4w~X`T zTF%oT1e_<=aGvVe+LrS~1eW_TI8Sbv^W=s( zPwr>Kd2+*?C)aSE_Qqg~hdECt<0#`{&Ql9|Hm;nfTQPMj!knisBl+M8Msii$AjsUpmIsxX|VtuVGL!kniH z!+E+1v!%jtp2lKbtuUM?{-c75kIH#ki-Dd{&eJHgce0H0^joxKP110l*i}i(dAg0U z%Q#O-%XwnYCCfNZ$^S{t(@d-f$qhMANyB-Pid)W;RJ@Gyl(d{DsdyRZDfvImc}i}` zc}g12lT_Sto}}VsoTsGaJW0jNI8VvXg!9C^p2;%K6Mus%Bn{_Dj=*xBJHke6CN106pP9(#5T1g|!c}g12)3aDOlZNv| z@?g?%p7^_M(r}&*q!H#kB@O54SY}{2PkhljX*f?QtSd>wd3uZ)7|zq)Y-+=K8p$+< z^K>uHp2;xhDQP%Q+b{#edHOD+8O{@Nq)Eeh`U6Hr(r}&*Cc?ahVyh5 zTPMtUN`^U4NyB;iGYd7Gr}KH(ADi>E3@dW-Q{g<~&t}IZst#&Qn#G^HgOxPZKcDs=}P7D$9Awgg8%`66YynIZqkoJP|CK33Hw@ zmh-d{U7QJXo_>KN&TPne${5ZQ7sZU_JUxxkld+tq^ROCaEa&Na%-V9ENTJDC&eIW? zP#Md4;y8x^|*oaxfc_KqS>ln@xFP^fW73V2i z#(5(0G@Uh^C#j?5JXK?gWXm{D+0TUYbO6f@bDpvra-M)C3ph^;G0wA=^TacD_EY9O zEy5_ymT{hDqbvQa;XFwVEaypT@F{bi{=lO$oToJ$EQa$ml6BjV^OQB5C#jp|JW1U? zDd*{NmcJqADQh@SQl#ZPNs*tF^VE)WS=Ml#4(HS{oTsT+Z?a{aC;s;fKWjKoQW?v6 zlFEDn&eNrA?J~~OPz+T+YdB9*n&mu6X`g`e^fQ(g<~(H$=jlYOq}ejg(=fDpaXqaXaN;XFx^mh&V{4nRqH=HM8$iaEy&zl8&BIhr}FQB7V!EaOUp^Ic21w7M`2?xT5 zPcQJvpV5a9>O|{cd|L4t!{0+&5oNQ;9??VL?irc1S!7;x1-!#JrOi)4!}H@e#N+*> zBs@*||Av(G;hdzY8?uweoODbCJgv!SsLj4|3^*pWU!PSA*v$mzi*+;WIy12huvFk4 zVVGfy$XJ$#G=LMrbW(=T-h7&-fKNa?!j9R>Qjp%NDHeoN?8zrR%od46usq1a5fNuT zpON6uk2!r2J_D)A=VMPcc`i%#%+nh|MKoBX5Hjw-5yYGYaNn2I^QlmJi2ITM-yJ-F zA*>z?=)rJPe>Gt76^Brcw$=ie2|dh-DOOG2qI2nbnYHol=Ah($3{D8f6ue-s@9R!%@9Joq2o&40 zwu#&JwBqIKu8C;Z)|JgYZ4291fb<)JXuC8Uh#K`GMV4^DCJx4c$SsCWs zgQhRN?Tc9UwSK3#xU<(;{y}J*ejbi_pSpWmFV4@MOA2MLv=@uLf=+<8E(JMgDX1We zmo+cxZFG89ba!|4^kK5de3RMADWb5S(u?*wbz1tin7ZD~DfaVl%)$~-E6UfR&i`#5 z4tkDH*#i6o;z7`{0jfxsyY8N)9c{&>0r$%;&3v6-SLf2y6k0=xMWbWFusX_@<_&Wy zVZ=U|h$GJgcNO_muwbu37l_>Ck)#1`D# z3-(=S9betFTdXXU_t47I%Rex)u^I02`IXRyJ4K-_X77Fno-ujDtrQ_9Z$pJ`y#=XW zvGsC~;pf@#7LzxtNGue{6J2wiH}D|_-2XW>I_qRl!rIr1S6y(NZ!m#w zCSEJ-aJjWjKoY=@<)F&hLt*U=A=pep5F2eFgg_4R)RT z3PC*Xb2DMbV?UhVEls8T_&wg_cYY`hcAX~*j`L%aNhs_b?1%Hauc_2;{HAX5yF$}& zJa9XA82)7-C$nzMnxF5fns^hZY@G3Or^bWG_BF)g7&05n<#szh;rcz)R65>jgqiyN z9Q$}0ryC;MEy!=IF`(wqsiEQFynuL<;0X-f2Qpr2F#b69&1UjjpYifs6IhKV64b=Q zPfLVtE8(S3_)x~n^ev}O|A>s2!?%|LE#svYM-yv*~qx%Vum;12td zbM?ZnF8t5hO>3XX?(giMXla_#)Y5d-9&Y2=v(`QQ#vM-KotHMn^Ik#QyOEz@9Zqip z>s5ThH?zX*mzZV0@U#W?%kQwtgZ> z6j$~OUl;b2{jvuRx7Jhk%h?PFv0psHep!fEo?*Xy4GW=X*e}1pNzMzgU%ZdPe(^%= z7tgR?zJ%%M8TQL(SXV@5ix+0UcwzR7XV@<{virmA7cb0y@eKRrr)(6%etDba z81~C09M)m>i)Yv`4>4=Qez_Qp=6!tj%kfxU#<-qgzr4#_Ec>OC^|0)hud|Al{X!No ztom;wMLPd|Hmzm9+|CJS*)O}J2+y)##&d31_RCo;&$3@uF`Z?<9L1Pr>=)0nUr3nt zEc@k9&gnAti)Yy{ykPMx`-Sig&$3@Q?7b5E<#ZNbV!u4fqc5>vwq_ya>=$n%>=*nS zR44vpIKDd<2VOH0r-yYgb4y_5QaB~$#H2ss5JBX-EUJcA4V$92p_uf_Y0Q5z4)>>( z#X;(!@JKczWM}N8d@hHPVZR)YV@Z34{UY<-vR_g>PRo8diq^*2FD)1k z8PBj^zRb2PW50No{c;X_@&ni}UYPyjS@z509B^gq7q5){;#u~~F07?xzx;`vY}qe| z@xU$n=)0nU$$k~Ct$yLhW$cXmuJ~8v)MEsgZ<(e_6t`AFU)@NJ{$InXV@tp`~H~=s6XNdbtHtBk@ebj_{B3-=$~fW8@4@{5EkjjPx^znJ}mqqR10K zy)X|qe+4a|ULJ*&$RCLU6F|NEm8lAR{vrX?%K(fKKR*f+Hv!bkSXedr-@;7*^+I@5 zty9l|lcU244e>#ALsf!Z)}fw5Qexy}Zycf`)?eT|)OVj`j7nsc6NhUA0)GKt-~BJR z@*l-na9MaB9`&q1C|~*4-@ZE;z722i*noOrRT_52Wp@Io7curj{t2L7#MlHwIRVs* z7>_d=P%mPfid+&vy@;_HmXZWeFEqS+83NSHjZojc6>j}waDvrM4zP5T!&W0jQc*8& zpPL*->Lr+BqvU(9=^MXfi5vM@nDxl)}PF{;>g-8j&@JGBi!E~cxqBWz3`XkpyC$wA{8$~y`(JaMJf)|3om1};y}IZ0t*$-L2}}RE50cM-EXnz zV3$SK&tY6~HmLYeNiYtsw>idi3aA(UbP%5hr*4Q;9H^HczzQmEQ7=;QGSo}TqF$up zK)pPRWLj~cUNY!0RQwn4%!w1O_+#+(-6Gt0u*)KAIQ8%kG+5U+t#M|@);1=P#su!1A7s24ecGSo}TqF&?(fO>fV$ zJlJLB>fc~oaY~&O9%4V0R1Y&M%UVCGw#GXQXX&BvaM^5pk5@+t-N#q>P6Cgi3U(FlI9jH zPbr{YB+W6*0H_y9!*whL)QhBf5huPBP%o0^5oQ3?i=>%^3Z{U1ku+JR0qRB4oWnFg zy-1pKSy7-~B+b^$0H_y9a}=Wi^&)8wMgBY@l9lf~W7^23JP)Z?O|B z@EaS|-ZtzMpk7{;RO{f@kHG31N@0ga=`;~ciz}G(NY0Je$*5xG@eR|EGS1|g465l@ zo{(4xLr!*;2KB-LUwLuz0tC3}0XXQ&Ym>LYNThkHtGqS&D3dt#Ux(zxk$Q)R*4YU1 z-AUrIfO@76;@Zk0!leviZlP>+@ct0K!~T<%etac_Jo#V?zwLa^io6 zM`mZl9Fe{$@fG-_hhmPV4eEsu%=9mlS0R8@Kp4-6kw~vb!=_(J-p(Xho(t0NB%g-i z=Z7*HP%nRmRg>QYBQFiqOB&Cb)aECn-O@n4jD|HhU&%axdYJ>O;MA{0f}A+v*0`LR zy6>W%zRL>Mvq*^skL&5dVuN(-t+F-kE{3xrK{%TaseT6!89c01sYHal&G@WbDSl4d zbRc{s5o=pYWP-=Tw_zvDtTa$BtZjqGh6L(`Mx|eMN%A5@$#yzb2K90RTC}Q!dZ`Md zUaHDaFI88?79+9mwoCn4qsnwV+o*Cr<=j2B?=l1i5+s2cHa3FSHW*3sBh%P%o#zN*C~4xsw6v zv@wBWHkmsm4zmwNA~|D3MvnRLb$^Qyd2iui;@ZyRwiq3}JPc zb&j_)XSSFIbMeh z8cxSjmjUW!6pdrpJV3pOF%ly=1JsKcSEA!HK)r}@J!X9ds24Hrqyf~67%ws!P%mPf z%n+bn#JHC|3e<}j58`MuK)r~uoN0i15#tydK)r~Oz&y(U^&-X(m;q2PG%9?&ZXeA# z&Tza->11EYaTpG7YXSSAhU3SntjWHR9EAw!0!BkNjC#rb(S06SxK3;Zx;Xo%81soU zuD2FP40c8X{|`%iOE`5{Vw}NQpk8i;C6@?Ui+Z^RqbCd0%Wn|m<_|&CEG{|M!Aj(> zXVyTyr129$IzI@_ng#Y^2rNIp5Cb6#)Jr3*nmqr9P!_0{17YDS!2L*`6NlgKF(e*> zhwp9&Hy-S=CiN^Oh$f@lcb}&(OACB$?<4J73}Vp|1do9%m|yQ%1LHZIp1Z)|CpVAI zLO6)ti1fbuD{-01cc&wu;ScDXEKo13TJTbQLk~g$B@nOJW{mp!h;JZn{8%^{{+Fe+ z|3>0L7;=8`4e;f3g!oP*u?``wTtfK(z7%jfKM~xjcn$$MaX7zF+-vagUH)I2_=~d3 zOlvr^1|d~W9FF@OD;%tzI!lA-Zy~z3CB~W$;LCI*iI0L)_d9fA+6VAuIV|aJ-vVC- zV50Z{zMPF9SFZYe0AGFzE8)~156OwcV$6zgI(&V13f%bDWS7}WE$_rmPMnR`GKhWw zVm0i~ashl{Hr_X}4*3ASyb2@!B%Hdd*d9KBFPqe&%6nt9`vAVM!5#Tp>I3+)06{oC z&xPc~;pKnm(tuwuLnhl;OjLe%r19MsQIhYn1n(e>Wgozo4jA$M;ndY&1p7XKFXzAt zY5?HNC?wGuVC4TAL8!q4keoRD<`gRO18VRv(%>W^E=y?O#lH{W3oF$yAEVF*@P*;t zaMlgLmn1;`@webpHxNsZ?*sTU6<$Hz0DK9x4uCJM2twT!LUQ6fR^B?_MiHht4n!p1 zb;V_t9+}=gfG>x`h#w56u902j1Nic7SV55hzJ!_sz?WYmh|K}XiSq$PK8#4dyHZ?c z*{~fi8vuM^EgE*^)B*5?;a($_3?IOkB;MVRzXhMVJ=j)0fG<20zS|=%b8EPlr2+WD3N-wZ-3s6f!@Wfqy*_|1@4<-w5l-E^yfF3w zeAyhoxCiwB@FjHA0KV*pAk48WHj81aMP z)Di09`vAUN04pdGz?aaW1NicD1o6-zIdMLq$a@jVcRR#omJO3IVSE5zSc`@qu%Q8b zVR(|?x8BCi2pm0Q4n|d?0KU+#;W|vtD1a|wT!<+d1@J|TOOPxI;0q1kWhTjXgwGl* zIc*7PxSR2TeWBl=nkcX@mt!x_i?gW3zQ{jC1onle95`N5bm-)yu&Wsx#!qkZZ`*H(~{b&IDA_lQ9QD9%hsHOqz3yqP#L0<#=BBw!AcRD_i z^IyXQ1f!bazsYhegqWhTja~$w%_bvNWY1A8eam1?W4ieW-36a9Eg(lU$aUkHFi)Y^ z3MW!Xj>8_?;z#rWKctG-^GYW&GR-V2Po zIKm;RoKZO!myE84pkF-=0ilE;@lg(?0+-sA;FchM1SW3Agp(&Dk-63MPYp%vi5SF{ z)n)PVibW~@bc9!BQ59S+R7YZ&aK>3gOa$f3t!6}@5m|!)64fi!VPILFSQM*s&S)%$ zHMz*>x}ZA$Z$LG3t3Mo7}5P7u>yAa0lWvUY$ea6)9a-1D$|jJY_&>(LF1T2SQGV$8k|{mV>6kp zfE|8D;IlbC;Vm5RAS}%>XD_tS`x1W$>-kiuKaP1EM|eL5jDreT^bdO0qJMB)2K|Fw zMgL&WqJI$CfPNJHgN4KR1n8fThrI9#Bu~go(LW&{MgN3+0`yPFL(o4VThTuuAH35U zlvB?8NyqbEWK%Cal5R9Uw7RC+bAj%`u9u-iJZ~#6I;;?&e&Rz(_^I*YloAh!R<)N_ z&kE`UlVJV0ZWL!UM2NlQDJiHXNaseplmwiOa}pvH5VKZ1UiJ!JwRm}zK}f_)NXXf1 z3W0x)5|6Epcp2_#&Y%`WVyOu@hFBi~MzP9*myGvAiTa^LeZ}T}C=nNy0BXS(cKe}3 z;Wytc(4ok-vG5LUE=%muM>$&@FqV3|+gg?`UJ7;$&I`@Uz!2$N+{M&<<=LQ6%*)g( zy790&un2NCVI(4+8mCR0JVVeU#U;zS7Bw#`F74=E(bHD!#xH_-xnuvwuO+~xX#oxwi0&>+HN`jJG!`2aqpWm#Ku=L#WB5MdGE zcEGSGVnVE1+BeDR>S=A0@xI}R);!ue+Ip6Ng(5th5U!$(&Q$`cg!npU9)`Q*e;r9w zB$Um}=+7H|C^VA$aYIVKC~t`W7r3GF)xV!IR9exC0+TCmpAfJQv?btCh(!UO2UHYX zEA#-pv=WOFJUWH5$S;yu1lHh!pp$R1t?F95*eS~EY=Wm#PE&jHQduTKD_-f$($faU z)cV%}=%*51iR2`68tMS~s#9q#E$wY6z66}?Z3hCc&`%jEA>Z_h4kxb#y8tJsOEoUe zmYH+CQa4TelE*ZqG2k(ggoD==*T)2+zg8>*P7Ga*ctn17g9e7PU@IV<(gS7CLXNNY z=E=pmdk4U>_O2B@&JMdRD9oO`WnspI#tD-PjguzNm^`U*T478N@SUJ;ZC2QS+j+ZA zZ0_k8KV$qN+*xR8FZ8q>y0mv`S7)Jd%PptPm~lX1d`C<7ifvj*JzO=uV^a6B6}|B5 zYhTf^2)cM#S99NZuxYmG?ONOikLI41_HB^kp<9gaD2!iH7{7aCVf^C70G0M3*YUk= zqR3(~hi}-%r7nDzb~lgj#%r2-jbwRarsdSXMZk*xGG$0_>X=fa_!0$I#9_7;BX?k~7SXM|&M&t0^f=BAvuAHr z7&Cd=Rx`%4tHv*%I)2iMMJqb{R!rXPlXM|&qowf)^M-gQ&TPE1HY-zetaqGyeCz}g zhrl1=?YGYfa|pL~LmO_Ug|--PjfJ)t{~d5>+mJ!T+oh!~CM^@T@e4#~i{XiZ@U|gi z2#-C5witeRXAW#bwkw%Kp*x657z(}>G8yi4_cMg>gWbivmkYgC^)}V}R3BIUo$BkV z@2DnmLzd|`Q5~V$sQN|KT~zl|U9Eb8>Y1t+t6r=6q$;00VmWWBR^Wav?dhu9s}@z4 zsjgN%UiA#si&Xm=LP0zBGlYV6$lxbbj;l>o$Ei+NovXUHYK!V})gx8Esd}aAu2}w< z?|!OFRQptqRy{@ao2qJZhjs{9va48L0SR#pBZMf(3r z^##?vaKfU0n`*D>(WT=a1 zRKKdqcg2|Qa@8ADf28`L>XWK3s=ld8#2wS)=V;MEs-sn>s&1>go9h0m?W!wOk5N5U z^?cPURi9NI$wwwo?iQ-ERrgRmK=okNr&M25eN)xN>5usgP_0)Tt2$kEp6WrWovMec z?m95YXFt`$RL@YoSoJQ|r&Rx-`mSmkKm4*jgH*?;Zl^lWgx3V|#;MLwouj&!>Ora< zs%unFP(4%iV%2L^Z&STb^>NiS9%E$vMypO&-AQ$!>SEPC)nimoQ@v32YSlLUO3Zv$ zsUD|#mg=Rd*Qx$cbu^#KK)M;KJE$&DZBhNX>Qkz(ss2MXQ5)p*CDl&V!&Sec`digk zRo_-k;kgOcqgHj4>LIHCq54(Tb5(z<`l{;Nswq6bB>Ab1QeCXNO7(cvGgTi`eO~oX zs)VXAzl`c&)n?UR)uUBUReenLdDVASD{%oX^-~?Gx}$1QwL|qV)ss}uR{fUhEvi3J zeMI$H)z?(tqT-S{i^qGSI44xAPE?(uI!kqq>U>rHk1M8Ita`9&7Zv#)qxSKt-%veQ z^-9%iRKHI}y4$E&`|nl%2UH(ZeM0ql)!(b)^dsr9oQh&Ph+-Is7F0*5PEc)BouRso z>U`COszucn)ehC=s)wl_sd}dBIjR?_UZ#4L>UUM|R=rpCm#UAd^64+O&#S6`R{fhQ zp8#Wcr79o)qFqqsqhGXVsPbVi+PkUpc`w>6s(j>&_ED<{>>3hSOVnxA={SQ)Ih9@uNJZmg^T9n@)2g4(r-yYiq8Lpw%RR9dDDaCa{C@W;rg9}`mtEn50_=Oe)nJ>W3(G0+m6U@ ztTCYGc&VXgaQYCh0MAX}kIO~LkNLAqGv=}DoQd(rb>D0zKc)%Cy8`ul%tV5kc)TaL zXlWnrdk5&H592Q39^DonmAjPKSqd!UF1>NnFXrqpXP5e;ZgMtjdB_>*42_K1dDbOP zkwWjGe`9V$D;cJ>|oVA1YYFdL_ z*E9`Jwlw`Z`v^i7HN{3;I_R7^O>^cW&G4q#O{XRHXnH#Pn|!Qk$61ltKg;e~*E}Z~ z>8PDMXRoF|54z7e5b?&;{>Z6sy0fm;>1lH69?2e6o4)Gmv;Q z^25Vm{LTkH)XgXge5ei#A=jj&_mwnBL&K9n@1;X?^o%J8AS$oBdd_)vd9@sQZKH_)v41=40}qe!=ela6Z&?Y!t(XdX?oE zKGf|T)*IzRy~3;wAL>jr+P}buT8-5u#D`kPTr3}|nf0)ID6%n1e5l7*xaC7V#HO`; zsCzi!EFWqXiYW1+cHrEwe5jLHp5;Rw#dMYrbsl3{KGbC#D3%X(FwEgy=*KE#JQkHwexP(lzZ@u3#5kPqiW6;R&ikq_0vVPyDF7vWe+d?=ak zmJc<8$7%Uc=h50YAL>6a9!h+u3)q(L!-wKMzK_I*Iu0kN5+CYy4!HN>L*32cVEIss zSxd`@;_JyJKGZjO;Fb?n%Ykb7P_HniWcRo~# zhi&*!d!S)A&WGZCZOeyxiqQ-o>PjA@;X@6^__us0{+98P`A}zITpK>r0JL{GAL?i5 zsS+QGT~*>keT%UzAL>=C4JAGld+syjLygC&p_~uJFI6QzlvLdEp`_xL4}B^9@PD5<#RLrKLgA4)3zzrcrzWBio!p>D^LR^mg+5m-Ky z9D(IS$q`sSlpKNOLp_4AUgASlV@Usd^PwhVCRsjIC6-Iehgw9#@S*toy5&PXgoV@c zp_U-!h z%ZI{CZO;4ip+;ejT0YdPIGT;~q0YcTe-u6x$z&xy)D|q-@}Wr8`9H;nYQ@a5e5e!~ z@`LzL7o%}E#)l%^=VS1p{(0xe$A`LrdHwI>MLv>!-x7JMzZBY@o_B6hq?^2-twWoN5k-; zUS%}HhdPQOh7a{1dvv3Gs6&~?@S*rPnB_wa!#uNms2?(ekI#py#%OpSK2$rpxQq|= z103-O@u9dVmiSQjV)T^wP{(04D)FH%W7d`rRfT3P@u7M!p-OzHE72qWmV7AwX#BDG zQ0H)EG<+yFrR76iO~WyKC|*K+CVZ%w7;EKxsCRHoB|enY(ek0jVxpAzP`v8HF;f!YaP)j&<3?FJFR-JM_ z)WK{k%ZHN6SU!|g<`eLtu4HSM@u6mLs9HXhlxF!*QrairLp{&Z3?J$)cB|n-9gg+1 zoDWsS7P5ROsfXo5Nj*L(AL_r@&}Dq6b<)s=4<$ufK9m&sN%>GaVQI2_s7Kk*@5hJQ z0#&hmsQWQFH_nH;9nEI=P(p^9iAP7km?A&PlA-7qkfGLMFVD-e5*dmYQ&CHX8o`n* z8H$%(B{I}g7^NXH)OO4UWT@ScXPg;ZGSt;H3>iv{iCAb!h7zNe2FOq}M*b4ThsaRR z;kU@h`Fr3Ihf%BGKZIl`G?Q$j$u*4(89ffxF8IvCXG|Z^O#uz+8!%4}ybgh1mKY`e zPW=mfHscTJD9#y!=pzLFMDP=SWd%ApSquHC6Due1+6xay#)TOZ;8*0iSPW1AaP_?GCa97w=&eR>|JJBhc z;{-G?mZC%P@cml z2*8fnqF8ivlf}u|lQIDx0I(>0dNk(r9VyhWtpa~${9LdLS2kIGb)Ty#>0Z=t;S+K8 zq}+m!i$|gw)|&KT1Q@O_bPFfvGkXzd!NwAx>9H{~t61UmIgKN_onbVl1|AXdpuu`4 zZ~|x?@n&R?VK8J%N@}jlNua?RmODcyZN65+oLG`s^AoOR$rlG@qQ-61kY|PUG@0){ z(q^8vC5KX!Jng}l5=ucPvrtW=a()TAY=KD;_MC4#c~TAfyVTmxnLsE{yymElZUVnr zeDH9%oRo2nu-p3aO@K)oPQzvnZ_kB{dr_&Fvp3F{pAq9sAAS3Oi8+gcYgX+gB3>k3 z?|?Ti;wrb20U0+6??@i6u=(?LG0W$ks2b(Vt*x`tOhu=NNg$h;*lW2`D-H8 z65$nz;0=t&(hTxqC#)$Tz>obMxU$+9fMdy6y5MEFR||ky!K*Zdd}B>SvUoYjq822z z>IoW*A2d&06NyJA6ebj+TMRr6g3i*Qmn7(A2|7Cn z`UZnyFFQQmnt1HpRgtLcL?X?=NG_eQUDk40M1<1AVz2cmaln&;`qy@sE0o z29|_3;fsehFIxcwLa`U{gC4-CBmrK>Zk%dg$6nd96xbwF4BoL`+5t?Gd0D%;7jK_; zv=tYvKn^X3@>$PN9(Z-WyauHg{NYc|$zF_5A~AJLnM@Dh_KMvr7A;%aQj|CJS9GrE zZEKa+@ST2?nxfQJX33DX}S(nbl#5Sk_~z6Q*ZjJQ250JVbjq;Ao+L6}utGE<1LB7V25u z9ndt|o2N{-;}2CU4G;WZX&D5?jxHHy{XDgRi&G+wlxF(}^VIt3Y0Ei%uxxhq%IZci zR%pc$yeLPmEUv-{fx#7vWQ#Hy5&Xes!(Zd1BLDde{vQc|6;5+^cUz|{sKk;6>odyh z>N;d8R@{}XScw6lDw5;Da>}4jm<@I=f>uJz3>Q}}vWOaV4W0ZDkA_p6Q0hR zyMjN;>fTRJ3xfsi1zWMBc@=wTy~Z|YFRVeIHd0Mrl_+9RF6nCz6EhfESu;}u zy<;(vq{{`Uy7d`8!JOSHF96;UEY#Vy5+qBxdcu-JXblpE(<#Y{Bf_jc zrQ;})T^s$4WG9a-&I7T-@CSI1{3;Y-wK< z8t2T~p0en_gv%yLUVU9FTeKCi5b7Qx$jW?3XV=P3u6-NKj*X22VMZ-#2`#V4r*z6} zL2sH%pw`~5Vmn$FhlV(%B^+=uHad7>iU@1#v8`y)N})DFebGWD3ddk;&!Q!!7-X$O zIH;AL$l-ZN04G}ns1(|=4`b<&BCgefE2L0w@cJ!GObzA3#zQ*WdMJ!QG7dXHrU)Q2 z-5)R-*X#a%$XaP|n9*rQ$KuYu)!l9UGR0Bf*4*PPUba*Ko1xJZbWJe#O6z**+nQ5c zwrFwC%}a3+fNylICDawq1jxQumWHLc>{!+8v~+dy&D{{UPOb;IF6hV(Eo8#*JV$pJPO#q>kg{w*MDr87Wig(-C}uNBM*N!En_F|yjMx$}#=Y`@zM^YLTV{~Tlu zKX{fg)(WA!dCy^g+c0BoyUgGdD^7}ko;YinPm z4j;>1vlq!guZ@uJH|t%y;ep2-P`yF*hpI2Au2X$awTkzOSzpzWs*_c}pt_H0tLk#q zi&cfehJ1v<1{DSyR2XbfVX#4k!3Gru8&num5!&Lb)0{v&I_NpGEdYUT#Gd$y6t$M5KeX74weL?ll zs)Q&oT}E}V>gKA`Rp+SAS6!sqt$L*DDXM&?RO+L8k1GFfGX0mTu2elv^$gW(Rc}|l zU-b#q2%d;wK3UZvs$*4WsP3S;K($46x$2RsC#%Z807Jff;)nU)tojqxM^*WZ4#Qtp z{io_2{EA2a`Kl+Y@})rf-=Z49T0mPEY*1maL50Bv6$Tqr7;I2sut9~v1{DSyR2Xbf zVX#4k!3Gru8&nu>*r38-g9?KUDhxKLFxa5NV1o*S4Jr&as4&=|!eE06gAFPSHmESz zpu%8-3WE(Q3^u4R*r38-g9?KUDhxKLFxa5NV1o*S4Jr&as4&=|!eE06gAFPSHmESz zpu%8-3WE)L5KeGBeqpddg~0|D1{+iuY*1maL50Bv6$Tqr7;I2sut9~v1{DSyR2Xbf zVX#4k!3Gru8&nu<495wZ^$-RdR2XbfVX#4k!3I4@;|YTewlLVB!eE06gAFPSHmESz zpu%8-3WE(Q3^u4R*r38-g9?KUDhxKLFxa5NV1o*S4Jr&as4&=|!eE06gAFPSHmESz zpu%8-3WE(Q3^u4R*r38-g9?KUDhxKLFxa5NV1o*S4Jr&as4&=|!eE06gAFPSHmESz zpu%8-3WE(Q3^u4R*r38-g9?KUDhxKLFxa5NV1o*S4Jr&as4&=|!eE06gAFPSHmESz zpu%8-*5W5`_Ome9pu%8-3WE(Q3^u4R*r38-g9?KUDhxKLFxa5NV1o*S4Jr&as4&=| z!eE06gAFPSHmESzpu%8-3WE(=i$?%hKVh&z`F|*B@2k2*b%pAeRllx!kt+XDB-8y! z^+DAqRbNzHN5wfeiKp_ScyPB$bs!b#hp0VNb&~2-)$LSwRNa+|{EBL~s4iDsp?U-r z@xDyO_3Rnyf41sHs+Xw>s}1pPP+M4SsPB(xBcFSy2!B|^A6FGd8^T}I@V}`)|D`04 zH-^V0sQiDERA045wVsOf!&RrK|CXvvs@tjVNkzNi^eyR7B~d&gB#P&iM2D)5R2`=( z&p4vIUDVz~bstsordXdvs*6>-RC`s|s2-up=Q)|~T-A$JFIT-<^*YsCRez}Zm@1!B zVm{BQzM%T5>g%d}Ae8Zvs+*|t-+|J9wCY$@J}yfC9aIlemG1@c=kuWq=f41@^660O zsj3&LUZ%Lk^vs(h}B@n@>;sJi~Rn6Lf|RllU#uDVRMO^;LRgZC{> zeVhrst2+SvhvG)5XuH|t4Krtg{9}g+i}3ivgfROK-(}4&F8}5TJTB$(U7dZ*jeQW_ zFa%^93Kz|Y`whXiemsV88;uXg!-vHihd4|VF84XuX5-l6#=bXs)2@NB9M9;Q&4g_S z4}4v4nl#{c+!WyTH18c?DB&(jP%n-dlLouaaRt=XR5ldGwIv+y#NomBXL!qI!WO{_ zmwW6E!GqQ;m+fH6U4ea*2D{F!BORx}9o^e^& zzg67P&4e8bJDguD^1BXx%rA|Pso#0nH)*iz%p2u6517smg`I`{aDFvA1;@$!u=Lyf zzNKk6x48}3%yGWP1JR9T@pHYZiFYMHp!;bYiiyXyI9xw>tMakR^HWz?R#q{()L| z%g7nd#IXme zB2mcCXc}}+Q^DC~&Ud!2d(;^>{2}MU=-R8D#-`ux8JQNDa?bY8JiG(Sz}pSOdJ|{O zuAja0oXFS-4@HKbJLle)1~`9w$r<;`!_I~CW<{nxl8tP&xM`E7#ZAsx&%IQfbG7r* zzPAsGojKE)-!ux>noF9tY+BOvPCmAFO;aOCdyiymW{-ASXE_(noc%&JGV_S0QB6l6 z?OiX;p0gv4cv6#dhI3x@n}ZJWuA3$1_f}i&=iUL1x4Tc|bx-bq&R1CwK7Q3Ax%FnwCd2YbZy9X6>zn$I{`6cdWgb(HC zk)H5A{JfJ<;SxV@DatndybNyW7=GT4h-LVBJ@B{uydN-NWBj}|h-LYC*P?|iKkp5+ z@5kZixj5Vr-pm9qSkeU;-WQTs4`CdKxoP=%ue0igpLZ*I#`5!$Xno7iyA;iD`FYFO zWrm-}8$gzyw~$#|eje|+;<44;6YZ=6?;Kcu-ofZH%g;NHnOlBdk~P{pm1cKEoMZ~R z3h7fEJq^x)Stzf>&y$8U{5&D=8GhcLY%jylV@8uw?%}XD{5(>fy_eD>APdufX4ZzEcQ@0# zBBQa@sTql5Sb~KkCl0$icN;37qd)qJ_>4G%HaQ+nh@V&BRI&WLULLRI=aG9+;^zr$ z%<}VIVbfZE-fx+U<>&2=B1-(cW{yP5&%1@Sw){K+*jawwjf`pedDnBGSbpBQOlSFd z=WtG2e%__*zoViRJk~w(!x+=@^B!iCS$-aeeTbiTBdcBF=lzvOU*hKph^)lVI;!%6=`1HYJM_>nmPsapK(f-MKh$>4|kPLp>qpNTf%c`y}S0aBI$o$EK)lC?>s3 zpZ$|@m}**C9ON++9?52ea9qjEiw5@o#zs{S;V?4%yem-Y5EYDO`3fKW`c9V)=O!S)S$Ry@;=YC4SyjEWz^g__f_TC%VbIsOLR-{+RHo z@bl`~+LoW!#-{mK_<39zEI;oZHvXm2%B_)`ljQKe8GAC;YMmi7;pw~dssA|~8Nl$k z3;VwN6&z*#3-spTg~u!6{UqEZ2Pm&-bYFT>cpr^>vV;*k)ep+DZJqs(5 zKN5wLr5C{nNf-ElRAO8tIRuuUpMoPw%#2iR39BaWAb+y-=E16U>d8yZ(ZP|DG3vX! z!;J^KtV8`j;7E*|?2SWI#NwB(p}zZj#>itoCk|I`1U>~{->qPITVj_5mxc2LSkDTC z@?}IM+6KN2BhWx(>9Hye2cVJ3(i5YINQteZf$>EQYqIntxL0O5Ki4hw4<=}egZ3~I3A1`hcV&grQ(*QCl$9WJ*hZYdV;hHTD&n@H3*{&6@LnO z<-`eB{5kmgF3&>oV3$SKaO%|{Sxy{@Pp@F~jAK1~_eDub(1FJvXvxy!DjqMusk;Zu zh_LjohZP)wW$DQgSeBj~fo18*5rC!lYa~nOpT$@wOOMy7ex5jHvh--x6!1u-le!?9 z90sel(9zuDq^^r5XTcim)c+L8bK-=L^+EXh?s&NIV3(Dve}{3!DRokKh&>{yo?%p$ zwSH7>jRb<~S$ZfuT=p0QHO#>HAWM$}ykR7K$kOAWX*iq)SbFS;20kA_mL6-`@E#UU zvh*a)j%;YK^d!yGyo`8B(;PtqEImncKbEJ|&2Et9RAz9y8>IO!W&oC+l#|7}LYAJS z`3o}uOHaz-nnjkLlrx!Wz|xa61kaMCCuy!?MZwaOGzTyPu=FI&jf@7Co}@X4hYglq zP!2{$3M@TIvnLLhEImon&UpZqo}?MbXtz`ZX}-zU0ZUKP9L5H{KiJLw;WAQmL9Y6-G9QZpM+KlrLaSzbeagJ z1rIqmm&VRR6)TT#*cK_{Or9yAnq=vH8HSwfEK83A9xS~p5#Xk$U`BIbznO^LJMlb(V(YFT=3;%LCqyBPs4c40gtMk0L; z8Wt?Q`GgCJuE-P5iA|)EU@1O^Z4bqK7(PeAeFBr~>1mSExr1}#)Wbm+3 zr4kY1!lRy*E5*-go7Tfu60x?WL?(C!d>fWwW|5`G+BW3bkYMT2sPwBYNnVX8*-oeG zvH^0(FnuLjbYm>NpQ4dUEWKAy<*KVuutM3T$!D_;Hq%yF{xcrtMEEgTFZB6UY0$j#q@!Aq7NtwjDus4Q7} z=fO%B@NScnIWSUnH!MH@AoB)G?-hV_ok59#r zrS~36j*mnJ4L4#9BTKK5#${|Cu=K>(7bBT0Juz-W$CITe#`Wx-U#jsF8er*3$lHtt zmYx_VGXyL>F`mRxlcg6JIND4>jW06|Sb7q|$N9+86JvACGqUu=cz_vzrAMQ}&;B8r z!R_+lc$?PAzLMiG9NyOAWM8Y{_;D(0vM(eX5g|PbqhWoP-XD>L>%`Wei^0-kK5@qN z9>o!prMG}Sv*FZXiE##Jmq!vmg(a5=C6?YVF?z_-dkH~q{$xZYOYfhs5_x_pCrhsu zx8T$HnP^tB^frU#=ht8$kfrwpST*^((IaH(9SjR!0e*$#IdS++A4B44c=+xfaO1%) zYf{frf@m_zefN*_Wod!0?R}(;!MC18OAtKjv0uZxcdUW&oJh}waQMj`NT(GJqJIHd z`|j_=Wh&p@4gn1*9`LJ?!K|9^{x^H)0Ut+ouKn5Fnbk^KON%90mW#A9u3*WMEH^OV zDliyuH(+3`W=lcMD%kYi34uU>U=jnNhH`;~gpW`RBq0U3rX-Rdw3j!%zl4yRKc}_p?IdjgL+11Q{X+{~JRn0GrNKj-Flm2$>G6LKF{kv)kRmy-8nYsN9ia(#4;-Txi<8BQl@G#EB!_{m^pjtQRAtAoUa<67 zjCUi}p+skB;(PE!e~m-Q?d*?4S12}SI85Gz(N2~gJKT|vrDW;VBMO)2m5?Gi@b*7& zYrqef0WbSlyfA(Z@+921QB%TY4c>_u%Vg;t0Z(*24kdeG1Pe>=O89&Wz|yNh7PSB) z|5u2D1;2n4$$_7o0#$yD18P z@I(*Cp=1x9qQuB>>|5~pRf44#=nk;-euXG@2c$?2A5-NsNR)6-k|T>OYsVFhEInFL zb^@mkSbB{2W?;!6ORot3--+^{JSE-iE3)+Fz~>tSmR_L!VCfx(C>WE16v;tu5;N~X zVL>zE(R4YoH1B@)HduNm!4utpL&;nYRkHMMg3qrFEWJR}!P0vYQK;=9NRb={uI(|z zC){J@$kNLGm$iYVM+3?p=V=8?kMZ8g7`NN*=jGqCiIg(upELrE^rLjo+l>)`XN1WPZ_ zbg=ZEL=>A2DU!p-RQVVZCEO$A$Rf*@VZxB5M=Q#nW=Dgi$N20TwBH?tyIr)Nk-OuZ zlcmS7vKKKq$clC_vO(iq)D#y|pMa%7V+}U4fif>D~0K z$2s)yK967?iz96ccF(KGH3Xf23(av6lV{4Yu9(u0$@5C~E47%YS^SGMtZ9~x;V z^VCj2$d1^@^HsFa=$Vt@UW|P&hP5MP-`!C9(eQl%`vktJ7Md>Ycmw`duut5IaziuZ z8;=6invZ?rwXA+dK1DANwT4IurVw z(1ILh=D)u9zpx31BV-6e_})SY`-J*NG-6?#4c-I(YU~qF!^98O$$u@r2mg)OCnZ^6 zgA-ajgh>e%Ex2Ca{WBg7KRW*Nc5;cIgih zFNZPEQ2nrCq@8>OA}&UX3$ah`fagXyuE$<+3OvjbzKn;Jk)b~?MUu;tcqkar?7qnt z!t)C_eujP0We&JmHz4FS_+G&dG}tNdvW%>)IG~IPlAjM=@rfD9UkpbP_DM`4`6t82 z_a3lS-JZlV$8dz7z#-I-dn|2!9D#F@fWPTA`N#0AhGQl6NlaDw975XQ`vUgr@^Zg` zC`;i+!r|m82t5JOd|d)t&8ta2RrdSvp_<7>NN^b=Z* z-oQ+2d03ZQmQ({{SY)Eu#lTWHMq!`CRAS&%_^P?nKo;Qfz|9)C7ozL1V-o|JAa*T>xYgTC^Yr*eG86@AL0=`#NVhz(QBeX&49jX1H-ciB)c9?eJjUA?O_)0it@ab{s0k$qmokhFXIy1yj}iknWOKbHC@_&1-LP}s5))lmICz>C@s%{ zhMYCbx#&EM)s%C@c>u*XbamR$1JZ`BM!ameAK(@MPWk~n)?lZdL@iQ#v4@-k zDaVR)1?6Htl=5}#5$A}|7CJ5yPfutI9ao44F|_7d>?ntFt2kFswu&g5r1a zfs_xhM;sJL2m3>+f?GEDx7+$R!0)G36rRbjbByQ(aEF{#6u&XcDYO)!l)JGrF?B0; z1XKQqoxxQ9{H%g2u+_rN%GiOXQVcT|>9=cnATgZj^woj%E7R#$2GgfooX+Rha{!WI z8c`asXXDImaDd?~-_ilEKbDuU)T=XN>E&5rhVD(0fnML%C2$R}^{@M2qyavY(j?Ah zlosp}XG3fY9lileX#k54Im^{`yvzLWB8?5@)d zw&_;5p2dzdINI$uaPhty6;S+!+PUF`eu%(FC4Rs_TUI#Al-w~5ag;3>Xj6JNB^Ec^ zlxUzPn=}|`3w1)YhdXTc>%sVnu_4@pRMd26AgO1Q1_GltkY~QE*C`KBQDa(kpr1J4 z0}YKy)n+yzPPSk^Q!MzXEQU$5osIl*F9>%HW$|W`d$1Yl(7?%aZPGxXX9Kf&(z`R7 zktGHDGr8I>$HCBJP_e)Hp&UJ?pa9r)6oUO#)79kuI&VCa;i$r1gWaqn99U)x#@8aS z4*SX2uf!fqw^qZi?H6wP=q7}7kl%`(rkaiM{o}TpNT?a9)NR)#LGs8hYAY7m<3-p(h&0UBc;9I zwl*Z`N_tsIpj)Rfu0G^tMat+c-@}VX3q7~Yi|WnNYpXtiF>j+LGpEid%4qD7-U55;C71q(Uj7HuD z(H8}T@O(WOyLo`%q9}xSsu%r@qNjN7t~`a_DENw#?7GpB9g^OtNN3V3mag0}>5W8C zrC-Yz6$AYLKGI}?3;Xs0EQ|uP#bAUeP*@Dc8F}eQ3=>qFTkhqQ=~0H=Zm_c;8IC&t za7=HPkMI3kS-p6xVQLN0YlF;Qa?iTDJJu^Q&{B(it{O2)7AGj6I>Slx*`NLJaUko~ zOq&j}Zfaet(&F$GQwHWO)!C71-h`J8>${cBH^}V8yOp}b@$G8`d zng}PAFkm8%@lut*&zdZfHS@GsC|YkfPo@F4`6OvU_&LC@b~HC7fpzRQC)hGl1BEs7 z>u;E9c#1xvnsx|gSpbU`HYkO)b*@*epU~aJUY1}{f5fzD0}-4?##sR3K%D_jWJga| zb7Ske*5)Py@ow!{C#Xs`*QfZU>5zS0cUIsr7B04M2Ifws-Y) zH>bMr9G>4wpVSP#b9=hw8dl3BLH=w@eOITYflq1aY;T?d8eUuTl)2qaeXSjxQ_#6h z8|%B9r*yS8c24Q;s;R22n$p|Z+14|qt+k;6iBa4XRe&n}bCK>6gs=wbEzGcv9_Leo zd-2}@!@)BEwG7lDnuJ>LrvTp|64u^i4N`r(I=g!@@MJX0++}C>00xhne0eCpo)dtS2yth8!WYdKMY{>Nj z@9*F#=mbAupA{U>T0W}00E*I`L$YXwX+C6!_&;I9DiG?*ozn^1qQ5-?$V z$gU3;3{XhZ;8Z>ThA0|1{{xof*p)NTJ&nDCxL(j%@%s%aOam_A4Jt35J zX|C&oxZckhu2&a2W*n)^q-_r{qH*dWLt-fTi%WPGFVRpY3o` z_}u~YDDS`J*AG(lO-+t}2Kq1A@>>I>N)v|M(%IMT?782{(mDS0bs_I$Q zRW;L+6T5LQ4WRX;+3;SZ%bc$0~7%3`reBAhSuGBI@k3gpneeGYi`W3GzQ4^a#rxO zJ-9z;?&Svp-gSXdG=Kgs$%)m|c9~Vd^HZ^*wxS9g`i|bd>PdgkdE?iiaqJ&r! z=ixu~6U}#|P<~~a!R=j`H}>@GGh%0EofVy*H`AHB6B6NfT^d@QP!djWdd0p@G&gJC z?9foRFjN#O##etOp%I}{{Z}8-m@V*aEdEdO)`upX8o@XG!3|%Z1-*#J13`f;f)erq z{`4bKe&FYk*NYbpq?PPr%j>nDV8H9etnarjJ5l5b$NY0f7B9=7;)!KZJXe56%w`1dW!1Vs^_VGO_l!+pgr=R4k*9cr~fTgo@Dxk z)e99?FLWIGfZ@XGg$k<|Dy&{;lg10H7yirDf0L@PdJ!(HUZ}8oq4NA4R9L-GVf8|V z)e99?FH~5)P+|2#h1ClcRxeaoy-;EGLWR`}6;>})SiMkT^+JW!3l&x`R9L-GVf8|1 zV)(MX!s>+zs~0M)UZ}8op~C8g3ab}-ndTE#FZ?g4Us%2H3#%6@tX`V*oc7b>h?sIYpW!s>+zs~7qr{(VCG-&S?-%nbd)>V*oc7b>h?sIYpW zb((I4D&KcuK4JAjh1ClcRxeaoz0eypov?c0KNu5%`GnOA6;?0w6b%-zSiMkT^+JW!3l&x`R9L-GVf8|V)e99?FH~5)P+|2#h1ClcRxeaoy-;EGLWR`} z6;>})SiMkT^+JW!3l&x`R9L-GVf8|V)e99?FH~5)P+|2#h1ClcRxfk{o=Ic>2&)&m zK>aIK8&o@0k5N5K^%~XNR1eJY%Uh?~qk6pR7gaA&y+-xhs>14p9j~kZL)9Tzt7zv) z)k&%|RIgUOUG;~mkE{Mt^-a|j);yNCLG?IQ!gLtES(Pt!(O-_8I#qS9Dp^1bKScE~ z)gx3-Q(c6M4%4ktZB*@2Jx29R)r(ZGRJ}#@Zq=WvKB4++)wfkYRE^`UN7h@SI$m|E z>KxU5RS!~KuiC46g6cV{n^mt>y-oF1)#`*_?>yE0RS#BeRXto)SiP|GZS{Ysn!tsN z_K#NGNp*(m0@XuR+fTW-zN?yp2gYc}aMkguwW>>0 z4>j?He)^fJ3ssk?rc~Qhk5D~T^?cRKRBu$hL-hgG$5mfY9gYh;?VPH*Ky{UBlWMo> z@v7&jUaI;{)!SA1^Xx45WYzOjuTcFj)jL&xqB^zM&$m!@xoW*?r|OfcFR8w-8XfNE zFH~(&JyP{_)eBW$QGHL<#f=W_9;P~0wMKQL>KUpRsa~b}it2l+?g%YUb*yTQYPagi zs$W*UO!axy*H!x>@yk)z?*X@Z1N>DOMe;TCKW5^)S^V zR8Ld=it0C1h1HAlzOVjARG(FSRrP(<$Y|7$Yw$=at_fwTQ&gv_&R5-2b*1Wos;#Q+ zs@+uBag6#;P(4+{&r|u+tJE)yUfAb6>hr2Es=llGzUp77 zuqRgPw==G~0~O_!sbAQR+SUL`8V3>MffgNG!^AMuko*I_*<%fRQ*6TQs$Qvr=nd6)lpQG zQ?BvV8a_>Rchz~Sds1P~67{c8J%oyK8dQ5Ue52|~8h$zz`7hA$i&ZaIy-M{a)mv5X zqN4o!sL21QhW}jkIn`gO{)UQlZ>j%xsvl5MP9*7TAr<{GTy?C5Pog6KG!37nI#0Du zb$`|6sARi99OL-lRdKdAmim9HJKy~V1fs$*373KHY_ zN+PvRb#K+Bsw-6wR$Z$quV5kHVe04WODyLS)hkr5R^{8NjK4+ocGWvo?^k_5b(`wr zs?Vstp!$mH8>*x~u>3!$@@o$IUDaIGd{z0piue)gFISZp$Piwse)${=KVQaTd23V~ zRoAO_sCKK8ddc+1s-B{HhU&Sh^0^o3HmiS&>NTp@tKO>m9o4&4?^ESlVXW_I)nBO+ zx5V%_RNq#W&(8?Y<>y{#foid8sp=S2zE8$Sd}|s$Q@9U#eSG<$DLX`IZ~=|Bvdcs=rm`8*Yq`tMVl``p2m96*u~4sPcU_ z`WLG)$gnRNcBNgbDjDh^*^urqUvu{UsHWw_0OvOLYL=0;LkXt2C<#^Aos7#oON z7jVPr{J(Mde$*Hnh--j5Sa0nz*no7bm;GSs?F;0A(`iNrB@mceq;{I}@Jxw;2)O%)2wB7B{{hJ7q>LbI0Nr#OM)V zb3D$QDR;(5#w7Ann;ds$?zt$c5YUb)Xf`jFmthwUF6w&^3CFt1ndc`&*Kp>K#`t#k z5X`q5=kMCNhBJQ|&&*tjiO1h#AI}p{B2E;%J6}A7aS|6@!?Nh$8bl(s1Tq zVmXF0zYF`zaOP==`^h--e?TEIS2^>q(M-dcznvX&v;aI@^m;wok#{oAc8hyQjGXTL zRF~s^Z>TH>`KfNlz0*Ib`KgVLdzZLl@oaXN;mq@ct{ddcyM{CW1e;!eJVDO9`S^8 z&b(_l^S@%J7|#3~tmpZhb79DmI6-=@;ml8F0fsaG1dBGD`HMJhKRsuj{E>;S+Z>LO zLtjh?sB1a%2h$GAnZJo9wuK9?L7G_ceXQJa=3ijfTF(5foN$&i&rg1Cx6ggADn5WC z(Q@X`W_^}3-@$yAGk-l(TFyK_*SnT8-_CrNGk+}SwB^k6>gyhFIPFkKhtC;jejSIA;mn_d zw#40uq1ff<$6{GHEoYwKRo8OnPp5BS&iwHh4|(o_Q0yfZau)m2a^^cYPAzAi96oo? z(9mA=S=`B{{2qCfE^H_uB%=4p~YdQ1$5nK1G;n+BYKIjO` zorrtsq!Qo1v+-y7ep25hzStS@ru+49Rs#Zxi`d(iGrtdl+)u%ocTWmOu0ftrTp8R; z!nr(CqkcsEv$nhepmoqoTEPHxM0xo{I3dYojwt&VXT&n=sw7 zo+%?7IZC{G-Uf`EQCZK%INjqUGiUuu>DlMw>|}v0&obO%vaYkhmVXSsSTQTg0$cuf z%q493EU@Kwz!*sskH=`p0$YA(_zH{vgku)i@^w&vCAk(B@qkJHBS->Qb(rEiX+!B7 zI7o^jaZN^2qNDc~}eHft$m%Qe}opE5r8S&)Mm(qYhxlD*m)d(#c zf)2_8Tb`zr?SqcZ0$W}@xSMvez?K&efAcmAY37takSB@1kM@swc{WPvSD zkM|;Dz?SDT6$$qa97`X^!Dm5A1JkV>a{_Y2wv1{)rCuTWI~#2Iw~;#fJPsuf;!G80 zpBakn2}dzcRW?AM(m%y~G$PxwGA=TsPANzrFBdz zhwTg}oj&1C#?jjeV>%mb`6hUxB+-|Q7Q_D(it*<~e8VkUUJSQvc`@9w<;8HY<)1?~ zH5_dDJd83J{xAZIOR7xtgC-gO+`3;DQgeJ2kRb%sIpp&k8CG0mIJ(uA=zNdbI_Fa&;zzS zPej>zP9w18X=xczy4hgMOP)%cglw?oB@ch=DI08g$+L_eu;nEW|M8R!w!Gxo!~(#U zmpm`90I=mHPZaA)HrVo#=SM66YbnGLqQRo57ZsJp9#? zY_R1e4_VaNV9QG${%a;1YSy8b7x;ljwa1@B z$p%}Vk1!?Nw{R>Si(U%kutOt#nee9tpMnzXwG;UwOw2j8Y#MS#nLRHLW+rk@i*1BQ zE_OL*`wM8C13u^SY*ORhcorI+b5r*1@WkT0)aBff{TQ=2rRPD4DGQVrhY5bnxDd&@sQF(LWo-a>~Ag9?St-o*sF6I``XU5q#wn<)c}7 z`yl1m+}mPjA|%d#D&~GqTk{55ll$M<1iq6c49_#-iN&u($L7A0eJ8UBTR!*C+5ZEN z&z8>xTmEhM3X4lI@^ZnJkK;?O;l-po=7KFh0lrbi6Ilk>@^$bfozgAHP$Y+7Z(PMf zT{7_T`#ErzvPwyY0D|XBS*@RM94yRO)9zzD4e{gIeaQ7o1jyi_QRx~H^FGtlxODm= z?bD$Ml}xlYoykO3Ahc{5W>zlP^0c-LdQ7eejGA-QzKs3Bm>ufzYGB1Co7Tnn{XIkGYeZj@0B7BL$c-bUMuAI0b4%r#q9A&5Fduo zkoQueo}G|?So0B1-s>)(LB#ijjX1@5Z$wy5lxe-6pv8G$%P(Tc3>+{HcfcpN z2zhr4K-{)$|D7h>|AQ0y(lxN-}X z54L;~PgW{h{&_?c$zd`|MRl(sAmNf09eqihEVPi{?u|gMA~|r}2iWpDOa0{UA-OjL zV=W(S`I*QPC62!2L$oQLKRy)O0H2)he9M+E!9>XiTmB+MxpLQ+54QXd;R9R#R7jB= zSdCc`zKqa>%O^{tXN!}?ij`a8D3Zg#R{F`mhE!#ZtQTx~7UONkI+PE#{HyRp`6z11 z_3RJ)AVO@|aG1>hy61x}&klFw!%aTe^5n_m^1KLABnRI92W}1c0W;ubABz{p?~gqA zi6+#Pa9M-53S&7RZ25M0q9o6k?12%S$iFBQyBI#-0v#)3zX2NwxBvWBvs!}xr#CmKG^cL2=a{qTRzZ!u;s~C$Fd;p0OZo3>=WZAx$F!s%|qmKV=Aku3qXJUv2{pFK*--~-rY_cJA^@(deMmI+BOO@wsR{~Ud#>I!U2VY#S#HsPZ?^a}YhC%8O?wEYb;3<;7D#52*6=jGKo-L6wK4&Y{>tm)?hedkRs$ zgf9W0i)2%x{6wD6JrS}8b|uQ!PKNtb?8jpF`SE39@dNPR!!W?!lVUY_r2N0*1i;>t zappS_A>G)0*n7F$Zt~&B|HVF$PiKY3NIxxs&2z9%LLTQ9m`LFJPH|o^??CXku{%30 z!-3}S99j}S9D{o@iT&IYE4-XR@-^><|5M1<|5)xd`O!O_abgJUYdkpM?0hDMZFu;3 z^KfyTTpShB_#Lu>g7t@X9LL4WnS&klSIPqH5>AKT>=o>%1F$2>K@h*o7$;je5(%MR?y|8? z))028rIB1}&r5ht4)Mth70+P`SOWizFkiHHw5D=AgtTtbvAmw$S0% zxiVenl60Lb5$|tOAxq{C6H6hp#knk8^^OOG>Xxd(3ai=fwhClF1C`7R^|hQm*+ z;ImXqeNPKQaK22)VNEPA5Fi+)%pjmMnleK`PUshcUw_L?(%hKo-!!diR%QrTR(?Qh z2WVVyVp2L@$lWc8<=zlzRwdJTxqckDqdsI6zaT))=g=gN z;Ig845LnC9iSm-AW0KLxMwSUoXS@?N~}5Ix|0x{v6RkqkD^)S0yguY|4)Fd#ur^5HO@f_>xC zp(7gU(kEab7G+AnK!adTT>w67FsFYW|C5-UgZRxs{3a=_0Tyg?dviB%p^ZlvtWg61 z%b>@t?``RKmCk_Fwsm%_Ps%|_a)Url;9DE*b+td;ElqRX4)Ut-*9@3$szs@;Sfc_I zGQqjFfNR?C)Bqgnuc1iZf?M8HM`x<1z72O$8ymZOJKGzS1?XR>n(F0bi`Zn&4x`4QaV3plukWO z94C!tD$4!d-^Aohe=6n}w7034K!b$N)XK%U@MymPx!z`0B$+`}6wpu7s&Q=Xs;}tktvCIqsQz@%*%jW0NArr7rporM&!-Kbb^S3f9eIch=YG= z1-1yDiU@8Ic?&Wf5^?aAeqf8p7nkXP2%ZnZ!(aGL)c@*|Oitim?8YzGGrvmg&*Cx>@yF)t{-pp!$w#2+J_@<*V|YW%_qk zy+ri})jL#wr22E!7gd+z0>}K#sy(VFsD4RR-mFHtBJ4~*L3NtyeAT6@d{>F-+EtHI z-3|Ye(~dY0KfG+)jrh|RllTqsp@sA{Xg^Ts_og?ae)g`KUgr|Jku2pSUJyP{F)eBTFSG`H~d#XQD{h4YU&vmli392(y_f|bX zb)9Oj>WQl7s(xMd2G!{7Us;*RRRDDSGDb?3h z|ELKm#K9`T}md8(sS>s5PHPf-1m>f@>}sD7ZDiyL-nuj)9} zd8!Ahu2=0-JxTRE)yq^3yYn9PKdAbo>PxDxQ}MrG4^K*kaZSipEm0kT=c9s?Dl~<#~kq4a4(9`q6)1)NsS_ypVpZ`PXXr4XU?NVdwo+__*hl4b?C2Fou)clb&l#H z)qPc0s2-r2Qf*Y_BYQ0OR8@Sm6#ti1zpDB*Rl`jDruq#t@iz6}t$Ls8k5wO1HO#~( z)Zd?t7{c=mw1>|%P~)lz)ne6=s$*2gt5&F1tMXApma{_jVAZv%BziEuO|?gLqpD#f z@+AzWJ4^LTsu!wWqI$XNRjPcRk@*Z0@dxVvvFbL}$5rL?BOh|q@d1(id}@g0^q(&# z9WF-_kL6bs%YrB$C1O4^Z~h@HGW=#tC4UU9Qa=j&JThmHMTXAChM_In1RQz3%+p`B zey}~7bX?2mHs6#m-CFEsBo5Ht3mJ!f4t8#rqCB1_mWSJSTi(@h zvpkLmZhMY*oG-H>x-pLXEvhEnlhZ#Lv#fSTx@;E7e&%)u_Mm-N2KtZJV{<-ujl*f` zg2>i{@^&^JsObx8pc|ZXSuX;4O~=OrDUZ!!ohZ+4TX8a~tuI|3^90j<8}>atKsx!U@;O_-?2t^>oBht{Q6pcBg=Q~U zIP1|#xVM=p;jtYjmt4ERDR;(guG@XB_k4CZR9ihiHf_PeqHW_h4XgP5Gi!u+c1hh= z=S+28owIjc$$UTOhvm!bO6DT8;z^0XV_?DCU}O8b_-9LVWSZn;u$vD9W2_i(eT4zV551; zM!S`9hK=@LI02qvqrJ?+EgNkWJM*L2Xs4mRb3>l8(WD~{8*Mgo8aCQN>@UMcqb1%a zW25blLSmk>(Wdh}88+Hh3_7nL8|`+Cz!opfM)Lw}G%vtL^9&oUh23S?XuqaeK{lFa z*l3k(ieaO@$)*I^XkL(w<{38Hn=IO}(Yl!@$VT&mY&0*(M)M3CZ6pf_veCRC8_hFp zv>=`y%HczBsqt&u;hK)9ZMH@ESPnqY_v(diD)y4G;8*L(|ie;mn$@W?{ z+WQ<{mW@`<$}Jmh2D{d>(f-I%EE|nj3eU39ZemKyM%zlOEgS7S%xBqX!#Im98;z`U z&$7|T^ztkl?Z=$c8EiD~c*929i771`El#T~8;!%>OS93ovHCO{?JsP7nvF)Dn3u^$ z^9Ep})gssDk&SjU2bf`_J&Cr&J;O$m`EJ>0d$FCCjrJIQ1GCY7g7J{&88+H0>`Ti= zJDlUxve7DeCO?La<{35`c_^M`qs^wt8EiDqveACQ;b7TlTWFwwXO?*l1VL0K-Om z4voqRve9nCiOfx8Z&G({s07CI`MI6zsGcl z88+H-ETb{QMyq7=KPemS=NQ*`L$?LDu->8Q{hSOo+AxF^<`^~_PgRa(qrJn_mW}oy z)`lF*M&p^w$zY@9{4?2TO_=^U8Emvd43@$i!$uRsEgMY?w`?>q+_KTc@C-Iu&Oeil zHXml@WU$euqaO=%3>!@hw`?>q+_KTcaLYy$!!y`uIiCp|Z4Zo}oD4SF@35pLa||0z zT432|(gMpylNMMunzX>O(TIb|v23)p80)flPGUzJHrk7fF>JI`=`n1ytyl?j3>)ogth_mfjW&mUXxL~Q zu&(47Hrk(AfMKH%_?=_eXl<<2u+b`+$FR|ErJ;t6#$W2lF>JJ9OlH_<&#>8sjW&*@ z88+I5Ts{mNt&{V>u+b_pfN~5Q?Jw*d!$v!rjWcYt7FuA~Xa}-V!$u=hJLglg(eCD& z^>?$;z5)|-gKV@3Ff);>Y&6b>T*F4=fX_8-v|X`;vBQWuxuQ zsx2GsSeEhc#75(f%Ek>FZ3sKkveAZIVc2Lx3>%H$xglvb+7QD=dkCF0B!i7MWFR(L zp0d&MFs|~_Y_vSXMr+4}$+K*K`dkk|t&$7{efcchZ*=SE<@a9=Inu~Ll zm%&EMvuw1-S+-@Pbz(H-{Tr~+?#8sv%V4AZ8f#ddVWVwj_ZT+X)$AR^M!N+kKF_ex zZs*xCY_tdHF>JICnar@!E?|sdqdkuSkQZd5$FR{lG0*Z08;w80 zm1o&#Ak$bjT7H_1mT%c;`N~Gy8>1mV$VSVzY_#)mit~ePv?O{5n5q73w0y%xmEWx}x03g~eR8;!S6iO+(K#-EE%WU$c|VfBh93>!^sv~08{Oq7IW zqw%gU@tLsEZeqQLjrI+!Ly7I#XbHncJ07DwVcBTBZYTc1Y_u~mmJ=Clw6E~&B@7!) zEU;`evEU!fMoY3)hK=?;4i>{k+n2Uwu+etL5|l_7Hk#OG*=S(veCqtzk`kT z9D6&1jn>VfnlNlMsm-#{q_)3nH1Wuz zLLj8kGwwGiR0(N6#8*S1OP|EU3_?gtl8}bwK{lU|R+>jb+Cd0ejNK=sm5!JU_x;#! zV_3TrDxE?;93Rl)57|!Oj~axM!anPQ{|gLjKrx}@FaplDz|V)OCftqL7b+K$+OzOK zg?-{-2uZN~B(4`ju}|b{w4pIVV7mhTuQRN^5rCT=rG`h~zaRUAud}qVLRZ@r9W?{{ zB$VT1qj?hnXxm@tYKJ12zk<5cnT*4~eF<0Fh~u*G5eS&f&X@>ChzFbuCp0~LFv2R{ z#^G3GJQ{n&%kc0k^Yd5|AD|dwO2UtuEDcqmxai?!)5g_|#c$OvLHuyUAB{|=wx!`d zsk0aHHz0l-;x7)yyZiS6GE{jx;%Mca!MJFzQ$4nNoZ7t8_qF`~Wp6_Gl-)7S!W+F% zgr!t%qPv) z=pcR$&xH))=L*8b-<^l2S|-#w0*uR@mAlA0VUu!0D~mr4KQ|ggx@Do; z=jD=kcR=oexvO)Tyux#;O}UkZT*rthl_5i_n^2OJv{jy8uSZ)j(&5d68S1Us9&k4` zBM6rbZedIS-SEIPo`hLK!7>NuY6=$!pLs`DjYKS=$g1kBhRbY$r)n7Fm$x)s-pXKk zOSiDRD(oP50c}G%iVJhcczUKDBN0jWAHLylr=gXf@s-rC6=sfp>dOb$E>O2Y@Wblf z)|*i=4^ID?z!j83vF8N~s~)vwEy9|xXFI(-VWV~oZK1afdzJ=mq36q)Y3RK;m?qr` ztVuR@SsnI+u!EIHVJd%Mz#*ITs~r!ta4q(*Qze!)z>VRx4sx{bq@0XB8|~v_=9W-g@YsFY;>(JNzx*iTV^xVoDVAN3aqFsQ#kkfQzqA&UA7g!rhxK!BkB z0)9pP1wwq(9|C4K^tHD2RNkU#O)!C71-UKq0a3N4wbNwb02VY}f_u`rQZTW3RkTW~=5?NY{|89bj4pFVa6h4aI-P6*#uGiUsdElUn zI(uX`avb+Hw6!*-_{%exAOP<&hfuD%7>2Jm$c!`H)(8$##zN8Fps_fa_^YW(b@z2} zkpb4lsqg9n*Nl02O*dzzv9t5AR&@2orXJ!s*QeI?0UL}&Tt+N14d6OEe>>N$lPT4B zcrTYnBn?h^v+g-0a*-{}1mH6TmjEqYnK&6OkXx62)n~wMQeD$}Fib(kvm=*eyi}@3 zU{%njR`gpdf`pA$eT}74l4>I#5b+pV`#cD0eD> z4`9K29{=Nplfu1^()HzjEX5CRJuRKxy_t6-{(4d^W0;>FTRQu?ojvzknVereBPl=L zkgTbyo>g5{Gc7q0uZ%Zi`b2&nIFY}u{8yZ!L# z746B2^~s9;Yk(%?9UftYL1^J1#1JrEXV3ZbcS%mHp0>-Z3Z9>e4Yd_j!1Z?Y_Ek^% zd(N9MJc0~Een)9Ger?!~VYo1F;^{eOWS<#33;%kX%dg<^4MIb!6H3DAO|RJ3iRNbQ zn;jbJ7KVyK#gXBmlF*1yssBYLlGshY>{XxZy!D}tfFr_hBLiDRzX&x!@+-N<1C8K| zWc-Ubu%*8;WnjdK2IA0hgBfG#_$@p-F>@;>Bm9TRg0ah#KlznkLpxvA(%1LBK-cB`nOUM&mJFSDh@Ig z2bqeP2Y4J|kg4eR!yr@9?}tIAqTdgLOhvyR2APU}KMXPz{eJj&V=C^2=NWh%OsTf3 z9;JGQ>P4zotKP2q1Jy@WpHqEJ^&Kky|DH=mA#UgMRm)U&RGq3iL)EYp7pZ?gD(pN^ z{fDSFXn4E&H>e)2;U}p76xH)pFH*fm^?KFssotadeJbkxZ}mT>`UDjZc)gS)#R zsynIX@bdueRmDdJ@dFhqnp7RDTB*v%WSDQ3>Tarh?1kZnsy3^(s&=XNsvfI)qUsr{ zUsSz7l}|FU+$&VCR=r>K0o8|9A60!)^%>QdRbN$oTlM#@vLHDA@RBPXkW zs_G2Y-BstQE>>Nlx>|LODj#cRJ-w<&sUD|lSdwR|pN~8N#5-lTe~>Q>e7tMYMZ zru(JpyQ=T2^5JO4k5%1Sb&BeI)jd^LsUD=dUiC25BUO)8?az4RgV(I@YSkN6`H~yM z`4BesXR6PrzM%RW)z?(tQGHJ}iYJknKSy;3)gskVs!3Ho;LY@VsP3t{k1C(?W_*Kc zt7^L{ALM5IiK={-oBpqMg3bsotr&RaHKp<2xLF*T8bPQTfdYmEVw16yM2}_Ach<-6qKpl2I)BDK73;p)Ox!*Q2$pv#%1dB? zu{_#h%3A}s$pfb|CFwYvpJp?0?FcY##>IEUyf%#w#POOCtoMdRK$syN>t(p9_vk<# zIGtz4J5G`g-ArAZ;18BJdtZMZu{=JDZOZ!++$Im4&Ruq2td{oSt3zuaudO&uT@cxh zM|nFN57g8}4RnKZ1JbQUU@^i!j$IkY_&a2P^0s4F!oFV)kdEJ);(syxHM!0y$z-y6 z`m`Cdrd3a$Ivwt+Dqt$@ar*SyB>uBfGyRjYD`#`E;C9QO>l2+4te|h+_AJPixXbNwCS`9spl+1&$jfEpM>!9_jQhEAaw#J>r>U85-W8tYZi`Iv9=X4COngMw zNu^_QMs%Tsu2)~?{ic8Z@suhCVf+S6{0|Yr$z-;Hd6iQ!R=}$)zz_zn^6RMCyBC=Q zyvlE3lz>)fmEXk( zGQ7$snc%PTDi36;fq9je!r(No@^I8`c$K4Z5jMQa)ktM{l_wzF@+zNT#6Y~tGmy&i zD(^xMSzhIbxEOyLUL_apv4&SU9BsF}O5$uSukz0{-S8@Zj5A|-m7~%7mRET*y5I6D zkK!payvlFVV|bO#EZXua|BPDGyh{H1h2>Qqfm3FAmDjLv%c~qli$0oHxfJ!Kd6m+U zhFAG#mScF8>)Bt1S4m4gA+ItY)mvUAZJc9-E* zRfFhc|JX_@)E2r0bZqG`7E#U47S(uD(|C-mRI>I+huu`@3Ctwukv+H zILoVSL=|aXWd}#1^O@($Kud6oQHBh9PqX52r5SGhBL+wv-V*)@L)uaYZ+j;@+w!NV+ZC{F2+!{yvjc@nc-D##Wb?K%7d^NT3+S* zjQOOz%5P#^8(!r^^mit&@_F=RnpeqFmF87G#MG8o8OPa4^D24fK0{vRVVM4zyvlNz zljc>5;g(k^hFe~x7;br$V)$prt6aif%ivYc#~PdFRf^&GGJG;WUKESrmRBi;TVACY z{(r!$9F6gl$*UwoInAq-7Fb@Tw7~Kzr3IE(DJ`(PN`6_H=2h;5A^oq-tK17S$?_^| zIFSsm@(g+mukwpH{gzjmhgofTm8;p&hFAG2V+^nIi}V;?Ro+8G4X?6|78qXTy-a3!mDjM@hF2M3 zX@*z1mP>@;RUXZGV0e|~7(kX+c`bX#@G6gB;|#B|j}{nSrOWmhUgceE_NV4m5{dZt z^D6lRRvEm?T9|2hm7EQhSIGfyd6n~U4lJ*dm%7iASNR(nt-MNd&MmKUJdDraRq}r` zmRHGtfLLDTP;}qGyvjQm^9gvBdt&6Jd6lbKwdGYVW*PrZyvn067c8$bpB?#eyviS8 zs0_rbd9hF7@`BiZsQ@5YI@yviT&>=<6<hcA9>c4gg?VOqmCvz&PtU7diqY^9yvlQNiZghX z&!fd3$E)O`nC4Xy&6?&_UW(Ny&8sBsG|j8r2i=2bI7KglhxF&*B`9pZ(>_khdd<-!pRlbTCx0p9iBvp>UKNDh3;W!lf z6e5b`FqwCj3HK!gB-}G`j6N?;7Fx)ET@)f$ksO$@i2wX4%E7!Xx^<}J^pn4ZAO<^C3lY7>S4?LfeYipG7~SEA5pqdSUz`Cqo#z* z8ocu`ib<+m4^MO@4kasjDoLvRGJL)TAXO%jMJ)iS@)1PAf*(MN+Xhl)pm#v3 zJQPu|Z5gCU4v%N{&NZk)OobT-AW_2oK#XCL_+AwOAXOd?PqYb#k{LWjBvoDxpI;?N zm4WU6sqzs-u{$6|a`>1ke~Ls2cY_>RWZ99pmXTCRE6UE{)B&lI@m?L)8EkRmw@T-&{fPq=MzWNBsZvo??_X+YVp zcv?ZKWW0AiMk+~_e}E_YG7crR>>-jW$Bs01fK(Z1HAs~!5CuE-f)vSND|#|8BJFg5 z8T%no!hIJ-CtMck&Ehlzsj>~8=s`G?4Ci?usq!ND{HB9c8E864l@B0_O@|c8;bW@2 z7l{(?dO5PlvU*Gyk}7FM*(>a5kSZCUO~~ZiaDXrQGE?r0b52qv!^+;mCROrgDov`~hxJ)fC2zaZq{mOF6oHGJK1%&%-W6%jr9#oD1PQ2m1seNtW%vOUcvl zKg2NbCX@1=#!T2$gMDHSOb8|8EQ{nyQZ*+CZ?ar?lQ+Q6rF!DmXx$j$P5uS`_pnbw z9w!GzPT1&#Dup-64<-|^?^K1T2}e4i=|f0d+!sNMuBK9Wi_~ zYw{F$PK4ul>^m_<#hwV^E!0=AbE~`nhm{DNLhj_0(6R_%V|WPRY{Z9m4~HU*t7f0U zHJ%)Vvk9}x|(73#U+(_QYyp_c}gc4Yf!(*M? z+}(2{==8|20PPQ#OpU=9@H9qYd(rU@5qw#I%jfzeKr;JcLo%{wheC@A7@kv()Kf4S zatkuj$Ajr-B7R6dOu=nO0oZ@Rg29bV69<_v!GyG62TAIsZNO*5G_Y_c8eUN3Ou+h6 zSQMI2;+r!_cQnLB(jEJg97%U1R&ijuBQcK{-InIKve;)iVoV1}juo{7P#rOp&pa{Y zgomFu4_Cpe?fH%bI?@^gbX4QiJ0Q$arV0;O4ji!KC}(5$`Hgg)??+I$*7y-{1UF0` zZZch+rId5A1EWXr3s^?sl=NYISHQ*MkOs%?HY}ltT1N4+A538;W?!}?o&8{h4Y08t zE3l(Ulmo=MjIvIgt0||7a}9+pMOv17yYHmXLQwQVTcEP}4Q1gwVGldiTd02Km1(0g zpnl9a9QzpTKs{2JA?%#DBHh2s**;dsV2EsC6! zT27;GkkI8g%7#@QTmJ(6^sAVjb_5WEOg$4j>p}z4-DOK;3L12>q*#$I!!{)(gX3sF z9!J@Nfon{lD=Gap*+3fW_XaM*y3tCrCE*x@eIj;Nay<4Ev70_I79mKsB#tIM&*1LZ zgZcWWXFCqZzDd(T>=v}+=`aV(XGlHN=feKesfVKh`y=PDkTk<1Ltg%o;20hWyx@2* zi^#z#f&mOi$9kj*`cOm<&j1wwQV2$2PNX~JML`fO^9mw~B>8}#5EgnP0AUTgp}jr4 z8t%HF3woje35u43_RR2*=SFJ^y&d3)f`kZCVnLc!Sb$Ik9A?4k!Io@a0b9(CM$T|U z-sq$U7Gid}H@ecxt*o>zFMEm`ioAPN64}ay&3HUghl>lzUd%-)q%uO22*p1gUpy*= zvLpFuQ7F<7N`eD942=mzz5t7()1#HB8~rnpRzx=RdeOyR9ts(g^b+7SMt2;*ClTeI zR~Qcc2f`7%YiAPO*4NVvL?Jj9poBH{0M+sd2#NpZWW-I%Z~DK*BX%@St!XgmxJKbJ zrrM|14w4c%VpC+$IzhN0XbU9GSnON?@B##j!GZxamTLE*U;+N*AStognbOkP-aG}2 zwYKIdbGw`RT01(Y02^)R=alZQnyT8WDZQPYZ9P-kS{oD@JVn(3OD@Qu zBfm6=pbL@`|KV&zoPAV=zfV9#R4#{qcL74;SEk-zk7Y+1yRECrFg3#^&xICk&&(QgZ`HJ|7RM9MO5L z>xK3Rgdl;HI8OtCp+3Jn#Q$vcp)SDw-~nPznUWg(IRPFHVh(ZHBfU9eGOi~xmZZMk z&W()<>H`HfjqDRh?O`3A8#@So-HsNT0c+J0uE@8*WjH;bd1*)kH&abLouJlsG%2>) z@@s*B<7FQAskq_n1`b!3l)!a9lO7AG?tcd6Fi2jtpOQCX@dUrFL+*Bjt?1($N#b)h z0dD7{C-0EZ-W5-+fj!^*aB6aYUgbiY{tb# zY5|D$i0Y|T(*$drSu01Y8kJhtLGUn`uVn8Xfg2WQU0bWLaRXRepGeu*(hR~R`eS`> z3)>;XST8nh4eR{wY3%@cwiS1idims<%!tu&b72Y$aIARz#EZ|p>7|Z+yB&Jl7D0}Apa6si z23^L~0CJXtJUwa!x-WyawTJ(ivBNDe!}Ko6Wa0>K#{^BSZ|)^Co%dY-M;t?b5jZ!m z@MP~4_teN~;d4R@^TwW@eMaoeth1u?^Qs0phWeFhMBbLQ-=E?O(}J`It_Vnl!7btx zNe+Jb&ORo`F!0*9ywfXOLc7eTxrF)&Mn72j|Cbpxq*Y+z(H;x<^dk#7~}@} z{g8)${+N!x-TA?Vz~#Yu2=0K&>-QvJE=i>k}xemR5OK))Xbxq*H^3~~ege)uSE zU^kvU<@`HN^<34jseV)ScGYq|H-z+4Rp+YiuX>2;1FDa!zNGrDY8X!zu$)z@EvkpB zo~-(W>aSJbR(0`Y5AzRIO{zAlZd5%*^?cPQRDZ4dwyKLK^`t!2r0QDLZq?&e&ry9? z^=Z}LsQytkh6nao?l9Fgs_m*rsh*+wuh_$*DBS6RPijG#N%=#%1;PPk6|xbt~yS2vTBtopH*S{C911c z*QhqAu2XGS-Jp7u>T#+Us$Qacx$0G_H>lpMdWY)Ws!yvvr}~oWE2?j){!aDJs(9c= z+L5Jd_eTQnFD&OW~_z9|~sGhBQ zt|}k?WV)MGZ&$rj^?ua{R3BD-RP{;KXH;KQY^&uKrzA`Isr=m#QA1dax=VG-dn-RX%G<|Ea2c(v<$qs`7b~Pivd=rpm{an6CeL zHt7mA9?P+$!!jY7R2{2YrCO^xQ+2lL9MuJ?d#U!H2Yir;_N-NHQf*OfQ{AL`wCX>F zv!@@<|J4C|xU_JZW^nG{wHtme|!VAGad-CdJ=bAIFTb0Z!*l?DbfW&1T{_#)9PyM|qcFjc0kB2P~82 zajcmh0@S-UDMDCy6k# znYy^v2g_?&z3-%%i}e~3Gee+iXi_4b0c$H7;o164=LT*{q)YL@{bc1s{(p4dl z*Zdu@vpkm1I?ddG)A`LVc&UL7-AsAR6HK=j_VGGwHj|Egy>;#Q=Y@~g`>TAt>RGkb zHA!x3bB=i)W9FGtT`vCX|C zy7~ON&Cccp&W_>p3r5Gz_cq6-W}okFcFNbZTwFJ=E^G7h`D>gtu}kW_&CBZ6v_#I2 zTwC~2LW&Nshqjx#3~y8q(3hw|@V_`)M=>PD>%Z;oCPni@X; zl6l{G#QU0i=_K65B^}ls8Z*h6H^+D9X7Kv9*6oUQgy#>((2IB-B2MS~2w6ghZidTO z34i2~VqW7w)62*C2AA)*xVnPNcVrIUrPzY(0WRMSILqMjy$3N|zFjckz~#FWRe{TQ z8io~0IwJ~+WtCxaN3LN^W!_P&>K>H29hdKiIE{wO_W%?8RW9E&rZQZ3Iz7{0*elnWx^e5x|G~+!un&7^%@e5hB;qo;y z&!^<_-OJN&xP0Zb?a3YXK?CRKr`j4E?|;O$1@T|AQw*06PfR z42w2gzMGim({uR<=m>E6ayeBjm+vUH*K+x8riqrz_W&!mT)v;NYb}@W$1KHi`3^=E zX)fPl&JD}u`v$GHT)tD7&vN;Q;!1P*2pC9n`A%j&%jNt3?0pA(9M!q~%HIrmJCX@{5ZCv3md zJ!$=bv!j`e>G1OHq16sAAG^Jamv0xdPx12YW$9DAd{dc8ikGjJx!meWe;?l9C65@t zMs&=thXVc;dHEXHjci`Nb{L)FK#P9N4(IUlT@Ekv zJWqrX{ZUd-r+E1m&`O7w?<+R4!^^jw1;5DClYF!DqrKTt9bUfoX!IqX9^XLs%IKp^ z=kW4zQI+E5>(0L6@bazUwCnKlt)VRrFW*q+=kW49jx}hCmv0MmaCrG5%wemQ`){I0 zFzlbf%NJm6JG^}S^7=o-%g33);pOwv)PwT!%|`V_43a$-JOU?Y36jF&UR;BU0Z9v9 zr#A;AJk%%3#`EwAEJB-br7Ark_A}O`&C7QK4X}Cn)}m0Ic=?V*L)yH2zr~pA#LL%$ zp5yTHky+N^<+~KElj7yOpOVANcOf!77%$(UC`F2w@9*e0|LVMa_?k7v%XcCw*5Tz_ zj!O5B^W;~e=3|4=l^tHbj~UJ8<-3W6toK^cMx&)1UcNUO@_l*v&Ot6VFJBMTcV}L{ zKcJ;jynJk`6ffTmjP3C9nP{C9FCSa(zmb>kFbx0BynH=jPKuXL8Se1%DZ?FJK4rMW z%cl(g@8jj0##-yd%Qqf#Y>Jmp8IFg|Lpe61%5aC5PZ{p;@+rgrKk)K>fr+9sFW=4Z zN%8Wj5;(kksss)%pDKaF%cn}<@bYmpkrXeV4_*3yHZR|3j3kGbFM{dP;pJOG!RF;V z2hH#B^1X$L)8XYKwY$U1N5W)>myho~IJ|rhVR_yBG}5oX^Mmx@J4#G&Y-8zJdJj-o>8$1&=?5^^VAzG9f^@bYmq zIJ|u9@D49u0SfK#^6^&p-^t5IdJCJEZ#P=Z;pL0L_)ffhB=>N5`4SkT4lm#PD2>C* zmyN0j{xNU^9$)!`TT$o(^YV>iv>ZL~A>w66`=aNic=={CYloL_Fm?QI;^iaFro+p} zou0mvm+x9s?tysuoUMbfxU<&(2422nF-dji z<=cg+&f(>|gwGw_*Of`%ST3ThnMe7hSMQj?5Rd1B(E+H|6fa*L22_fd z?2h?0i3^ zpy_^c<{42gp~%ihYAa#q+lzo4<#3w7Z1FZcA_m|4@mWNDRH}II$my4(oPLP8KRcfl z{WC;2xg8zZ`NkrNuRokT9Zjm(`Bp(v%^h*r`3f*l$j(Q~JR{0gAKCeS2MO$aWYf!0 zj+>ot6MQ2E-#YSHM154Nth|Tum2+S#t>~8{R;+>ff}M|Q%$qR}k)7{v5PZ+W$@>-S zgY0}ga$#~UdOO+qSm9cf_ieKCkwg!)U}W0MQO@^g=OeKn$PkfJ#9$6)6Z$gQ`I;d3 z7Qx9IfgY^b`L;r`EC4%SeHs_6vj}2!0CJS`9a%n(ND+gt zhD8jjjLpX#jqH51BDRb}2kd+dHz#4%Av<57C(93?ycMh~vh$6Emt_pt`CR1(J0FSl zU<}#!a+GsmzC4onq3Ft`HuEOdHrV-2hTyA%lQ)!ImF#?1L9%iKJD;oQVCQ=TLCB5l zdpXKEaBd{=ix_-?En-kx>?!63c0L*qdx^~oc0PuiD=_tto$p%+zIWi{b!QEcoo{e2 z+YYevxk?RoK62{84ifL>DCaw<^2p>DG5B^|#Gpzuhrt+uA+mT?-2yC=ztvMd`FgK@{1UJ;VxoOWo#CvTe9=firDX1(O~CexMJty8+Tym zdxtT{!4$Id(J%HW1}EA1l<+eQNwV`P;bv4D+4(5A*!lQw9yE;s#GYmR+kE--v)K8r z!Bv!tvlKfYmsBZszCp~-VdvxGE5*+D3i_&xo$q+u(84?2BR98>Qhft`=<`Nh=B zQDEm&0!iw~&ZmUo6u{0$q2CS+Kw;M2GO2jbLr z<+? zorU!>d1-CyGWvw*qm|{MN_l#wndx1udw8GX{}}7umWn)5ANChcJ2#u&0a^D*tj7d{ zEQYaEOazZ|Hev=wNd!Qw)p6E@r(FI{>{DBzwZBNAkmX29=a{rr9ei(I(}M z&s!c+tbZWeL+`Z@HE6Wi1WpAYcT3noHd;~UxS~w9gKX@B3$Wo4M9WM&h={SHhC8^~ zIO-+JR0i=-<5)#v9v-c97x8yEz1qgz>v{1IPNasb4v&@quEWXL%FE>>a7`04wH9sT zOkY9p+i$;J-*XqeW-ISzw>Q03EAQ2AZ+bD;khWIyxwODb9hT7vT%Uw9UE7J~>=g|LG%#=Q&*P1mmCWhiMq4<&lcVnzWBN zE(YTqi}P-r_HigK#^X%L$(Er>_Q7mkz{$z?W!qEGt^a&v?$wS$xjp(8t~s zx_rs50kvUmEzKmB8MdUhc35?DQ}OZ@%j=5ks%sjD9a1v9q-+>I)n3-N7+f`sD8jJi zbtf}T%bFIApK_~@C9OA}{*MsHX{N53s(HPNDvmsHVKdZd>b=cSU$VC0!Z%6rsf9?Z z21++?I3ACKi_N==d~j{xmLq>#?|x=lFUZ5P%rGJ;-^>!zjDz>B!tCwq2EsLez1eHJ znKlDn3w&|k*lhTNplyTMd%Wpm#3fW!Vy5>oa}hl~Zl(=Yv~l2#19u(PE*6U&S>|*_ zLFe `k704Efoh$_hotz|Y^0WCRztl|^>d+)`b& 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 I;(w$Eb3f`%<@Eyl2g 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

^V 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

^DBn?g4rfho#zV0;I7=#2r;@N0c~(> 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 p<)C}LXmiA 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

RXdkRP6{iTns$`y8N#5@fta>CYfK_`y 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
mFjoNX(kEj{zNx!tQ_ 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%0AV?7;AXTv|h@yvp6*YzsNHiod34&d$*u}2s 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

XOrH&j`m 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%0DP+|L2rN@478APLuMnDW&c!+Msk$UvC1ncP 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

*Pyh?8U%l0pakWP?! zfiioJav5Hb8NkV*T$6r~8PDmVN|Swp%-tjhIB7l;7zLSqxe6HUWOy2TewfK}>fhWM zcr7?z9A@5Uy<6xLyUW8&EmoJ-a6FrwGmNXl%=u(BLZ@CIW)7rO)1C60Q1+%UvxHr? zt)pDmEn((IHh()!-WFya=P26Q>1zXT4>Mb^`Li^6cbK7Twq|Sc{xEYp=gB$xv66?w z%-PV9wTpg6f+{lLfiFjL0v-c3Kfu_4TS!~wdyF8f@V`5!i64_)@fFmo8i z*waz#rB}m@nx6M^)b#vDm{Ifd-j14|-wrd|RUz{}jye%|FU*W&@9*oVrS*qlW-gmB z*U53Y_eq%9hC=S=4B~?Ci!gHlO>~~K85b2_K}ed){!TrY72k!KGs)@zC&y`QW0*OE ziapR7q$aY`Vc46>unux6d8NoH%?#xzJJ_k*fGap&X@>V9twWq>I8wt>!{=1NQ6uw! zda|0PujrrjJVEPL^lDB2CZ^Ly9gQl!0LA#oc@G90IlRV^;*AUIP{*cw#&uh?BE?r; ztUm=qUqN2?aRmLZf=xYKX3Z`222G?(rq4K_G;ex}pzDGe__Q|I||F2UPS)X(q+~II}d`9u-ApnUktOo>i(Q@p)yL!`RH< zmiFHZsRxw}<4zIQ`K5KdUUFzz=31s+pffj@Wp1R97izM#Eb|%3i%QiXX)nv{!Vz_` zPVFkoJVkT7vQ*t=>MhGu(@L(=skfJ9x;aR$E>*MF-DO5iWW5sj&1jFF`d<%}+KlvF zRD>I#xU3cRH!e^Q14YL_?$;yBY=&3 z1c;oYRrowCAadBA$YFiz5+?cSV)T9S)oBy4l^7fbE6~X}NM4O*BKYJGT~lk_8~S(P zNH5~<59?X2p*8cM){LVy^N?yopcgw!-`U*Ri@7f zK|LB)ZVf79q||q(9}n$WthnBKDfDNOpk7pP6EQU7)reKZ&&3{TTh{&zxqErd$VqA`CKj%b5i z?tTcW`EB0N`aJZmq^Rn8+m~@K^Dd}mmio^k$w~j2b4kBa?<-Kamc?ONrGiI!^hX5H z`2zs-qY63VBj+&8ypcoh>Ybg>aF8fQ63LvNagh|nfO_lKr4|RdUWuMm+Q1I0-I=5E zf_RM)hj9#=)xHnhNoJ!h9rgkScm6xc?JcjU2ife*&k~_JSD_9jFG+@gt!sTx9`)M@LR$E_nOC*EOsb!-r?3VuBNiD<@wPz z&?s*N^|d`&b@HxFU&m7(z)9c7no^z`kDj`})7RB$VR~T(X(c)>GE#iAsjr78Bf#Ay zMWRX*Tigbw=0FGvO&~NcuA62U!<(8AIi9_U zO4M%z{f1em+y?ZGSCH|ZAH9cJH=Kj(F#I*+Z#YJZnNlR7&E~8+zLPMzt=Ta5Qp$K4N$c@9CWoMDieZdxg&dt3UOyanBTDaq_!JY(ZhOn; z5ix!pf@zSOoihF&5d6T*>G+#aHC^W~ISKi#{ZrPKQxG$L41zC^{vHc#24WZJX7DtdY#S9TNCqmUiadm3b$z6?;Iu?T|j%+{5Zc9M%@b!H8?h$4xf()EzR}+{@g- zn1p%SI1D*fu?0-1mvNn-TXo;!4pnY0EaZBkp;`32pd8 zU?VgzHMaZWO$Z!MiFiJ8ZpyT&=BY4h5EJI1A=CKA42W4=Q5sWj;v(rp9;W##{0GJALY06FGr!-st{@dH9`@n z$zI_UY678a!Yhgxchf6TAOEbiW$yI85P^TzzZ`e^D;Vnhvrc#2={?B8zw#}dX!?(^ zbpDm^?DU)d4Ya{O>jN-&$-_s9@MrxY&SDJh-e z4l$Ua1oy}To!T_=PXGz1nn z81=A`!gw<&r}{~kt4Gy|91Te}@P|T5#|~8;f(8vsX5%g$n-4;5TZ}TNSI0dww7SCV z>u#I*?eEz>0 zjF7R)YA2s^JoY@xoV7iK-x>+HFU}gbiSxiOjDnr&UKv`QQ=F%YdQ|tp1BzyZoIc86 zZ*`Q##pqq~KQPCfxCh}*b+`|K>jlU7(%j=R5S#pTi9HJ?_Dz=9^Z!_4uR@8r$r5}0 zA4}|AD6wC%#NPQ5rj_`qHN*js)-uLkMqHqd$6ZF`BE~Ydyo}hbj>lg{T&0dDTt?)q zZW&u$Mx+KTV`9Fh6sG0)A7{z`8})#V`u!4b)7U3&0uJLA;4p3g4rBRo7>kd?m}?2v z?eV|=+YnE3j|{>hU6bRBKgOzNd9p+#J|{(V%sF&m{-grE}JaJ0p%X+#;x3?`Ay{M^4ZH(H1 zt*A$G|Hsj46V=hk)V{2_MQ0RZGq%2cVp{197ABW{d^CO9VoH|AF9)b+}BwjAv3;Rq%+67Tk(_tViL?3 zHKXQzvrF( z|AV~$@8z}ZKBm&czp01HR46+AwbET^fA5Rxj$58n`A+Mj^5LmCtG3e^ z3(Tzz3mZx|VlUbwTCfo^VrkNP5Bqq7T<(tCJ74Y5jPVrjwXQazZj^nTQM9oUTcIz@ zZ)vYL4PMa1ZGDwI*l!veqIbitrS36mS6>orfNUk4-y0p#+;nl=_;~Ba#ueRdy^6h( z8@t@LEy3RF@t(W$d$8H@l9oobr*+fvUOuVc)q-7!+dCIECb#Wng~A#8H+P_7m6x%F z#uYZI7V-9GG460ZZo-7IlN*<8skWlTm~8A?wxGRDwGkT?FVee8FY8#=gI$5S9k0=d z{f@EgG4?)|U5^_(l#EEjHlWytyM3$i^Oe|YE8rdGDgg^l4g2=CHQ{NdHrYCpdv`CH z--B({S-iVNZ5R*5uqPHvS@sb(+~$tKO?ty^)edyOkjK<$0A!XSgTNw!$UF_Xf+n}w~AW4j`6t#ZoRgl)3B z^ZayLyiaPPL>F#a>PE0O)d7o}dSr`GTB__tYKS&fhZJhUZSQ;?ZB!5MkRq9l?}0tF zQ}DbI_Ox{@YR4wZ|7}-P-e%|5RaIs2ChOd390r3;=~=-q7#HkgMN_NMva$;X)Yi-G z#6=Rlu{*^m=#SliJxI|FjSJh_)j%i=)p!(ib~LuE1S_@w^h%BaaBSfY^ym{^2-~tR zZ&6mP>{adeuJ%5skf>wAxUs0CAhGV7`S{K(;}W~AVxv}UR^N)bti46;^iCb>y}4z? zFImtH5yb4N(l5wat~YhOYD*j2FY=dw*=kx#Ky5r zE#1A1Z9P59Fb+8odJpeXeNt#z+t>+ud-x@tsv9_^i{;7&y*I;7JKB0$;RvNpwOx6!bJ@gQp!q$$IEJ{eVP-Itih7LEt({9+M#EjVw~XGdyLnk#N9Sl5MDvRI-7TZL z+L}5?cXy2&Gk(nI-p~j)M z`{x!=*fg8j#mz(2%GxlbI(u4VlWsK+Yh@?qbxfAD8>4wCJ!(9$;QDPmj))C7xLMHKocT`F_Dg6!jVUUU!>j%Au#mU1x{-Dta4arP*>; zk2{CQq7k~V&LwdQVtaZxfY6g*$9nR$L%YZtVk3rYZq3h~ zo0gR3H}10g4s#m!nz_Tid+j}I?##x03=E%+*ak4Msihw0&qh3U*wJakwgfe(;ScA^ zeuIU!bhEQy+KpTVP>%&amY)R}{qvc`XxzSS5f#gRv8jgmCR#`c-e_P0fra`Etg&YiPevO%xTf!HGTM~uZez{# z2aSv7FIh5Qbt{h4GJR9^s?!mX5_J}q8EOU4oFCQ;F+;bv^?;|6y^UuWG#OogJQfPw zqR$-j%L7UzYm6q$(n)KIeSip2@K*XXLwn}fnKj~sm`y0?xoAOFXo&7r?f9DD+gsx5 zQTXRl8Eu_QI&lfEXplFxb+z*JbD5lwvrbtz=ACn46c*MrB3|B2CZ?grRvC53!y#0V zmyFb`5Km4$%euNcyE*U4as)--^A8`p<(LU-mQn+gCnt$6#hHpa^;2`9n(?u+YHDf2 zGBws(V&$vc9N5NVv!{i%wJz&WXCbY)#@E<^H33dMczUnS?&T~;bw4dkogdJ_@FGCt zlIHn(xL_*9`3uhUmT>NaeYUK?(okIxz(Rq~JA)yw76`vaTsP>IsX?n$`C(CyT9bpv z%3cGy)bo>GQb2f^oLVTE^MK4b*T@Qu%t8nx%Z{HDgIOq}sT zLtVM)X~fdfz=KT9@R_JD;VzOZk4E|@W!dPi#%9d69nCFjX;Cl{z0{UQ6}bdehf?7R zs!+2?^lR)1rL6Ke&7HU;gRxJ=AI?&pv0G@yv@JRHSvpQIA$dU%JqfDrhwFoF;F?zB zmg6u1w6v(cXV(0+w!E=pLY^>oT+CYQf=iQFy1Z5wc6H+N2t>n)|AI}LQJ6V;7I(BU zagnx>B@22xSKyRG*?~IOQ%Af`M+4Koy{l7Azq%>i@G6G#cm+RPG=h6tm-RMxuIS(( zSRSiD4S*uAft7vl*sUP2_Rp#_3ayhd729HSPp4cBh#3|Q^mt4a)_kxG+ST|;2AYPm z>3A|N(s5$0fCkXD%0nUx&xV`37vwt>a^$TV){(zD z_jBPf@hy#8nss%A|{Ki<_g?An4RYgYz?zZk$|+f)xAif^#`$MEUqs zBwuS`3CHt0tRS!;gbi#tjw8DbP2%NyxkOA~l(@_h`w)E@H-8rctuWMyh<2A4!C=M9 z_v*?iO1AGj1fN6DLlXJo(_<$R&6+XeyeC6ONHf z#&oqW>p@&^>#`*afN-Gmdq?6f_0*oug}sQF-`&(Yb$<7fQ!qfYP_(#5Z&d?OrL}&W<*IzSVm$1#&&T; zOLwQy+QaKNyjVbIz#CGyEhP>CTnZCN!n}%Cd$?Pmmwhyn#OWEle&MD|UR1796N2(0 zB;UJ0y0`{eJjg7qJYZoG#$dzlad|t|rIOA-MzUt8*VLjcj`Mh~#>#k6XKx#pvdxA* z)rqZfVTZay0>*{gQgF-4@RcpK^)zGV=Ghz8G(D}#RqN$g-W94lKE*9c_&U*qoVnzE zqhiieHL8tQczN1m=z9-1+2@r=8OI{3vC|GaY@Hi6cEZ+^N79-{E*(E|3{Dt2dY6se z{QrxU<7sF-74Q>&cvfvy8J?)D=VJo$W zK!Cd$3)&1bhr`rXBX>32pk!Cy?CVsTRc6}GnAK*DS*IR6K#szX&w<20$N0xj@iEcn zQyYn&Ef3SgQ8pjbNc?O(s)1(+6F)~iT62Fs29I(iem0){;-fc(pKI`OVE*{1q>1$8 z&sMwT6=H1e_K^75MxO*l`Ki&u&sMw2CF!U@;K(-mZbI_`p~BBL_~=~WXJa?A%|TL2 z?4Q19|I9)%zT<8f^ERQEZbF~F34OyR^b?!V?`=YJzuNf6`i5;n&)$S?--KSX34PHf z^zSyI@7sjlunGOw zzvR$29$0}mW>yf3O&;)j|AB{^T>fJ%g+*;*=}Mszx0^MYcpyX~a5<$gPohBL9<9z% zd}fYII%CK1f-40kF^;uxox5oq88J?ct3Lg;kLbgPmSI46$JZD`#Dmvc5#d;NAr8Rv z^Tb-bPeFu(xtdsK7{4QC4dWJK&M+PWT6lK;IpQF_QJysz8#IyLOz&ZdN9>JHNH^eB z79t$gcf_FxVA~cPGPg;y;27w=EVv;2H~2wa{8xyV9TY-Tyh@Dc!ig|`yq>D!@ivme z?FDBE?k0G!V6$MC;0nQ`1y2+_P4FziO9XEdd{FQ`!G8#HGN9b0Y!9$nut9LFAm1lq z`hJ4Vf=dOtH4)Qq7Nid$y2v`;;+%e?hg^H0W_c^9#sK=bK4H zwZ}B@aG|+>6ywhoyh8A1!Pf-e7yMGN1k)SKO%j|b*eJ-?hnRl2;I9PF5xiXRMZv!c z{wU}0Ru!v!Y`?j*RcV3Xid!D9s12wo(3gWz3)j|;va_*cQt1^*?uBYXzs+DCAW;Dv&B z3!1*pS0*?>aD?Dg!C8U_2rd%r6+B+>Ou?H3?-e`*%OJ{gq~J+{{E8*xuM~VpaD(7K z1r5Ay!F=j9dSI>42MKlvUM;vm@KwS01iuk<-~h?5uV7Aal;9+-Yj^Z;PZlS3w|cZt@T)cC6?X9!GdE1 zrwh&%Y!>VmJWlX@!D|I?7kpIkIl(stKNkE}upG;J);~~ixZrHT1%h3IM+>eIyhiX3 zf{zG3C-|Y@H-ZjMD_CDY!JObo!L0>%5Zc9OX^v0 zYr&lb=L)t6t`a;~@Jhj31RoOIAo!Z#`+{Eza;>K7738M7q^Ak)D%dQzO7IlH^98xP z9?Lx___E-8g52MX=_b~M#Ejq=!D)iK2=X;+=2Nd!0+$JWyxy9hTz45HwfM-_^9A>f^Q1`UC_otll4S` z0|mDboG3U$a8JQT!4-lh3Z5hQ2f?QVUlaU5@LNF#YjM_JA-K8VM8TPY`wA`*JW}vv z!3zYh75szXQ-c2#xEqI&Y!-CHUK7?}_^4%c#sbC7{HjM8lI8tz? z;K72+1l$Y2ZCkwI$y2e zaKWj9y9*vHxLELT!CwphM(`@ZTLlkm(EQI8yif3tg0BjGEcm0KH$<1K65LGiG{H*+ zZxXy$aJ}G^p}PDW!Fhr$f-3}16g)@p1HtbFONNOYg1v&*3BDz`Q83(G=dTtVE7&Y} zvEV&|e-wOK@Lj>L1??>~zY4**f~|tf1y>8EhU@&p1&X4r=LAOzZY{Wz;QoS(1eXckE4V@M&w?KcwvE#K&k$TE__E-; zf?o)hjMn+91UC~LD>z;75Wyn_uM}J__>$m8!3AS9-!8$U1y2*aQ1E)eI|UyT95Pmy zA1}DQ;2wg92(}9zA$YamTERaFzAgB<;J*b+$LV@%1&0f6EjUYXp5P+E<$@;)o-25j z;3I<134SK{FTrq2UGD(FEd(bE?ku>U;6lM=f~y735xi3HR>6k_pB4Oz;HQEc1%vTg zjvB$u1@Q)(vg@4$=L)t6_6nXLc(&jbg0~1hB>0Trn}VMR{wUaIg08PxaH8Ojf`1TP zC-|!1*MiPgx_m#u!GdE2w-wx7@DRZzf~y2i6}(XJZowx6Ul#nE;8%k7L|uPh!4ZO6 z3+^m9SFlB}TX41D*@Bk~-Yj^(;69UdJqrZ81Wy&bK=3-jI|ZK>d|mJ(L1(haEtnIW zA~;8Ip5S4ED+PZgc&=b-YvCuD73>sTC3v#nd4hisd{XdL!S@Bf6129_{3`@E6C5Kr zRdBZ8eu9S(Q}}8Ru@u)$1do;UQ-wZ5@LY+%Oz5iwZxg&z@IGP%u5%JSd;>}7cP0G; z!B2?gcu9Q<5OVlL&^1KJQztl7aJb-jBJxirBL5tT-(7H?;6Z||MC4yWME;{B{y4!? z1Wy8t1R|{S*cpDM??jnNU6B7TF;GZS^Ex|7({#!wJsxBW0W{GI;W`d(6etW_F ziO^%S&?^Ox6Ff!mLBZz*-xvHruxy&HcRUgOvzy>Sg3AS03tlRCli&-2e-->u(3`IL z^%tBfxToO0f`#ONBzTM9J%SGit`mGx@CCtF z1YJYxr;i|1r24r^uvRc92zQ~<(X9%15Zp;{H^IFG4-@PVTqbz9;IV?M1uqu7T<|)< z8wGC@yi@RH!9NSWBly1HXM+C}{6X;Fg1o0nyY3^{SFpceo#0?Wb^inTw-=iCTv>iM z!MTD52rdv@DA*y`Ey!)ESpH~1exi-^rGnQ8-XM63;O&Cy{tEIxB=kDLCk6i`sP4NU z-xorEC8+MZAfC7TS+6G;3RVhc1apGwz6|n@5E?r#sPgK*4C40?THT)keTdMlg6)FK z1&$*uu?E5h|@)t52sNI zaay4e%VvdGPAS}UylyM;GX!@Q+(mE?!F>eh2_7VPs9>{Tt6;lemte2pO2JivCkdV= zc&6aFg69iv>Ibft`0E9461+w5cEN`Q9}`?JxIyq$!8ZiYl5tQ;y0893jOv$BJ%=yh z6O*I(G_k_g_(;79GfKVrIcfpk%^rp4+eR^R6mNPLo@pq4P+?SeCyR_qKG>j2Hn%KT z#)p&_b{eDf@%#k~@LZhct7G^YO(HX%IPKuWjESh9$F$=yu9zc4H%2veE?L4CS`(%4 zv=$z=9fim8M$PZ-?Z)HEc<2JE_+S49ASYCqe|l&9CM7Y<)Nc?%=EE>hzfJQojXzvQ zz&Drvd%iKqvuVA2E+_suaxenu<8ND`XTU&dLuvdm5C2#n=PMSE<(&Znmqzlxm>=h} zL^Z}?Al}AY8vo+7g@{Pj`w8m3JEQ9@L0VkzavaBH$Yb_)_>N_)q(s_DiDTw_V+Ou6 z`3w10BQ06))hFxEU$VWN?i+^#xw-FJ`z_i-Mcy@pX@?*XH z(a$91y9x49F3Lxr6U+B0j?tZ60QK7k{D#K_Fs_Rj+bENdMZU`s0n@@Koi#u5XPpW2 zFmfGOYbOfE{J7pr=DQ#A{R?sNFU~i5?8I@CbA{j7ttL#IJYnos#oiyoyh0pD+y13050l+~F7}-cpLE?y|;D z-~RijzH|D`&KXzj)pvHkSy%044rW}%?7nk0H{RK!V$L|jI>*?|JSVqh&M?l|MwKX? zQ#$+IOwFOh9CEQl>Xt7acz8z}4W5BHm(M)JKL_U`{GCRl#_w*y>o@!gD}LRZj>)?j zA@@h0;Ne!1&Z$DnN#U7n!{##B`BR#f;5a4s;6%ysQXhf0<2i?7dP$A#kK;p3ox^mu z#CpInz0Uydd=|1&=fX4`tHeZA4!ELfa4Ls5j#sj@AA0LA)!;L#>_}v{e8(QhQrCsM^0)*gQrGumy#B`XpK+kR18ZZ?!PJ#L7s4U->oihVmozX}crt?2 z4XNt^*mLkRSXJtGHj9-yHg6NT{j1qw_63lsBrIhi`*`GXHyeQ6kc_e%nwxRQd#8X1 zcSn2Ot@`oUD949H+=;3dC)^vk+=&58d*K&lB-975!_W#y3}8xB-ni0mCk1DscqP6@ zJqGCWk*mw`r&@vfF2-@aJH?}Uhj)W;r}?@izpn)`T@g;0g+kqJ72$C9f1EX_SY4%_;A61rdUx`-tUT+rC${V{3_rAW$ag;Z98}9wOQ_CAy z814h=*b5gxeD^_r3FQs{K(QWDL|J*`f`x|raK)>TA_{M0Qyx)eG9jNzao6{uCThc* zQPO>K;M3@xT=)@*4FkUgQ6JvTo_Mx&07lKQ@NG8#Ie!9(5#@ND({NuU_aNkf2W`x~T%3G?;F5xyb%eVWS z2|@M<51?7U+jkL^u}{cn*4z)mdhnSSjwS1l$~deJ3a3J8?#IeXn)UbGS)xh>Y-H7a zXirrG@RFvo4NJf^1~C6`5(lEX;v1J~}hTfudZ*GW&Mi0xJ-DK9;M zmA6}Uq{8&=RBealk$;qalmo8Q@~(rvD${MK!tK^P$E5e;u2a)YnNFLO z?qRtVR-dPlHYNQqa~@%-0ljVda*BMU&N(C9hvio3w4Kw>b4(v)Rlb07yQHz7li?n# zbMBGefx0}-^4Yw7(h;S;+A297Ip<|)_U`poKU(_EW@ZhmzrpHDOWwuIl(6LQt?)hM zeZ$JMvXa}Zs1*%<+sfR4mb$lFeZD~ICl+-22r7VoT>;wVF?P9w$jZ@h7mh?vD6&EK z#CnyJ8?jejj2PNkA}6EbKKmE*uoTU&kO%ef3-tbcq|mO^$g?zkU`)fW-a)rnZ`QaN z9@QVCEulLMyGbHPS~<=w%nB0Neu3>AZYmRS(r=I&VJZ{wP#0T|4_70sE{8poxid`f zeKO&O8tzQ9F9{>fXCvJmHRYy1V^8j6_U%PdX!wM0kWECbdCoo2DhZ&s^bo|lzqT@y zki$rSNP|1c>dUUf{x$5@ldXsuz4Svghf}OHy>or~BuaUzRZjKnoZg+?dYUzYv&$ao z0USSTteW40_q_B9OnL6><{%elJT)#*`G^lvnEQ+f{0THNzAb$j}G&IP~K)cxrzSi||6 zdMsVdvbmcW3uTOf zM(H~_#A}tu+S|cMe~<36O}&%1ljgHQcB$#VhkRc80!UyFG<_HB!W`e8wMSr+ zVNg-phK1Wx%+e{KD%0CTJbNe8-wzZv8GZr9s~DjD{HlE9C|9ZvDMOvwsZV7~?%9_@ z@j;REF>}=7xJm_d-(c~UVidBzDL7=sMd`y3QAYt(&3acrW<=5L5u0s-g6yNrT8g6F z#Sw^AnxAfDhf~RK=)~-+)ZsRk%9;HaEZDwCh;j@?+qDZk9*lV$V`MS^8TLY*m^~KW z(|%nOgHJN;y&ZozqH=r-(%#pJZbm^PJrK)Qd#^nAnD;ezP1k89+dMf*3o`a9g z<62^-g3|Brq`6l`7nU&WbEc>UWN>o>G}9DaZurzSzpt<8l##lY{dJ&YzlwTYCZza0 zp8bjw9RVV8C~w_`2=r#ds#gkK6Rh^P_n$&)cnoCpXQas<8*TTr8U9SQFOUPG6GZi4 zs9=U+_nJc3&p}5-}?*hGX3*FMMhmCph^XWMnn$x zppBd_ShYT6m33z_uL@{sy8RDfrq zfH>y;S6r4N%M$QeaS|75?x>?Mtf}aUq zuL_Jtn3@YQgCETLMIhXL5ma9bE3OQFG`;&lX~7LEsqvI0yEG|{2b%JfcL*|;{|<_Y z;Nz^)3V2uu{wG9MsURu%D~QFmvj|;%$STzqN&$*hsX*nYJr}9|O;z$kgeg7=989%_ zZcbmGMo{e{CKpVzyz4>f7VJ>ef}M+6uv<|J4z&DdP%KP;jzJ&vSpN5*qVxfn{(@6A zRhh$!oknnp zcW4h!YK?rQ9m#4WC`Yl4k$MCrf(@2E9dY3JqUEo{k>>cam8JO!$5)Fuz7}&#^@qm{ zUbpPCG>7*r--83t9NxETX$QjL!y*nJ_OCeh3!9_ zuk|WBsmp8Zq%NJp0|^_d$EYaOL-1U;lYDf zYu!zS`%pNXQN-cQJcr+~XU}$QALY>UiyZ&hJcmp4R*S;n zvLX(b=Q-?5hj681&(R!ibo{k>4!_sCGYW_QDdKQTp2M@4ri0rYdkxBEPp3KD7u~?I5aSrqtoRPBM0E_G~Y}L6b zt9%x}YMg{0HCO>dK%(YI=b6#BFywLR@%yVvalYQ0hI!ggCOPX%cX zEQ$N(TaM*}OKkE(JKIXErFqVW6*#w)_}At+FDgm)&EgVge8 zoR2KAp2~AxRp7j$#OJ*SE%V_e$-X(N#Q8&k^U-hEA%MZ@dj|F)pZ{0WjJ-{I*;>e==pS=$9n@f5Otj=cs1;KBXt1B+G@`(M@6jj z6wm)SU+1Zw>Ns8JXJ8xF)pcIx)zDgu)OomS6I|}u-=a>Ok_NYU{*|ax8|ZDiKV^Em-3yrHWYl8u4o?lL z)pFW-8&Z_pY&22_(qixO?8S&9&xbt!n>^1)bbkrYM~iqqmgkwekgj4Kc92BD>~#o& zr#x+&YiKCXdCE4)J@oy3;61d&Wq#5PM1E4@3O|-OwGS<-pKlLDLGl>j`{(C*4D^!& zK3l{iSKz^wb}-nt=c8cuYn(j=LwzmbL7cls_)5ZhaBuSce;||Y$7U^I10QM#TKsA% zuA!;d2p0Mow!=vA-PB-_Z$AWz#h3X0Sa8(EJG5}M|3>cxoqjbHt9!o7&#(6Rxb|p)sSC0(Ms)0OZ<}`9j8kD8e!eN#U=7*E1Js) zRIJa`rZFF{IU4q-=&A5m*{2ZWvUu5Vp`|GNwO0zGQ&*hA)ASi;$n*B_3ZJ)boba!h z(!-nm-9UIDuQ!GF`fV&?)N#Y`DitWXlV>~J{xx#ep`OTL1$8X1^X7#`(qtx)TY?Rx zN76os4NeLl^KZaGNRJjinI>DKe2x)rkV_hKjqqu8I3v6e$`7AW*F9Dn_HM`+K4*8L zz-ITrwS_O$Qkv{c48d@&sffTU-Om4~VvnG7W*J*xl=I7CrL&bTaL?~1Xuouh%`K{3 z=Cwz`pO&5;mE(qaK=N~Ti~ozAXD?07^d!>3S%8j&)a`6*l>f0funb6kkh z77E45#~{|95B4|XK>0pgVk7-vOb14GF#58r-l}D5vTsw-2iuAWqVg;KzFBmBhf#jD z-1(b?VNiapwuAB(qx^am?}ayFM3nzd#fOH?hZf6kv|mLvE;$4v%J1~=z(F{jDR--F z#f|bVqx@b~-U$yU-}_a0uY9Rd{-BBv!*OeJK>n^9t& zN~jHUu-EeSDj`?ihJ+_oLVb8RX7=(8Dq)ymuSTzzKW%RYp3Z&awo(^&aMbm<}MuQ+6oor86YEN2*T(e{x!%L2Jk=8m+EG$0o6sgSC4uerMl=_ z)n44f{U;VI(RcQ8lyF(BCX6i8{|HBE#lSH&hulgda!t)5{W=&$p1wNh8L28PIU?V* z?<5lzt*MR5Ouuyyn9P6~McAy8SHz4oT})JORy5FSpI5eToi(?k7Rc9>dUGh90Govh<<|*VZ97(y4P%gCyUO2kUw0}ec+(BTF z{RUPNU2j&8B5@SebE^2V}V4)^bU$PxHS$)5O)RD6hq0)SIGpIxb zyuPkoJ-1v}UJn`B$jJEyjZY1uaOIX$VyhEzEPsd)X=#mnV_?Rxl`uDn7K< zAomb_Z^@|mxQgCoNK2DZ@ku4E+6XEu-t%uohHwSW-YVXY<|7i9{P9uzicg((Bw+eF z7GhR>W|NQ0yn$Eowf{Z~@onCUZdPwjyPgD~XKMH1srf5wpJ~6P8W=8dFw9mzmuSggXU6^(1hq ztypS$4}nq_i7S@H*XPf`(5d*9>A#I6C!NN$U4fep-+=PcqcC(Tt}y)ySYDX^I0SVQ zZhL`>()?IN#XV-}L{OFKzo8o|o;Nd1pm5vkSro5Q0jFjt`Xxl*J~%>GA5xM!)}phi zAs#vJGnTdK*u3eZ>_#TBYL$eDG>$9TGD;9f4rAn=2>4gEAA^GtAo~N*PvpD~E|J4h zkuwzu*-|R&?`ADUiyVrfX0tU&8_I0>SYG5zL}K;}P!)By%BgNT-GV%72Fw~YUd1}c ze+3a~)!pkI-QVe1HVQrINQb9*U#j9M$7WHN+3m&PYJFb+10y~{P{vK=L+cA~><}RD z0a;(E(nk6S5{Bu`MT(;?(p&w_ekX$R^z#5Saag4SIwi=xCn6%}Yx16>4#~8VuKXBg zRRI!>Dz;QFC^%1`jLv=#a;4G^s%J8zaz3r1!_8yy1qqhA4z??%p_Q6_Shs*p9L z4n$GwJahB!K)CNCsGdf5X#LjoHX9a8aFN-cS{Dg0{uUq!63hiuset!3{&x}_gffxy zrILU(;7rSU*t9Ofp*qvD9x-!lPXj*kW>{;@8eVc}!1vq?>ru0YCuGLpNtSh==?9xb zBAzW+512VN%*ge$EH$i$Omz#_%i;TP)?=pA${L69u95Y)*`GH~&o?u>Ua2D z!vC!x{NHd{!ur6pDP(ph5}%kusQ=WLkktCl9QGAb+;He{Xu(E#kiaSCRDv zmcKia(Dyq4s#L&xNQu5*0tG7)-8>7KBIk3q!6D038P#56ZN3PEyDx(3a*I_Cu)MQD zX@k#NNpl-%`D>AcD(?hTso+0Uc|S7YCZ`I?a)4t^v#jrN)PN788rF2HoMWK@-$S*w zwFXhb20l$;ZD$Q;SzdLrW?EKuc-*HuS_4_1?$e#DG_ObfKcu|}cpTN$K0b42cD3uB zl~%Ik9m%q^HnJ^aTg4qPU~B^}RD%n3ktNxZElWbhHekTiP(vpa6KW`5fDZ@(0)$=+ zI04cy0TPNsO9&*?#E|^n_uezRvxemVJ}ZZPs@_&JRs2Mh zGB!9{xtm$t*x+0hvcY-EW&5f6l?bLfUnQual&x)Ufl57(O67JvvKA_BfOwiTa?TLw zX@BKVirSN~e5*xjH1$~fC+wuuQZjBJR3XjS9yL$T;hI8;6i$Cy%WD)tsAqs|T$ z_8)^P?!hBKoqVZag+Aze2ZgsLpu;Hgu|ENyluK@rTj?uKQxoct5iP@^at=3q>U0%5 z5R_@{tb)P2OvR5!7Fz2DROrKZw>E%$7>PcT8^-NNO5Ke!Gj2DB#_bkWN8!x4-Ks{j zu2nTp-KgRv6N3S{O}QJHZU*GX!GLhjq;6L!7EEP0@9$74UP(5k7t)v9smdte%yc6s z{r{>m>SdN$l50^%mfOgM*iWjvl|u<@e@V^Ur|PM!T0Rt}9#Z4jmq-uxDC${NzYJBQ z``}P{JNTv4W)(XPl+oFif)VsY*L~`+{dNBSrM=m5#%fYoDYus&PhB zceOil@ON^?uvb+})Xq+P|3NsCRjwmzgu%=z=sE2WCG;*0UVj_Z)n4qxal*vtS)nWQn7Tl7}Q~A+`RN! zu3CpVeAx)L{rBMlLA4k~m#3d2wcHHJuyiq9Wvijm>1qx_o1y$n=lT{)bsC=4pq7&= z)-D1RwA^W0sLS-QEj}x&Ne;THGMm|Twth~2$Eo_s~oonhB2#NFH|=; zF3n`U@*lu*t$u8H-sRRKl7*!naMHYudavt$PR;zxXnSVF&rrb+8gf>|KZKG$YFe2a z@ta}8>M=v^6Y<}p4}086aMTCrm@PM*Qo^YO_<+j@;WK{@v`_FU=geE$Tl& z`Cl~Tb5Z{;59CWuHLd)^sDF79hS`7OMU6MH2ZBuKA+`LUpa~EV4$BA`IBh+ z|1e~4tiHFU%~Jn#QX7~X^VgHrc4Ld54DoTXMRGWe@v|ZR#jLyC8AI}`A^ubF;Oc8* z9$ydfhjAW$?QlWF^|L>Vx!*YP>ma0?@b9L~F;}~cSi*muLsnwQc)~xE%R_}Bha~(V z)Z}nC&1V8r3I9DxHOlpQ8GD82AIpZuxg%}{=S`kJgXGTU!tOfHp9+_$#^c%K3|{~1 z`5%(=1e1HK=W`WPd%7jJqwejV|0o-ptJmi@J^vC~ z`=PGB5ZLDVCv)@{yLxN=zURNsE-Y~~-0uCw^G8s~rS3>>_&)Lc=V_wL+?}|o_{{UK zqX8f0)^S_$mFK@rR)@P8E@NMN{##V+5$;I6kR|I8jLK3+y5+o6(=z?hQ2JI(^d_QD!2i~^pv{| z2Apzvk0Y{$V|*= zL7wIB%CS5qsm&sl^v7@j+LNR2-vwLLq|b*7)tcn63A>_b(y!ytb|e={u(r=&#Il+)`CjFPlYGZQrJ7{!U(m#UaDW;+Klm4!}z&|(X{u2%TCFu`xJT6S8 zW}~50vHyDx?L|qwh%YPlPh&TKkQ}xMxknb)Gsc6uB3Z-xCC3!|H!=50Q@E|z*Dv6_ z%8(t!{w&ITby81~u44a(oI;ySZf~*w0?qM;r2ds@pxEC|<=tpX>J#j_&6W`n~#heHv$ zmi+6y38#UG9*aZetC*!JHQI|k56ax-7-#BQ>F21y1zv1BvfT7^ih7EdteU~q(e#GhH1mkjjB7OWsOeoS)4v+4kykw>gASx0 z@zI^fjY3oDv*;wA@Jf@&D^HK4sXXbG?+VJdBEO^|J?%O3*>IiutruSalQIpzQqb_L z1r7f`-0*AOaNg*ZhF=dF&R~wIHw;yt)~@;wUd^LW8}=6T0)Oo}Cvd%_&lImw-0;(SX`j6?l2_^D51>+VUz8F9hR#jf6V)4{&&?tWhDsy78>*TLCWo}G+05|=cN>GuQo{us8 z`%YQZNmL-H30y8Z0g!n6q zRTyIDjTl0E1O&x@72s=cTDZGqjc;v5;v|kDvh`;I{f1qm-3Ih+O~Q8qy@y>ho|9`8 zzHRu9$4s$n^+eeO@^XA9-T_Z+kMxfK=Lp)itcE|~6q>ViyY@IWY^G&3eu~5`NZgFC zCjN$#k4SiXz*MMAd>j9bVgX?_90RHjW$X+OO==Hv>PBJ%%I=JB)A1mzhP!Z_%_0=u zo~dp_xu#c;*!Tht2czJDWX|^(t;9(?zRgu=mUSE+uzX+>4hi22pyET8rZ$YMnJ%orpbN2H@IF)|4fvvH?}3 z5i8D>gQKA*0>+qQKGmU<-iV(~DE~BA0EmgpU|iF*GuarO!!3n1^Wql(P^G%u z8Ih?hH=X~6f}Hu>rdd;WXSpRP$HAV)P}-mx4MXg8mqzpiFqM`@YI&2`n)){V%R8>^ zQ1_boJMLu7Twfn-Gtbga*H;JI+>sniYwB**7^AhQbfB(;mOxF=L}#1jtaI}%fiNxM z|MajQnK2RV@vELFj?TCnW6ZDm#*NN+5Yvla^&WB_gaz}fs-jWLF11G&4^245!;2TE zOYIbUU56*d_eeOX>XLo2MYa7^VD_Si}zPDMluKP*=jouZg&sjBsi()u)T=|& zp%SCRY;e~^NEz6%dO*-2JmeT^4GH5$qP3kH>^&=kkr`WAYL`W4`9GMgMIIjs4TVbI zKN}V_0ckn2k+g|n5qamnVT9d0bdmkQ?8M^qvczGDrCR5W5vzHqRB7TlTvx6j8%EK{ zQmA3l*{9kt-ezr3lg~L7L9hIaW`pmPAOn-B0d`}wG`2FM`A-vZwK_4)MN%PWG+5ML zcX3dSQ!@9#Rsv4`Ai^?zdMM#6d|m5P`=D!avct#JI5=Npak$38|FOoRe2pdH8jJp8 z4SE!jYH7H}A-Ng~1?Z)jYg_+8^#4;K{A3CqHTb&L5XUKKfj|Q;-JLAipLh#{27JMm0@ZtFZ_#TAsq99Q)+-@6$a;%M5PnEsBIBDV4COF49S++!P zM}X5-t8uWuud%ChdE?5~Rvq)O8xd$HGICp^j*r-gLS2Jx?WUj*jfhFjI{nA>TVRHG zF!|R>A#z>&q}B%Pkg!xE(5BAn?`psgCiw&g%rhwn*o!bxIES)z%;|odLz9Sm*garQ z8O+t3p)lTGVhRVmJMc>(QbNoTd%G|}hl4Fl!h5LN3R4irsW1WI>vkxDr#%XbwC~U| z1Am$lo!#B-eK>``vm&^W4e>A>wRS`et&G@FXT3c$qUJ^$@g^19c`%Ojibz@1c5&it zUfY1=GUtJKCZeJvbLr2n&FJ)>#WNWej5^P*wfE2*Uh+VfM}`Q8d;7^@h_l5DO5WRV z-=j-jHH2-s4w}8@B%D@8%A@uI!|thdwl4D&%alj(jEI)!(Lr)6bsirg%|1GqK_413 z%7<0qWnu*(DRBeb#CU~588-_tvaAmL=dO-k+tSj8SBR}bxJ$;?%Ew8~B97wm?TGJ* zR1T;K+Z+TbWf-%879DyN*2JjU3=OHHiDo4{DXM0(i2gg6i{jkM__Gj((JFPwON3EH z4B$SDsvSU*R*GK zsMglC1AJDsx4j+VaC=r}!yzZxAmfRFGs2Q~qhVc^srk+^;;f0kD&if&Y7E>uY3kJG zU9xK?H#0%UdqXJmPTfbu-;@B9A5c2BbkV*fG#E(RQSEF%(FeqbCJUj&J_+Sm8O01!MJ<|OTyc*ATY z6!;EmL=ZcuF}tF(OV5-1R12)Qr#sue9;|fi)Ah7raBOE_Wa!jXLbTwu?b-^pz3DK- zIwUVuhBl^7YDOC*!n&2vzcBpffR_$DE%D%W0Agy0k|UO|nXw3N4iUs`b)0&>zKRm% zC&IKzJ0?s)MCCQTgMIDUUi>36W_>`~)_5cxwq3`}ZEwq9{By%z5RP4JjiHF!V5{Aoh{>*< zHrv$Ua(8eLd0pw3SsH}}LWZ1ywyG8#YuQ4GX3Z1*LhS9pp@s|#qk?W~y{>NUZ#FTe zbJ3->@O15=So2yxAypeG^V&ACs@L|dI1ck#y8;%LX@VuK&|B^>UKUi?-`n2WxuO$V zfv;`pYB#Ur1dqJy%*Wv#>}Bv^+CSf>i9-3lb;A5xdg(P<7?TruEW?uxFKmHlQPJp(W2dVvx^Uh%2V8?cHo+;NktOY%*JKK5rq?dy1I?N0Xc9sF%ExnHjY8Nc{;@A3m zxuRjOltoN?xLqrY?IO2iXwhtmG3zkRF*)^0AttWpRIs12FetgD1QBt=>#FgaxjpxH z^+P0)Ejo4u=nO7cc96QjgX^t~u{UEiCe*xHsrw<0mF=C{54YOAGL!R?T&_FeLK%%1 zYh3?6^Y`1E*wzXA?nKYEE$bCL&$Mu^7L0Y^P2fp8a_iiVHKlXe{SKV7FuQ2)Ig1w^ zGJnb5*+VT%4lJ-{gs}*9uY?DMa25lsclTIcSUtRA7JYeH;oHZkDS#wUl=| zIj7BJ@!28AZ)In9B2xVTJU*^4SOyV=88n!FR!>hoz2BL(SXSndt+X%>s?OT&&6l4~pp1w9Sv|&RkaF*?B+WXMWR=sV=cTHxF z=u?kucoRmwoBdCLp|o~&V!_FZQ_XgF_AJ+33GGmD{jfgU+tmWS;C<9P_A?|}*224< zSLj_atY#%I@3P&v>f(#0JGEo&2gD<^-=JHFsUXt5# z({crt%&yLU@YJ$*az{_2FzstwE>OI=7R#;Ilt>o+RxF#}>L0j?5P5H7HvY!52F@sp zeGI#h*K@&ME8h`}7#zHDT&?iU?LqUX{B5bM&Ym?rxS>-pNn1O6J9t6IaOOdq`ieMM z21O2YRh{2tNOI22g_e0&~Ih-4WwmbxUy|n zExX&=_13`jCx7EbI#u8jbQ@ZQ>!?D*A~ddnuammk>-ua?|8SmZOqnA(9l|C4; zr9EEW4;Ref{*J+cww`s}oCIqF6@+eTiIT9@9%!Bhfn`I>0XHMfjg!nNDVuHU?~&{C zfMLNz*Gfg@{GKg~%MEO(rp(|yp*~z4%5qttV@}7Q1x4e z@A7a_)cY#EaA6aLJ8u}$uqViCwcwswp!claiJ9hufiGBhMYpo~&Ru&1&I_$U!dB^e zxC5a*WwsB7KviLe&@8fATkBwfsNPLO=Un9NE!_cgKSsO0_1GC(=CV`-$!)`PqV$ph zO%L}b=?<`k#g0^Xu3E6WR5%r^ExS`%@Cg}fKhGuE`@F00-=ao}a_ zbVV8xn=l?Ew;0Innttpe2Qu^?;-J|K_;as_&3<+b77*Fi_TUCJGU*oJwu6}{x8cGI zXQ&sU)x4GWTCt7q=4~x4sou`6?uI9V(FQUb$BpZKtCQ=xwW13Toy)4gy`Wr}g=P{x z5%*DY6<4TwGs8@;A^pmM4%Rf+PRt`^+-Bh~0A0&h7$f5^UtF~?Xk9()uoD>UZ(*d8 z;MOaQjF%~T5%0uJNjzX4T%_i$R9~>M8S%2Ay^j$W6FR(hLi<5?^i~366Y6koVKJSP zJ3NqL@qW0ZVnO<6xn{_G7B34?CUU;lP7V4cA`r#=0GEKDWQ7_fh#cgM{~FL z(F;poF&M9hi3nD_8>nwEWaa+5-XfSA9LCrR)*^PFH+tc!^vHMgpsV{HusAcPd3r|w zteBb9)Vxb`)1;}HdW5BEhyNXyIRf!r^iPnxOk56k(b|zgc$rRKj%OxKpFVY$U5?63 zT!W{^cSkpI-7s-YQ*YN`Khg#|2G=YH!Vk6#OvF!@yZ8637(hZxUu(ziEq!a&PMf$U zGjU~R;(?Pg6IbvmowvOv;%+q&ELQLiSeV8Y08%@9TPF4n=&cYnp5G;i?s8^ku7yJj zo8*KnBXHsL_hJ{vxA*l}9sRtG!fSTUY5r1!-)m%EgG+uL2$@&mrVY2@&F(F1_63(@ zyo1N*ZaFUb-UV63KA*iXuIH4M%ES2V)O9IUI@#jflb=)|_O%`%rI zfyu4t*1s=+asEdcxKM4~+F&~S+px;=O3Q36=vK|vDd)EI?26w2Av$(L~Yyal6bdw=3+lAJ_WZzk_q4!(Zw{A4eW% z2$CHBG#~mn_<0`Bu7y4>9_7We-MN(fgAhz|@Q@_)^Pi}NN6PevlG?}*e;f-BfQCMf z#Yf-rA4f+B3e(hN{^RHfJz<)UVB|lJg@?*RA4fl)kxy_eJRubNICykpENE(p<5GtH z?-j}?_uK;}I48Ykhx~JPpntpr{j(kD7k8lF+=2ei2QKOcthzSY;xx>dI;}}&N8oOD z_-$lINA&G!F1sbk5T~WDR`U1GzFljFO%w`X;R-HWLGiW=et^JwlKWMKObXlx5^$m3 zJSj-V4At{x2%e(JKo>*sNEjYww1&X2_z=txJl56$R58R~BH~FKJTHoW&cUOdL`<&J ziFovq)}~-Gv>Lwn4u2YH)1<))|MG*U;)obb{2Pf*-%W6~;Cw+ojKg|I3APFL3a%48 zN$?E8^8_yvyhiXI!AAtQ3I0uxlb7u!VUSv0!O?=vf_n%q6>JkcR*)eCSpQBz9itKS zW}$T~M$m5y{js2q#fWsq6Jh;ff;!eB=t)BJO@++gPf*8L1bv*)jPt29f|m&1DfqD9^MYFiZT^cK>X!(P5F9VKi{QS3iv?Q+j}<&w@O;6m z1#c6)U+`(cUkkn^__5$Og8RT1P_9D-&lkK(@Bu-a4|bzmvEXpQ34(mjAoJ%79xk|2 za6s@>!3za%7v#%}S^wxE22T(?OYkzm8w4K}+#<+mL#%J%5mhaxV71_pg582Q32qVG zD!5JX3qcnSko?L7GlC6**9iWv;LinL5PVheJ;5dTPYv?x5L_#Gy5Plv*9rRk_cWB> zS#XBnK7xk|E*E4p5|%$nZ~=TY>1Bc|1kVuMB=|pq4+uUh_y@ti2>w$r4xdlH8Nmj@ znSu)imkIK5}#KNG}%wQ7DVLt*c{#R8?AIv4Cc!-gmk72A_6eRMc!l82g7*qODfp7$ z8-gDSekoXjZ5Z1hA;_2;q!$P-7wi>0N$`BZ9|`_M@NvPH1m73@LeRxiy5v7pFe5lo za96>71&{qzN!1osf! zPw)uA4#7deQw1*&yhZR{!N&!EDfpV;`+}bf;++Lrj^Tp!f>Q-&3mzzVq+qAuI>8GB zHwoS*c%R^tf-ecaA^2xO2OCZ5BPBROaA(2kf^!8A7G!Wk)>|idhTtWFKM{OE@KwS0 z1iut?u}3DKQb9(IBt2blZ^6ZaYXnaaJX`Qe!J7qtBKU&f-vx*8|A@dpEm$WwNpMfW zLBWRv^}k7@-m5~tEBL7(FPzDjuTdjz68s-Q2Hax$6M|a>KNWOwO~CxU1(yi63ib+~ zD0q(GO@j9bJ|_4}!AJ3wKlyGE{75iTYtn}bP88f*@F>Bxf)@zhDtMpZF9eG-hTm?2 z8wIZryjk#Z!Pf*o6pW5E^~(iE2{sAtCwO>}KgyJ!BDj~}0fI*eb_fm%o+@~O;3mP_ z1n(1kQt&0gHv~TvoUoH={|AEi2yPL4Pq4Vol&cmTFSxtlfr3W~t`;vF{WOH;7)?)3I0&8cq2M!JPz~1@{y@TJQwH z8w58C{#Nj7!R1YcZ?E7Hxu84E)E_E1O0ZdQmf(Sc zM+>eI+#q`RP7vHxaGu~2!FItu!P5mV7Q9aIPQix- z51nD!SuWTsc&^};g0~3XC-@7&*91QhbaxTC1v7#(1s4h~6I>;@Uhqu8O9dml3O~VG z!5+a4f@cd}F8C9{=LNS4zAN~dpxVvwFBRNLut{)t!3Ba#1&=01u+JqXE$alqjgo(^ z&=&|^D(Tk>eWTz#g7*nNL@dR9PGSr(r-^9icf=CQdY6dyJ{0^^@Jm5!rpb2&lY*s! z!-?RRA%b6%q)!o?Bl+_r|0qds5nLtMEx3*dej5ZYmh{U7uNAye@J=Gi|AdJ4pOo}x z1%D;^?+SiHgdSqMn|iwmwh*DGvjuMyyjyUq;JbpnAxq1W2azvaA?_l$yC7fM z!Suy~d~XNo)q;FK2kDK1d_@Q8%LVy54$^lC-Y=+sCqTL$kA(TXi{z^tplu2_7oAOz=p-4#6(L3q*e1ei`&A=~hGkaclS# zO9P+q(%2E4>Bo~B^uNb6EXQ*t4R~0gfr$&I?^up`{NNHqzcJ?j zs~onL-)i?PGLR2#jUU=f9N$^^@^jrv%bEvFhePK$)#Zq^oj_L7 zkKlU_{7~=-^4gFPZufn(%l8nm-6DL0b_Z}C)WNAWZ%^Fs3pyXlJ2Q07a;s)r)-OU8 zgVR%y7jE~ulg;aO*e?BJ(C%e859;95nm*UEGCYw_karR2Fu$f#%)BN)&fkFFtvCM)J%^7DIq z!}7gjKKc1$`#9+ET&zd@y)^i^*w^uM9*r6wz9WsF#>dXY?50+6w2P}? z^>@N-7_y$OAowUZ!iOpySe50zoSs2&iyp-$%Z)`o25&d!uE5d~nLZ5XN86@^9o+?M zrEAAN14LU`Nkxu>>AI@u-AaHPITuZXQw79vV@2zRVziz_PNbpu1Qd57NQeyR^CCC$ zBjW^By-Eq<(#sgSaA*8{+>0?QMq{L~be?%~IakI7DuX za7H7p$Y-#s$p1L3mUJE7a*htG7mlICmh$c;AoZN2kQj0pT&4 zPITH(o?9jOSL^6>-HPiShEmb#3D%Bzj5iaVu3u{Bd9ehE;mk>uWY=5K84121tQ>Eg zYXZhS9InGxUcyzp3FmdunX#QPFT4jpME8iBo?MKPiteci*W+F7=qyddynkShMEBB! z=XFFt%+^H8fC*yrUV#|mxLDYGSwi^QM#a2gRILM|yLhwCIQ0O4`gj z8(E`5AK1x?htMA#6$)x*$fGE;hTV)ELcJSpS25|($8_i^{Ch_&{ui72Ter#49})CU;Y*CSHm7g z-jwtVwl`?<@J?&iTc?Kn0(mpjKVr$_m7dVE(oaz26HLju=@jd2FnRORTREpsROP=$ zz5UX>Mu~1TB@ar^r!G%Xadz*}^e{?&lPWqDC71a$`{=D|C@p=S?O(#?Z&PKoS-=aC3qtf)wb?NU@%5zl-)iW=>n8SLW zn!wfNp!7)2pYv7K9pJqzeI(uD_th{?nvV3Y^q3bIsy983^)58j`t;*$?;@2Nj`lXD zU!%cYtWx7aot3_tZub(?-gW5{Da)m%-c9K#RP<$rx;@>5tCr~HhPpS+$1S2iFx128 z>)FB;hI%Sp%e*Vi6xw3xw>-0Ht)xmrvvExq8Jb%IO{cA@Poh6mMaz+p{ypd7^=dc? zE4`Mgxk34Tpw?rrhT-R_t~SDoQ`4LbLJ$8WdYW=LZ>#AUqF1Q|N2>Z#ih83;utn4M z{Xr$)8gUX5Q!Z0#ICZsgBH;;~r`&T;wT5#jFys$)@~b$;X-C{Y>eiK2dmlA9*-6ti z)xJmprZ^+kfN*|_k%~1}(sZJHA-1y?HWizqw+B(izjA(zk&R8S{22^^qy}Lzbw5{c?!-Acwg=of9bfQk4$0Grcldam{ z!v#1iOlIww@Se_VhCtX}=MXnO9!VMgJBzc}P2Gu#R+s>aGkAa zH_D6%U&83T;--!Vk#aZUSaTH)CZL!emHf~oPLI!yzkpot49FOttK-Nbm|lOU72jKe z&93h60a3XM4a~KiezX_g*CEH9He+fJxwg6kJ&x4C-V$fqV?Rem^c@^3TVR{ziF54O z0{ECTjWdBzb`wz8N-sdK6PKD8dTv_59urpu5%p-RiCgS=FRFPN{sTwiemj0SsFYQc z1ytxmz7r{zai&u4Cv4iBvdNkYSymrtX{P@Z*nG-ett+g>F_OaSn0VYCdnbtKCLAi$ z5T`uxgdKB`Wdwh=K=3UEg8!;O@ITt|ai}JOe{9DO1O>tIGE%ETAHsq&x>w4*jZK?V zHd!;DW%c1(g4gK^jW|Y*q}Kjv*R2E*U5rB|pF%B9Y`0?%gEE3!Dy;E{k~gtyjVBBh z)7~NBtN7cfCW22=NxtG9g1?N!3VjF*{t8kNS_;RgIc1ajHR%adtI!8so<6KV^>65! z@8cM`0kb5ryBa%=zC4XXrH7PEVh5zNBjx^vMcLMlMWxigna|ck`Qf%}kyZ6o;%OBhz*+ia91_ne z2{4|3-6Wn<31+$J_h}E$8;yKs>6nP8BSSli-K@yt5G%1oIeQ`v9Dk$YjM8H`{!U4_ zam{gS0moMZj*;!S{7by1oQn*HZ7R;7^M=E_N{6Gz8^$Tq`vn|6$Z>cTH4}eU&aVxJ z&s3Ztzq8>Qh<;3}8 zjFI~uC#<`B3po5V$KfN2dcWiR!f<%ZiO&ExMQe$*?zKL%l94;u}aAA(a z@f_KUT_=uu==s%dd}EHoH71;jaJaUB!*w|htFQ}5+~7J34Tm4Q@h5T|?l2Kpgv0+9 zaJVbSfe%6^?s1*-QLpwcn#29BvAf6M;1UnJ#_ndJlZhu>V|T}5hmqLqYP%a{*?1Fj zd>5F3>G~0ou;CpQNiZvBCh^e`ZFpaq)t~Rl){}UI6B^9op;pJQ<)^q9CH;=B$PwP&zbmqv^}Q_Q(CV)XeD9mcg0qtCbKe|{9v`W*gA zVro>a=Jt02SR|%JOG%gw;0ZX>8vB^`(j1N7m6L9AG_3aNQTGsJiSL{d4d(j_Zb5d9 zI%I^F_KB+B;>@(Pue1ctv!n4L*!Gxy&y9w)KQHS3JkNQ4j`JTm2Ny;i@&o5(QPl_z zhVx;0&WA?hZ8^?MqTxX~JnE*AB{Cn8+;_vB)7ma6Z3CjRps!jqm3Y1#5Y-~8!&FX8gj3)YGJ{N-OjdX?mu_`*LYW`PRVjwo0)2(_U z{r+IAisNfV-k>yVW6sr(lWlH@#n z-or>-91pvJR6HzkX*`fPayTt&XxtfrisUgo9={^TV?;bW;cE+cWb!1+-EXv?K&Vuz?%25VFHn)s$?TkX`9g3& z6mcB&g;rsZ+KL@6v?52)5?_v|PSLf#hhxoyIGFn<`Vu2|wGxV^s?&5-+R>21az4UH zd1uzXfSOTOFXn$dro8XPk}x`b$H_a-Tw!{=ZuhQ_Pez98@gLW`JL3m{hzlGUVUe{9v&b#PW&*{<{V1d+&hnm$--Z*9 z9?g3`O}19aLd)ACw=|YObbUJ4I~mINeyQ(!oNhS>prH4X(}M~-y$09j{kEFY)Govn z^p@C~NW_wR#s5zBN8^y(yO=$&O8BOiQ=Um^C;7F43N`AR|d$w-a2 zfc>2~(Y_D2*hoJT&fbTT17=49$I4l3)J#FJ2`# z8#^dzw@Pl+=`rta%!rcz(dnM$FnCkRkDaY(CQ1&82_^T%e~J@tPv$(JLkC(Vy;jMC zCMc|TGWkBN>&HrtwMrh*>7Lhz6{+Mgot`Q|Ali~AbVj+ypg|>1=?uT54K<$88Py&` zFqLf98JUt!WIV4k>O2ODEZL$n>MiFSjC#p0oSh(4l#->~8XP0MJyMdk%U{(=f5cG_ zN>K*-)dy|4`LkzGqC)@9iCUu|nAY+QwTGR!9C=;_ zuW_+bN88CqL8a0Y*+RFScn4H@x(hxawaHEnAI1CgYpTn2!(81M<^t_f}B&C zLvhI3=zfR6iq< z+OJ_Hsax&J1`?-HJ$DQ7efXc$Lqcr9bWA-Z#HSqR7llw9&bNeE3R_NnA;cXl<|@Pb zt-Q-L}I=WJ@AgHBZPR83|1H-vX%X~U6p+SsZ;LPIBLx^dRc`& z@bEk~mC-C$6ZDt%v_ zkJ4lCE)c8q!wPzrG3~8Z>0ioe)mEasbX)vx6!1>O)m!PiI%X+u`Qs(Sr60Ln$iVV- zCd4fLt3y6fmQBP;Kaao5N?h|wztq-m*1Xbx=m~^M_kw%rKbhZWNhYit>B5p#+H2Py03tdQhsqh? zQeAqi9eWg%zDZm<7~G$~3{$7{OgsK2vfT6tEZe2{(cueFvGf#7ozm;=cquH;OMl{l zx*b1zfl8%UV{(@M%uY@RRi1tx!&v$&+iwMhpS>7!xI!PeG(*w9MFM^Y$1!S7DM<}m zF~#&0Pr2_hm93f7oav+P*UVzmItvMDoR_m_lpsi~XX3#)@LREzhof*n@t;FKDfcyS zNx7_*a(72Y?cXssO8;zEQ?!&zG4yJ7KJv!07+#2!a;GD+_7hO0HI6Q+?-k#LGI|B9 zwW?yJ&$#hdkdW5Hz1cP6onGyr((@*evTH>SrUAX+I;A8 z*Xom4^BABGkNlZ77b~4bjAB=>Q`#E_t z9DK?p({e5uC$p$NAk(T~PtAsc>jVm#;zy!XWEU6BjfaUA!S>McV<}|KpOILh4|+M0w!TDa%Dn=|=->1y*=i|A zqgsVIe5aJAxI(EaR~>1`8JS*R5~-u@5zK`6e56BVZKoM|wKq_@<@P8x7Wp3ZpnB~3 zwaAIK;ZQk`-c0r4X$Ug<1qMqE*cBWWOaJ7f&cHlD7WU-70aWM%e})R}Mf3hjuMGO2 z_q!?g_o$O{kJU%E5NSbGb-6w6D-h9laj4vh?oj=}j_p(*NN}}1j9M27F#nb#3lb~= zROkbL!TY~Sa3t!a+)uRxYynqV>M>hgjZ=N4r5?94?9XVtuFO(T*j2pcFdA=tLzrB< ziWg+os2NHc$4=s*nxNQ!d+2)vrWYw)slOgHPGo<`$^b^QcsA*CT78(guj9 zNh22yfu8nP4yCAV#qzBdsnOJ9?ekbI)KWEuJ&c?h1JSC+--lw+n{cRn0**1I+EnZ< zN~ZlshYI_TK^6Dl5ui@~lR$+&=z9l+w1bk91xkc`zuQ*Ljs6$4y42R13 z-0-Q>RqQ}ernR#Q2JbQzKOR|Vts79G58vI|0PjP)==xwf80TrqGKPj#HHAxD%Mby(9bb=1Q+H5$3h8L<#+ z?&wyoVwXGBT%yF`7tU3l`qWYLz&L~37V0x6xt3d#Odp8P4dG_+ zDr5D9;}>PP;~JGps{Nh#;;AUbcZ;e+9CJ~hJ|3=0EyLTLFeYyLTrR829G_Gy-Chjp zFf(pmdIMLj!yLY-0NehDae<&(jH1iaFOphrhGbY;zXPS!Q0a6v2cgYSh;fgX7OPIf zvl`TLQpMUufP$7gO$&9I9+q5XO4fry$yKK01W+is%9LzM>vw3aHZ4p^$gyCFx2$)MeO?qC)0u+%}DDv)SYd5v}^hvn%o73nu(WITk0yu?SWy; zs@DtE4US7QS+D#@uw1Jj8=iN$^?0+mr5u;xKerB{iGvbe-f*&;GtcZVD z3CKrHD{~`09aVNoHn-}pPVOO3o4c!{?^&5^hJ4Nlty)EM3PgnR$ zGe>TV`g{yey=chiqW*mz$d{aITKR`je^V0V?+mM1MgHOB{ECwr1gpJ@{KqKdR+IZo zk$*kOZH9cd$Ui0u@=s3c3>4m6wdclEZ0?pAGS^VBPJ`7?NKN z@o$3%S6>_R_Af%h{@2AW$SG$Z@!hf4XR$|C_!atA8 zLxmxSB>WULIowV2nZQ)S|A8x_A=x>o_{Mh9P`{V z24=t4^Pgb%=Ns|?&!=lv3k>go%DZJvJyM}M)ax7P1_{$JUJC2oe>y}v+p6mqFMk{iBHJpUz{=rVUF zZYn64(c2nb#>m{u?mkQ1rSqJo!)iixg|J$q+v~EqGZs^MbI&Ia^sDc|% zOi#JnV8AJt_c$VVbBvF19lB@Sw?&sD{FfK?a$@W&C>wnmhhe*+bB`6PCCS*x>2%5T z8HXqRdyr@OwH(W1lG-d%Nk72>Xitv5e-~^~lRlsJQ)`mLChUr$Nq=V!ZFf>z_SU3- zI;X+fq@InhC;ch(ASW2|&7}V_S#3;?eg}U|_>R*`#iv8_W-i;>r-eOX>J#j_&6W`n~# zheHwh5hr1tH{mo8(PMF_{3EO4{n$&)0p*z+Gt_&9K77ox&vAf_d;mzfC+Xv_v^lXqDVOc(TbSf$s?qlacc*Qn z>U*SYz+~ejd^Z|1hkP zrr}o#8h*8);opZFe$5-s8@p{b_F~`&!hAK~MSN#XC=255(dkfsGRe$uf7pP9_ zS^uV&`d}1hm=*aa<$v3Ao`6u1>uJn?^(J&euIN%6D$m49?5U5v*bNj_kMgI%D37N# z+sXKg$a2$o;`;HbpCTd%5Bp}&iItO3M+5QC3pQlJAcJV zs2WLRb9u&1QV_%I)c2B#lich?&q|KwfK@+2RiB-#<4{)b33E{ABzK~Eja%bnHEvBG z@q9uHvN%aKy*If39a>GfbTx7AH#(6w&WaulsO_!5i&vjlX{OcwqY}gmLhyACWm|;6 z3T>7B!VvKe@V~?GxPjG?GX?Z|5bpmy=md@mNmW=(cwo-;wU0pe@ z*frxhxmMxZhVOXH6uVYWluaNn$9EzhXR=57M}Tt#BI3;$f5Iu2Elam+k5j{D;$M6} zMdB7DZpK#=f5XW~B)mOfDpV%EjsHfmfUp{l0ab@Gc7}&0wFfzMBav_4*csoZ<3U&r zci}jjMJT*IQ{9GgO|Kxa@dX_CDvkrm{1Fg*4@Wz`%~fcYbsQeBd|(ldsHVM;+Bg*l zzMq3X!8X=|;LADq@3Cm=Ebv&s(g)#S@1T)?b z1L5hZQeEzh$W)e_&VNHe&U|jutf_M_gVYj~<6uu?Xi`v(h9UO4OCx#$m`Y0{wY*7e zO?{UB#Kup?nn-%H8oR>FBX;l4>|K;w*0Csk*H;t+M|ny zCY<8o#f#IWb_$a~)!|9;JrWKoJHsrecvt*m&MpZ)&*n-Fwki?HiI|+|7>fmp@M~_u zl(#{~k_FY{wmp9+(}#>i=|+g07+O#so49;)yrxK&KotCFGSqg8!;DK%Fc!$gf+-fH z1f{xYBrii*0Z-^)XoWQvj;XxD9$RU|sfcLdhvllGQxr2TRdpZP3jSL~%V!e6t1>5; zRH>2<2{~N!A!K#9zJAxRQ_O#pt)VPzv35$Rfjujkmq8tN)wBsAMvj4*j6yr?q%ht| z>gjPZ_3F@csKn?n8{9P!QU-Rc9uRb>K3t6NfFCy!t?k@k?^zj)%-G6OyDU1(|G{i6 z^7u$-C{+6X*|4AqNXwaxq)iNq$UFB9Bkbm(i|hwxCl;rdB@Rn0)jDsCSj|JFN)ylF zx^e~CFp5T&LJgD7KGlZtHfw{Le9ox|Y~o)u8+@k(8JJ8Bup6VLv6UIkf0~G^)rn~? zk_tJa!J_uMi-T&MlDQAI5^(Yd5tixGLkVZ$>sp`M2VIMk9X_T8udSrU;&6?F|6`3s z`5H^YH5UEH8i(X-EDhH2PFi@i z3C=N2mfhdi+K87wA>drA)i~JS$N1!pD_dK2@TzV^1f0kyJ&iihRU-;@4YswLf6sD%kSJYQiF!}%4aAVf=H0zwt-Py|nV6c%aU zp=CyJGbMC5YMjE~SrOdGhIkl`T05eKRz~cov)-N=QFEh>c$13lJQzoMMWifhyEt(+ zuWdkbne#wA6H(ETx%6k(W_0?`;+YH!MxAHZ+IwgYFL|KLBSVD4z5V1c#M$BnCGYLG z@6jc%8p5_*2hCn{5>6{4crVroku#mRWDXD*g^OG_JGAhrr|%NW}yAMh@VSXsxnXLTwE)P&It z0(dcc+dzwsAqQ&;!aeG+a9N2nhpO2uqA?EUqH3B*zb2Bkj$MX$c!hoO8J?2>;oMFxEQe9s;8CS=HWlM4tUt zTuwB|XhGnN_;TH7SeIpLzH?tWh(DU%J)SLn~R2 zIM+HVoyiX3afe2Yvb4AM!ixHuEj*?t@%yxqfI%)Ip^n5xE})t%76JF|0^>=0WMKkekW=%Dlb6#(pLWV!IOxhS9##vS7z zErw#L29c;(lRqW#wS2m@Ob7)klb7{tEo>CQ4ldsaulTTd%Tv3AD5#H0GA5&}c6ZP#|H zEmB9E)X^8Ejj5BG(FO@)@U#@8QKm8QqVUq8LM4K4C@iv$H*MxL!qGwmG3;<~_s~?C zHc5+^pF2<&BT)|awP$b#rMFjY%j& zcvV)>{-CdOEh7Vh6_fJzs^_4@^hMmwynhKz_8p?5iRYEDtl&nqa&$4xbokJGct=`v z-UM8?i_1YH!@DuML4;dm3R4ZR=Y4+8cX2TYDP& zdM7naX=)tk>FMg{E>$*tje-n4tc@qHJ)~ex%H%*?Uo9;alXrNzSy&jkIv*{N#l=%Y zk-9h-GPtHGqZdn~%FyC#1~D9F6y6!j9HW3*Z94S1EU=8S9L!q;9ObBlY&y3zz^k>H zX&o})T<(glmX-ZxXJrcMU5R$H{fJ20im0WS`#l3atv!K(?clU>E;p~9!WFZ?p0pa+ z25(hCVkjDalbW*p7Z>S)(J`3>I;Ne3{1Mh*KGg-QYe(>6(U=5g6#uEclvY%MeBUwQ z3x+AT?KDie5bB8}@s~TrF1Qv4s^_`1&C7wFH9-zi`x&;E;{4&r zizw~xv+FQ3IM`Xn=S6U6MvIo(1{TG%mV5uzAw*UDnk$c-85n2j-J9i}-Z z=eHuX2a#_rs5!S>AjEcf?KFNfxAXq4euyNpQOC-U&UCl$D0P7c*BcsRZ^mj&_D=1GTkT$%$$3e>bCThm^-RDvT*qz)wspe35%WB&ZFy3ltzhS#Gxb6(=6zc( z!2NgCl+I=MJ8;gz?4rHrEM9cT{3Uy554A8k5U<#bFczWimGGbt&SEIt?j9?!6m(Kg zUHC$d3hb}Fk3#{&%`*Ho+swP2oYQ9Vw;jKgo!z;TYG~zk2FoBkC}zfrTtsX=?Ak|rJMvu7pI!-?(A8vyAs-=;3{H$wzmsm zXj2QMmv+4*x8pYo6RRRj)F7>UF?gLPOfwoz)jy`fh+;q_Nd$ZSTaUG0>XyAiP2Zv#-CMt#u4` z>%D&m?i^*iv0}G$Vbs^P>Z@kCw$Q^*3*+1uQ^W=Inzj}*T}=32Twkr>+6DV;Ux&S# zzR<=p&L`=>kXPZtkFnAR#I;isTsrd#)jMSHSU+Gvmu7u23qEv$xgLZgZtZAqU9Inp zpwpP)dNGh|0hz%veS@o$tnm$4pE|K2)a_v53pNTS4to}RJqy2TwZSW*Juv#NokJFv zB*wBaT-i3PmfdabdTU_%!kun3K7;OnHW_Bd@lxYdEV&pQ{# zu~tvu7TU1vN=b8VjLSMmo)^R{VtQACzQ8tcuP8ft5?p+HyB>QMl|??VM|QoVWh$aL z=Z#jB8c3JZ>Wbc;eti!Lm)pyC=th2R=wIF4$xIUp9wso*vkun)+79%Ump{ZgRK5G-I%_>BTrSMa`DLmV_l2zH69_E?NJ0xG zAzWI3&^r#803i?qAtAw+mJkRfkYK|9eb0GkcV)Qucc14!k2Ie-?R$EevggZg(6*wb zP@%9bOsHHEXjFqGw$Q`vmb3$RP__m?ZOhC{qpoeBH%~;`o<7r)CkzqSM zH7j%<(}dxs&*76GqdB1s&&*58&$N!h)4Ojb9#eY@q!g;&mVD`*gBe3$&4vFrZ(Oj_ zL)a{uOlhq~3qDj|hscp)i0 z6u{!b{UnD2EMc*tRJ${C#R{z4mc|SHE~=5xqNL4)E$L;ZhWnRBv612-5fPAs!N!FY$uGu z4iJU0UQc6su}JL8b8yi3%V>}iE(NicZ(5E=7h1J;<0&*8+3PVX#~n>`PU*Z@GQ5>c z)~%RfTChs*;*%+pQnOk;rV9fN??B>iY{q5Y_H=UEc9tx|m*tvgxYW~qS4l_VK*ME{ zZqkayNC(@2Y_5^|rF|U?X>X0pY!8zi72|ov4)4oame@AL*IS&FP-)A$S7V}I+1pHI zB=OTzv?0tTy=IQ?L_fn<}CaEpI_L<)^Dm|_W7(9BaxYrJGzn8dHWuc z-+j`Iym@z+pWHZU)}+SC)AD1WccvY~>vs9Wp~A(yXPh;@1*1W0M;;nvI(fI9pFCs6 zv{|!`%#UA=Ps4XYHgQ`petBchvX#BC>+4v#yamKC*W5QA?c1w#lXSZ{VRk-c}0Na6yLmH2sN$SG?>obHcXPrq^pEJZ(K3~n396nypES#00JP-rxyyIS;TsJ>MGN1QWT_b+la(C4`L?8J;XC-KyyWoB z=NUx{-@z9`C5MksH@1bDrNnxvM*epzapwmfg%3<{P4n`t+|Sv{e9Knm`?fN_u$B4G zTbaN0gNspp&ZssmZmilaI~2qX-7HmYYgd>IrJWM=Jq^<|L zUm{*3-YUK-zAb(tn%{*Y+)NBj48MoiBrX$=6VDJY7Oxh6C;nOdQcPk9qug3?gg8;0 zE%u71iWiDM7H<*n6E}#jh?~WaMSd^Dcq_zuaeI;9Pttu)@nEq<>=Df`6yfiCGIK{c zhPy?4LOcQ;f%cu^YH_`Iv3RTafcT8KNp$%$ImoFLhl*pxS>inL5V2J}Ry{m=`CAKN9~-d{BH=d{ul$T!de1P+o_)N<3Y>NW5CiVXCJ8?Zuhmp5nn` zi`XNcBrd=h&G3uGCE|MVD)DEc`TZ~aKP~eg#lMOF7E>7WDK{@p5NC@E#l>Q~xI#Qx zyiB}a05zE;PR_ek$^JGqfKpjuEGedx%GfM~iDj^Xp|?Un280;;rKS;%~(_ z#lMSRi8WX%F&!hsMsXK$k=Q0u`5675B3>@uAl@ZDF1{eXA-*quE>>bGMtMWUvEl-; zMeGqz63-WZD&8qRD!w4TEB;dq@TD%}8z|<*@!}5RJn<;;4Dk~2TJd&qgZQRM^+b$k zi0VyC!TygwlJ1o3R~hvE(5o#M0N$Kn9~ zmI(1>#Zls9aTjr=c)z$&d{ul~H2X(D9&es0_c-w?@n_=Q;$z|_@e?t?Jpse-AubYI z#UAlQ@f`7b@ec73@i*eb_|l(pH;NyKi3V#wP#iDrAs#8N5-$*M67LqD6D#so-j3or z@pAD7@lo-0@qIBIZo}7zBg95=Z}G6$eT4NtRoqS7S3F$o5Lb$)iWi7ii8qUPi;s&h zh;NARi{nPx_U z#ZBV-;+JA_8yl`x94VeB{#d+4yieR9&feCBUnnjX+r`!5dhufM9r0gc*%+lm>=SPk z|0He^qwTE!I&qTNCSE1}O8m9>iujiJndonCxJ7Jfv~qjIlf?7HE5w_`yTvEOZ6?|9 zQ^h&r{^C*MGVyrvdhs#wMe$AXL-9Xi`D7bUy*O6fLEKAREG`vSiR;Bn#OuUI#TUfC zi(iS+6dUglaeHx=IA1(eTq3R%PZuv1uN7|>9}%Ay|0sSSZV}T{Z8`>v+llzCjcM2O z#6@De*e9MQUL;;4-X=aQ{ziO5{G0ftIAEHMuTGpH?kV0WJ|%7vKNExLHvB+wgg8mu zRoqWJN?b0k70(r~5bqVA7GDwnTl`e?XW00w#c|>e;(T$D*eLd#AuDk|P9nbd#ZSb~MQ65k55#h@N*qE$UY>-!M%hmlcbEHo zxgRO}X7OmTOI%Gt-dgb@*uSk?bawi*ZN3oei zIh`$DC*Ce@65kg2K%V}~#UbJxaglhK*eWg+d&EBRMDY|cbZq(th=|JMvsSDZ^CG&7 zaYyzHcNgc0`-%sOM~hwJO7S>xop`!RB@gC8< zCxE@FkFd_qgT!$Ylb*?=tL&ugu5E6Zq|bGohuo*O`EC879zj0^eE{-y@g4 zUYoF@n*k=+H)!@{oC(*~-m;P(jVF*6nK9RK^1RRy zyL}(#Qh8HPvHhCz*neYrH{m)CgG=X7$Xmk;9kJW>Fqg`k3wc+=j`Aw-AIrNB*KrtJ zI?qF1M_f52ZX82Pr%#`n&rg{;jll8U0VnUV_nvm22`kve))ui`+I-4Ji%(bV zm@oz#V$?Yw{W5UY-&T&VEE=4zKmX6y)e8qM$UD~^SiNB2Ue_Jyj-XxD!s-Ry#n%(ZcctZ{-Gmm&`kV*`Hw&w|(@Wj||Vne8l&q@eyEM z$KyOUY8>~9H*Y)xy_=TAm$(>BH-MUGL=^=1)Q2ehI1MDr_(sEj zqYiQ=RGa|s{(mU5&s>)UiJ$tdHsY$d7uTc0*~yXU7t!xv2zO4|oZNyA z9`0fcK{N~n8t!Tg$>?MBk#IL-h@zGR40DVj6OBSo3U@b#nrIq|H=Jt>x#$=g_ArL} zXg`YH(-`tj)q5!Mq#N#+P4LRFTt6B8;TCB*aRWT@OUU-g2cx#7=>B-s zqF=3A2*d7`P0JwQ4@SV;=vWrYpG=s&qX1nnd~?8sNY(xk)tH8FRWC(h92|{CM#6WZ zQINAZYNY7*D%h=#i1_9_eBZQ^HoI>lL)4lRGg*5-@?$hZp_o^&)af*+6Qj$RAZ+)N zbkE*EDN8+*4ktSlLwmT)OW%m}2HDw6;xey>rev0HhG7~;Q<#R2 z-CpuWlvho5GNK4qSecF4MeNqS-k=BIHZ@zz_*PoCnOVNQ4_A8wo`c)$ELBQ|$9twj z@0xvpNj|~)oSXfCCA8MM&CmXlefmVN<|TyNJIkIMuCqS(&qnllikD*c4$e}sc6hy4 zb}D=>&av5tH+ciu(&xLm9!7t&SIw5Zx0`!`E#wzov>AT?;N=!Fk~_Ri2QvJom%Euw z<}Po*M{xa{hcbN>5nz1X73PrF&}M-on}LSA?UvMpF^)!f_}O55zJznlRj^(aIzlrIo35zAjm#U(>T{Ofh6K$?y)x?&UF=N4;A5DH~BV&{LBnlZZ!=~_ByuH zJ*_Fse!!ZX=T`T@DRNT8KjBSD9sEML-YZL^+_EXyhG%-YnegFc-(iD0%d2M91=*3T z*0a3~JtniSvpJmOWjQ*J${xd1p6gYzc;;vKWwoB?jpOXHe|9kY&-vcqUqJTa>?%xo z;rF~j>@*$ODI75`u%@2u2!^}Rn$~3BV0_>AGD8sGx-2K@@FFiW7N)bZzvQrcv5oKQ z>}sav5*zON?06RRrPg#yb^-2M!pp4buI!7P3w~ft4`d%?43}He6WJWyerUVUM#t>* z%&1Kv)mbwmH|8>H-Z3_3oxvZ4KlaL6V3GZleeoJ^2n|m5AQsKFUTy_UYp_;B_4Cq* z8S121((DW}5BVrO&GXrB>p3!nS9odGRQ+vC>UCb4G1|Df5u*u|bB3M-%S=FoMJoT`q2pTpmd!jImOR%Xll5K37F~+T@HhPD{3k^ zsg6x2X7<=Af?H;hErl z`l!cstvPY{hKN5IK@sDdjY~${&wUImhA{yqW~=>!9uag7Y#UloK>mqtJ(FUFi{oKy zN`4ooVIB+l57x0^6U%T%&-iTEf)?ywDFe1fbo|gS%HZbxM#jlb!%G+f{3X`0VK0ok z{_EBN)xG{fL24|l^8B@ne@KwI6#;SUgk`J0C@_jS)@5&_fJ1{cJ)V`F&AM0|V5?4S zx}M`Up8j`&>_V7&q|BHuYJ(}}ly1fh1)nTyZXs&S2`BLw>+A5q--LKWIwZDdo&7$@ z91lY#ScmhlD{!((#Z0Xft0sMVYEJ4|xJD--jj6dtmn;#X`J*05W)SP za~=Nz#Fv`qQ{qT|Z8hL0^&QA@f_mN4XS>^e28Zx1oazq4Fjtd4$4xH47?Wk=OhcXB zICyrlyQ2)!msmY|LH0>>m-H2}Rz0@W^o?$+2f?B|f8UY5$4y-ZQ^pzA1k{>SF%y}9 zx~4M0M~vEDGRk2W(yuwOrP=(CWAvHe7!zO>&WR6jN?Lo)h0Ve4{c)|mxIH-)Nc?h%BE2c>0U4O zFPJjf?_l~%pKDDudHf32N&m=8)uD&x^3;ZwzRgR`f~npaM*Xn0=2V(jYUIfTqi_!G zB@;L76Z$o$VkMcYakh#5+JyQYy)v$?y~@|ubZ6`(?xk@zz-jOo=_kEZAFi@T;FNya zlale@puwkq?WO4yWPi@~@Qf{yPaUHd@pL$tfnrA|@hFm&-st(ezz!0B=cTBs-b#GM zlge=;aZ^8uuf`G+wHPteuY3OYt%S{9ii+p0gttATlHSQ03Geok@LoZ}ZxJ&6SI>XR zO8C@EQL(I*@K4Vun3sev`bqd#LBb{QpZ?PGYr%#~G18?S-)cSok^@Y_H(Jjdj>RmR zPW!{zKpQ?{bExu1u?CUzYy8wBg;=liOUv@7erZ|W;G5p^sgsz4)kXRy-#-`OAmKJY z#g{QQ-FNtJJ5+3nWa|;q4^GnO_iGC8EEJ(N*3ybvAzR#sT z((r z!i5D1m#}6p3j7qpA?H^HsdWVjKe8%SB;hChBwSsP(1uk&`r5!>XeInSNIh1N@C&Pj zMH2q2pM={A68Pa``i{UqAK@B)#^!KOVB6hk7~s+m1h(DHLMGFX1-9Lt%l@(0uQOb^&+-u1tx2$o4WROx;#U-ITDj*k^>nL2%O8 zIWvs=dlQ!+JA^(3A*MY;?`2%snC2-aNS+g>24LA^^F22#E&cgn@L*B$UIoegAwqg# z=u;jfFAlwlkYFW$rzrX0Fx6I&yeKTKl*7V+Yb~Yu@PgzAS#C#$KIK93(V=&CLGm$0 z$xFi2Lj}nlVQF103xi{el9v}Gb3RLVhd$*sjNn>rO=#=tXf}jXLR(jFv3kx8ZCwpV z{?eC*aa}Dg^Rg&Y<+IGz6-w~nvee$Nw=Htpr>*mC=fJ!GM`J{s6D>+82EAuH2lFu*mMni%vjqepDpIw$ZtRVT^veLS_ zpe!hdlO$hQkbFGL`JytP@*3u_w_I6f>*fj+Ui$hnTQ>{2Hn_FS*3D~}6w~*XnYw|N z&vaKZg&l{Tdb7CbPMS)nPt#LRvW`oL`mb5($0mnx-mE_!(`b4{GRKLa{&)_By~)8G zr0Nf60rn+_u)EcN#3)xL2eW>i#4AkAs-%A<(#bg2CR3{lah{ko)nns4DOtybiH-B* z7S-JFHffUz~7eb50j=!ZJbvm>$v!_abB4m!r9!$c~vsU>B+|VqvT+Ytv1ddCx@`} z+Bkob9L(0@Bre5MoAlL5|8vBNThjDx$<(!o(>BmMY<+5ayDOQdQ;;)@#a|{(r#fA? zop->+44X|(Via5KJxTu<*iq)g$<#j!G9R_|C7F-+lleqJW}=m?<|$~3LBNI^a7sU$ zv~BZdHk22VrfpJslu8|p(Zi;=B2_vJWKyLmu1duzP8`G*H8AB5ML^0Jl1g1(kTEn> z+Tk1e$;cOF@R3D&M9ObQz=lm6Shh{s6dumGdtAz-5ZaB?t*I2%7TbDkvnd?S4;s?# zsX7+i=+-_by(E=mKAc2I!An#A!!R-U@>FUPB--FzHgWY|q4v_aOl3|nq0Yp4*nK$J=O^YC zqj0xUqEXe@8O^k#kq*aCp?^nbG(3xtA%j=^0Hu_P&P}Rq@N@A7F@bSm9ROubS}CuqvKUeFcXg8V?Z_Zx}-|nu;N!;{8;`Fa)XO zqm_y+sR=M-vaR%1>!#+yRFhqW!Kh-4TYeNwx$J$6dWM@i4yO7nmBm%;>6Tv(Q{EZ& z55!VyPNg;ZIczh*{^raC4r7$Y8?1d?4`Z}899vqkAmCm@cP7NTv+7|x6&9x9Gf~AD z;j)1KnYg0=TD6C^I1p1?3=}(`4BJ#Q#NUbwGxp&T8_f^J=Cso=9CcYS%ByE?8n&QS zR2=CWLpoD=ZK@hS6{+lUDzDd@zZvKTl{eUSP}%NO;$;kiB%|-4M^ygI*hh}f55X#b z?r%agAtj{8Ro2j}8ALvx}IFX?Fe*9%GkfJm<1ohY zPe-j+KIe}_qC%!D6AZ&SaRohP-I`a8)t_)Sl~R^R`I?hyxy7re;G@>O=fqnUlx!kJ z0q40jgApPVySIyG*bT&c<^OE^KVYhzbJWk!eUr znSZ2y3Xjq6ASCmNc^T`V=rW&~{064zGM}6L;uY@wD3;6@{wjnB8EkNr@!ZsVxXKy< zfz>7N@Nv{@oP9po8l(6>h3yIE3tuW|V=d9}d(` zwhMhaGs>-73#TBv9-~8MvNb{f8fq@HvzxvQZc!e)yf~So-13KE%49!c3|(&eEtqPu zXJHJ;T;-Mz8NuiCH7pDYG_NFLErpESXep$)elDldg~_34TlQO39=j%r^Qu?`W3?WO z8TeE7%%5dA0Bt$*PZ@gX5_nehB_RyeGOTxD$jk6Oik>9H zPiWXnh7OF5nZsqECcDfMYe;;|eB9zy{}ZXs1Y2-6B~J}zwdTaf_jahKYDF{Z!6P#X z72?Qz;vW?Elvgto&Y56moJ|caDM%=cvbDypV1)16A)qW%^{#h5d~bv8K%A=gYdN}X zgKep*{#L_Q?WAj}Hm7cfhiF&ay;Z$!^p@h0KeiaI`XE>a2TWi5J$}{SeaZ>xH=V5d zEcG@6an7sy+_Zi>=T-g7bRYz}3(~9p?LWpq^qbCCeVy8V6lRIGE~m?r@EPtQeSnfn|v51^N_e| zW&C{pd+0hl)^aDTpn{(DDGB_+NV{PeDUGQsPRk_i|p6YKiz)94w0X-Y|3>wnAe+=UAJ{8A18XPyd2rhwnNbe1D2d;-HX}<^91DCbt#6bz^J^&V(;4{jmO887bp*5T`PNr9L zf}>N*oZ1Bi=LvYU-j9H<#FPNhj&?`?2!`-noa#K>NJQQ?Zt@kFOmp(KkDHU(M`0&7 zwFORrd9UCd;0_$SEfYEHudu8&Co>%>uFqkc2`(PT7WBaOXMBp4y7ZK&+m@BCfANR<2~*U<_(!MVy5Ta z@21k*Aw|4f@E&xH>TD<9+kPw*@w(;}ZZePUVZA5Zpo1}v;ael`Np}!moL=tc7GeeF zJ!P9ry*H+FmE%3_W`2yNUEa(6nANhuE*%;@+}W|&KjZpLWW)Oyt-R;m(JVwJ{tee# zjFi~K|Iy8}C~V^YC4O`N#Q%3O@tg5j!h6T{naBpCL;7#-HZ1?dD@dvLg*)a`xP*VfsjjSyb^k9n z*|2?F_h0pEeQ7VXADmG4y92f6#CM4$b-x@1Y>cR8sw~e0A2JUCMJCEw?1R1SmckGo zf>YgCbdHQS#7kZTlWp(~UTJe1@1-7t6QaBus5PhmB}%GA$4gFgrpO_Ix3lN{3sBPx2rdtDICqODZJgh5e&=YRjL+8TJTJ@VQO<}l zt~c9Dod{pH4bJg`4GeDE;9Rey4bJxh#-ACp6sp?GCJq{aa@xo9nTm!JF@1XndZSs64V$r&@(%U3VGa{}Bw=Xv#@-EY;q^Gx-H(AW zD#D0>;^dD6YR$rihP9~tV#JLf% zfcZ-*y$4s96{uf?` zcan|S2^>pq^{Sb`+1Ux~^#A2mvs`wyQ*r~sXu3^Yfc2zzyXP~74Y#vo?)Jv8uo`}c zPUPM1ZO6PMy0Av^p7zEpM$m9ioa%lKc^Pkmmplz7TV@;k)zE8R>P|SJ%x(l~&57@@ zOZr&p0`eE|lnD+pXNpXWNh8X4z3rZbA^a6ib;G#&_TKZ7|Afg#`9Z&G`qE2nGr>eT z7^pR;|0T*iJmHZKgkb@UGwLesdq=|7)>Y&e`&hX@oGG+*RpF0dSkuR0`Bi!1yz!R}Jz_ugbW&n=qYv zS>G&Q@O!buNRI4vzR#E&9^+s%%pc9NYY18SBmHfdtHF!B?fuj~6A|wZ*b&G1rnxv- zzS;LC_-6T?&t5>cMnBDOz(!=Bq}ya`8kMc$oIlmiP{=m6^&E*y(|RU4iTUis(|msm z(h<^O6y~%`eD48V+7h|cAG#28?&wy|Vwd^#ob5(qzfZ^efnUdAr+zoexZJO2s~p`* zmmm6dEG#4JO5YpQ7z?|~AI7yv{cB9|kNgI%Qmo`3`$IVuS;;>sm3(!n6PJ-;|oK_d(OL3Tz**O(3eaF^YlwHXw>^nX;D!{V;m$*Ujnr%VXWX*0u zEw)MqW%&ToYqh3qb|!1T&6=R+eoeFEby}JAFtyNBVTK5pP|BS)hEe%$`aIhD90L=4 z9&LS&g9$#5wmuuPmsTQ%V{8mlvyZcQms!)a?3rv{ebzKRyN=_*t%1 zqnX*`5-^=@bF@QtC8b*Yuq)Fo6eL!Y-5?5$o-o$$s^XdXCikSjgR_i zR@?kU?jC04F&oiMiQLr`wZSiIhwIJo%&h&!_K};z+$l`|^Vaz5Fn4hT;|qR0TlxE8 z?znOoU$LTgEz2E5$-nnAD%nxR+x-+pE- zU6Z-pDC$ew7C#!0!_5|rL)aKU9gyQEdN6K7;}-*Rk7ES)w%F#eWk9Z${cwxV2@&_t zIkRogSAObhBr-_nj%S*aff+KA>D*6QWtG;LO6S&ddZ@L=0qIGQvzccNV-Q!!+EV}mTa-StuKJxU&DU2lqVy-f2i zLFFw7drOqVgGk5QH84ZhZBcF!BihXx?}&0{XQ25(HI=j973J15`+HgAy-|)sv$wz+ zABb`rIZrOMpOrik<+@Nt-rn{bktd?u+3dRe*bhE7M7btb_rCV)jg3)`s$jkSY}gl~ z+|$g${xNl{RqTT=_yBZHcac!HBG&%MZUJ}StJ zg=;wVdc3y;O69Ju}r^P zZkk1=JU5yZ&|W_Jo>^F;mghcY*IiydXxt9)TAmxps_iN_EqhaW?nL(0Rpq8P{-Heg zIUD*3*7#<5?sj%5#fZ9~YKq<{+X> zMebEr?f1*gB)+&JcPg{_gYrQK!u5!XG2G_cyS#iDpO<{MB6l5Ke`r0oRhSpv-WAr^ zQIRuy^<7zRI?1w%+>h9WuClH@6}fjfUtC*m-ZJ%79m!R>9onL>9aMF$x7rT%oehPBA-=} z=wK%t6^%O$hVWRN>NcVEWW3Q)@)?-yQ;zLySSP!ICAc6;ehH@_dk{O)DN*_0nVdcU z%#{8-O79L+WFO41+-uG0LtcG`6WYjoKqffJoPTSY6Z4Y^7@v8BNqIIH$G-UKv z;@|g+_|<+9zg8OY>(LNC=vBmjh$EhjKIXk)O*L6FRR1v=_ArVKYYRNA_5Ku@QJ_9+ zdi|SG=DiWS=?V|Usjd|>apZj%C9h>t&GWWT;#%H= zt=TP4JrAcKdkW{0f#u0hVZyU4cFS6GdYo6k#tCKqAdm^#%$Yqt6C911Hxp30`OVJX zaZwVCMmTeN#zRsVhK%ygEce*S?Mn2l^3klY`YYKh&n_Rus;obpedC<+kt|+2tg*A& zVa=TJeF7IZ?4-uL2c&-3$y8=Xlqg>WRr^V;I{DV7I!Kxk zAjrN{2U8+x`eV|(->D9*Ta>*g3%4@smT?mNbyRf{Uq(QBNWl${p$w`AB!>;9;RN)+ z>a+~opcz(2G7O-h)*7~d38S(*6bW^lv+(a;wQwiL8QTgC@k1xG7LitSjN`cB4l~0B z%G;TY|8X2W++kzcxsJwv8~(?lr??HKy1Hrl7w*m_g){9d^bBu3RMfLbjlcDYY4kTEgXRF2y|_$srp>0mMexVUo=(N2Fio@q zvDQ5_VLE^fbZDZ14~d;=f9Ck|R^a+9dn5dZHIc) z(JBPm&jdnDFpV>Y&Njzi9Ta1N!N!E&>7nJ%9EbS$?>$x#&O9C^z<=+nAe?zKMnV32 zL1j4eS7^cf_XdZd<5sz&D+Z?hiXjz;WUE}0>rwbpeCM=}!2Te|uh;=U%$b$u_iTY& zux3lhC1G8{Z5(zUWugO zrO80ouP7B<36IG*UG$itN2Z|4cuf@3P~A@^hM9r2&bAnsYHHnW>uhpr6DIM43PF)6 zCNry`CXb8-zg98nvlft5S4fzG3|59@9HR1&vA#6C*=yLZn2odyV_Fzv!_<-pcB!LV z9$}bO8z&Mmd>b^A5r~JGl;DvHXX?p@8-=J#e2gv?gQq4ks$#b_6@m!PCjvIYpc<1 z)dhWk@wB6 zYyw`G6fLMT$=X1DB9yM+8ij2%fcD}VC24fN+e@m}vsXr`c%Stg%kIFNLfDiDhbGki z7DhQ=e=F=l)z;qzT3Y&BKwZ&RUhuU?e=qG@#Y_cn)`w9>jZ2Jo4mO40gA-IogPZUM z)+OA~U*pbBcyq&v*h$6p?@PhHHc=hA0WSOvt0us@+P^oIPk7<*g8kF0^2YvGseGOu zL;vYj?#@QS3lYpUi2;&uS1%_N3Th0=n%B2 z3Az|p7IbRHnz*Tz%qrJw>V-ze6{uCk-Ds4O(ZCFpC>k~1VNLx#lc&bI)V^K)mTl`z zt5-w~Ive#hF=4#j)l(AZgw6{_jFkSODqw#AGW zb?_(I+3t%NQ^~$@P&?Myig*2;Mhjd^E7cM%hk8*eVutQt zD4n$WA6ZLARjsl?U4jMGvQ4%M&@@`D-o&2d5(R@L%Ie@y)bbX$Ih#+mHKvu?%2yQRS+`gLRY`~* zstPrkFls%Uc3-rWT28$7DM&Hu==p{K;@AKSifIe_L8agw^}r4JjHp=uBb6Yc!l4qA z!M~+(pnjpw*J)qVg9gyqM@@%{r>K)vYT_sW#R$EdD8{BGolsK@t712dmEv`GHBmKt zlTnSghHV($+Nm59AL-jb&=|R@-Lyi}-i#_rqn1%|Oq)CjanN9!vn|_Z>`X{IYGjlw zqeE1hdrQcaH)ThlOnrk7K)W_Y~ z+q)9|g$Y<9xY3^YcZ>FM9t8chz>9Xz?%swRz z9Z{@+!eVIIT+zLR_e|5Sske6(2L6d1-OJl2VsKp6 zK5@4dZBXsnJrQ-@wz_#m`^28k*6xWbdL}ncZJgNG-My@r3r(%tCW=%pY??^1^k9R| zrB)8jy(YCRnBvG~>faW5soKw?(m#6FfEuerhd`>xw0_K-W{a|9j{K%Xj=kMh&tIF- zU9NeM3P0lx2$iC&m6DcQ=MzB}FIh z?(1&tjvLrkqmP|y5P7k9`cG{A+LI|Y#=)me2!w*h-{i(7{z^qTuw`6WG{Khbq-0>h zRLKvs(CXTuo*3?^xHwfB2+eR~3aVfFzNK6DtER%r(F*0Zb_#JYdfx=5XP=;(d*F7(K)}NVm;Qg?VwT$<35yVmrjCqbSx~M zzbzk1iPqYf!jYM-_N`OhZ=5#k4%^;rtFgL)?IO7s$=Rw>=7&~2cr*w#HJp{}JETah@2YIM80owyAl`=(Q4lw^IOWwx(i zC80?-QT4ToK(`u&;hfgroD!U-Ih{*c46VG0pdYCJM4ws05!iHG(-`_ztc0>_s*Uc( z$^(N2TN^x=E`{QyJqnVouM1lP!iVjFxPLIK0i+YFutvugke#ZGKJ2Z9^&3Xpm$$D# zHe2J`jqjrRjqRppOV?7R!w0)(JO?c6#8lLz;kK!(v%AG)rDPF;+kiDqJaZ1Hb(w%0=?PSdC=}k+UmoINN6^ARc{@psyW}U87 zB2JSaGwGYjx~r-eS0mp{mDAb1yc^GK`gKxU z1@TZ_q6(L{5}iFAyk}dfyI7_tR^J}awfzQ*V#;V;7#vF`pQaA=ImF8j)IWro3*wo% zcV$lxHKwEQ*;NICU&x{Pm5n(VlNqB4C~(`CH8u=?4XutIe3It!~? zm2})(bho2MhtbKjdQ?|a8|K)qwsy0iC^iwhVpgUUrB+^y!`#xWW)WHuCG~3hPjRR* zqfuKoo?~EK;A4s77^*uSGTJa%D;9fejJrCNR52lT>N9N^c|qI2L!zcBlQI0ax0|}B zS1k?V_6Px(hNnS;bFtBGJxXg)(zK+fyVpE?!rgYuR@o@d8@t2mJ z2h$ErPc&D2@WuJdj_f_%W@@!rS%F6En9;B}M)&L8y&Wt2+PYVFu@kI{i@Bf%w=!R!{FE)~0KQ(JGhZoy-L{W^L)FcepMO}I(HGHmKhKK4OxiKo(jWz6mv zw|4Xpb}d_D*fz{Q_bZlqVY20NA#Qvv%dmGIZqIEf-Da26vzadnV+AVu8^flVoS;%b zPsCc9abNI_M{$J(i0$-LsnC5)6P{4@Ieg4xmPKuNSk82mwhsFY3zpwZJf{5?NGVjk z4Ow~zW5y6z^LF8zw>wxL@<9$KOta=PlNuISc({ftEgcDprCN9lQ93p^nN?ab;T%l+ z&B<_LrD@4tSggf^7h*#STb1?F43w-yn^vG9u&B^O*ese%X{|;JMDQ*)boNEwZki0( zM=oaQTZ8qqV{c}akiz1W|QZrOkx3 zxi3w7to_{{yliPV?>5YuuLFrQOO|37Gp?a?#mfdJ(TG)S zN>1Ebd!RaFc{?7YnuQfBUcCa|xlmb-0Wp61RhSI)D5n=I%)UHF4-L>PD#+(L61NCV z%Q1my$=i)*&~W6ifZKq$Cz_^L(xdw4qGUF2#T3+nC4Lv5T$z-brS36Z7>O`E#A&tz zH}9r8Ij=iQmf@Ro%?ey6>UOTAC$T|tjiq6>m;gH19%gfm)GzJpU`Tt%MK_x4u-Wf% zF*eO!VjCG>d~w!7r7i1Tjg`R4-e#&PiJz{bk?~f>OyZsBi1@xdzO^m3QgfTfXf(=} z^e>y-t>#XYew-b%ltA5-WH_Go;z78yn&oG zz6HZYYeycsWjc8ipPxKq#g`_A2aDzvtsOfxuUNin`uOGf@k{gL_nVv_zl8Vpd{{Of54}lcVuJqj9m3XRo< zDjg@)U9CX7{#A*vGsp8PR2%yYE)&zo@8g8&vVBr+bx`Bh zx>-Nx*13b-VdiBsd=wA9`Hzpl`N!AsHRw@bQr(-HS));FB_QFr_ZsOAp_{r|2bz&t1Mt4&P`9Dq8raBumZsn5^XR z&9@~*3*W(q@Fj^F|UAMVs~1BQ8oD;9K7Q_BPJ z6-^#xF#w;0?Mk9yvFr!nv$hVR~#))5_c946}eRb{U0k{Bi<_BFK!TD7XKoeA3q@c7MWA%yp%Uc93@T`cM;e ztvEuQD9#pp#Z$!##UG2ei1&#b#8<@4;>RMt6=J*_3i|K{_D#Rh;IB_SD`}NS@Vd7G; zPdrt;P`pLFPdsXX4S#}omUyYiZEGq2VR57QvFP9vRg+G!UOYnV60a9GikrmE;y*?6 zQyj!sje(GI^Wp^YN8*2p4~oxiua4Z72g#9 zE`BA}V41}DM~IE0`Ar_|7s=cvt`JWVFBfkR?-CyuUl89A-xog@E3ph?{6odD;sUWn zq_#QwJ4rlW{Hb`S_^9}T_^$X*F{rU}28wxcytsonPdrLIL%c-1R=iy_zj#Ob-jw<8 z;ubN@AA-Prgt&t^UtA=%i)+P8#B0Ud#D~R=;;Z7@;wK{4QYK!JI{#?iS=>i#6W5C8 zh?k2uiVumeh?~WaMVCK+f&84$MIQ@I#*-0;irb4b#JS=D zVw1R9TrXZM-YGsSzAC;Wel7-BBQyRgaXWE_xQBR%xLiCzJX`#sc!PMS_^kM`IDo$+ zLVQ_qlsH*5Kg5UoN}2B$H;S){Z;PLZym6-7#8u+yVq&cIKUO?RJXgG2 z{Hb`4_@wxf$ZcuZFGq`0#NEUP#7{(by!D?K$BR3N^Th9nOU0Gqed0#(HSt}sbApwB zf%ug8iujiJkytj-`mYs7ij%}$#G}L$#B0S3;>+R|v8B<Tc#U|Q_^|jJ@eT2B;+NupX*Rw(afZ03c>3xJmp>45r)g1H}>I zBym@9Kk+DWxwuw5SG+>JSA1H0Mf`8^Q_-Jc*>&T6vUaZV7|$^BfJFAy)0{ZC}R zPP{|BTfCpF!afRQ5;~_z#PbSS={Rqbi0^&z6Y+D=nQh$zv0SVYhmeq$Cn2v<_EW{( z%UwaBF+&PiHC`;;!?3k>=REEPZ2}Mrf-0Vq?vryiuGb% zM0YXn$e!Wu;yiI*@j&rtu}fSj9w)97PZzHeuNH3; z^2HPDlbd>w)Lu_=2M=i}m$3qCBFfUgxM&~k!ae0|HS zwFxV_8DN6_*vP(!GvV6WTUPSBu_fKk1bf}w(t>XstW;~mubxXh<0GIhewb2X^-Y^) zcv~M!M8cg3t=-F)^QS^3q3}{3-#<;jCl(W$`}$Vk3o^dh`#&E;;1k7HcvFidK)=J2 zX*fuKzRX+uqZ<$0f|wm+{$KvEwERZAXHkF-wlyAXGb#M5)M!~Z1y z*=CrAIK2;)T;tOCBiVN1w9@<#{?EZU6d$o$8!SrWeHZcGi%1!78UEvV`*0nH!KE{Q z7d-EaGhgC%M#(k(9X-c!o+}9$U!DrL(s-{v*>11HcsV}C@m`ASI1DbG8FL*c&kG%~ z+xKBEmDhNR?bnpY{u|4?3D5$|LmqBR3r8FmSyBwn zM)-RZmK?J<-%(x$|BSPw89BEs!H$Tqi;q|y=gLxlU!3ANU&fxm*x$rSGiFWB7mrEP zr_Go(ZPN6qjrshf#>Ud~^yyRc`6*MUO`mDJe|Nyid+fcZ-DAQEcCoERESEN4u+ieP z6+0%3!DbkB&PTrtob|Vr;|q%h=j+e^^L6#YfeZ4^bq7{27`WGU2f8C@SGBNufp_tB z`#U467PuGZr)=ls9seTd;>pgACQP)je8F3}!QUnG&R_Otn8a-#J?JCDb1@(BeQA6I zSl975kBu6~z2ewM&Oq;Gsp9PNNod5!#sS(Ghl2Rx4- z_$_1y$)FumOJe#UTp#6HA8uHWxiWB*4+3E`19^!x6z`R}h$;vY=OSuI`XUV^%T^6U zZT+zhawb%q0PlVPi$tHfE(;Pr^`C)dlDpm~ZjAQfbwm$04Wzx@$BhlrY+vO=uSnwB z)PG=({*7jkxV~&OeMM*El(;#;9u2)Bd?}Flna^P5fzL1?B>F$$#YhA(QNn%XQUZA8ByO%IKyme7ey~( zoC;?Qp-ZN+X^j)kOml;<8tgdN2&Sk!<7)hC6RwJ@a6KxVog9gN5#0+zxO2+pVU!z8o(SlZuOfqEi$G6 zyX*~s?HYJ9`D$>g_*(8lH*87XPobtDTdR5PM89IlHnTfd5VfN%hD%b9!X+6oCE?Ox zEQ_;HV3e175hwmja3-K0i-8rdLP#>izFi0s@m*ASg4Hw3fUVTZrqxdPpt(*)OOgEWq11AwH=;VX@L^-9sBCIk z;)IV>Z9*zC(a)KcM@^Vq^eC%-!vK~g z^qMize=++nq^7|zt`fhmal)63=tdZj%-@-0&V&K!eA&b^JK`JEa8uQe2(xQ+2Vx6f zty&1f?v?ly*a`n&1k8>U0{^jTOR}AZ+)N zbkE*GDN8+*4ktSjLwmT)OW%m}2H81G;xey>rerqH$d`G;Xo|9Tv1q%zrAi1Mn*&O{X93M;cQdnmhguQ%ucxJ}ItVSFpC+sy0{47b`F@EqJ`XCI-@<2}=% zcg;S=B%fe?&dq+p5?X8B=4bC`pFYv6c?se6&hj25TxWgmpRK0PQ@j+jcW}0rslMJT zI~6_`=h*DSo4kQ+>GRzjKNbjY_Nv*E_jYryu!a1>i#EgWAH3WFjN}e4(}4`X>E&)_ zE4j-X@DW`9=AldN+$zI-^>)u268gmc~G+Z1w}8M54J8k{V@ zs|xqDrZD?=*5o|5x(`l~lOp~JZ%XRm7sB;kSsLY*t%PlOrk9%uA5QiIHn_9AYE~Wg zsAjdE?Pcf@+tso;oa1FVI*-a8%T%80RkC>IXAfqzp689@?6QA0&;E11H~1Hjy*SGk zyW#h|LF_agS?b~rFR-SbEI)DxFSMpL*+&`Q_r1&z#J4W{5F6@6US=#zXJz?1FTB{s zcXjqersWbF?)vN$7WAdobW3(2?pngjtm&@o?>QIzz?vS&Uc(qJx27ku!|3)y+l4kd zW|wD1Z3?N*ni;t}TwY*LXu{aI)WF(Om20R=~6dYc*6q zFO8U?PKqVX&LH!UkHXVDpZ&I;BSUzFmu5}XU&5qb=cO5=jr*QBP|g{85-c+TZHBSy zn#Ku>$8enq&Oy*&>_c%we&1NXigSwXi0elayXQ3A&61qrXE`)AT+Rec^@lEp!M_VN zm7G+^rW0~QZ2$XcQ^~1jc@R?nmH#u;Y;r~&E8QQ0uIsIus@-5_<{3Yk5NcxoKu5I2h;9UNQ~Cj5ZGAtyC{Z0>Ou8 zg7@j89@n+z#Nitv{$vD2jBhqB8F4@NF|ZiM1elnu<_~&A&^fSen1=%LPju^<6f;~L z4_j06yEy+JY3~7EM{%`}@6MLH>s?7JTk>AXvUD+$ErUBYHek8|gXzVXs@Rfj%S95F zZAuK7-a`oxiV3}a5Ml@|bUPFWOiL)H1_B{KNFbq@V#4ozXU=UVU;f|o{Po!L?wNAV znVBiz1Jx^zjG3Y-lDVYVP7J_e-A<3Phguh(b;ye2j-ZR#u>qt-3Vm1 z(%n((=wjnT&rP4faEY$Sd(@+?MmO7GFN(!E{(>XA&kipIl~|2!fLa|CE0MVLGnKfX zQM9?F$i@qpR|m8-Q~wbZpSbgNfu#t&&k;nc>|u8R{S^r6-hnzb(P}$zuy7j1pDI&) zZJFYKC{z4Tb~qfxMDb7Ua34@m9EXuwwK^zOoZh_>_g0EFmlWB!JM-$`M~XM=0;3Un zEf~eow|4U!5dJ|3>i89EP4t}|JOs)pZmH51_mrH(u3J1ZRG?>vD67IhqnIc@PE}N6 zhK1rUBC=KorHa3bSh$u#=$lK5)W@VpC|0Wjou6}9S<}CzOMZyZp`RQMc<#c4I#A?j1%H=vTV4a;A2j-hID`1Otz zU8TZ0$j;{I2`yTw!mU6xSd9;(K&=i+>q>7tiQA0OH_OE0S|@z0AoY5u zv@LIRO55@#M~{{-EN>`w7tt+_a}LUZ!%8RQ%NwKjT~2A+-Cf4vo&twYsOo)=^Q__U zm=jJZa9Hh>w%y}p9G)m}xEvdc=qbmkLOJO0f)k!z;P3~hwC!FhpW%jKF1BW!%}0~?mXk)L^zyZ#^HhjhfCPA7r9P|a;W*0Zn(U_;VR=!ML1kt z#^IU*hk4iqMAx~_G{fOGH(Xud@GIkiML7JrjKj(Thu>h65#8lF=b>EFN}9ucuCcqb zFu_F+xyJ6cMv2T9jIS%5;a;_JiTVOfQE49Q0Wh@uwS$Y?89_aC$>B8a|FMPhh;yAC= z6ql8;IKIH*Q5waGo^!ddIMWOJW3e|CJKHO@#dFJ8oL6AM516C#J?BlZXqwAfUF@0m ztYXULo@q~hKOSA}nfBa($4}9Xo^H=UpG6aVHJ{sGe!CoP=~t658^E99O1Idjw3o4d zxU!(#7Jg~7PxRdbkR)^GBtJjiJGlkf+IPqZl6Ljg%eXRbohDMCZc_ocZZ@ zbcFAaA2`qR)ma73^NXBk`{5%6&U5|JzFOeBM-@3QEO6#}7WMcJ`8Bn2uXc=Y`l^?P zaFTEO>V0<4Ilk$uVW?kpiJ$MQ85xzLO{Jb0(^qK012f^Ch&L@bJyY5@hi2R#irO5O z$@fhiXY(U64*8*;T^V&$f%Ci~=gv%cQ-SlGOljZD&$x#mNm_70f%9(I+D6?Ohy1|# zry2E3f%CE==c6+r-;EfZkIj_!&G8wRUh9SP2?fsAa*kM@amWvx&&#M5a4@a$vm)oS zGU1^G&gW!G`{w+NTY)6ud_jTpa<=nD8HfCurgF4gnK6BH4H_@HA!GVxKkg0g$e6x) z2a95Ke@6EWJbXsoLC6!{8}#O)C(xbHP|ZxeK^?ac4IYah6%69K*{~eTXtXHM?t~ha zb1Li$>N!a@@KV2#quu2Q=90Tz*!HOxFwBN2H|y(X$J@T&sPRi?j$=kLmRK3?GI@yBn`lkgIQf=xFgh@J_IZJtL% zc_GlYN$znN9*Eh)Xj~bVP6J6;s&RFg*VsFR7BwJr2BRQ(3<|@`3Oojfr31dHj7P4> z<2lxHNa)N&!KSx4u?!21hKFreC7r(;t2JPR=Jbf+Kq0syhCY;FNVoUy3`p68y`Smo}cJjjKbYYi8oapr@hj) zKo86LJ9;WUz3Ca0^jW-;zj#dIGXi>-)K8q^bIl!Q%=`BE+K{hq-1uoM>G2)m-XMaQ z&zs^0!Y&rE8ixUDb)dB1$36+4FiB76QSqGFdy*1)RbQ7;vH=(fN+zdO3Y3iAdRl`Keqnf34U;*up(7GrsI<;IHIjutrKcuIt{9NTqk6!I#A+C zozM`|d0*8Uosg^QLc-HJp*iNSL95p4gjUNr8@*ojtg|VU@~K(kHX`({VW!lsc}++C z38C(kOb+d<18up*t0$48R=?-OTNbpeS49Tr+BNkkk+?a8n!$K7V7^*jA!QY%-G+&< z>MpxxH^e3GUI=yOUR)SyML`7y$VeTcIQeIIBQnOXgGutaei>__>5?yXeO=vj$$DL1 zyuw|DW=XzwmZF5uV)b#N?C>L8rJ8|j{K#9mW30rt4U6=9D4Yc5>0n@ae7>H9wsS9; zuxNclQfY^CHvyB~VMYnu{BWYSQcf{Rvt73gNp4Da;>kEe1?i#axnw&#x)f<~4(GU7 z$&q%&qo9)XD@y3LqxV47qzfYGE zo3`Jm^EfoooGbDyDAi;vw!7qcBF~JvY@DZh zN|Iabx=|!%vw7|m;ylbh$%8_y#c)g>7vdqTGs*KpJVWALAr6KuCtnG%lqs$VS{$ z%~Vgfih9;VMphE;!%=x}J=r~}Y9=8$akoRLduVonLt&P!)o}$9x$gvnOj7-!IuE&r z@@U@bk83%*4DD>Usz0frRa;R__50zS$Pn*}ySM5Ow9isJ^2gc4)qi&vAOXwQK2Wpz z9}fBW%o_#OUxpvB5ZAow_1gN)npgde9zZB`H@H`S>#SxW=8baIKZKh#W0mOWwyJHr zijh{jBY8Xdhvvi3u+^Sjr8Tm=Vd!c2Mse1Y3CntCV9BcPwVU<^;ZH_THwj!Cs*kdR zM?vX_#MMjk&*v}3(5XJ%4&OnNn>JwCuEtA;uRsOq_Y{1s9ah8g;`EO(sN3<{3sjQM z!{Ds`tz9t@R89I9bYt}&>})$Iy!N8c;aVMVX+}f8j0n63N9dbNYSKt4CYv7OiTeR# zDb2(dOdn-8Fo~jd5+YJu*RW>PARpPv$o&xTf9=5xjzECy52Jk&_YH7KT$W1QZIRGa z!N&TV-9Xh6mul$M>^!6mV>TR!l(-X-*z_5w>PAQB)X$1nB9C4Ho2>ev`bjr@6%ncK z?lrFI?{vO{LQfk<%C6eJ?L8SxQ<%GppTR-Xl9hXVNyNPVHr z#Y&GOVcEfSq`3May&7l_I1N-_z6aO^m$f?Jqy)Y9Lqy_!N#1k^pSWaN!zJTHX4L@_ ztyWqe>YdVeE&9aA3n0E%+LG{?JOOfJtAgG(l*-Z7~YX~yB z6rH6O+qLW#OTY3_r(v8R348LF0JS>cYp9aFXmP&MD}xU7em8MnN14PuN{5u-O+it0 zsXhE_5dH@U>bB!_sD5Dwo3`dPxY8cTRu>I0{$?Qw8cYY&>VR+X{%;x_jxve+xz>OZ zaHpjnv(=Tj)OT8Hm7QaKT5w*OrB>VZeB{uAW8WI zt=(o@xxUV$;1u50uW*ALPKZ^H+wNRSY~@=c^@Kf;FHSGBv-@EOrk*q=)1X?rmRjm5 zJNYHHb~%;3f!(skY#qiZ%iD`)|FrE;$)@KqTdC*m7B(W4f6G=gpovlbZ9B)NFv|bQ zuIDovqx?H|J#R*}^6TtyO+oqBZSCY+lz+2S`FCx%1^GnzKbI^2UYYXmmn;95qVoC} ziND$om2BD*&nVO<_E5IJ_a-z|U)!x;AjSVPg1U+f`~Dj{Xxc2__urRUU!=l)kc7V9 z8BnVOzDq3W`-Ny=O`@CWt~_x+WgT3y^ailm>(%f%ApC<6)Ky_{Bx;ZfE&^o?zDbpu z+ej6zMiNBc3#iq>e-TNS=y=JgL$Vy?s_m5e23IXO{SH3lRTalV3l6lVGF;e zP&=w2EX$`(Y8R!NHqZCzu4*vlnLgc3rFQtlcSH#Rs$mDu1^ zx+e0N!qfm|Ailk{u8z8)xvgc z`aO11>R>gLHT0$hAllXD_ad8r1A@9$m>3h)p@Mg*nVvu9s?zymi3(%P2xw0JNT5~+ z`q@GGqY1Pjy~$&L0zQdLZr+8QD^5`(nvvl5M^HC{8$NZa3ibhIq@7vTd6%g0I3z(@ zH=tGr|5+NH)x$`1NN(u28P{wL8Km3!&w(^G4?3xDb+dyMg3h7)ZGq#iCUwAQ$U$E zTU*vcudDDkNJ5+445-xs-(i=GvC<9XuaGHm56~f5dZQwU{7?;l2891x1a%H~-|8b3 zd({prZt?58l4ulT~o}?-_#k(TGdZin>pcL zqapVy4#W|THWw>xVWv@z-hSs&eNfdHC*n6?L(*rMHqKDZ>6a8d-bu)0sIeY;DA(3A z+VVzn6i;xR4ba19LNnI1iyie4E=`ME;tZaKHMgamtJtMZ16R8ioakw(UpRG~b{d9~ z$7N0ft+J(^DVIBSY%I;}N=FSGlV`TVY2;p{;T_iIDyNCN6vO$K&R{M@hV#{>oUbY6 ze64V#RcZ!KcS4`IsXj$#hLa@~q*E)Ac8KY>IQ=PCtwS6hRDf;&gSbIZGfhL+ zq|cF>Wx8ZwTFI%h-B4-Tz)t8e6nxy{)MC|Tcs78VMXFLy5unh@T}DE4u7^42nVhYl zkaM2NIRX@N&NDg3q*qo!!h9oPeENGf?*cj#1e&IMdu_c&>C?akRLl z?srl?M!nn3e#@5mt!eGaUbcn%mIn;EgO{C5%^x*Vrg->h4di2n+||q8%Y|i?6S3Q- zdfA6LQdS#5w|H5;s!?m4Oea!rMP^p*IWtCX^|NQN6`nWb@BQrMF~}F323q;Ye)hx) zkgph4J7ltlkn^ifvIMMl%w!)W=XECa$xQYdlJ6VxsZ4ffALL)01*5<7EjUju3*4~-$DgLdKEMsbr-Hoii zGq(6yzbtOHNDiVge$g*GlV!hihLZfcU-og#;A(?0j}85@-%`m94i`k+KWBGf>i14~ z4U}}F>~iWHxO&P6qU>$#vMNJ{QI;R4!2769?H6VForoIbru-%_iL&=nt08Wdx3QPS z*@HOXhr5Gs0_PQRwt?hk=Em-tI6DDTrrI3eCg&{chB*5vIgc=@x5QblVrqN0>UNa9 zJRK6R52v6V4S83b{T)ZqRJT7Jv)>(O&tdg)IJ<^b*w>VO zDbCKN8vD6=zqBsS>g9QVS1-?R##y~SAK>cs`JFg>8Lj<5SKkP{kFxCjgIv9}{xHto z$0|&BbKLHI5@!cf$%EZZxZ(RO&i;lbI>X(Rn~E>uY!40i5Vx7zim&7BGh}tBo8vOJ zA6WV4#c2JyxlvR|K0(>jFvQ}h=vunF6wC%2|$ezMsu(U#t#y2an`qasv8uFcr>~{z|JpQLjc}2kK*%{x>4s zZ1|}F8^VwEOHVh|gSINxgEmO@n5~I*RbtEgBLxnO9d?D+%|X~4k2nQ{e-whcw_!br zYKeoVDMdet8E(p2>F?Qsd&I$aNOIGORQ05|qJ9!r&%aXB+u~?vP_cP1!*;LL!Kb|X z5&>-FBS7Mwpu<0Cb7FlGm-6%@O!70uIQQkBPTPpp&qyi2B;%s=X*5O-`Q#8?-=H3d z!+UULHgONd%@k{ymU+aq3?BQX(D_kQyCBy$AFEN^Fg}M0q>p5gw8}JSlAg&)Vs%_y zfwY>mA5GSYh{98FBSYoJcti^Mev(> z!8>7$skaPOlj^DZ?YQw#G#mC7cv!3c6zf@_A=RV)ojCbu2u7IY)l%a>$Ifaf{{e(I1@f#Rd zU(;U&VX_TclrMt%JAv#v`PQbt8|WFpO<$@5>mq}kf=4pX0KsZwg*E|{Hg%|?G@9u zwXDtC;T?YPIQAlR)qf*6Z`h4`+CY0-yt1=658RRf=TiE-VM%%*P z-yUm?qb@zjv2|$W z+2<4ffEudhcx^)cw}b_N7&!yRwWXd+mis$%OJPlLxSX5@_w;O1o$oYn0`pDe&rp!E zJGW`pgq<*g)O6%yXKzW5rl3X}hS=*K?CAku3LWe<@gcD_;m@33-g9k-ZLgWX=Wd~y z>-&TE&9}4@_1(ey?k4O^Yr-}S=%b}5w2v+XNuWk(0{(uSqurt;5JnPyrw7ZQG!pXo zU#+h6CoM+{@W1-r^(XxrvmpN~x5}TiJIt2<)mqQD>}tEEazNx%4yrsTt+o>k0@aK! z#kY$b6h`wnm0RP7Ia@{ip3RjM?Abg?@l1+8)MADV-sVOozYQ{|C@UV?_U;21-)|G- z9u1YF0cH8Ii7Semg!GCksDhU!18k?VlyMa@26?@hF=0k(P_46iMIHK=@x(MUpw=3O ziK(X69#&`6sr9t-0}Dk_DXN)DQC&w$!LL=cekKCE>I#ZUk$S0+kb|T>gls4+ug@BG zDknpiM(RR|P2)=hY+uK;9Llh&MkbWlWGKvJ2;{Jm!gy0Dr~Ap2Yli5O94)16@YF;| z>DXbqLr|gC(ri2fe)uMkw%I6q`?`G346CcQ`};d&f3cHRd2_F%D^z;lPOzX6h%1ob&&y1Y55{dP%Xy7m5~Rp&D4| zKj%MYEylXm;tK{ASa2~W+y5#ZlPlh_^3T;F19o8kj}^ln5=Vq!mxKSz&x+>%SiM&K z$E__N?ic>JkmdhViToe0xpMB0|Al%itRiQBEHt^@7pdeoHa{FA-cbFf0*-> zzeyqfsiip`|JyK^V@BV3YN@@Q=I}xcy2k4#9PaKThknl5IG^+GKKn79^NN0yYOoY{c`#OA?q89nb5J>Ip!S=Mo#Z90}6YW!&C-ObT`+v1tp ziCl^QFYOnut<5-^L(#T2xMN&WaI2Yj)J?x*;ykMlP8k=WS4H+1?RJa=D^TKVRA)yt zo%f6zUvL6=^dj*tto4Q)t}eKFE~L)vgEuz#xYkbh;76U`s`hrmDe;dSa~3(n!CW^4 z>%5FDIya;5K;tG*)H{HB(gokR2@}R{)wa+$bk_c%;aj##*Abr7#3SgE?j?P2TSjMO zbl*$2Y;ew&_u$*Db)+vbxRA5j7Hm0wrdC_~D%*KFCFxPyxd@)p;8?S#s~zw2yR2Db>e&IUO_czM&V*vO^CO<;-3IV2Q)wdL)~)Dvz;>FN@S zVYVvpGiiCJQ6(jM=@C>{LVNFQ+j;s%&NcCBr@%$~s^?n(u%nR`{LdELfQpZI^n*w& z@n4m9Ma7bQmBeHDw6MINM>;!%Nx=1`lxAJ>t|w)Dz^|{>c}y=%q-!xf8j2=G=d49% zfNW@Zt3pG!&F+G~Vq`52#=P^pp6)jKZ*S8s@Q$ICBU>k(VB%AKQwW|Rmv(A9)fTB; zPHOjytRiGg7&jI&NEm}RtuJmKwdY0QrG15p3*QpI$aD`VV;cTwp@JB8spt2Sp|a&T ztzvQPpt=63wqE>H8FND4k_C%#>=SE}_c4kA1`l6w(`#m!!q_%y=M6*L?QtCD zZ3JDb{azy@J1%e0g&rq^xiewV`4-dOG`srxmS9BDr0I*aT;nb{Jk^c`7xw7p=F%iK zD83BQ>nx(@gGF6S=^7BM7*(`aJqE?8FB(t=qD-#hdKCrOa_m5iB<&)!=)#dzDE4w; z(k%1U*k-04?J!q+K`a;3`JwT{jjCujZX1nl z9X(S!!G!x`Gp|E??PJ``k0n-sCd@a`{PsTMy{+hAUaQENy2O{SZUq*SHZ!^ur)A?r zRQoW7FKny@3z)e$iI-1)8#O$9tatbIcD8rT?n2#V5z}XDf=AJAiVjkj^wQxYjg?1Z zB2%$$a7Jg%?Bx)jNr#}u@o?Lm1wFH{K9v~y%mr`(Z_%6PBDg>A&`k<1#;0y!ln7Zm zrRV`_{43{2rnYPP=Us}WVf5Udg`J}@eJOIricIotOgkx=Sg@G#^DJ0hC)^OD6kALVla+~3PdB=u z%JlmW!47Akl)J<(xTxlvp4TFq`}&@R`4q$&-|6Tlu%n#9{8QW) zw)gbR@9N~;ke;{Oj>gDfXSdPQF5EoR@3WLHTfb!}Eb8U*gRM^+oDIXfq}7JqA9q+N zV|KV0br|LtoImolp7*D1p_vQwKAdHjE`nxuENr3wQ$0iz*>PhDM`gM@H`cmrp4K}P zV{c|q86UuAS?z;58+B^Y`Q{v}t#?8nCfx2hxiYuObm6SW2wYEV|LnkyE?7SNnzv~y z*9&n`oZd?siRJBEob?J$?DIX4-`1C`MQwZTv-7mJ{dd{aWlx#w9qi{@H?*e#y*C$bLRL>IC+AJLDJlpu}ZtI)F`?$7lE~z+A zx=T;FU7Q#=(%a_DT)1$i?l@fO{qM$g);oC_6p*PE(u=-ctUC$=b~YB%1zm8}+@^K! z;?|u;VdQIDE^BzRsVJ=E)JV1i?O0Gt?M3$^xQPq6#wEyy$PThiN0&*&I?W>>AI31nSGsDNkG|3u z%Ywj`;DTFhP`!Hwk7E{FXiKvynQa2v1oMF2;bKGEKDV=dzJ4@; z^@hUKhwF*iF-xD9O&3~*Zo;G4goZ^)zvkybDXV9rjvnmMFfZ`I#jz~albFe#`nv$;-YGLWw zusBDTjqbj=OBQ$Z9No=9ur%KUB~P}bCfJ}a9=jzJmTfRQ9C}IZWK2okwvN6YxdqQN zEF0+g4PtSp*M^%EY{SM+;)9_@Fl<>$%i5Uzk(YoG!l7k)jKiQ~(X2v;BDS#Da?#Hl z->d~VK@Yd*rc~Mbq*c=EMPaT$NB?Nr)Qb}w3&=CGSu=58@S}%yg$;;Vo9I}fXMP)= ztt__qAV_bEI`GK6r2Vw*79QUHSa~e_v%sa$^`_-Z?_l&Cf@t0@{P=bU`$Im+;eu&# z&!rbNY_Rb74P9C~6BJvu@ED?WZf?`NG$S6xP#N9~6z;m@nO)&dyl}^opS&Oq8vdsz zS0y{qwnZ=mHWfw)&7w`W*3qy)6z`^?b1d=+mac$#1iTx@=LKmc+P=uKv z3Uj?Ysp-Q8a&eB6gUr7a15LP1q|5n*SRZ6Z+k=PDNaU!;tehWcvgQ;f#`0Q}EY|H< zVP^3?4__MbKlIm6hVck|_P9BC)q~q}KD5%c(7W9E-I#=UPm>?wdd}vJR2P?YYxV+s zbS?`5w}^5lS2Bobi`-tx3|mx=31)Da7D3JCES}4f=4MMj_5_t*RZE^A;neKe#=iLG ziwhPybV1M2*aR%;n@K+<`3I}8FRU|tdj0Og7{mwW`McVpf$BRvijfJnWM~<6^X(+d zCVD1c9leV{zm-&2n@({K&dt4BlPzE6A-z&caO5 zJ~s#FGF^RmqLmvrapHunwmKp=av{DN-xk%x?Zn81V|o`X=|kM&xl0z#0%8iBxp*XA zU2fagGkY;2W-e-aphb@wp3c@;To5rUvh8WXywq zaS13fuk!sG9rDy!JJ=Gv4Ne_v$zX8&JN4mt>jH^cDH_e0LI0aGMHYqb!&s^>g&J)%NsCkJ^JSA zDc9_p3R9YX8&Y1Qk~s^kIWpx2qcF#5=9so{i`TiB&r^AKg6;3@v12er_wdP}3|3Lq z+HL2Zx6ZYWov`&*BWbcDj~YL64EFWii;WX0ogj-zo9Kfczg{ z~+_jhaTT03>JcAZ^s zH|m$o$Wi>`oB#ZuYyI%{oU-IYR^*p{^EBSNrDKEb5F2vyV zeaWALk0hC1{PQh*Ql|f?sg3l~KgYsvE=v9!e$7_$=UDh8zU0r*Em@3kw1=Kjnx9}4 z{~QY+m6!ZE`tyupgk#|gp^`rbpKjpySGtwhFa1&f9ZS;5z4Sv2(hE0AKWiiUwvFiD zZbZMZ5&iB)^nd)|qIt2^+#$Og&|c1;?r@UtI$8An8i zj+FRq1a}hLU2t!~BLq7Hdj*dcJVEd@!E*&K6ue6CF2P3x-xvI+AO|q@tguC2!4|=> zg4+omEZ8A z($@piFBZI3@D9P(1V0e`Tu}cm6y+viYGV0a1lt4`2p%hVy5P?RuMvDn@Lj?01OrTA z&w+h}T_=Mme1>Y6?R8aq#3Hs2Z3iUcr@I1jQ1n(EL zvBWT6rQjgJ5rW$a?k;$!;2golf+q`JAb7jr1A<3l>7pF{n^EAILhGLxHhuR*d-u3-TOl z(t8Nb66_T`K~Vpe8~JV&`Zt2B1YZ#RQ1B~3x5n@vAea*zDY&)ZZh}V&o-TN?;B|s` z3es;G^?pb2AA%bMBmNi!=|cp!7MveiaE#z~f_nqa{}SxS-x7g;D%dPIPH=m{C4vtM z>YqxZ+-pLAAo#f;Z=T7QN2w842>y>Coo+FHwct9z&jnrF6EJ-j!RdnSg1v&r3!W`_ zgWz3)j|n~}_$a>gC*QS#e;4$cO#A@Bk%GGj9wE3?@O;5r1n(7mR_-!M&T<|i% zn*>)0z9IOrpudSJUn4j~aE#!df`{hQhnW211$PwOTktT!xq?dsPZm61aE0Klg7*sk zPVfc6w*)^H9I>g9{|mvp1lJ1wRj{(zw+H&c8xOp&lh}B@D;)L1V0nZj5hge1veEOE4aPjk%B)JyiRb9 z;LCy=1ZRyge0v2?5Ik4#3c*_h?-hJpaOhZ5e!SpLg8K>{DY!uJIKdkPR|~!<_>SPG zg8vq*7-!@(2yQO8wczf8GX&=dE)_gY@M6L11y>2aAovf#?*-#6jNCzjn+a|uI92dq z!P$aK1Wy(Gx!`qzcM3ix_`KlTf`1p>AQ+7|dejRJ7sPLEv|aBeI9;$)aIxSif)@#1 zE4WhdQNiZ~-xB;p@H@eN6O6n%!HI&q3jRj$Nx^l3UkbWgn(_k#hX{@p+(B?3!6OA1 z3N8~oNAL>4`vsp8d`0jtf?o(a6OH`-f+GaC7MvII<7YSY?c!%Iaf(K4A za%Ktk3Z5f)x!}!$_X<8M_=ey|g6>wLw_r|ivfwnq8G`c!j}bgw@M1x4YvCu@B-kUk zOz3LYppL-26Hxq=G>&lml*{QhW1iMK}e9lMZUxs2im zUK;1-uk@G8qxgY*$=dgkO!# z?y*Lh>zT7=;WG!r)x_|d=aS6$MyQ+Lrj$heIA%c?K0yC;b{n%o#{XhQ=LQXVa;cYFp0A+tls7-*(=Lo%VKBn;xw;=k|nE$VQ z*joNb?wMpDf3!9J(Pl#Y-vR&mcf%aZnhH$upLzH{z<=5db;#@cP{}nebv`0(C$B5% zNAUk_%tQIVd|C%0O67h6x%WdTpP2C>P`|_19Njtsdn)&AKWLeLa z6wF_qjI>g@H=JmW*r8m`k9oP5;5uIhm)687mX+g${N>Xw1YOE+{7Gh9lOM-#p5HCF z&X>WZbujoH!wdP#r`-U$l;0Hay9ROOSBd|5eh=U}Uj~=f^WZl(-#H~|oI^|by$^ou zPx9lulIQm%uE~#f!@r5US=QSP=9(eX`2R)0e7@QabJ7E%^O`3 zF8^M~|5E)vIjPuwoNw~_{SDXX_FjPgy9WGlTUz+b%OaLEgS8g<-a#biEUtItm*78T zmY9)s`)teN`jP+3^W$1sns38Nmi1je6EL4|^w>#bx5yR$#%?)b;#L#JZaIETE;n|} zn9^{|Eyw3_TZ|vaNc{bz--)~IxvM#6!Z5aRv_+mTW6p$3{CQ?hXvKjTb=GJ1xYlVa zEAW*?ll8;;fB%q7tKK7LUB7>_NA>R4?{5!boVBU?dF8Zmmi_Z&)8SUmvVOje&f9NV zw8wkd`kxSU)}QxfUT@`R4?C#n6s$vhPn!Qbmqv`g`vq56Jf(`Qh|vC~4pzQ7%w!YT z)V?~>1j_aJk);DGvfLNbNdz}@0X9``;5~*tq8qpqv6OhhKwKYbn;f>k71l=A4tScG zKa+)&w+BqsRhbtd%5}YSAR3%LhyX!m>Hzf49Z2y;RsIy&oma?nvA)i@-i^-Fhzx#- zdU-d;d-3{hX1HYl=WQ-gV)>LC0&+?cNQU7Uqi2Lg3x%aRkGc$P=(4 z?|&Q?t8kssknInw9wyN;s zX@8=Y;>MeyQT&M!O9$~&80!8+eUM!ozlM3qpE!sqNmbi1mOm-F0L5!?%G?-W7$dj_ z|K;GV$`!b7_9q9MVjRTxgYdTtO-(LGPx;$x!i_(r>N{v6h@Zxo@ORWi9MAPY?4*e# z=EHw~XHC?^6=*$wiYBu0&LnoxL_?e->s>XGv#LKuiwCy9PrxZDc9^zrKRrFgccIJt z{X!DU`@cly2lQhNEW7_o3{ro(rd*t?*AKDBAe*jNlU2POopOQg&kE>j!Zc)ie_o@D zSh7Q($mPZ-!xsJ7;VPsAF*Wh$G_ozuM1zrE_#y)S7siRp14IW@@-;-@9|wm^;CKZl zAOEMuyGZ;7jLu(X*n`PTh^(~Ht8@Jag58l;)z)kI5BAp+MOE7(%YVppYE|3OmjAH6 z4&tq#zW+$Lkov|iQ>{leQCZbCYqsS-R=o~dB=JvKl~uY-Hs)E&{+fPliH7(Nl=Pn- z{49DW7k@-z?cntwnq!_n>px#H2&1MoUd!sg5KaIwq6)vJvHU-3)?+|G&6l*AlR!Yv zm$jV9@h9y5b=BLT%ntEgkmkQuJq^UpRrvbX^54`9ro_9mQU0XM>>2mR5cJ>acL5aH zHy%r~ey{%=G{%83zi;vX8aIQ_j5uJmKdR)gIy|mHqxm0eE9o%jG_pjk4p_pG z2@1`;h^@|~f#+gJ(CYe~Dqwng1-Z;oS`RCwFByM0$q~y3J$m)72J&Ws!926g}=z~9Fy{3GQUp^dh~JNC z|0ET%dIzR|rPep73=MfkmS*qYq6W~?r`p*LioaF$rzP)cXWyoU{7S{|Bk!9kyFG>6 zrINX*@H;AdE3M>i)$cQ;exlH(s~`aLYddJ4*YI8emGwl!({)RFLX#~hk34I1&Oaio zS%C=JSxHVt<@@Y==3yzCUoj7OY=VezCQ@iudgLiXAC{*vub#_kv)QiqF+A#4p)RrC z3NJCpk?M(aGrO9Em43xm*xc48;HJM}tw-3}1Omun?Qs?#!nzMI-BkKh?BD}3IayCx zc7GC9%I~QBT@B@@kFY0qv->YbQf!5UuaHett$)EkO=TjqTRH-<{uwGe2|29vQ5xKt zsz199=Tfs<&r%692I;#rhqG16*||Awqn78WDmKs5bSS&^Ts4BL%f9KqSn=~z{jb1# zM#_Wp{hz6U95i#&h%@H-hU!hfrEy$fsAJMqly{*@20`BP^mZERMJm}G)S2mZoOXY1 zL zlbtDAH&UIUDO}STLvNF(Q>*?n|CcH=3lZrP9E;bgK_sknH#W_6D!T~OG1!}-`+2F^ z47NhHGzWvwgFf?5Q4Ys#17`;R3Kg-Z8ZM@)*QV<>OPAM5DX5QelP?iaOmWi{Q)mfXTgIW;xiLj}e=gBOBuPDf7#W9w)- zJ`cfmX2Pa|@p^mUbDnaRp=X1Mb?kI!Qw&|_t)@c|?@vWg`6`MxIBy4QK*aZ>ft>gB znXOj(0=mnwjfXxror%fTsjx%(^b69{pn)^k4t=nTbNum=GXl=TKqaXI3wI{l6_Y{L zq;=r$>}H1tgM#z0KcaXo1Js`fWhU-{2z_%&9U8R<4xO#k7l()9n4Us*H-{WIy&S{7 z-_;FsQDg5@Olr|t_OLIJ;J=5UZX9B2qOV*U@1cHT?El8d)OU7e+7cN@1agjwAv0FEEz`er^*yxTc-FQ$`t>T9S%n^ zQT$Uo+y@jC#{r~Ptqw{Rr$?{Ey_KTPB}F#w&b&JKk>bs|z-WZtP8h|}w|4U!5dJ|3 z>iE@ZP4t}|JOs)pZmH51_mrHzu3J1ZRG?>vD67IhqnIc@PE}OHhN1Y2h^*B?sp799 z7Ve}F`sR`%_0i}Niq+~s=jR+&*7R@bk{=@U`mi)a+p1y1IhUsh>fS<-i?&n2Ex0f> z*tx6*Q_E_wcUcV%Q{i(c7Hi*jQJ)IG0hOd}-zS&!Uwo z+zM2K)%Y+9)aszLuJpi@xXlQCb4leIKWAPY6gx>@jW8zmdtK@!W~Ho+vr4WXm`>>> z>7}xpkW~M5^n?l*<0{=3LG+Xor{ZtI;G^HGh)Hhx9PQz0(;{D3+7BWf-s_2C8_Qb- zwW77k*&cD=_>v0gn%;1HMTv`X&2e2B$Jg>4y$|Za;SJ?nXgIvDLOPl^96nIm1-+GO z4j-0r_^7~vpNB?&Q_dd^hc8sPM}fmvN;{Mn4qumX_@=;N0rE%RDW?|Lv=B30WI4vm z`C3jeo};~-H|>N~G>V)}XrN64IK5Om&Fn$c{8}e`tRVGzr?f3^bV}RuCP$B!FD!2; zb{EktjzhO3;IPsO`Lf2;{4S@o?d~q)a8H55BUJT1$9dLpc+3f>6gaGQO55)7G7e7^ zIMDS>^pxZ9fPLujf)mnpj?v){PHEe{RL0@u0*9%X!J}6lXFrr{`Ui_x5;Att!!A=lVlH7Xgcc8%Q~ zjvYp{#?^K=#IkYvakv%Cz*PM(uhj64@FFG!W)L6gX~X;4to}S3TMy#Fme;_(`HAN^ zh$G9nUU+VStD^0*j|;6eoJl z<-+1jFYJ%S-c;;tuhbULEn{(BfyF$uV|2dfya^Uf(^;#FJ=31=vI#HuOnW{;!@Sxv z?YWlo&yAjL&q1F>6MQuvQX9S}t1bO%5@rMVQ(Wm5`;_)F)(=+}wA;cjZT5-2djOJT z?wsW3$NNNXLALfCGJ>RCef2V~jHKN}5;*VVhyAe4Huaw3m$v>?-+j2qdG`Y6l^k}{ ze24tNd4{h>gM;CGNRjh_e%MjqJl!wtltX zYjla9@2eRZm7-0ho*C0uXu$(B;hu;$EjT?>+Bb)0+#ibC9G1!VO&vBl(GeMk{7}!X zj5?~od0vroXC}OB9TBIgqdoNwhEu{`6DA2^?vQ7zzLTH|L$&Sz!9LkpbG$&~iZ`5CtY zNuu)w13q>|e{fgW4<&oGYOxWiAWCr3IPC2fBNV%oBn-ZcL2K6N5oqX^qU~ zL6%F0k$F;3&zaB2JUJM|foNo&64bNjEpIHx+Npt41woW~b`XACkakmcHJWd1Cui1(_25h2>0_PNwd07zBXQOG` z%LCn|M&=bk9XCHl=9R%9uI5JOiXhA7$;iAasOQ{jWd1T3#KCK1ULDlaS}gBmJhh3g z37qwiiCfZWWe{EmnZ`ixGW{vb+ucFLBsZ%!i}wV2P@O8bop&KcPn&I)H;xv2U*OC~ z9Ct?{rQTPr@?{3O4Zz`skU!*yedOlotYRo8%sc;enVv zjK-B==`@gpr5aaCEBhIG+vigz338u(+1s3)vr!sYr`#&;KqFU7vB-?4I+s7yeWPl>|znCaTuUh z2U?5LyPc6pf&*2^Nn8qOWO?y-ExQ!dg8a}iOT20 z?~&lfBf+BbElmV599mkHABUBVC{o2oE0r6OwPoej|rt{W-Vl%u5; z8v^MyOs66yon4RE@rcldPo;_yk+KK#Q@LXPTCsBwsO23AzrtQuIGCdGz6!qG&OR9zSL$4^75x~-}k9Uof`9X3_n=B$GlpB$nQRriMX;3D3hDfer4fmT(oRrP>z1RL*5z7Og0 zLDf-K)gwASj(5h2RP~sSPpaU2wraIbsEN;EfyZ@1wyFaqp415q@p`PxRcmxYuBrzA<>nlAZL*Volem#o+I#Vg#m(JaZ=&Qg@{ zS*$)zlpTJAt5h>^jqi9XcZ`+zwqcQe4~3J!JRJ-y?-NV~NoYIwk_n5}HzbvIICm2; z8H6bzfomU5)K*GQk4dv#w+u;cdMw%`8E2><9f6)pwzH#4krwB0bc>Z7X;(Z7DoOuM z3Eg(|9;ljh0p@^Ygn4EXFX(O zCE+q0mG^3>+>@$i5|R^lJA}H2W*0aVX4zUDS0Iu5PB6$M)gP+!kb5Z3sj{j+uI219 zw6oo+{-lOhZACTJ?}v9HL%cWc-l{*)eoFDkA14u4|J_}H1T0?%L(S@cIOO9qZxmF2 z8GgV*T=S~eYwI^_UiCM60HM&`;9mW$vzmpNH_BE25N_6tRidNYs(wZW6dOR3BvrkAl(Mnnd<7~<`4+1BT05+U<;Cf$7}V`}?FA}H`GfQ7-`W)u zLDi)9pc||IU}xJw;k6h24A<&_OEVh!WkldTI6~iCQjGGPuvd}OKB#yVEQP# zfk_mtlMs>Ox`s8Q2KmTVM(&4z|7#Csa0CKme;DnPxNm?<;<8lYZi|Gbw=g!U|7JH( zwZx?wdNn%_X~UQehae^HL?kwS2CBNz(K+?A;+4pwSHLE#KB#`u4PQk>s=IrQYx+B# z@1W4r#(A=9c|&MG&$teY`poXk2UqoJ^S6xn2tnnRS+uqKEEqc!$ag^M3vDh|x(5l% z4yGf;)eq^_KzqPxpaSzfz%IC~)d43Z=)E5z68B5;rVIGQCDR%%87DHU4v=WovZiK3 z!F2)|P4>f)%iGF@*cQ9xDiHoT24Jh^*CtUXDc8dc-E~WeEL$>PxcKTDG8AtqK04mL|JGu6kD;Zin82Yd}xvKKARS9)d8f!^;X?&~O%xJT)b61;IJsxGyMe+|O_ z06|?Pr$hA%JJ_@}ufdh}K(@MQfblmANzha;Bb^l+|RWJlz=-e^_Z=$ z#HGH|QmgD7>(hcG$}F|ouID3%7M%13*SK~)Z^*16lazYU4x{1Fh<6L>VOzV(wsL)) zN5S!~tzY2=Ih+Tp9=F}Ol-SC*M(PQBAYYtbW@k6WETf(@Cexr=yOvt&DLeTkwstv{ zy@B1b#%vwND9am6vwzxlsASW%n61?Fb_*Mk%D-i+8PLQi|F)fDQyAs{WY_Z$Z06Ey}-Hs{FgQ+k$+e{GZE}f3HmW_sf<4OHuiU@K{3q)pn?4 zQzMB_?4fLb?`deNzP4MxK#Koo1a+Hb*!SPqLDOdWzW=_=`XUwXgCz9*&VX7S@Lgg_ z-!DW1YZBc|7v+ijDeK^prS})guUEt8fbb7OP*;V)k*Gl`xCoRn_$F0qZX;E=8c7g& zFQ8Tj|3xI-pyMT{4#{$mtF}|>8(g*Ez&rSjS5+JfEjZ^+?VvWHhAsS>LhY!Auq>ZC zsa=$6+C1Nm0aZ z+g)iN@QJN$ZV#0_jY2hcE0U%uZGiZi)SKB4?X;J2s72E}EZ=H>)xvgc;=?#~uo}u5 zdUFF1?P~LTksge6fODtMQg>G@->DxE);s4&Kifac_n0%~=jpByyF`V@AqmpD0kt~#&(i3i z9!8==aznq}sMMXfGW~W_Nx$8!nyH-Ww_8*T%UbnQ)%7Z@8kz5qTa~+<@uov=%XbL( zOzL)(Fk_PAxc`+(cqcg~9m2Wf4%MFuPELPdL;qU!XS?iRmgFXsk>%E#gZ-qsQ#sVI z=|;B9y{eUs)wCXiNIj^Avo7AQ*rTYYRO<{B^>;;3w+#FewMGS}fHG~iwycLW30cU zPQkUAHwQR5$}?lE#;ND?S8GVtR-qHVj9g}nRXOem7B^j5?UanMTF0gQM31V0jviHs zojn)JsY)HaeZjYwUWPM!o#Rk)(-m9;8l4ulUDLOfAU1V|vR3ue)n-n(*J#MSkpppr zqs_%i2hc)BIePn@ORr+u7$@R4U_;WYm^RK(&FPmEJl;vjWT>$odL`G^GurZg;36`? zaW+5?p9#%a(=K+@L%1|8a)~o|8rIyFcCKQVIt^UyT5yP`rGDYmaoTD4nmjIZ8fcX* z?M%7csbgblW>-3D;FvtK6;31fA`Kr>N>}znH+}A(e!OLz&%^x*Vrg+%^Hmn{qSfPoRaP58 zw|LoO*jH14NY3j_>XVu5B9iYL@~KSrCqBr(ILT?qye5<7O{x0W(GO?d$+Y71 zV@s`fT$=s+nd~(*p|73j8W`wjnQX{e@f$<-2Ccm_;Ya*iCt1eSAiED)eP?X(vwm6J zY>^!F|44fe@HncgeSF%kcD=LGN|wAMTb9;F1{)U@cdD^zrenaEy2z4j39F%En{Ik& zp@tAJp@alT2qA<3p+g`z-~>_#H3!8KeQ?`<9{dDstz z(MHZb<{6R4{Gg3PcVF|s$0k3RPet0#JiW2m58mVe-QT2r#t*J!6%H_IfA0spFW?;L z$$IH|KalBpnJ3fp%YGp9^Ff}>&#(BwvDEg1J-HCr;s?vw`-gb4w0^@69%2=idpR!m z-u8ouEaaiyBrf>g^@HoFqAR?uxTyHR57tqE5AzzitoXzaenwG;dpS;HpZUQ(Y}g~b zNivb8rwYOSkzO@-ioA4iKn+5V@~Ssu2PcsZZecqg?PaDT)K6PUP8A$AIuFQ`)l_|P ze_`ecYPY!0H12PN?yOZ$r3yEo=%4YnK!GzJ_c&r3*~iCtF3mIcZBgYIUwLtUliKDv z#En0W!#F;(`*69lJe`;{pC*|$Y!sE%vXG8$h_2jgi$PBhL}(!u@g%MIx%uOibe>0l2! zPcs?4kq(aJ1^)SI@88Ji?R2mY`{UwtW-&6#ln3&mxJ%M9iLWRR4q~aknI5+cp+}Za z<+r;Bw9RmWkX^9{iq#yvjJc%7ZM`@#?e;lAiM5V2-GbCUl@Yc#7(H zLt5@K4VMR>vhluSLhmdOK4*VGLE&1PjEVnf7zx#{U; zWzbgmGH4T78MD>CRK>Sqzhj2ue3xAjTgyS%=+8I@H>yz=ApKM`Lo=HaA7w%5m@RdDMW?+JG65Wl)$f2AZyvNr$_xj17;>;}K?)Mv+ ztz}x~LDMqW_G7C(WNMel4Xwd!g*>R*gyBH zw}UINV((Is9{1g)%(&5c)=%yQl`AS@ zteEOQ`SlN>*|4_2X07vQU#vh~R!03Re&)@|7-6{RW%>W=yN{w!u|e9YfA}-HQLgx* zIMg1Bnb>#U@e?<&sM5>thrK+G+H9wjPb0|7-pILRY&!7)T-eLvu&j~8&w2Js9MI+u z05V>O9691M-m#c@GajYOJ3IftNhBGa2HkElW;~jjF=b@UrwUF9T_ zneEY{AEVW(+=Q+=dDo`OONa$Pi!!HJLdIi4?(bB^O_-nU%Ob4Igk`MQ-_ZS42|O7A z>2V5f*n~Ey8k4A>NJkzcuqvgF8BoJ2UmY1bYK&vsdm+@Gh=Q8;!tITdceJeO?O=qT z*vei+S>-o_cEhe0vw`-uTJb-FW5lkX&cSso{yXqL9V5kVkb$xh&MWXg^GrsY6tqHe z3`Ml8S(oD!EoVu-_B3bQ4wlt)13Wjwa})l>@g7e8PRD%+;hSq!_;0!`;;?4r;X-1| z&hfCla~d4YXT!7U1RQ1{!M04)3&&!dEW&@wFEx$JgfLB*Tw_l2yG*nNheHvE-{5F^ z4vt=&@B;mBOd!^ z9_dEmYGTBB;LvdnjfuXRM2E&2xTkB)y@Tf9RnKjS{`3;4Z4p1&gWiy z!NV90{C8eQ$Wmw-|DDaTxMf$`Q_9Dt-0}(Khh!`54D{G(#Dm>CrCcO-$60Rqc6g6w zVTzBRc^ZNxR!l=;CM3SK#Rz4%`I<8EZ8#I@lH^I-UOJZkV+qA}kjpW*CtrsFbL&Vi~GRWTFkm)>wR#w7SOLrq&dvCMJa+ zS4fIVv6xv+Ds^Noc)3K%XFMRQwooulGF~gB&I#Hc>a2^Vmrnt^Y?u?t zVCPzf<&cI|HF=^CleUJMOh!Jeqzc|j(@8&>bdAV55@SkK3^qB`sU5qGbOwOHPLPv zyUf04aq5uliqv7LL#54|VphvoP14MBSfoNkW{jvYz9H6n?&&s^w?!0c_Iam+dnCAI zG33q(12C9oL2pbeZBv^Q`SY~6(wrFPT2gf`m}Rl``pUy(9Fm0}W`5XY-ovn#$?3s_ z_4xO!_w56&#mT6jNpWB?#UarY2maR-%Ze$MM^h~OuPF{HrZ_a3;-Eqb%y=@ZFx0mG zOVR&Nk#L6-GV1Z~Sz}zckb^CAjZ6a8oUiaju1F(4_ba0oeLZXV;&BBLoE9nee=R!f zChm6f=gE-=_D%R>nX#I~$2qXxz(3=&4&jeeO!&{t!XMA~#Q$FS-zW4`jLP30nY-2o z%yf?ZX?fbh$3t+ArnYP)90Q|UyVW!@G)UU;rq%83LJ`#m%DtK7!f6sZsU}3~8R_UW z5!KNI5>BQW0(m@yS))i(28Fr|IjsaQnXobq^~}O8ilPUphl~#x3c+iFb2O@uY!2ZZ zEhc2_=9KJp=1kbWhfU;Ab{Fo=!6zadWTT}X!hculMZUaJAMl`*dVmmUR1`d4Q5vOl zRLRt#Imq6uz;jdwL`V|LtKZ|@Luc8xdT+auibhIO9~u@UVqs^WX@xsdOJ5qtYH6$)RXXIlNA4+xP+(X`TwiT-ZrAGFPm=n?@3a46LN!pM! zp9hQKNP&$qWT_@+mk@t}Ob%RzgXk>HyICl^=!h`L6=)6NP2!u@IRyf}b%RREE9C}- zRX5m?3!!a8U@`+Wv=G*Tew+_|4s?Rc_e*@1Madv%>jQP2#HDYM7_7)br^P#n)g353-i5(2N{Z%9{?q5x6~0VWJ;tt(l;^$$}e(lk@c38W*{~TiEsO)jN}6Z{hF2U znK!3RiY+`}OO`XI2t^u5xw_kNW4v2<&{npSn6DS)o1`fQGcG6@4Lc%xLWo?o8f4Qe z5U(ncCAz=eFb8(@vsc!GJ6bd+>;=Pd9U%;4SvuPXphbf%7M^!g@;gxy2q@6`35^-0 zu#|ZEdKB|50*X9mp@_Y{#hDJj}yOVCz*vDi6jbyN`O*QQ-@n!|VJ%cy!ojJ`w-GvF;b}Hw8Z@pb zf+}{DFg-F<=Cw)@i(?1PMMn6M!Or{u-uZ=17#isr&WrLQo#F1p00TP~*lmr4DU5AX z>`*b3s*d9@)Dd*8&_yF6yFAqBLXT5GR~r;MY%yV?>>e5#!HA+tlgG2P#6maE@!H!j z&CMA{bx?T#VO5z#?7?97TGHx46upZ2Dq~Q&aKZ4a1Chlk@`*;M#UM*aCuvlM@j$p} zD4UhNOWmY&u?ZMEViv**!M|WpOX%wJ#x4m7txyYgcI42ZU-Y9**d;+JY>YliFTCBxct%tNM6D>aw4RXE3-5e^Pg9CWGali` zl~!OPZBSE|Vw)OvPT>UxzceO_9!6G$2Z3s-WgOKj;4SYP8t82AUe%4d!>+dVbeb<# zYSS8}DzcT243J5Yn#>PQB2uw#V0p9J1~~rP$h2w5eDkY&`d4D|ii`qeF$gwb&{PhB zQoKWmB_YKOhQbh1XVl)v=rx?h;jk5@Cn@e)%o|Nz{k@${u&q6vO}h+sfE%^H34PwN zu5GZhX`s8kziDuwwRui+({O)(&k&cGx?*cmBy+E*NU`E00wmS6WD8R=OBq7||Gq zU!p1xd0;JcO2Phvj5<0Q8berEN`F;7v?RLn##D~V^mUFdb%{xq6^hX}qcxzXCjYx= z#}JNIeqinpENI{AT)`mnYm6j2mXUyUwUC$tJG!CYApg#bF1LoQ6)wdKs$SZPMKe}l zdjG1FTDkl_`!Cr$zihW9hb%j2>GIw32U{2%VDB|Oj9H~`HH;-EFA~f4^;@B)ppr6l zVfNT7(7(<>b_EnS&ncLB7A;J{KGXZlHr~oF?q1DiXeaeFiwY znMBI{SZBaAP^XIdi0O>1)u>~A_^uvem~n>d37Pv*POQ0_Ez>||?h%IQ(ZWjXVrOsX zAgb9e>wsd_bmVAzO3y}DPE>=?NN^BpJf#X(`nGyWA~?wVOF}Jm*)p_4c+&$Kgy?yQAwY>vkHVHO@=fySY%OQkeWjmrEMntP%=SGfSlNdpl;xsJ=))LYfw$ zXl=}D-B{Mp80ATRjEsuyT(Wp7R>YW6W4H`?b8&g`H;bPSb=3``FfIQ(CUuG$QB$&33 zZ<*aZS7sR*dR@?$NSBgazF-bzKE|r1y|Wvuz_8V{2GJQJ9DPHb%&lvrPZslC*x||d zVa9IjL9efCm&;(iSdi|ghRO1qCd4pPceI(|Vn}as!PLvS3;Nl)4$CsRa>g{yXUrgw zm(?nd%;Cdo+SwAEI*XP~mb{R$9-Q#FXg+=*G?J_n#=0y^u?lVP>TF*ln;ob$Mz~A{ zy13U7tiw0F+{hc-fcdE#Yd^^c6JNMcFs$TxEbA=XJO=Bpw)9u69P(%ZquJ=Ld`BO$ z?dX)HfvFE?2D8l7J})r|l7}?mIyRvZ5$V^^)@fR?I34}iyTI7zrOok7)gPLL4otfm z(_HN0I!%=_)YU@wqb|@5Z2shDx5C7Cc1qu~%!N%UGo3*ICe*p0G%hNwHfmV9LaVMC z=*K>Sxqea8)Xa*Nla~5!`XAp|5(`88;vp=+5(E{jNv5<(uVbC$Sve2O@S7Acsl0dB*Jn?Zk zTyP_tf}?Yg6iMcUf~`PDf5|k;1cYzw>n_;JHZ119wEb3CWSIGf90UDp^4OIcwz##! z1x&sJd)txr6YVhjR$p0oOzkTnrO@@J<)fD!Vng7~h5whYQLxhE)(j^_Sy#!#g+&xL z)X=3-OHgdp!p1_>Hs@s}X0k^zREEp?!ljb#!WAx`3k$N)cp*2G@T>NsB5TV0AQXX3 zg%LuvFs-!?8i?e5RCJC-?ny}n%qEJMzV%ocTjmNBWsGQ#(Pio70SaJq;nI=j083b` zC{^!dt{BA1ZFRWN?<1jtE=oEiZDf>550|z^QAx4ugGG8<&+2|&zR9w!3wg_`qnJjz zKAey8yc9*7vWTW#RY?lUH~^}M-cIa|%G!wiszX8&QcswLnJ5ajUbk06SixCqoMvd9pkCUOC#mv6ftV?G#5<_ql?-y>T(pHlU`-Ci#Mn^U7+tHdsGf4A#%$EQMh2ECE_zv-3RUiIKc4*(R!7zl=(R|NMRAHtM%~3hDGu2O z*HVng@u?RJgS)js_wDhA-N?j^K)|dFW1`KvaqGO zb#87dxLG=3c&Fu#0L_WqDO@;nCG13dR}L&I-9y-f%C*j)KX>86qjEEQ@i_I4s3tBL zX7)A@^o$I_Z@6oucO?)8ux)rI?lA5+)W2#N9&Ll|T|2f7_O6{bvo|+$b#CVVt+|=2 zczMpPt(n+cCPKt2Zk0#fSo*`ad!TLR07zt1or=qY;(EZSnYjp#%xIb-q8Z^VX;$f? z7bkQM_FG*;+&|&PI!8P2yx{(ej(A8ZP5=@0DqXE%)7&iE!g89WWTZ6QrQ-vs?3a=m zUPqGHvEodrw-iEUHL0SrlMYuS&@6nlML3wl2^GuN)&0ZWSZ{V%=6WPlxmA5~Hvoc* zH(6j@MY}~|x`#S2z3T1crbv?+gEOmLc7w4f8R`;aY}Qi+V`s5DOKTgkX2_Pkrk5TC z>n9oWS_>h=+#cn13l_$!TAE?J`?=Al16iwK?XhIZcDbo7bGKVKlj=P4xH&VMvEuI= z9%-5O|Dxu2Iu`F&Rr!KX@sS03xp=UU;l*Fv!n0)ZV@d78gNMe?weX%o zy<7{A=|p}m99~$L;W|aFYACYJrwi-KhnPaG|bP$gszT)Iv z8X`7Hy&|_3b;VQ~SFTu!`)6NHHTs4mVsN(ww-~}rVadJ3f*=kq&T-9!8HB4C3_$6{ zF?gOOhq{l!b5{$9P#iv{G6v6%9Rqam7+(hw&%E>yp-96-3?4qd>R?dePq^{$0J|V{ zl^=zJ2)zD+N6v`ow3+IUCuk*nvEow2{S=QtGG$=4~kn9|Eb8Q zc$jawVx8i)ihMAU;kzpythiEfKvCY*L%gr6n_pIAx?2?=Q#=v_f&Sf!>lDvYyiD;n z#rqYXRD531=IdgRQ=vFfak}C{#XS_sZ^HQPipMFQs(7K|)rz+$-mUn!;_npyqWF&D z=Zd@YIbh^-u;PV^S1I13Xk*%7ymG|}iZc{&7HuPJ^*@dm|*6gMmWQ_;fnpHfc6I>jRu`xN< z1sl!uD->5Lo~5`^ksk+Vyn7U%Q2dkP+lv2IOv2_feok?gB0uFr|GgDgD0V6iDxRu% zh2o8hcPPqRkC5}cx?fZLKoM_vNS*sQpd;y#K;D0V51D4wo( zk>X8?{M;$!KBD+*#g`P{P$YdE?3_nZpGR2=LKBf4A;_HeZ zD|&os2I(smrzy@?+)eQi#a_h|70*@tmg4smf1>!5;y)F~@WmkHmsM<3Y*pM@aYXSx z#m$N@D88onz9KJ(Dff8Ajf&q_yi4&>#pe~@SM(;D^t&l8S8P`tP&`@jJjELo?@)YL z@z;tE;W>MjYqR3t6=My?f2`t6#oZK-Qe3Nek>bsYcPai#u{>wwZLhdN@k+(-DL$h3 zlHyy6@ku6qwc=#OX2pFJ4-dm9oA`4ScTwC=@d(8(#Sz8R6)#fUsCbLwU5Yl{8TZqwMkc_xRv4sir-eeRq8>ikB(AuJ|v- zvZ-1Q#bL#p6#uOFnW8_<#IIFsQS4CMsQ5F*Un>4V@m0kS72R!(yh_F8id~9p70*#mR~-ii;HYS3Fv=SMemp z^A)dByhrf~#Xl(ikKzZ4?tGJfmEsJ=?G*P^T&~!uIH-80;-!k$Dc+`dzv96QOg<|W z2Ncg&{FdTPigzjgO7SJdHx<2wT5iRh;tq;?E3QyHR&l-J*@~Ad#=1R~_+ zh>$l|{TC`OR@_~2edS|Pb$8r7~9FnNh($;j#F$<+)8nVVzXl0GUXYgh$2b- zY82}fbBY)S5{~K!E>YY=aX-anipMJUDUK)}ued?+OvR0g*D2nl_yff|6z@{ptoV%L zbBZr1zNh%1;%ADyQN(`aS1gERXeaUm6~tymexri!-4$g&X6&CgLVT=w;W{PYCf z=PO>Sc!i?0cgoywh-I+E!}3rN%O%0l{j*5@cU3$<@nFS^ zv|J*;3hki&)~uo9d-Ek0J5w9=%^mOAn zFqMdcTeI5xdwcncO(Yd=kK+-fS$NoCR@?CKARgixhS>k}ZvtYX`3iSNF*TR`9Cb|s zGM=mM(eW6@A1)2#>nHzz@v!9kQoidcK!4OF{-_g4{4c^ke>bi&=UJRH4*#id)Cra$ zEbpz6bDT;%Vi*3yveJDU{ujcIgugJX10Kn!+)6XFwVm?IJI7ftjS^J zBVlJp&KWPc*s^YpBn(eaXBhq$;h(?ZQ-pn2@}+$X^Zf?S!!(TdV;Hd^Jh z-j-9%xMe*!K0|po<2+1*Q|mX7cMMPT7lz#kcU0a7khcMTlvj@bP~N>b57Xe(YT4DY zct0=vg<-UTQF+4~On*{d2LGYFU*Mc+s5kr#>~2|4(y;4~Vf_D%Vi<3`cHD2#ID|0X zpY%Kox*YMsH1uP>{Jn_(X!%asP;5Wio3MO;!?|m2+2YKy9)mnwE*5^wmp@{p8LW2^ z?-_W~W^ulvJl30eLSEtba3?+~S8y3QbaJkX#=BsHWqry3{e}59wJexDCs+Kn%$qxZ z;oO#abDDFxmgeT@ao#*coIR(td4WVfX3VL(?X$c2DuWSfTT`VTVICKsCTB5Y6Q<%b z5w+I4KlQA$ZcpQhh6d}4kN@*U<=$0$<*e^4tK6$<>35ddlj&z|A_AMU}DJ8@nU@1(dD%7{U*DB;FaBi1(BDCJ;3!@!t23w65DYc z&X2ZD3_D&Ihtp0x0Eo9SkrO)=>gqXVZ`T66*!jpBl75*2B+5=6iyrzVLSnPZPegP# z1&`RUoR@jA@48RIGx2TID|VB=FVDv^!p&ppZ@w=^C6wn- zvHWv!h}{z7Cx4Q?SiOT#m6S-eUtoT+FxN0bW5&l7Z zPU1W`{3B4`_`I<^w<_>na(uqz;`wPbN_>8bsT2MyXwvw6`PiE8-w)dqpFe>inTq^+ zE50CgF_Kr~OK4n$Bz+vN!@qt-s(d5P8{<19w!&EO?|~z}Q_|GrN(}1w&f@U=G3dMa zB5@@AFEB3RyNJX0yJB!G7DvX({)sM@p`Kv}jN!TEzm5)wADE?CiBH1-#ZNR082(F8y7);(JcP6%%W~eZ?TX)V)dU% z&V^$}1zu~h;=dEo&2XTYzn5YzfCJ@xR`S`wpTx2~U%5TfEb{L_Zt)i?_l9Fh1s=q; z;xCJUUHwzoD1VkT`}iNSY_E*D7zH`NCj(3T)vDEKjDvkXdlG-$Z-kr`{*Dy=W;ut| zk^aYMwD?=1B^~Blf=p2(2UfD?KGa9piqOo1Y;^{W>&L2Ksu%Bc5)99ti~$v2?MOMS zET0UB_c*DWP+l*)ltt`us_9B(w_)ZzPCZ?I_F6V=pOct^vShN~upP2LV9XO78PJQekFv-onwYz0 zA7i?cOxT{;M>(cXcB=Vh(DAn*?#oWFf|=amWV%q{SDfG$YRR3>n0FESwu3f( z1R21-^685>&%v;OB8#En7hoejAlwDFKmvKO_V@rDj8y@DZYEQO7?MKg%ggq200-@Qt721Pc(u%6>qF`%+`i8mZQ}nYp;j zjC=dgowdfl8~?Ubwh|uMS2z~0cP7wbWshOg+~5R*aIMGs4BgLD5i`+BvZXl~)IH(d z_!*ANaa%{r5WmVvv8U=TXHmc7q?n`0`|dDNU`;#)o*9om^&GmQobY%Q=Na!jB(3Kd z3KjV+@qPivB=v}EM#Phqp{EipwN#xrKh*4=1f5FE zk>x?0yiD$o(X)y9wd`~^j-l)RvEeZI$M?jc+=nXFfst+#9RBanK<=yZT~RBGPa9gU zZCK>I>=ksS?c^53OJuuH0(YXFq&Ppvw}{*sAh?1nlXaot?hbZ(2e`oRh~l|>*vUiT z0>Rbqki3Qm)Sq96%yNVF(l1R1p^WxTf-qYmdaa-jK!h(C)Uej~bi z2b?nFlJKeUsAmBrXTwOrh)B8^z76}Kf!verIu=FD#R>40mfzWG*q4p`vI%T>o^80j zBQYD^fCjr)tD^-&(T%%B84rdsPPH0dfeCO|nZSnaV4>ZYj01GC?m=F1I=pgxo5VfD z%iM;9_~s&(t?qJ9$RajmAE1Cky%ZyUExVL`vBJamDDffi;4``o^Rj!xHJ}8$43P>1 zhS{BA;s)s?+nV3W6nD&ueUJThgy%kweB%s=@q6d)b6(~II5OS_9P6*b!4O?ZuN1o` zb!KvL@+pM+=cA0tU4`EiByU6AR&qBbL0vP{4@d2>$Y58?9YTJ|JzPrM>em?BW3H|1 zLXBgMFb}D7?QK3pK>Sr4YF9%yt5fIMiM?QBvQ*9#DAr~mGCq!sTBj~I+-_d>DGZm? zRUy+Gbv1R9og6?iKgahcQg_?QE8xml^?5*z9Ez35c;r9Ic<(Z6bIL61FJ@dhP}5BP zXE6JWw?-1I#WD664yi}%ZEgd`H{wwH3W`&mdelz1m@-VkpC~E#=8}T{wxr;Hwv*G4 zObh;wo!lQT6dYgOv})uKEjU@HGTtrB+MF`W`lXC3hc6YpQ4%!a7@LAoocg!jxEhZ5 zAvo0XiO}lQr*`6gxJjsg=6MN!B9o zAV-F-)a_1kAzXD<{R2o)BZp{R$r6+C8gY!9Qx>lNea4kTv6JL%hEcI!N~+&8D)Sm0 zRbzd@aONHfkLKNgpz)ui9(R(%ILmh9kb1&V;%hPtq<-n7802MtOnrFLw8#gRaP^Ut zT@1zcSSX=bsm+eNGyEX&_fC@Z=|HB@*5&Ncb~SrvB!*zcUg(aFV1pHxfQ_l*e8qd{QFeUj+%*BYx^r$E^W2 z+yG0LvRuQ&{W=Xy%r!jrM`0FCrCh^f{}F~os?rr6d(`}TH~DZO*YCK|w*0OeZOiYu zGFm>cVq0T%k-FJ+&qq2)xZO?iMvE!;9d5Mk?kth;(}INeS=75-_g6;3!)}t?@kYX< zZnW(lE0OScLBhANut+`Ox)n%=GCboZ&n`&#ts8B--uwjg0TEO_cU*F6yF8ps=y zdRg0U3`&*yi?&@B)+qJ5w%s{YvA-AE?j$eySs~X`42cHV2N-FC7j3)K%x9s|cE_^Z zXL#-trrhUy$(=COn3`W`csEqSMI{n0E=btGp1ss_lSqe}U+pC~6eL_@Xg*ZJwIvd+ zD@ZsNtANxEp1Ze^@B=UTXhFgc4Ks*J_)&?3+Y1u-4fWI=o_itEHQY{hxZ5*&$H&D} z_j^X~c1I;sk9tP$)^WUS@`e zXc@#4!QsS~J|^b6@T17CSn`5`$YWzsP3$QV*&B+CT|zt1A9I(hi1o4L(*+SH#GSP*e7+A(!e%zYUm8WvLHE{~b^ z9LJDv#Y}s?PlIu7%(Un0*nUcVHzw^l;oa2SxU+`K-&Tl7&5KvkVHSWV;!IlX9qLO< zJb8PebhG2pW}hGT4nmOH&IR#sy!UVkvR&MzAmp@r+<6vfCZ|0#CrDl#PmaN|$JBe* zc(nERjC&6hB`+;VzKp|e@3>2Okh~)9G(m!qd{|NP!SQ5ALGto=v{Md`dszf&nU5$) zev<8WRNSRJNIo|1oLi8*rYLz;Jo#Wja#uXsS3Pm>xT56Vf@IETss6Z2c@0y!R$Cu8 zeZ}==>a@7&tEbsL=f_Q7%|iWB--w5OwW7?)qD{4)Wu~vtf(Mr+_kq7@!R2MqzB#7`pl$JXS(|W4CCNNbN+j17 z@;o^q-DC1RB~i4^y(h$hc7664wPR;-$1 z?aYK*fsB~vd5Pp(g*?wsNXMBxFG!5zQpV(YVItt%Z1VhiqK1==$@8K_mZs9=d2u4( z5H)#TlE}(Ew-{e4NnM(7&(J)tOeD!GXxjE$3F%Uk=T(VXE`Cg&S0^TLHaB^0Oaz>s zOrF;y#?!W%Jincoz`<+syf!hO+G52{!>�x`g{N^28-+>h?tP2IOfJ^bXUXI=$VQ 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

B6c2a>1<9Zg@7&_Z2kdARk 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�$jB#4E(_iw}yAid)22 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

8ppn-0;xzJ~qwV!1&s*sm zaV0Vs;?D*Onth|^;yd8*RQwrmKZlHh7GKs%xQcE;J5OtS@s9mjYkN_(AyeDy1=gOc z?PYS{YI~U+e8$>dr}3&BZLbg6SbppK+!MI^(1pxfhPKyK3_fXXFOxS{+sowb(`tL2 zi1weU?R6xps9+GZi|`$!T_LWvmpSF9)%F^Sds)GJ|A9654ehY^SQw7B*8+?;nc80O zqd}*&z0CEy+Fm9zpF-QK4;yBNw$~N(DLBuc6~Nb}_NBYpUgm87xVBez0_}Vj%<3zL zVf>+(tM&CZtJ%@|`aMQgYJIgJcK8eUGvGN)6phx`IyYag)|bf_w7!0Xpge2n!$3dt z=NXi2`hiCJ2sh|Q5vd@!%>1Rv(24AJ(E54}j_|YiGvF-N3$?!T2RlXKYJHhgLhI`= z1mTpWKtJ>6@0@ZnA{7K*F{h--VLxZXgVq;wF>E|98CqWq&;A@7^@uVGSI?N=M;oBl z7yX8S7lU&e7e%GCd)9A)T9)cRsbb{#_Qwr$+RWZM|?zVKlB4eaapXJr@Qg_9yq z(9&98oK~f^zMjUgkk0)jP0@2jks z$H=hRjNVsyKA&M736I0EA5?`ke#-|j{RMEIg?;n@T!gRuKtAt!8t%s!t)Zp~ex--t zxDWjKJ8xS83||!@CpW{r0sELSFyuSbT>lerf1mM;=+|T;`t>2)f3W=^`Zd{ze%*|# zyAC_zLG){~5&hzCSB}I!_F@#FZ%S?+u7Uzzhn$8C96KDUNzfIWnP=;YJ*=X6#IC_ns5w!_D)1pMU7(TM(G( zn0XBzoK6}uf5yQF*i9z*qvQhYwt+`*;O8F%TfT*XFFOXtAj)X$#=sFcI2^k%a1sta zkKH!#I1TWRF|a7`h+}|1R&K^_3|xSN^RXKPH{jrU?6!d?X@Gx>ffECv2-2`HA3&7* zu^R(VOc^iRz%w+!KgPi412M}2A-z@ z{xJp?2fpeU;CG9&up0xX;(*WKje!+7NMX0i2BYn4#{s77maj7KXap611pLY;^3TEe zGvQeL=|p7yym`Xs;dlxMKXOxNp~ZfVsh0$E(e_H1`gMeE$KK7#fFAgU7`w4@6b|?c zWozOM__G)#7D4h!zIlN)4?wu;>+r0B=QQJag1;3(^G(p9n-$-QYmIv!=Nt`RKX%JE zBa3h3lw>0{zssq|KAr&+4uH>jaGk}|+Nl=fz#qXM-{D!`a#C$V_&rR;0F&w|xE@QV znhAe@1^)OB%le&@3O~58K4K~cm{fz|a{zYy^q;v);`GR~eJTFcsIG!w7z0)|2N+g_ zxv#CXCa++>KG5f@gx{3vR4W|$9B`(jk{FN<9L6zfiWzhc9LqsxYPID%$P6`8Q7((639&!L|&KXf3?-wyY!*eRiIo$Xvia1w@& z-}_Erwfx>UpBM8dkfAz%it2|oRKQHNEo zSZetf`0Xn={A!vS=l2EJI%cpS;OfJYpv`gq2n)_mQ-&A50*GGmHRORiHNGlV7FZT{ zYJ64Pi<=vFN`Y0}f|T6%3x53{7yLT9kfK=?{jZrhfcjVmg{(kYqO0heGx3QF_mM#U z)ZA&gQ*w_k^xJ+1L%FMayfGPSUUs~(8GiVHatQUic&6eE3kVtK%6NITze+sXU*m1< zuL&OQuTnQrruJ7E{WHDFZ8@-sUOBKy7oF>~{QcL=#Q6_(0`S9@aX#mY4;m23Wp<}{ z3kE}uH}@E&$N3H)kWP|Oq|;?AG$r>SG&bAZ44H%H(Xf7)%*lDUH;J8~Vw`pOfawF8 z^37Qg51rk+je-LLB*b(K5I*Z<;wbF4fEbU=1kgI!o6I>rz$8C`;4}}yGlY};gbnHB zC&J&e`E`te4yoo7=a|DK#9)(^6UPCQ%;CJWp(P04ZNp#%GYg1w%;6%!$;SduK3tt0 zMuTm4I|oO8YmG_&M;sSeYwm$CO@==4=Sm6;H==%Zo!tNnik--}n@Mmw}SxUx0 z2Jo78x0$}K1&Cud7R`IudAfkLB4W-<3y>VcU$fa6AC2QrR_rsC;&aeRxzd;Q(ZI>0 z&hVRqic!PQ2$-Xza0C@C1P*rt}kGC9880jS8v73qxHz6EK>0H>po(U)MY>RQs zb0f8*WOhc_&1VlcpTTbVEH(Lbk}zv-DmvVRbU0}}Idu~L-E(=eiNm^dP93$gGw>BW zN{=O)>*h3Tk2!UcFh6c8I^2YGIB7jObrSyFb2&LxGY@bE_yBgO{5{algNLxA_YvR0 z?zd8gJT`Gav-wO?dIv3h6xtwfxSWlqcVM@}d9)KdMiycqGGGVrXef3xWrCeM(_+YE zV5>=s$&tOKJrVik^y#xqWEt`J`>m}=_y~4f#pCU^5ni6-4Kv%*WnxHq# z{MKuR{xak7_nWxS+h(5hn4t-J!_3=WGxV1kkH6o<-DaD4-eZO)=nXUPdCkyYW<37z zG#gvV>(~QWrELQb-oOrtO5$zDp9k;R{`jknDQ(Yrj+Z^IXQ6Fzhg=%L=`ZBP&fdTS zw!MIL=GksTwv*DEKOChtCNRdtLWX$2dlCHIbKrnxGn=*@$sMKr=F=6&T#q6fKf&4` zyEwq@%N^5iUXiRr?0|JfTA4trWP*5b6mn%N1!lRoy^M5zi#cLCc&A0lY;z2f zxu6;S)8>L+bLn(Qpe+mh_YpJWti{9`3c^-Wa` zE2?Ykh;o!P)vRQi)T)#PFTCAV6J`0 zRcHDnY7*UilBq;yl$xqcH`jB{^g)Jf556cB!sVf;heD*NFq99iBHyq`D1SKAhlYp# zzLHnDkIF`?p^^k8FMqlCInh?|3i-l;)xJ=9dB`7$gi8vI%8^&#>Tz2&=~oitGO}G# z_qxjtdR;-6)2X0y?Vw$*PFEoR3aCIOA$}FekAwrMNMZj_FJv!k9A&w@hgon24hv-s z3-uZ*RW67{`Ek90cY?mYFdPV6){aZF{oZ!`E^qghte9c){|m25lhLXg7s^HEc*&0N z)U}dodO0oC1Tm*xQq;Omp)X~Ij^o+Gf$J6e;vPdcDD;IrhTfpiZF>y8QK3KIW9Ur^ z{n;KvZ-G!&7)2TkoN!EpDq|yzI#n;D)s+=44*Mc3?7*R}o>n2_M?&}!=_$T2YGqj~ zoxxOOugQbqz<5ZnQI9JGRjn+>_XTo%(^0u6EoB{j4yOzI`~eIIi9|J4usyw|s+H^8 zrNtV$(Yo3Z+K94l@kzwsvKh+*+mO_ddIm{guHnN%>xEOTNzL(MB%|2dIr^Pc`l1;TLa~8wySB~th ztg3S^IxWwUHo>!&PMn0Z#+TNkSYfBGF;Nw-PFB`BXZj~dUg5OqJA|$OvtI?v^ESWA zXTJ)T>3L>mz^0n+!S(3D@!E#wN{k%!jV&vZHSw0#q}8;dF`jH*(NvvMbT;;Q<0LZ> zAhn$33|0SOM};(0OS3x!mDDvi)|6nf(NI%zM6!BCeN%HuT_Rb%GLft)X{oPjE=jhO zjxQfy(%RhIkm6iP^NdERLVh>G3Y?u8U5q_qe4t zsl0nx%soCjCq936biXv#|3PW2{UTVLL2>@%OrJ25GV>_6$C%EgnMs_V&TQQvOnGeK zlcf!bT4xyNP}4YJA_mr)s%6eRR5OSaq!!{eZ7r~1#c{uAtLHql3U>iBo3dls-P1Fj zG84I#)rnP}aoXGp(u$J}%}uqD>Sjz3Iibb8Zxy3s_D5M%{I#chb%}`+O5Lf`(w1gS z-t2i;WjE9AbddhF{1l5hUuA3a$|{vn3Uh3?kj&`5tf_fr6R%I@WU^%btZ2f3+*DH? z@pLXTUC0=aaU#z&5z|qpysJ~q_#E9-ttlY#;!I6VRg_Q0$Mi%J17JD!$(56k5=PTBpw4LTAPzhVYM|U z?ax#xgL*tNYD-wDW$evXRdW-U(ef0q`8=pj-<)i%Yj&n0YWJSr-JGnhvCon20Z#AM zXGDEyMOR%k7ag6pFhRszvLVB4`c{v5U~5?^Y9BE@AJM$ipJYvnpW!$SLOgzCZb9e8 zsDzJqsXF92(!JXn9bkNtHRDTNGZs8J^0-Bj=!8Qf=3!f;bo_)V6ULWLjEqj!G}I(g zH3vtQ95Me`^I&dDaV3V$s=7$B=8XDOeRET!^w2{mPMLCQq`0xFWyOptoUo>?xN&?- z!-^FATI*IcR)R|#niH+Xc%U~U)x5M79*JaC-3&bHJ7ZFDW2Cq?Qha=Aq0giq^1=yYvMJ@ zBz`^^jZTe>o-lFhlw#Ij@$&NG@hd8EKUy*2;7?Pp_$@1b1ceR1DmXJguV=x4TqeSpt@JzD_Jfbq*B&lWW6 zY4vq|@Qm2A1@QGnX8f>;Ki55N*b|%i$ui+-Pks@R-U4{3)4K&sX{UVxX7w?z8$T}d zY=Lgp1NZ@ecMISpBJUP3t6imi0@eX(2aW>P0Q+}?IA-1ULHQiyiBW*#sn~hBtYd0j z&FvOm+0Bi%>26Gasa!1M-YB2U$M(AkU3L2~v=@~t#QLlyuF``rz9d0jb5J16vmd`x z8AbO%`wJE7S=~YRVEn|8gqwY4zrNLeeXC9kH(Yo9264Z>m0ce77$#XR`}M8ta@enL zWtYQ#eJi^h_Ul{O<*;Ah$}Wff`c`&1{Im3}W@8S=`_p_eE-n|(7B3ZlBJLF56)nsO zX=k=LUu+i76fYF77QZ3>P~0ZIF1{!F@gg1V_ZCNrR)lJC7@ToBUrEe0g*S@J#ns|j;sqqqUn<@x|69ec zi<`s;#fQZwNTmOn0kB_z`SkKEr79}>5UKO_s8Dnk#4v+U7Rm| zoLoQsUah9 zUi70X@pKYDX*-WZzAq5hitEL@#Ct@eJB4&F(hYkbhzE|e-6x5sic7`Q#gw>GJV!iF z#3h>YF`uj9;1I&{!mB)n=zfMct>Gc!c=1SajyPZB4=QQrR52kg6Pv{g#7o3Z@fz`Z z@h0(h@osUm_<;Dd_?-Bn_=@-|@i*e{#rH+NlgxY{AoAD2bdL}xi_^tL;z?psJVU%h zyh7yr&9rx$c#r7lTJT+GhI5@S@_BKaxI=thCuYk=$@mTQ$@r&Y@#BYh;7WrB6-4RMZR23_b!p|SJVAB(b0W6 z0DYAHe3zOWC-QY_x@U`gqnhqhMMvjph1`65n&Fp-e1V$oTSUGoP4`3M)8ca?-0TxBWoNpt5pNK=bO!zJ z6#qwjKzvB#`_YW|tjM>a>3&0eNBo2MH_^{`V-b(9Ns~jwQQ~NEf;ds+o79XyS3FTX zS>#L53~v_s3N+mph?k3<;&tMUB43AQd@jLG@?~i9S@A`YYdX{a4bkX8!Oa(==^qmL zS~T4e@nEr7oFdK;`JOWGGmFKzSS6k=Hi>+Pnei_WFBdySzR%3?yG5>>OZNjJs^g!c zFXh~C$~8_`h_l3_#JS=;aiMscSS{9x4PuMfDz=Gdisy*uiC2hMifhI7;zsc<@g8xr zxRpdXJ|aFY|0l&|9M2Jcy~g#v^v9q6ihqdQ;}sveMW0T;$oV#4kK#r85@0XNMd|1H z|M9X#Mz;h-j&EP=tz2|~+oais<1gdkHfOf(@fgPKAnaM#KQ12YvHN*h*UlEy0qY&F z;#(DRUxJBO0gmyN3E#RfJI{A4cCWp;aPxa5XLIZw4G*uq^{^L#AMLRW7?1Yqu`{`I z{p;ain{+nEUJX3F_8#)&k9Hh;7vb2G9gFjzOGi4^(qZR!v-c$IRbc+i{P7z;$KKUA z_S&0qAjT-C&^=)rJ;yk-{xBL^y3Ck1$Hpyid#@vJ3C@cG;dy&vch37w96M=nXgxf^ ze$9)=+?=p);Mi+#Zo=-%w1>-a?fuY`28Y%z*xSYfZH~Pk!0okH4SN*`q&<8*a_zm0 zVn9<&niy-dcqj0y#-!odl~k|Iu6h|7wNQR z24@|ORaoGO$4jm~_A8##(~PWNAA`9g{G83P$0G2?dmi~4;shehIn)nc?B6y(y6EF{ zizbzql|#M=+i5vx&z>8z-}SQ3&R+&NcImVI560isEgET!u!3_6?h9I3Td4)~-pK9q z3ckHH##nFPm)0%1ckacpTW1Z1dQnI0yNmrpLRa)PIzcDLmc-__4QlHHeWE3?b!~%! z(1@ zkiRT?b^D}XS@dV^^JA03L!%2~{o9tb^@bi&AbLgHq%Br35Phc23ippLfM0HO&8qBR zZuHqzeO70O2O##6)r0(n(fP5C)qS9-G(Yx})l^Sf5F66I1ZNzAqjl|rf@7nLV*jtb zI6Nd8yoxGH*0XE37nB`n?d%_1=UcNLxeQ$!?pzSNC{{2raHYSaN9UZ_pe=dOR2sA; zzjNA_0_ZCB=`6E+lfDsssnS^#Sx3YUvF6X5IqM?$6ihFyxOUda zHs7`DaNSi7B7!2!|NRu2m2Mo+Hj-BH;-vYjP-Gp+@;+F81lu>}={ou*Dl;3^mQ zy}iGccZbjT&m(_t0TW_(3#mC1zlOU=XCVx%I&bW=eCV#^G#S#F|x&1ek&B2 zdaWy%=;e@h^zswI$jb4zYc)$-iDo0k{nj7U}`3-kKq???u_ZcY~FRHX{@ zhA+Q4W#wn*7v^tod3E`S)N85T6{NPts2}BR*U!(rNbP!!Y1hFk3QXC|k1cT9HA=7T zs2EFj0a|w0llh<8WYrS1yRp%$Ru!Wa{d5)EP~qzNtBbd=K9CYhUM3ytiala} zY%SBZ4>I*-w>}eYtR55V-G<(Tw7sLp#5&M2a-v7ao@mPs(`~Kky=p#sk_lU-uvKh=6%+btP z&yHha>tc#RazqIs$96?qG|}GIdbdHqwkMH@8L1xba%s za8rs|T?;BIQ4ap-4XYr+72UoHE8InMy5?0>uI}T{iQc$68|C&YMu6VYysi@}MzmiU ztBqBnET%?pYd<_#6y4F@CpWaWM!*Xg{hUMMXGAw^rOOKq|<`dad(azUeJN5(eBCR)eE!s`~sy3k*IUDw7~4q2T!9eLN}Uu}=Q!LEYa zpIPiJgRFIV8?4Tpb@|tG6q=9zRfs+{C~pD(=5)3!z&P?^%lz2b{KDm9^A;>0o72hu zm0y@-Ut7SxIX_+AnOqQ?89O2NVsd1DZfa!SoYcsii&JxAPo|EJSzQBL3UlVP6y{yr zQkY*E`w?Bs;aXmp|D)y8a^|3SUYsn;>6Oe+%}E`eUzRs1KWF*V$%|7zPF*;1ops%; z=?`6jasH;*ow2vSJ=nT)*UP4l{Wx}HY$)y*J*{)@JJIOf^}uYTpL@qYK&34yVI!MyMSES$q-ifG=iTI(if{+(FB;3b z{e#7)$9P<4{#xsTYp;#@*M+ZLAKN_hfoJE$#NwH(va!sGQ*xadqWXfZ}mJ4Gi#pbN)h4Ppd zy?j-^xeGtNDzE+U@UZBd)%Jb(vemo~|9Ca;!gJau;odwldP)1J;K=Bc?W4kjqocN1 z#n!XWY@ZKB!#iTxYjW=9J#y@6)3)4sTG^JdiIH3GOpLTD&G_)g{>z8n8-1cEx8kGz ztA>8d99=t$@s}a~n~1+GQMl#J!~$pm&VRu_V*bpV2lpK`IJz^sv)7~n_IT2_;_w0X zeYS7Kz#M-^Y0iza0v%Ixf*4~4TYYju9ixq&;d>*(>yE(vZwx*c+jl?PKc_2aU7wD; zuAI9IaSwcHQ(xQz`$5<6fR3JBMIF7m`gip18h~*zGG_1#C&l_~%+xrnm<^4?k?Ug> z(_WjkKDJ}l1-p2^3w2J*33is{1Ud_I(AGP@y(_yb>$*;ih4Zu5qSv3`%dytS>IPQM zx^!mlGtpQ<|30_#e%lZC+hrAnExyuoalf5|K8+r1S_%7ksH>~x81(X!ajz^~J`KHm zNi5j)%jI3mPmYzLrpwj>h71@OL#9Z(zWr!izW??-gGL@kArt7R-AOv0RPCG8B}nv3LZo^^<5U z&W3GQV=)1TtFib^eD-iP7JaBYS7WgmpO8b2#^Q2(JaIJ^&qDFL8jEvTWwWyJiP`F( z*G|W5;~1Rx6`FQ67MGyJ(;ACkWSFC|cmk@-)mY?`j3HNJ@lCq+uCdq?=SyoWnu2sR z7JtZ;j>h7{Xp64KB6G5j8jCw&#MM~b#%wwoi=`}(GsC>>AQogyfcd>qU!O>0aT|-+ z(O5i!+1jJV;zPU?M`LjctKQLAY{qFrKODjZPa}D^(DCGu_u&|ocQI?i(O7(fm;VVh z7B6Pr9F4^#Y%+V)SbUm=;%F=`W8NH%#XH%o9gW4+G~j3~Qp>~DSmZPJe?VjLEer=9 zjm0m~imS2sDzDeoSnOgJU5&*xJh`i}_$Z6k)mY?n?zF}tztu@=ES}76o$?>>5aN^< z@tcFR#$sQlb2S!!z?iPa;s7=jS7Y(dEFo88aR~dgtFibZ>+c*}w{cz(SB*_;ES}F? zyBdpZ_8yHzKF0TGEb?0zkH+E-hNd+Z7x65c{W)*L`?r2HT?)@(eC2mV|Bf1q^Vy6X zjm2UVSXyJz^mkWd@m^l1tFd?xi+0Z%iw$TGX^ln7&V^<>8jBCHow^!}udpWfMPu>L ztYlYX@f9{WS7Y&eEbt5c1r%e3*1)$z*F!BC9z{J^+OEdp z8}JJKBN~ew8C;FU8O-WlH5O+g%b$tHVo%m;S)iyE=N=a3=;LTCUi|;LdlUF7inRZ? z`<$E*NDN^Kn+PWehzd!7uqhy$5qD%05e?ZO(U62JvI@APqJrYM8)O*7WfXT*WN;Z} z9LHf46}ORbd==NheHqmI`#t^ZK79h?>wEwA^WOWp{Yjl~*HceDwRCk=b)U*96e?+t z#SyrW{vL~m<4#T5WAO~MoM4YdZq^*^vA7ghC$Y!kee?x;Eb{B+|Fp+q11cb~$KnTQ zH~(MXWAS^I&EI43UNq5QkHtn@uCyb)Z4~XNoG(DrQ@iS3g$5h!v3N4BN3h4@Di+$` zWASEI`I}MOiZS*lhWy$+7AGJve~(4J#ZTU2aTBgwVvj{$y2Kuf*HU}6n{HFyjx%w! z5_>H2O8zhIvG@eKgXBFH8_gYi`U^A zC-zvhj0bxxTE>Gt7A@n!9*dUo{}=XHT!RrQd5=YId6(E@(Mk~Pv1la-_E@wM1bZx6 z34%Qqxj{i0NI^CW})62FG z+fKAE?k@C(+!iA%r9VDXz0-$q+KvBSmu(-d(4lxc=`(*8~aG7dmMLGu*YIIbf>`{i`-r#*kh4CWARz4`FkubW$j&?+LITw`%+r-_gEYXNwCM_c3Qiqg}0aEbsU~IweaHn zo|WwHvG^1&ez3>lpIGDm9*aF$9)FL;1DKuv@g9raSwH{Bdn~?*EGF%-xE$FG_E_Xi z7VNRe`zY9BaW$?%u*V`t)c?&r7LP%r@%LCC30Es;o?_$!y9*ga1bZ^7L_l(#!i`}{4F=@}mj`$ioyyxOdRQCS%T+BtoN$k0JI4&0U zTznhJ?6c?MnXs5q1NHswx%dqFjl`ad+v)o*nui$Po{O*HtYcp^*u6J6_sNrsmd!mEE#zP{ zdhWSso}R3C?73*3f%IU{Mf1$0+Bfoi&5MXV7cFEoJ=k;6Jp8F&?zw25U1(F>bJ09| z={Z)OchK~>=c0uSq=8wUr$tul-H`>^SagA(Cv;kWl+9*%Fn)2c^(XDwew_67t>0^T z3luWAl(PAri_;L0;zV~N=h$ z&&7w)dbsD}Lr_4z=rsAowCGhG}%G5k*aP<*X%^)Ui zK@ePu^Y)x`GY7u#Mhc(C2VM4``0-bKK>ZG+ot1JTJXtA>m6dWY&bxn(;h1|aGHc!M zg1mLNsClA!RQgxXRIDIL{Tiy7SFn%7o{J+O$zUZ0doJEakK?A5AS9(D=V;t>aTR=N zPWxW4a|%wg?Sr=k(mn%%tP~fYsi)d0jkf11k;`$CZ6A!7&8&L!G2Ne@dIhv%H=&hr z&&507Nxcpqoj=CqvppBzh0iW@RCqp`UFZOeR}t zMG=^lvX16|#79;N%~~$|BP82C_Mb~nJri2pBe=BObCG6ZT#C*;7iS^_u(doF$oPwJca=)8=V zhhsP)n`AN9WU6S6O9|wBNz!Wd?gLhRTmU7q=q_nRy1twvX1BA!jG=_>CMq zk8l*-K4~pBo;L*cT-*&$>Z|zZ{46EhbFm$kdU>f~&&5#DvFGAQ1R=EnK(>ACKeeF< z&r12HrABKuA(@O5n~-#Ox^s~=_grL#x{qPOvF9T7W5d{gV9&*6&`zz!N9W0`v8-*8 zw7cN*@`XJYL$!cC7vDq>^7U6B+dlYs6KVzF2eDV6l$El`K4~(xh_@Z~T>KKA)PLZk z^De7+?77&jtDhwHTntqO_FOy(K}d28kZm8okmPtMWu<&(Nz!EZVQ8e>bCJ2|K8t+> z_FQDR?YX!BD%f+enwq_k74Er6S@&;nvvSWx^Sp~&lzT3kX922>doI$`vH~GklRz8y zGg=!oYVNs6nYZU+9RC#AkrTAUo{OATanD5#J1HH9Fr`?Uw=;G}PQbY5BEvE|+J20Q zJr})ybV-Z;71mQ}xO)M*X70JzkDd)o9D6RB=SqfP&qedhqX&B~($i}I62yio2gT4e zW22MR^p0>57ppv>=ia=bC)Nzxj*BDQA@m^kc0gF?xFg*(KC`p;LzvU&CEVH&wxh5H zf^rIPL^&YLq3{U^9)R=qC>!bKGAe%C++m{L#*3p|+YYQh1ij!6n~4kMj`oC?KyV&4 zZR^D`uI;_}Cj|;>;uzO~G|^8lv%QEVcTd)r|A zD+NmBI?JhF?`EBZf6UB#0OD&A;TpJnhViVjMu){wx`QBo5(3h{oQ!;gL}Siwc-?c|=#sdM6hY$*I5X0KlRCJ3s+o}$@LdKcBcH$sS^!J2 z#Em}f8(9a9wQy$SahyB~hlV2~{2reFT!Z}?Zy1Ej$mq-5DF2T%ZwmxpBJ4xBg8Shq zSdWi<>hymeXD6oN*S+BS?|^3^PUgd*Hd!xUKq+FMXjYE9)Qz4@ldK#5kIWTtmZSAJ zSqEn&+JX~)yXXwshUkN#TZTxs_u@|M)A$C2Vh49U+!+x2k=llh&>6Bz z5&cMBTUrO3s2d#aR5$G<#J4v1D$?2km(LKpxSzxKA#>oxy9Xx`Cyr0|RCFCZ6t6ED zJvUg*XNbk)i_Fn*iuV*wBF-p$y3^dWF@C%&p|OJT7-I46g73E$&)VP{kVhPTqMLNw z)7-TAe%w9K;s9mQ4nRj9gL4MFh?bilfv$aGY;@d9-N@sN^&x^LLW!^K^WK7IHcran z`hNw_Vw^05^GqBE6A_1>X5un8@{@0ZUl(5mXC~I;WF4HDcmgMn!#TOkMVXn%NBz5( zyOFU6D+fEE@DiLw{}3l1z~xiTY&htFe}Y6t&Nn06KgC_)Mwa_VI&vxrXGZ$sNPc>_N*TTo`t4ih(+ECwJnUyV2jMJBVS2G-fWRKGV)b!hY?H;guBNclnrSkt4 zLc4%&ftt;&!|1~{it-Ded*F_+ zQS@OOMAI-4*-M!Xq7T~`S`68#aNahe58DuWKm2?tb0mN3(%oVsDBpea)%kE6LH}T~ zneb18JJJTwtu}r(!GD7%!&tY~hR-gT3ABZS9)`NDHhQjw|9Ve`k#4IEo=0NddpO*Y zHh4bi?S%~g2c8V}o-})VF$dTU2R+z(((HYYQSAdb$YAeDv-bh!IxoYGuz~ZbVB8%3 zC-nF3)3!QhC&rT(;QG$Tg?*_H2A#Q%`*tvt4ri^qZ`(+EL^hf>oDF~**aDo5h~zqM z`X#+_={ay7+5rO@Ts}jrHy8uoa5%+##^P;fJl9SCgCB1$G-?=+Ar@~1d>1F;v3qr$ z-HaD;)4%oOJpql!8IK_rZzp^&Sv>2s_E2TOGo2jj} zXsk*1m9%+&v`3)u5Th}`qV0h1`9!qGEZQ_ido}GIKUxzOI9xu}%*ZhKhQP@P z-=;?F*ZkZ9H?q|?G65PV!I_bAoRq@luknp6hHoL9+HeNs*zb=y8RSM{7y_&fUjvO* zaMp(J#>ob_e5zR+ei6Rs;bbIkMt0H2U^jA{Z-kGnpTL=sC}uYT-bi)1jZ_!Fe=ZycpB3r#t@wntYmql@U7>Mn*Ld8xhtusl!J^eN+Um5y{S@s0JVf!=hVmI;(R#zz15VLO zEZTBLyEbi(AMHda9M5PBuxPX3E3s&!*jXH5(fHW`&b=mWtsj-YEp$1Y#afS(wTxwv zmQ&T9MeP~y=B(HJNPmIOpZ!Sh;bd13X{|-#r$xFYDm(pgO zxVBfFMY=U>v>$0KbVkEjq!~Dw2IqBvJ8jwC)g+p4L z@AAi1T>G@Nejj;^Q8}7E0j0;`?5=wWC)?qy*?)+W|AKRlqJ_g?0b6b|;d>%K`LX#B z*b2^K=isC}Tt2nT#1ZffhLerSE^X|hje8?U;O-IZ-Z77Ts}iB?ql#h42MB8jt|asS0RdxT+0^YNiZ@m#ToP!f;a-M_k(uf z2@=(0Bj8ge#0Y5myb+ussR&~Pvjc%MbVxe#GZ13O86Uyv&3r=kX2k>Tp8qFu@eZ6f zD=x5mzI6}WS#aJxUtqK13i!{2^X~bAIPdu<;lBgUyXObnYjwt)!b=%A$S`9aYW=_`@b854?)+iF zjJ0om440(9>mZKP>~zzj;Viv-oXt)@#+2}7xRDKWY906ZHsjErN3pf-QB!e0Zlj)4 z3nT7~RyqCAYAPV@hpEP)aE|G`XgbTOb4IJ9eVsCd&kS^4GMzQlIkQ!zuX7W^uM2cu zH68wzi(Ay{3SWm)>laOjO?oh{o9pbPPIdHe)Zq=0jv+qAVV>`0hT>!}Tt2m|X-$Xk zBsew8LfD8oduXF3nms@^?uWugIJ5C5oID4YPc5_YPx#(}3)#qYvQlBAHhP+Gqa{Y@ z796FSk8U{W3YSkUvoRFD0yxLJ!N(&X5$((kJ9DEq`F75P(hNAW(}5Cx3-A3m@a;12|_i@7^-RwN7$T^h3twE3S^X9b3aCUUAvmts01C z!`a)dJ8*J4oM+`hSiunPxbsu;aL1UH=MlOYu9=n7Fu+WLGb_t+av_{Es2eP>vl)x% z=x`#9kmW3O*)OIfwrCi{{3(3nV#A#Bs?qUd)<@x9A-2(dviJ~;t*mqs=*OPt2u zg{1C)v)SKPoNR%!+2boXc^S^Lu-h!~vn?$wi~QhQ_y{_?;mpF%IQbFIEOfvi(H_pT z@B`vT9e$dH^CH7hua<{?&^a8=ER4a)C^)ll8ct4y^DJaUXn~(*;rz%F-$E^Ps^QGS zML4+t&Me%FlN;fjA#A03Z%Ri#BI#mnJ7{(*L?@}#&S0Uw^wE>WOOXIcXfMp z=bUUT_up`P9nK3puFP={v7UEaz2o+=xtKHbL&R{sA0)6^zIg)b*Bc5B%H{bZ$j5zf z!??wT+bxr3KY;(Al$rT%U1&Z7BTpLKkPLXvz}4o}Z%E;5Ozc|D*O*_r6ZxLz`%K3< zx&@MrJRWiRmOa{lWD4igZ>vI_qqm^8B4;X;bD~0)36f4s{TRMliIhgX5*(eI2IZ5a z%y#1`pA=S}B<1m+)AGoO8)Z*g$XbK1EvtI9JWv| zPHrMjZaB_B#W^;!H5LuPMbcZO9{U~M!O%sz!}Dz`$DxZ1h35^VMi)G$J)QLQk?BzsG1|e2W*(7#Wcsl5W80ypQ3xtCrjVEylG@v$LW_=W zdb+3Y!i)D;;pi=0_tmnS(Z_8cXD%ZIVq4EA6tKL-4rUKHEK{vzMLhm}S005EX@DHajY+m654*N)o_U z=OAN>(nST5_dwN$yj{cb@sk|wP+Wew-;H@;irovm3a}K9>dde>;;^VDVkUAhXK;E* z(JqXqi2r|1)Cs^$ZX54TIHYsjDs^nQ6zHDAX`+Wz1Zy3~w)3JCDvC7%^izr= z@Az;OFT%084qIe(rr&nZ5d9;L6Kv2~&9cp{Jc%t#~MQ;&MJo!HgQfigH2 z9)?nUL$Sb6YG9~E$j}Tc-6;g?%5|p6Akfx1KVdP=x7aeUh<}hlCYiPLkVVhTsR=V# z&bow|4ByNFftk#}OzVBjOih^a&h7!&$a*^qy*e7&bD>v7sH}xv6^+N4SCctS)b;A5 z-q)`W^y>rtdS9QF+W?0jVAzK)>GC zXI|Q)DvhqJ;Os zfzCNg&!M!}yruIjw2QCSrOCfh_M3mN+(Idq8=tqYR#Lo|(B|Ra#l>PNAUaf|E zme@H^rHeWZDS>&<62-J+K|E0})nL7pY?TF(+}KL!&>=!vAogrgEL&+!AzSmqwkm>1 zZtPA(po1;^wv7(Y7R9oa5w^8BY^y4W+M zBVKa!UL`hGFuo**L6m{*L41S>7sV$4$EiWS$v(~fr}giwBAQBagLQal2{SQMmzj{<;nFKxL-q|!(P8CA6Un?soTIF^sno)0aN> zin=3QRLWJG5Ja$-M~fh629Z*fkU34=LBLKwvyC8(~LE##qrByq%+=$vmRg84*32;D?|#7tKv65@!%=ogxa zU@nmm!bGCLG1HZagg9c+A2bueL;yY$UuNP-1lQk$ZVT^9Fy)YrS4Wcx?=)!C5sS~2 zG}e!+X7MuDGwkIGeZL~V^eocTZsY01CaVo}i9DGBUGG_hXSV1k z(IuD>q~O~NJ(y&ez0(NK^n{S<9Z9AqHYH34S6Zfp4wg}SM)9moCj7ijG6QEK7ib6s zv&l>+J)}e;?7Wp#M&|Ecj>+@x2N5_?`=c=OWG9IVtt#;a<{DrlCkC=gD+9$cg)XIZwRNV-mq@X8MVX_v@9WnF`n7?6t*_6*54Q47 zBZk`PB%;JhHH`(I@0}7G?etWZb)=Q`)KFP}Rf_wT)sw)Y!>(JG+J8=75IiR@2%eJ{ z_|M6q()#+ffqreEU+e3$w8O24rx7FVbP`czJ<*Gd5CWgR=rNQxT`X4GKI*JKVa6C+vPAPJR1#>5=wq)-Pi`?jxID=*x{s~-P1KRCw5E`)`5{|- zphE{+;W=ru5-x6{j%;OwZ7ojNa=7TXD;zFrQ1Fm2c&W2bR%@FWmFE9b1xBJYTwof( zY%?KjR;!%L`|T7#4NZ)!+^2+dpQzQC86Rp11P|s3VY8~nSCQca<~K2CO5i_KbtFpT z<1K;UrAR{9tp1yoU~v;8|8o6%54r5$qt1dvyPzd+PU??)7VP(QQKvS|dJ5hXcvRnk zNA^Ne{j;)1`qVG2T8Q z`d%{;diUT9p&M>Y6w5?H9I@zJU>xcu6GE6sT*R2^%0xmOaTq;rnZvv>Q4~}+gze4t zB!W7jmuI{*%{16@LmH7Nql`1*jKFXpj5>3}mxH=A&`iweTzU*~qTFd_RoV%0#59ld zv=c>)nONEhv7aOKoj65{C1zSXK9#6~<74rJpr=j5u+=oqDTEheN;t;;zKQH&X-p)R z+v#M&Pb2BuMx=|S5vDYWSYoHaiy;JKIvs~_w*^cl+EU69ktZGCLJb1Jb{v7v`Eb3R zM*o4LF?gV83?3*N{RawWkawEy>r6YHM0g2=zSyIE4i7T#&y^d4>3U-@U2pWK>oor* z9H!ZcOa}uP0uWMyPucY6q>aHWxG|UoH~O<++T3L^CnRhJ;}!zYd7gt$+4QHFjsCnZ zr!kmoHu`hTL_SYR*bIiMh!clBRxKWY@o5L|jX2y)tFr&lHn0{PDl8$spiMMl#$^EG zS^!VjPBLO9Qn;vu1o6Rs4*m(?KUu8H`M!BBwQl zB8R74JD@{{$cdU@WC|5IBOEzA&tgdqgA0v<-U4w?7+ikZqb{out%C4x^hDPXF;kOG zWd2$&~JdvOUWbJNS_~DtF4)K3`gx;@u)}|1<;PBd!c;8MZ z5hchoqy%3vAwR^$o|IT_r;~`AJt=XkolYcJYFJ1VH)v-Fuwyws_g})b7Wec-+@O4Z zT(oG!{(q|C$H~^OT_xgQ>E6y<|9$IRZ*0Oly}7~r*16u`l+(m|?uo00JJ2uFuZ@bB zNk<8MO#audLkVTof3rH*8|Ro+Z=l0_(YgNn*+f=P4Q2ILMNP^lJnZ9@RsRj@B5ycE z(u=(D5J?9MTtZp(_2&lqa|8Xk{wv%>R;Pxt`m3Tg&uZAuW~pp@1MR4ui~P5!Ig7j@ zm)Z7)+?=LRwtfA%f&Sb;f3C03Y1D$#& zUcYqz23e!mo6;}jp9-vR6mlul_HPNatE>y4sC^?qu4*N`dd=0NZ6TJk-&+De^6rSjb~fo@YF_ds7X#ChTrD&@?$S8{lpStsK1rSP#P2%;bPAaLYSV+ zhV(K`YdpeGZNAZj5Jq<;jJ8QOija`eke>IyJSV^?^13~kZzRMp`(DB4kG%>7{co#GrD#$yIL`P3kJa&2kws?d7D%2GZ zKF0XRl{mQ(?q;}ka`%A#;fGPS8IIGGr~JTXvNuBVIMSN@-?&bpe6T0rGbQ^8-o^fL z4$hasoe#GnBwva18{ybztPja|;rx9#HkXe=^04fakeuhA!R>+jA|&@^-$0fY%4ZqQ z>)@8b@#`x8plpd`7l!1NQJ1onaQDMK2*)?ekHPr|!>)(B2W}%Ab@(+TbvDEK2X)rL zt%utH$FOjCILx=jG--=zQgyze*o~dNz?0x6z)gf>yO|2-w+ZIkKQ=&qKO8%!$KcqNZiVv?KaAhi zy&97Hx^F-hzW%LXoA)}uk8)|JnsWH0FGZI`A1kbG$iNwIJiQ%@gez3INt@g z2kwiIJS_VT@*m*#hQhChJ6yYp?jf5dTe7##oOasV9L*Aa03;fHa=Eb)b)uS;1STm#%W zaQ?9aCx3_A1;;10-Eg14`Nv_nuEXK{_T$SbV>>H^8xO~}b^@H=#(cf~>ChJ2;dD6v zSc#LX;a0<4566Dx69*?l=>BjHBDje%pm(D?^t;kxkUWG8ucs(qH} zx>qTFxV;a?ztKgVB7{WTe`g-Rg$mSybMddTdG!nClvdVOl-D`@$JxBb`ntTT%96a< zrKNerb#wYv*HoAHD=#jo%o~`8>v{Ur_Hrg#TkNuP-WX zz+YWyNoj5=)2ghlF0ae2aFF5phO)BqSvW_giy9Wxme=DPV`g1>d3A$#T2)hews!{Q zN|Qplq`bJUzP_rcqPV^Sp?DUPw?P3n5Wmadla;QgL~4GYNiRJz1r^G}%9Y zQ2wxF2{Pmf_>-tHyB^VQZY2A`1>T!}=K zEfM_i)=Db2!_hwGrbZXUW06B*1^A5TrVeVC5{X_Laoe}UFNJ-0ZdzM-SIhg+x$nVu zjeH-Q?`ryD(bQ=Dth-Z?oz&=$=ej8o{6g4wNH)^Z0<))iK|d+z+fdN0UeM19`X&_g zm>0BciD&TZP|&Mh(D_T;cCj=!wc-5u@WCVU@?tIWV(B@tmho5%R76fJGak!`)7!pB ztVMU$Q2X3iW-f)ua&2zAPN}qwT)&QTz-BbM-ZB!2?(_w>OYoX6*dW2HzTl2?T~=nh zb}?-A%#@?4y{rn}4CNTcGov>xi6bBy{Vz9e{u`Iv9ZO?ga!mh?=K41;nP&R$N&luL z)57|%C+SCbP+eKyE91_dAViDt+BLRq}?MgwIMZcq~+j#U#lfrQMy%Kdal=6 zP*bR%)aWz19QR4pD|c%a2%*~)x-mHvfhp0i7sXlpmeI>oERRtClhp4`R?me#cGUW2 z5gMyi4{FwpwYL1ErS^l68IQgaabqn~+vVnTgDp{EbMlMeMt3f8hvQfK zp%HX^54-Bc4naEV#_CX%C~kOkWcZCk&lC6hv)@GhPU?JhH(xKteILD+a`tnJ*|Dvb z@1w=r*v$oTwjJly^Ipb*?eEd*{Ekgs)Q<}KE)?{I7wableH#io-wXO#LEnUeR(e6_ zu}eYE7CRvISo9YM4UflCQlp(8gDlm}>kdy2&%ivAp*q2Bk&zoqg={$6{^LtgQ?V9N zv>$|=lN)q+Z=ifg3o7dt^JdBkdcq*!cZ=;V@&k4T0qc_kUJC+l_X6xj^!s7&-fU;% zQqUjkF7~ip{iqPqPL&>7O9YAl&MrHq!u>U_b5hl8RI zMw0uL@SR2@xE!9U8@AWbV z+kK^d(?N!CH=fJ>IX$`_SvMPgD%;OxM{AvHC$=p#x3Rn&iI$ktJtwalo29i-R?Z-= z5$49@xon;ztP4-+8Ee^9SZbH~iE7-T-u_S1Q=@a-L#_lUP)2j4o;5>lhhCveHVeDgV6a(%Ei z+$bh<=$E3`Eu9sQM3egT)E{V{SnS;eyl}i5_GJ%t z*=YKy(S^e;oA)PM&5S<1ShFr~#&=)y@Mn_4H#QIdBf}GY&%H_E(QS)41Kbp4UAKsC zU(8HIqZ`ei8GRNVy~XX3H+v*Y;Ps}7GhWWL=vsIz{ap9Xy?cK&! zUg}>Rw{NJ6W9y3@)IXNqP16op{YKa6=ip`wrUinl8zaM%cIh2n(Fza_ke&5F15pflY-pA_L@7|I_w6Gi|ft95C^5eRpo_C#ntxG^)Jk?j`*k|`q%7NMnvy|;cED-NCx_&(&D>e-PDx!6UjP-ARu$LR7diEn3(JcdoZ00KMGeKX8H$%db>*c{_f(vs zBD{wxuA){^(K*FcjpbndEUG5GBP-&jyhU|*A7xf5iU$lRC_1O1xTLC_ujLXi>GG1I z;niBvyt>MU@*rn(Dyu8!6j%9ii;C+@8!G3N7x8!SkZ5^z>A(T7SyXyX1AmZ@S@se; zcB*+2`7bH;i%F$<#kB(mP=o1DGE)d2FlbQ!VMTKW_NM^v&WdUqOR6eMi}?G0MUB;s z_2p$KZ^Inqvb4Ugp=M4=eNlZwG4fkf%^WeTsJu8Q6wRtcWy5*}u5VFUUCC@;t*EBDsC<59 zLs4&Z%vzD=(_W<`-zG^{Cz= zyF^f9ajhA6IrSQS(C%QeZb7YApB2TpN}(Jk(x~h|$ZHRCYOGx*E->?wxL8H>+Us4u zU-p}T?!lslx<u8BF<_{fQUD@o)m+OW?k&3IT{JSDiz&R*jV|CbARn2Ub#4fO1^ib)%2CKdX2`3t3 z@~zOUGI;0J*Or%7&Z;ag^ZTF5>RB~@=4tthUo3HqkIikdm)d3dE?Rh~DxuB@@L zx+V`*TsE(`t~{@{va}|zu696vL4ICCO-)rjzmzEP-v8%`j(KlqMPSknd!}x_%PLi5_y>;HTgX$gYCxRBs4g+IX;jt$i zO_o*Sdl__+MYF1kXV(vK>KkioYw8-%;;b24!w3}?cWR>N_3C$ULGwB|;pDN$7fn2R z?39U!yP{gGJPh5xS3@qA``T z)%AI~@Nay-lfpx4vJ7zTUCs5md_8@ zj|~-})Qfl_XWOKtnr*TM1M%$QIdh8HWUF!3Jm)BRa2<%pYVug0;vBRC}n}I1>zRUPQ0JHl~8)NKabVD!M*^~lv<90YSU;krRe#sS$SICeH`j-lCoi!n^OiB zZk}H_Z<=ZCG0}RhftS@_3W;_^^#xSN{E)Lqe0meYisC{22Ly$iRa=AU9n>)=D+$$m z(u9%n+3cPj*<`4@o=J3P5W@! zuEoFIAUxY98bu|=7!6?qt?%q2Jj?9UNqEmU`?X_}$x!V<2?LQe)LERh<7z;}jQclk zsA&`x+4up4Q2iwLNNUV5gDD#yicl%@a4SPlZ8I!O#4Crj>iHNtogz$OiZQrhL{bgz z=SEC4HOyZz*e0@JEz!SEZHCD*>FQ(loR~ZZw~3~j^%WTPLbGXaD$J=K@{C&}sEx$K z1-qPPX@`0h%vx+sgl+-!xX!GqN*iuMb>>|lFEhy8>;`)xNj#k5iK=9lS4muvfd`s0 zf9R~KD`Gv)uc@;xrKsLeiRtnDVyFIW-tSInjg1|e&a;}s&#WkMMKGIG>knOI8}uxV zW)+<1`86#?8K<0prxDf$#!}2MtNg~JIk|rgSepX}?5{TcP7NkPk9utO{^j!?Rvb>T zV1Q2wHqk5MW1@HYn%~tntzy^9UZ|p`vCcW>q$%;S{fESD5lnnQe*a6I zA2-vX@zY07Jkb`+4C_~dTe-9%URQojWqoB$b$q~(A%lhuJ0sq2PHAo9h*Hjy=J%VE zUt85!4_QM+YdCaD|o>qYWXw$kLMpCANJMh*3NpfBf(18?ZS z?TKCkkMoHxGx2B@Y6J-z``8XO=E%k{RbT}tRJsmzqtkd@-eDbH#GJ?^#A0#VpX`~ z{EP#?O};o2KZf64i?awW)EbkSc46d7*Xa|IbK%zL%=Q_0&g{9o<)vwt zwYWTWZ063Cur3#O{b${6DLq4Wxd1Flw=lEo@)noE=9(m%Tp*UDmz4gVl+j!rh)3{} zO2>`kG&Z>3iB4*IixXSAZByF2*>1;ZC%3cP#pQDCW(Tqm94XG{KL;M1;H#yu7yjh< zQ7#G#9Z@U{*({Sm=o2AFq@3Q%!$IkW6YwoB2s=rk`f|GlOiTHPdg^ zOuv=sR|Lgs)l5I5nSO@pb787?u=OO4D1LD-Q8vmm6M;C3+G_TMC~8}Ug#B3U7doO& zcF4#0_(A^A5p}RxLFkC$|GmOT)WNoDp(AQPzmO0_o$h9l#b;Y@i|d8$QG$bu?nl8f zoNc}>u21j}3Xn0p2F^d|U+Q~6`nkZF@p&J##r1kXezx_t_~`{MRdten zH@i;&XRZ4P5ouqcx=)myEtgxDu{}lb5vTuP?+2E+moFD(x9Wv$KuP%ha4vkM|5k;s zlYcepm-4kF;%$(>tL*L}5zfWw438*YZ-sY}zpv~Lke_!zB<@}72$U_qJ-qf5K}SgY zkwf^C3Lu)V=|jl-JOZ+XlWfV6E{>B!q8YOtQhua3Mm$zLNjyU=6KlnJ;u7&9afP@_ zyhXfU+#wfg#8ay zXL`zqirkl;{;6WAI9FUM-Xz{3o`|8G@urKj#S2Al3eWIc#k<5!;(v*si&6aF81>tT z-Nk<5k>Z`=X7PD(r})13l~{@nk#-x!3&d4ollXhF*8!gX5bf=6J12_M#k0lv;zi=s zVw3o&_?-BP_)qbfwx0dJiC>7VFg0Yloy1|{DPob>C|)405}U-w#XtGs7_e#gx8g?e z3GsRHHSs<1bMYrJ9Rs=LPwXWQ5RVd15HApK74H?F6#pu|Eq*M1FSh95rI#%pEWRav zD1IYy6L;pXy_h5BiPwvFikrk|#U0{EOq6Noc<~JJY;l437x5kOQ}N&8$(Zoa&J3|q zTqIs9UMIdKekSe}TVc*bJ12`X#7c3I$lbuHcb)i}_@Vf%7{lC)dQ-#_u|_;kyh^-9 zd{_KRqz$?(af(SmUuP^ zI}P&B7cU@T=Te2=DEY18?c!bHMiO=&mH!EGo8+&{|F-yv&Yv0glvg#HEM^^)H#{!Y9@ zykC4++)5(;v*MeQza#DzKM}tczZatid+}S6C}$TE_1R54L_A!~C!se?{t@DM68Shu z;YE^{idAB**hs?868X;;uOMNEyMZ%&o#Y$D`^1OD$4KZsE&p@kOC;>d=jvNef#*(B^9E_t3--&xgx3`zCHey#2<&BHINYv|ag&!mN@#16> z^*Nn{-r17Zhz*jTEB|@o3KH?IR`_ovzg@gr@`vPqRD6a+yyq4ErsVI4?@9it{GW?^ zNyOtjF|s3xavmu56#Iw+NazhEQLbYpKT(`2P8W+v=vByHCC(#Z=UjzfDf!jnO=6R{ zj)a}x%YUD^nS`CE6#la0uZg?F_rwoL*!e>KZ$!6`XQu^;@J=M^p{v+SJXFjjp*KYS zBgHW!@^h-VNL(rYPJB{)O?;b#y-!J``?>gy(dE@C(FU=n(L<f&MKOG$~Pm*NGd%-;=QOu>6mSe|EXd+iSQ2cbI*5%cbEJy`E$jQ;uvwFI8~e_o+U06mxx!2 zSBq=K_2Q!>^79uG`F)v0x&Nu~55!L-|62a<#gu+tyjCRQbs&piTSR0o#Z!(>% zed0snAIMC{`6G#RUy=NE@m=wK@naHtU&;TS7|rwSv?LMUjYNI)5D$?&U;YB|C^8e@ zYbboWYJZEWS#%!Sx~${)yy!#P7u)#mE3pFP%hrTZ>)DHkiLEJYVtxafCQp zEF_WM$?{JU&m>`|Oq?(IV(}vJQt@i>H{u!+@z;xwNxnsVPW-dDL)?T5-L2ulRuY z1PQxOi?2!krud$?Tl`%7TKt(r{MaCmok^sBkl0&1OdKc<5l54Ve~fs#Kju8vRlf_A5jaV-(6qkq>iI<8i z#ns|1;%(v+;*;Vw@dfc^@ip=9;=AI<;=e@vOpKMMrPxNy7W<2X#Npy7@fh)Vkv|;A zdgPB2lJ*m4V5$6EA4GYrc!_wqc(wQ&u}S=`_^9}V_@Vfz7>RiHQ$<@pf%FE;KSCTW zP8O$$7mCZpo5UvZ&*EQ2TTcP|AIaY#>ZRXBEEM@8fGqbZ;uO)=SFk?hzge_(6_CFm z|90_p@on)taj)114Vvln6{m?a#B#AxtQ8x?tHf)>KZs9@{}R6xe-M8XW4L#jeoHYf z_7o2n^Tg5O(c&!eEb&_L2Js&8e(_Q93GrF+dGT%WAL4i7UNM%c{EBVG4&tF=KXIHm zUOYvdBAzLhh>hX`aizFgyhXfCyi>GwBB;kF<^QAjmbgp&Nc>FvTKrzjZsC=$vv{z0 zh?px55QmGSL|bQqd>k)-k!b5pAa9U=zPLhMDXtSYh>weZ5N+KF?7Sxbm*ThL&teoh zY**=GYq6^s7jwk{;)&uZ;xuuFST0tI3&kbkRpK?`dht$ii};lIs`!TZx%joXS9Dr> z)& zReVF-BYq_w(8?=U8?lSnO*}+ATpTJ67bl8SMO)v4@|-RIVsV*h>wOS@t^Di7JH;o& zC&eA&PVqzWQ_;b@6t=Szv7>mP*jLOK$BM^@)5SBzxniTZSX?GvE8ZZk5!Z=#iT8?I z#b?CV#kWOUhlKopB>#`1o8gtKgV;qpSUf~LLL4ccEKU+D#46F&HzBLCN_z`6>S|E^7FF%Z-{>vyI_LN{B{$M6HgMSh^L7& z#WHcNxL$lod{ul~{D-(({6zdx{8l_N%gfJE;@M)2c#gPGJWsqxyi&Ycyg{^eXDH`7 z`8SC7iVukY7Jn8G$FmgcCr>C6=IcG zFU}K}i06x!idTrM#p}hL;#;Dv`$N8W%Wv!d;Qw0wA4NCYD@Q9aQ|usi5swf@ibZ0n zc$Qc#E)y>lFBh*8H;NC6uZXXUKZrkxhj!5Q7srT&;>qG9ak_Y>I9F^GSBNXc8^l}0 z_2Ql46XKKNPSMscqF({}R6x_lo>SB;J?p#ExPgv9CB*JVu-#P8Mxl zChQc;-yqHxFBPv4*NGd%`^1ODE#gz+E8^?oSK@b~%k`N^KPG01ZN={5!D5~`P%IRW z6U#+gCknfD@}DCv6)zB1imSyn;yUpW@o{m7xKn&b{HOSlXzNdr{>_p(hlwM^Lh(3pl6b0ECRT_I;(YOP@hWkRxK4aXd{lg1d{KNy{HOSh_=9)=*Ri5J zZNwg8Z*iD7LYyE@7R$v-ak02eyhglEyj$ETJ|aFYz9_yVzAnBkekOh)M)6LR`EMb1 z5xa@~#X;hD@dU9*EEUfY7mBM$%+;%a#__p}9_`S$~ zWn_A`?iWm#zqQy)JXFjV3&dkZTMvx*ljWZ#7K`QLVsV*xx42QX^}w+6xcpCv&x&t~ z?})bE7y7Najuz}7b`kT$fnt$ZDxM`)ix-HOh!2R5h+D*`#Fxd_#E-AL!8;{?Kzu~}i}*M3J#n{a z>vs|VOZijdUjAE&-Nl2&zGA*ORy;gA;~Oe_~G#cRbI z#5LkN@e^^6XzNpve_Njlp3vK~KS4ZIJY6giXNk5h74hojUnnjSFA^^mSBk5}o5UvZ zWAR_&H{uUs#vxw*vP4^Viu7&WDL7p6QDU)JE?z8NCaw~%6>k^s67Lru7Hxef(s@(< zy&`{DgZ)N7vA;M}94?lL6=IE8FWw|JiR;BX#h1iaMO*)gbpIiL`k`JvT8kaU1H~R< zZ*izNT%0bRDOQM8V!b#|JWsqxyh^-AyivSWykC4+{FC?>@t@)c;^*SmV#~w4^4WS$ zl-t&Cf;}W3Dh?M5#pA>?#S+ohXCnRr`L7bM5pNN16CV;E6<-jyi|>mciC>A|i5Z8h z{fY;RhlnG@(ciw)>Fcct)~S4CiyGk$Kt=l@5LX* zj(xrSA1EFw_7jg3j}lK5PZ4XxdU3J1OuR(ATwE<)FWw>kUVL7BQG7*wU3^!3U;I-1 zR!r;Xl_x{A^^~ZW9`X+ohl!_&XNYBDg*aDi6qk#(eiC+nBma%!UE;msR`D6}74dcP zBk?owXEB=Vm7{~$MeHZ`7srUUJ`(vkP5v{)TCqXANW4_MSzIGNLdNj?AU-8NEB;0N zoA`lf>mCvB3;DkhGx9upSz<@=Krz)pINl-Q^|7Uk*A({s6{eT=oQQ7F=KJ|1%E!aL z-xAZr4AJaBh}V7zJMd$;HNV+|AI-)5W*7bf`A3Q4#PQ+@;xuuFI8!VWE5s_XR%{UG zi;KnO;tFx4xLRBzt`j$icZ-|E&Ei(^8F9O~L);<#I6?H+;mnl3Oso)_ufu7Oe7?9?TrRE&2VJHR3vP zqxhh>N!%=M6`v8ei#x=f;#=Y_@jY?3_=&hj{7Q5psQ+}lUl7y843Qg}GQ7PQ7ki3* z#J=KCakw~294C$!PY`Wg5$w;9f2LR_R)|&Nd~vb3OuSHBF0K$)imS!z#hb-7;yQ7o z_@KB++$?StpAol!JF7_1rh<(MO;&5@4 zI8K}(P8O$$GsFt9O0;!X$WMd(%ft)C<>Cr)rMOyLBd!xShmx(V65ETNMEiXr=-GNX(ALX=`3%Rn zT_6q>hl``capHLK1aX2mS)3-$5NC>IVy)O9&KDPp%f%JqN^!NgMqDRu5bqW@iJQf( z;xpnl@da_G_?Ea!d{5jXekFb zIEut|vUP!=tqVkYCr}Pna~y&_`+YFjnXPz7W_a=LMI7q2=X?S0lsl13U;cc}Bc{o3 z^CqN!q5R89*s%Ew;%}rM_MBYoA&f0HK>VVxvBE#IUm(x5pXBk{^LnOJR$kIL8$Yd!trc>; z^Wu^c{Oqe|!ISVu)kDg~_-)wP<*ElyV_!*CWp%l45f$m=me$OfgT0Z%hGx|j&w&zt zbvC!Sp`os_q_F{JfAxW{cpNkrHd#9gL?0MZ?a09=_0Z+p(Oi#VJn$;UL6iG$_1MOm zr^|NeALz>LV4G|SH_CkYADZ8J&mD32sYA!~CcuU5od7@Q4gTTVqdaVHFYLu3qhlTT z_E?2sdp%L`GQaTB1MD{|!}hwa$NyJD9*1MTe0#sadDz}^B*yu$fB5;k8iKIB$*>oP zjII@&Z|@q=kokw7zwHo&?X8BrK9I%X z&?N-<`wr*KpMT7Ny|ah-zC_qp5QXh+hP|zE&t4Y7{PL#2SlHfkqtUPVnS!1l)}fhR zZXwP=&Ik3ON$b$v@LOP`=TOsCImOD$Gl=!4%wJV@tN)R;%CbP@OiEK`_{j2aroFNg;%E?Hmcp&w5=B&{a=3@zIkQg z4TWn9?<(B$#GZ#rsu`lJ4?FI@J}n2K2C1smO~&l+{gsOKujRz6wmR&1?U zIBN8$OAAjMbzAZ1!vBlCFM+S3I@_PQGxz4+R^>e9vYb~~7ty-5>t97YM|IhQzJ98%p z)_(T;+WtT1mzn3h=e*}V`_{fk$-0V`%j;{Chb5;aXVtAv z{(9Q{~G(1{T}RJP`9vUV5?*K)z%kVcBCs>8d`U@dtB1B z`_#0ZEq^mPKk3@FZj4GfSca%^0P5;c)YTPrFWzckv$wNv%w1n=rl6h=F+(u1F|mp^Ma2S%<^J&wT@~r zHvFjdsJaXA8O|HEoh{aeBkGEbn%1oIv)6yn@~hhLxi8f2Y24BhT5oK6zScZ1u<@w6 z?X@}3-BLHL?u}Y|V`E+L+`h)Ut&#KJsI@NXZ>+(G5!31pOx{`dLF<0WMalN$BqO>3 zby#;~@?e~?0o!Y5C&$(so5EYnOJ*nEX`P)+*R4s;PFkDhB@cx5qPkURp;olYL3IZr zwN(hKtqWYzT_4^uJ-HIKXm2tvnUS0W?Uv+owY7DVjs21bCl@Chk_(WIvFXP8$OQpt ze5>y5)&n0jA5Mph%H!Vmu)Xhi+H&H&g&e~Lu)(vhx48DgU#o5W3b+G}nliO?S zlg8$^>$5K~5yLvCzAm^qyydWDX!9EA*CuDwnU@@tOd&>Xa-#7;Yiz*Ei8@|fgN z$#+|=O-I4qnhYB+*5+)Ulgzr%oSfM6?R3tDtaH&Po_PP2o;@OW)1MbSv|y^&Bl2(b zkD)6oow)~BlkXWv|A18jAM_Sv#=Q}+gXFBS@cxhycrwoQgl%KXbwD`CuTku<{Ttj+ zgYV!L9yr=`G|bSMn4xSl{2U;ZW~4xHb1orkB9gN0Api3NOXuN+V~4Z&oq#m}Ay#!B zZX1Th4N0wTac9}qmDa=X4Bw25Syx5(r@Mp-R~OLVh%klcab`1r7QT|PE{}W$XLJ*? zW?hjr5N;#7F9WX$UJbAfYdbP*U28E~u5CSm6@%TU8m69vfZr}^rqX0@;!aKF~m~ZQGOI>H%IP6NI1%z*o(?o7pJ1aXfN_4EE^Wg1lB33ETLT37s#RWCO15C3no|R)pJY9P==eMlyM~qX)LwcZO%8=jW$740~H| zQO-|w8undIqvoep81|3F9gZH(>bg6!l=+Rmz--+kLSBAqVY6Z1+l!0+Sabx7a-YO0 zj^4wfJe19vD2>iz=^pO?82l2^#S|Xx{{e)m=wE62@!WpM(vawZjPpcf9E9QdAX_r* zr^WOr2*~C$lFf+_kk4l&ohea%e`G(`Yck>_qq)r6uX^nVVOl=OR}6c*7?>WNz)Jb8 z#F-t9BHVs4`y6CsPLv;z*uU$|_3XUpa2j|uS_N1T9ZJ)G$m6g&GWsy%ye_?@(U9)V z7)5enA&a&l^F;%pi)!vfP>4Z&x^Wp|+f9Km!{hu4&t4Red>HXXEbo#)&Q-J>2iqy7 zLQ3Iy0TW*mD5DgOk7w1k1;Vr+i~pWh+5_RMFxCp=dm#zC)3G@!{tz|00)03R$HwoW z<>gM;#Q0^5w<3`J7{aE+`*9Q<7mxv+jPrX}d$prEJS}A z&ZjARt)n?7&i|{}-wH%nym|33bA3f1>qKZSC}y{}uMQNjr_V5p`6-}%O`tb>@@%u1 z|M9VZ5Qx4E-R*(mMkaD|Al3qdF9wPaWGc4=vfqX`{?{C{@1wdI9s~%{9kbbgr6t~h z=xYfP2O>Un9um!`aV^{e5B4*kCcWG?`;3ehUFY)N*A!>H&PmIN*4$tEtWoJ({RZ% zm~Qgy>1Oy98hMX(xsTbKf)VG+-mY_`P@H=*+xwcmyAc#MB82y$rdjR#gne=#i+8U0 zTHd3+6Da0Q!-&^0%cll|7OJ!(5&o$Y=G;i0{j+ zoDmq#7<1xp(#n~EzCS>U3*yIfG@TXb!$H#$$I8mE&vvAact6HF$B|aXOId{VfmlD- zUK{6UsrI>n*f2<^#{a@;cY~AOrSZd=myJ%mE8@p9z4ILD`uP6T{H`P25`T&Jg7Y2e zuJ|V`(FKn5K>R|6ZE}Xtqeg^Xh)GK&l{hjJ7dgw3C%bao==-*PaUg3UJmM#Fgk2Ws zN5P19;c8zVDDDKV#1jo_m`*X%--xiLIT%##_qP4*fW>iJ%9+8wFp$HRD*Y3)`n^C7 zQ*_e4-HlXi^q&IHm`$HD4qfS-@VFoDn7t15SjI8rcI4N^`&YO|*pK*>C8-CD@(rxX zF;<*YQ#t>`ZjZJ4F9lj3p-`c*vKk2WMGWf}G-PN($!RcP-GsWzdZBy<{6iCP$@?kV zwKVHD;oBiZ`Nde)?;^vYX~bVe>tvZ`4sF=+5*W$KH6u?$3dfmHR(~_{7sg7EIW23r z8R3VcvG^dAB5R77I}B1`{6N^x+SiQKK`J)N?ni_oUQpbJ05ROvkrl_uJe2(r7ttsZ zm*gd8^BdKQnEfkieQa2PI3xJP %amc&n^`asRq8~{2(yv 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�k4Two(_OzX&qlzFFeMx@LO8H@ivq|65? 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�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 I0*2}S7hIY>&;S4c literal 0 HcmV?d00001 diff --git a/libraries/WiFi/src/BearSSLHelpers.cpp b/libraries/WiFi/src/BearSSLHelpers.cpp new file mode 100644 index 00000000..595cea73 --- /dev/null +++ b/libraries/WiFi/src/BearSSLHelpers.cpp @@ -0,0 +1,1002 @@ +/* + WiFiClientBearSSL- SSL client/server for esp8266 using BearSSL libraries + - Mostly compatible with Arduino WiFi shield library and standard + WiFiClient/ServerSecure (except for certificate handling). + + Copyright (c) 2018 Earle F. Philhower, III + + 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "BearSSLHelpers.h" +#include +#include +#include +#include +#include +#include +#include +#include "StackThunk.h" +//#include +#ifndef ARDUINO_SIGNING +#define ARDUINO_SIGNING 0 +#endif + +namespace brssl { +// Code here is pulled from brssl sources, with the copyright and license +// shown below. I've rewritten things using C++ semantics and removed +// custom VEC_* calls (std::vector to the rescue) and adjusted things to +// allow for long-running operation (i.e. some memory issues when DERs +// passed into the decoders). Bugs are most likely my fault. + +// Original (c) message follows: +/* + Copyright (c) 2016 Thomas Pornin + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + +class private_key { +public: + int key_type; /* BR_KEYTYPE_RSA or BR_KEYTYPE_EC */ + union { + br_rsa_private_key rsa; + br_ec_private_key ec; + } key; +}; + +class public_key { +public: + int key_type; /* BR_KEYTYPE_RSA or BR_KEYTYPE_EC */ + union { + br_rsa_public_key rsa; + br_ec_public_key ec; + } key; +}; + +class pem_object { +public: + char *name; + unsigned char *data; + size_t data_len; +}; + +// Forward definitions +void free_ta_contents(br_x509_trust_anchor *ta); +void free_public_key(public_key *pk); +void free_private_key(private_key *sk); +bool looks_like_DER(const unsigned char *buf, size_t len); +pem_object *decode_pem(const void *src, size_t len, size_t *num); +void free_pem_object_contents(pem_object *po); + +// Used as callback multiple places to append a string to a vector +static void byte_vector_append(void *ctx, const void *buff, size_t len) { + std::vector *vec = static_cast*>(ctx); + vec->reserve(vec->size() + len); // Allocate extra space all at once + for (size_t i = 0; i < len; i++) { + vec->push_back(((uint8_t*)buff)[i]); + } +} + +static bool certificate_to_trust_anchor_inner(br_x509_trust_anchor *ta, const br_x509_certificate *xc) { + std::unique_ptr dc(new br_x509_decoder_context); // auto-delete on exit + std::vector vdn; + br_x509_pkey *pk; + + // Clear everything in the Trust Anchor + memset(ta, 0, sizeof(*ta)); + + br_x509_decoder_init(dc.get(), byte_vector_append, (void*)&vdn, 0, 0); + br_x509_decoder_push(dc.get(), xc->data, xc->data_len); + pk = br_x509_decoder_get_pkey(dc.get()); + if (pk == nullptr) { + return false; // No key present, something broken in the cert! + } + + // Copy the raw certificate data + ta->dn.data = (uint8_t*)malloc(vdn.size()); + if (!ta->dn.data) { + return false; // OOM, but nothing yet allocated + } + memcpy(ta->dn.data, &vdn[0], vdn.size()); + ta->dn.len = vdn.size(); + ta->flags = 0; + if (br_x509_decoder_isCA(dc.get())) { + ta->flags |= BR_X509_TA_CA; + } + + // Extract the public key + switch (pk->key_type) { + case BR_KEYTYPE_RSA: + ta->pkey.key_type = BR_KEYTYPE_RSA; + ta->pkey.key.rsa.n = (uint8_t*)malloc(pk->key.rsa.nlen); + ta->pkey.key.rsa.e = (uint8_t*)malloc(pk->key.rsa.elen); + if ((ta->pkey.key.rsa.n == nullptr) || (ta->pkey.key.rsa.e == nullptr)) { + free_ta_contents(ta); // OOM, so clean up + return false; + } + memcpy(ta->pkey.key.rsa.n, pk->key.rsa.n, pk->key.rsa.nlen); + ta->pkey.key.rsa.nlen = pk->key.rsa.nlen; + memcpy(ta->pkey.key.rsa.e, pk->key.rsa.e, pk->key.rsa.elen); + ta->pkey.key.rsa.elen = pk->key.rsa.elen; + return true; + case BR_KEYTYPE_EC: + ta->pkey.key_type = BR_KEYTYPE_EC; + ta->pkey.key.ec.curve = pk->key.ec.curve; + ta->pkey.key.ec.q = (uint8_t*)malloc(pk->key.ec.qlen); + if (ta->pkey.key.ec.q == nullptr) { + free_ta_contents(ta); // OOM, so clean up + return false; + } + memcpy(ta->pkey.key.ec.q, pk->key.ec.q, pk->key.ec.qlen); + ta->pkey.key.ec.qlen = pk->key.ec.qlen; + return true; + default: + free_ta_contents(ta); // Unknown key type + return false; + } + + // Should never get here, if so there was an unknown error + return false; +} + +br_x509_trust_anchor *certificate_to_trust_anchor(const br_x509_certificate *xc) { + br_x509_trust_anchor *ta = (br_x509_trust_anchor*)malloc(sizeof(br_x509_trust_anchor)); + if (!ta) { + return nullptr; + } + + if (!certificate_to_trust_anchor_inner(ta, xc)) { + free(ta); + return nullptr; + } + return ta; +} + +void free_ta_contents(br_x509_trust_anchor *ta) { + if (ta) { + free(ta->dn.data); + if (ta->pkey.key_type == BR_KEYTYPE_RSA) { + free(ta->pkey.key.rsa.n); + free(ta->pkey.key.rsa.e); + } else if (ta->pkey.key_type == BR_KEYTYPE_EC) { + free(ta->pkey.key.ec.q); + } + memset(ta, 0, sizeof(*ta)); + } +} + +// Checks if a bitstream looks like a valid DER(binary) encoding. +// Basically tries to verify the length of all included segments +// matches the length of the input buffer. Does not actually +// validate any contents. +bool looks_like_DER(const unsigned char *buff, size_t len) { + if (len < 2) { + return false; + } + if (pgm_read_byte(buff++) != 0x30) { + return false; + } + int fb = pgm_read_byte(buff++); + len -= 2; + if (fb < 0x80) { + return (size_t)fb == len; + } else if (fb == 0x80) { + return false; + } else { + fb -= 0x80; + if (len < (size_t)fb + 2) { + return false; + } + len -= (size_t)fb; + size_t dlen = 0; + while (fb -- > 0) { + if (dlen > (len >> 8)) { + return false; + } + dlen = (dlen << 8) + (size_t)pgm_read_byte(buff++); + } + return dlen == len; + } +} + +void free_pem_object_contents(pem_object *po) { + if (po) { + free(po->name); + free(po->data); + po->name = nullptr; + po->data = nullptr; + } +} + +// Converts a PEM (~=base64) source into a set of DER-encoded binary blobs. +// Each blob is named by the ---- BEGIN xxx ---- field, and multiple +// blobs may be returned. +pem_object *decode_pem(const void *src, size_t len, size_t *num) { + std::vector pem_list; + std::unique_ptr pc(new br_pem_decoder_context); // auto-delete on exit + if (!pc.get()) { + return nullptr; + } + pem_object po, *pos; + const unsigned char *buff; + std::vector bv; + + *num = 0; + br_pem_decoder_init(pc.get()); + buff = (const unsigned char *)src; + po.name = nullptr; + po.data = nullptr; + po.data_len = 0; + bool inobj = false; + bool extra_nl = true; + + while (len > 0) { + size_t tlen; + + tlen = br_pem_decoder_push(pc.get(), buff, len); + buff += tlen; + len -= tlen; + switch (br_pem_decoder_event(pc.get())) { + case BR_PEM_BEGIN_OBJ: + po.name = strdup(br_pem_decoder_name(pc.get())); + br_pem_decoder_setdest(pc.get(), byte_vector_append, &bv); + inobj = true; + break; + + case BR_PEM_END_OBJ: + if (inobj) { + // Stick data into the vector + po.data = (uint8_t*)malloc(bv.size()); + if (po.data) { + memcpy(po.data, &bv[0], bv.size()); + po.data_len = bv.size(); + pem_list.push_back(po); + } + // Clean up state for next blob processing + bv.clear(); + po.name = nullptr; + po.data = nullptr; + po.data_len = 0; + inobj = false; + } + break; + + case BR_PEM_ERROR: + free(po.name); + for (size_t i = 0; i < pem_list.size(); i++) { + free_pem_object_contents(&pem_list[i]); + } + return nullptr; + + default: + // Do nothing here, the parser is still working on things + break; + } + + if (len == 0 && extra_nl) { + extra_nl = false; + buff = (const unsigned char *)"\n"; + len = 1; + } + } + + if (inobj) { + free(po.name); + for (size_t i = 0; i < pem_list.size(); i++) { + free_pem_object_contents(&pem_list[i]); + } + return nullptr; + } + + pos = (pem_object*)malloc((1 + pem_list.size()) * sizeof(*pos)); + if (pos) { + *num = pem_list.size(); + pem_list.push_back(po); // Null-terminate list + memcpy(pos, &pem_list[0], pem_list.size() * sizeof(*pos)); + } + return pos; +} + +// Parse out DER or PEM encoded certificates from a binary buffer, +// potentially stored in PROGMEM. +br_x509_certificate *read_certificates(const char *buff, size_t len, size_t *num) { + std::vector cert_list; + pem_object *pos; + size_t u, num_pos; + br_x509_certificate *xcs; + br_x509_certificate dummy; + + *num = 0; + + if (looks_like_DER((const unsigned char *)buff, len)) { + xcs = (br_x509_certificate*)malloc(2 * sizeof(*xcs)); + if (!xcs) { + return nullptr; + } + xcs[0].data = (uint8_t*)malloc(len); + if (!xcs[0].data) { + free(xcs); + return nullptr; + } + memcpy_P(xcs[0].data, buff, len); + xcs[0].data_len = len; + xcs[1].data = nullptr; + xcs[1].data_len = 0; + *num = 1; + return xcs; + } + + pos = decode_pem(buff, len, &num_pos); + if (!pos) { + return nullptr; + } + for (u = 0; u < num_pos; u ++) { + if (!strcmp_P(pos[u].name, PSTR("CERTIFICATE")) || !strcmp_P(pos[u].name, PSTR("X509 CERTIFICATE"))) { + br_x509_certificate xc; + xc.data = pos[u].data; + xc.data_len = pos[u].data_len; + pos[u].data = nullptr; // Don't free the data we moved to the xc vector! + cert_list.push_back(xc); + } + } + for (u = 0; u < num_pos; u ++) { + free_pem_object_contents(&pos[u]); + } + free(pos); + + if (cert_list.size() == 0) { + return nullptr; + } + *num = cert_list.size(); + dummy.data = nullptr; + dummy.data_len = 0; + cert_list.push_back(dummy); + xcs = (br_x509_certificate*)malloc(cert_list.size() * sizeof(*xcs)); + if (!xcs) { + for (size_t i = 0; i < cert_list.size(); i++) { + free(cert_list[i].data); // Clean up any captured data blobs + } + return nullptr; + } + memcpy(xcs, &cert_list[0], cert_list.size() * sizeof(br_x509_certificate)); + // XCS now has [].data pointing to the previously allocated blobs, so don't + // want to free anything in cert_list[]. + return xcs; +} + +void free_certificates(br_x509_certificate *certs, size_t num) { + if (certs) { + for (size_t u = 0; u < num; u ++) { + free(certs[u].data); + } + free(certs); + } +} + +static public_key *decode_public_key(const unsigned char *buff, size_t len) { + std::unique_ptr dc(new br_pkey_decoder_context); // auto-delete on exit + if (!dc.get()) { + return nullptr; + } + + public_key *pk = nullptr; + + br_pkey_decoder_init(dc.get()); + br_pkey_decoder_push(dc.get(), buff, len); + int err = br_pkey_decoder_last_error(dc.get()); + if (err != 0) { + return nullptr; + } + + const br_rsa_public_key *rk = nullptr; + const br_ec_public_key *ek = nullptr; + switch (br_pkey_decoder_key_type(dc.get())) { + case BR_KEYTYPE_RSA: + rk = br_pkey_decoder_get_rsa(dc.get()); + pk = (public_key*)malloc(sizeof * pk); + if (!pk) { + return nullptr; + } + pk->key_type = BR_KEYTYPE_RSA; + pk->key.rsa.n = (uint8_t*)malloc(rk->nlen); + pk->key.rsa.e = (uint8_t*)malloc(rk->elen); + if (!pk->key.rsa.n || !pk->key.rsa.e) { + free(pk->key.rsa.n); + free(pk->key.rsa.e); + free(pk); + return nullptr; + } + memcpy(pk->key.rsa.n, rk->n, rk->nlen); + pk->key.rsa.nlen = rk->nlen; + memcpy(pk->key.rsa.e, rk->e, rk->elen); + pk->key.rsa.elen = rk->elen; + return pk; + + case BR_KEYTYPE_EC: + ek = br_pkey_decoder_get_ec(dc.get()); + pk = (public_key*)malloc(sizeof * pk); + if (!pk) { + return nullptr; + } + pk->key_type = BR_KEYTYPE_EC; + pk->key.ec.q = (uint8_t*)malloc(ek->qlen); + if (!pk->key.ec.q) { + free(pk); + return nullptr; + } + memcpy(pk->key.ec.q, ek->q, ek->qlen); + pk->key.ec.qlen = ek->qlen; + pk->key.ec.curve = ek->curve; + return pk; + + default: + return nullptr; + } +} + +void free_public_key(public_key *pk) { + if (pk) { + if (pk->key_type == BR_KEYTYPE_RSA) { + free(pk->key.rsa.n); + free(pk->key.rsa.e); + } else if (pk->key_type == BR_KEYTYPE_EC) { + free(pk->key.ec.q); + } + free(pk); + } +} + +static private_key *decode_private_key(const unsigned char *buff, size_t len) { + std::unique_ptr dc(new br_skey_decoder_context); // auto-delete on exit + if (!dc.get()) { + return nullptr; + } + + private_key *sk = nullptr; + + br_skey_decoder_init(dc.get()); + br_skey_decoder_push(dc.get(), buff, len); + int err = br_skey_decoder_last_error(dc.get()); + if (err != 0) { + return nullptr; + } + + const br_rsa_private_key *rk = nullptr; + const br_ec_private_key *ek = nullptr; + switch (br_skey_decoder_key_type(dc.get())) { + case BR_KEYTYPE_RSA: + rk = br_skey_decoder_get_rsa(dc.get()); + sk = (private_key*)malloc(sizeof * sk); + if (!sk) { + return nullptr; + } + sk->key_type = BR_KEYTYPE_RSA; + sk->key.rsa.p = (uint8_t*)malloc(rk->plen); + sk->key.rsa.q = (uint8_t*)malloc(rk->qlen); + sk->key.rsa.dp = (uint8_t*)malloc(rk->dplen); + sk->key.rsa.dq = (uint8_t*)malloc(rk->dqlen); + sk->key.rsa.iq = (uint8_t*)malloc(rk->iqlen); + if (!sk->key.rsa.p || !sk->key.rsa.q || !sk->key.rsa.dp || !sk->key.rsa.dq || !sk->key.rsa.iq) { + free_private_key(sk); + return nullptr; + } + sk->key.rsa.n_bitlen = rk->n_bitlen; + memcpy(sk->key.rsa.p, rk->p, rk->plen); + sk->key.rsa.plen = rk->plen; + memcpy(sk->key.rsa.q, rk->q, rk->qlen); + sk->key.rsa.qlen = rk->qlen; + memcpy(sk->key.rsa.dp, rk->dp, rk->dplen); + sk->key.rsa.dplen = rk->dplen; + memcpy(sk->key.rsa.dq, rk->dq, rk->dqlen); + sk->key.rsa.dqlen = rk->dqlen; + memcpy(sk->key.rsa.iq, rk->iq, rk->iqlen); + sk->key.rsa.iqlen = rk->iqlen; + return sk; + + case BR_KEYTYPE_EC: + ek = br_skey_decoder_get_ec(dc.get()); + sk = (private_key*)malloc(sizeof * sk); + if (!sk) { + return nullptr; + } + sk->key_type = BR_KEYTYPE_EC; + sk->key.ec.curve = ek->curve; + sk->key.ec.x = (uint8_t*)malloc(ek->xlen); + if (!sk->key.ec.x) { + free_private_key(sk); + return nullptr; + } + memcpy(sk->key.ec.x, ek->x, ek->xlen); + sk->key.ec.xlen = ek->xlen; + return sk; + + default: + return nullptr; + } +} + +void free_private_key(private_key *sk) { + if (sk) { + switch (sk->key_type) { + case BR_KEYTYPE_RSA: + free(sk->key.rsa.p); + free(sk->key.rsa.q); + free(sk->key.rsa.dp); + free(sk->key.rsa.dq); + free(sk->key.rsa.iq); + break; + case BR_KEYTYPE_EC: + free(sk->key.ec.x); + break; + default: + // Could be an uninitted key, no sub elements to free + break; + } + free(sk); + } +} + +void free_pem_object(pem_object *pos) { + if (pos != nullptr) { + for (size_t u = 0; pos[u].name; u ++) { + free_pem_object_contents(&pos[u]); + } + free(pos); + } +} + +private_key *read_private_key(const char *buff, size_t len) { + private_key *sk = nullptr; + pem_object *pos = nullptr; + + if (looks_like_DER((const unsigned char*)buff, len)) { + sk = decode_private_key((const unsigned char*)buff, len); + return sk; + } + + size_t num; + pos = decode_pem(buff, len, &num); + if (pos == nullptr) { + return nullptr; // PEM decode error + } + for (size_t u = 0; pos[u].name; u ++) { + const char *name = pos[u].name; + if (!strcmp_P(name, PSTR("RSA PRIVATE KEY")) || !strcmp_P(name, PSTR("EC PRIVATE KEY")) || !strcmp_P(name, PSTR("PRIVATE KEY"))) { + sk = decode_private_key(pos[u].data, pos[u].data_len); + free_pem_object(pos); + return sk; + } + } + // If we hit here, no match + free_pem_object(pos); + return nullptr; +} + +public_key *read_public_key(const char *buff, size_t len) { + public_key *pk = nullptr; + pem_object *pos = nullptr; + + if (looks_like_DER((const unsigned char*)buff, len)) { + pk = decode_public_key((const unsigned char*)buff, len); + return pk; + } + size_t num; + pos = decode_pem(buff, len, &num); + if (pos == nullptr) { + return nullptr; // PEM decode error + } + for (size_t u = 0; pos[u].name; u ++) { + const char *name = pos[u].name; + if (!strcmp_P(name, PSTR("RSA PUBLIC KEY")) || !strcmp_P(name, PSTR("EC PUBLIC KEY")) || !strcmp_P(name, PSTR("PUBLIC KEY"))) { + pk = decode_public_key(pos[u].data, pos[u].data_len); + free_pem_object(pos); + return pk; + } + } + + // We hit here == no key found + free_pem_object(pos); + return pk; +} + +static uint8_t *loadStream(Stream& stream, size_t size) { + uint8_t *dest = (uint8_t *)malloc(size); + if (!dest) { + return nullptr; // OOM error + } + if (size != stream.readBytes(dest, size)) { + free(dest); // Error during read + return nullptr; + } + return dest; +} +}; + + +namespace BearSSL { + + +// ----- Public Key ----- + +PublicKey::PublicKey() { + _key = nullptr; +} + +PublicKey::PublicKey(const char *pemKey) { + _key = nullptr; + parse(pemKey); +} + +PublicKey::PublicKey(const uint8_t *derKey, size_t derLen) { + _key = nullptr; + parse(derKey, derLen); +} + +PublicKey::PublicKey(Stream &stream, size_t size) { + _key = nullptr; + auto buff = brssl::loadStream(stream, size); + if (buff) { + parse(buff, size); + free(buff); + } +} + +PublicKey::~PublicKey() { + if (_key) { + brssl::free_public_key(_key); + } +} + +bool PublicKey::parse(const char *pemKey) { + return parse((const uint8_t *)pemKey, strlen_P(pemKey)); +} + +bool PublicKey::parse(const uint8_t *derKey, size_t derLen) { + if (_key) { + brssl::free_public_key(_key); + _key = nullptr; + } + _key = brssl::read_public_key((const char *)derKey, derLen); + return _key ? true : false; +} + +bool PublicKey::isRSA() const { + if (!_key || _key->key_type != BR_KEYTYPE_RSA) { + return false; + } + return true; +} + +bool PublicKey::isEC() const { + if (!_key || _key->key_type != BR_KEYTYPE_EC) { + return false; + } + return true; +} + +const br_rsa_public_key *PublicKey::getRSA() const { + if (!_key || _key->key_type != BR_KEYTYPE_RSA) { + return nullptr; + } + return &_key->key.rsa; +} + +const br_ec_public_key *PublicKey::getEC() const { + if (!_key || _key->key_type != BR_KEYTYPE_EC) { + return nullptr; + } + return &_key->key.ec; +} + +// ----- Private Key ----- + +PrivateKey::PrivateKey() { + _key = nullptr; +} + +PrivateKey::PrivateKey(const char *pemKey) { + _key = nullptr; + parse(pemKey); +} + +PrivateKey::PrivateKey(const uint8_t *derKey, size_t derLen) { + _key = nullptr; + parse(derKey, derLen); +} + +PrivateKey::PrivateKey(Stream &stream, size_t size) { + _key = nullptr; + auto buff = brssl::loadStream(stream, size); + if (buff) { + parse(buff, size); + free(buff); + } +} + +PrivateKey::~PrivateKey() { + if (_key) { + brssl::free_private_key(_key); + } +} + +bool PrivateKey::parse(const char *pemKey) { + return parse((const uint8_t *)pemKey, strlen_P(pemKey)); +} + +bool PrivateKey::parse(const uint8_t *derKey, size_t derLen) { + if (_key) { + brssl::free_private_key(_key); + _key = nullptr; + } + _key = brssl::read_private_key((const char *)derKey, derLen); + return _key ? true : false; +} + +bool PrivateKey::isRSA() const { + if (!_key || _key->key_type != BR_KEYTYPE_RSA) { + return false; + } + return true; +} + +bool PrivateKey::isEC() const { + if (!_key || _key->key_type != BR_KEYTYPE_EC) { + return false; + } + return true; +} + +const br_rsa_private_key *PrivateKey::getRSA() const { + if (!_key || _key->key_type != BR_KEYTYPE_RSA) { + return nullptr; + } + return &_key->key.rsa; +} + +const br_ec_private_key *PrivateKey::getEC() const { + if (!_key || _key->key_type != BR_KEYTYPE_EC) { + return nullptr; + } + return &_key->key.ec; +} + +// ----- Certificate Lists ----- + +X509List::X509List() { + _count = 0; + _cert = nullptr; + _ta = nullptr; +} + +X509List::X509List(const char *pemCert) { + _count = 0; + _cert = nullptr; + _ta = nullptr; + append(pemCert); +} + + +X509List::X509List(const uint8_t *derCert, size_t derLen) { + _count = 0; + _cert = nullptr; + _ta = nullptr; + append(derCert, derLen); +} + +X509List::X509List(Stream &stream, size_t size) { + _count = 0; + _cert = nullptr; + _ta = nullptr; + auto buff = brssl::loadStream(stream, size); + if (buff) { + append(buff, size); + free(buff); + } +} + +X509List::~X509List() { + brssl::free_certificates(_cert, _count); // also frees cert + for (size_t i = 0; i < _count; i++) { + brssl::free_ta_contents(&_ta[i]); + } + free(_ta); +} + +bool X509List::append(const char *pemCert) { + return append((const uint8_t *)pemCert, strlen_P(pemCert)); +} + +bool X509List::append(const uint8_t *derCert, size_t derLen) { + size_t numCerts; + br_x509_certificate *newCerts = brssl::read_certificates((const char *)derCert, derLen, &numCerts); + if (!newCerts) { + return false; + } + + // Add in the certificates + br_x509_certificate *saveCert = _cert; + _cert = (br_x509_certificate*)realloc(_cert, (numCerts + _count) * sizeof(br_x509_certificate)); + if (!_cert) { + free(newCerts); + _cert = saveCert; + return false; + } + memcpy(&_cert[_count], newCerts, numCerts * sizeof(br_x509_certificate)); + free(newCerts); + + // Build TAs for each certificate + br_x509_trust_anchor *saveTa = _ta; + _ta = (br_x509_trust_anchor*)realloc(_ta, (numCerts + _count) * sizeof(br_x509_trust_anchor)); + if (!_ta) { + _ta = saveTa; + return false; + } + for (size_t i = 0; i < numCerts; i++) { + br_x509_trust_anchor *newTa = brssl::certificate_to_trust_anchor(&_cert[_count + i]); + if (newTa) { + _ta[_count + i ] = *newTa; + free(newTa); + } else { + return false; // OOM + } + } + _count += numCerts; + + return true; +} + +ServerSessions::~ServerSessions() { + if (_isDynamic && _store != nullptr) { + delete _store; + } +} + +ServerSessions::ServerSessions(ServerSession *sessions, uint32_t size, bool isDynamic) : + _size(sessions != nullptr ? size : 0), + _store(sessions), _isDynamic(isDynamic) { + if (_size > 0) { + br_ssl_session_cache_lru_init(&_cache, (uint8_t*)_store, size * sizeof(ServerSession)); + } +} + +const br_ssl_session_cache_class **ServerSessions::getCache() { + return _size > 0 ? &_cache.vtable : nullptr; +} +#if 0 +// SHA256 hash for updater +void HashSHA256::begin() { + br_sha256_init(&_cc); + memset(_sha256, 0, sizeof(_sha256)); +} + +void HashSHA256::add(const void *data, uint32_t len) { + br_sha256_update(&_cc, data, len); +} + +void HashSHA256::end() { + br_sha256_out(&_cc, _sha256); +} + +int HashSHA256::len() { + return sizeof(_sha256); +} + +const void *HashSHA256::hash() { + return (const void*) _sha256; +} + +const unsigned char *HashSHA256::oid() { + return BR_HASH_OID_SHA256; +} + +// SHA256 verifier +uint32_t SigningVerifier::length() { + if (!_pubKey) { + return 0; + } else if (_pubKey->isRSA()) { + return _pubKey->getRSA()->nlen; + } else if (_pubKey->isEC()) { + return _pubKey->getEC()->qlen; + } else { + return 0; + } +} + +// We need to use the 2nd stack to do a verification, so do the thunk +// directly inside the class function for ease of use. +extern "C" bool SigningVerifier_verify(PublicKey *_pubKey, UpdaterHashClass *hash, const void *signature, uint32_t signatureLen) { + if (_pubKey->isRSA()) { + bool ret; + unsigned char vrf[hash->len()]; + br_rsa_pkcs1_vrfy vrfy = br_rsa_pkcs1_vrfy_get_default(); + ret = vrfy((const unsigned char *)signature, signatureLen, hash->oid(), sizeof(vrf), _pubKey->getRSA(), vrf); + if (!ret || memcmp(vrf, hash->hash(), sizeof(vrf))) { + return false; + } else { + return true; + } + } else { + br_ecdsa_vrfy vrfy = br_ecdsa_vrfy_raw_get_default(); + // The EC verifier actually does the compare, unlike the RSA one + return vrfy(br_ec_get_default(), hash->hash(), hash->len(), _pubKey->getEC(), (const unsigned char *)signature, signatureLen); + } +}; + +#if !CORE_MOCK +make_stack_thunk(SigningVerifier_verify); +extern "C" bool thunk_SigningVerifier_verify(PublicKey *_pubKey, UpdaterHashClass *hash, const void *signature, uint32_t signatureLen); +#endif + +bool SigningVerifier::verify(UpdaterHashClass *hash, const void *signature, uint32_t signatureLen) { + if (!_pubKey || !hash || !signature || signatureLen != length()) { + return false; + } +#if !CORE_MOCK + return thunk_SigningVerifier_verify(_pubKey, hash, signature, signatureLen); +#else + return SigningVerifier_verify(_pubKey, hash, signature, signatureLen); +#endif +} + +#if !CORE_MOCK + +// Second stack thunked helpers +make_stack_thunk(br_ssl_engine_recvapp_ack); +make_stack_thunk(br_ssl_engine_recvapp_buf); +make_stack_thunk(br_ssl_engine_recvrec_ack); +make_stack_thunk(br_ssl_engine_recvrec_buf); +make_stack_thunk(br_ssl_engine_sendapp_ack); +make_stack_thunk(br_ssl_engine_sendapp_buf); +make_stack_thunk(br_ssl_engine_sendrec_ack); +make_stack_thunk(br_ssl_engine_sendrec_buf); + +#endif + +#endif +}; + +#if ARDUINO_SIGNING +namespace { +static BearSSL::PublicKey signingPubKey(signing_pubkey); +static BearSSL::HashSHA256 __signingHash; +static BearSSL::SigningVerifier __signingVerifier(&signingPubKey); +}; + +namespace esp8266 { +UpdaterHashClass& updaterSigningHash = __signingHash; +UpdaterVerifyClass& updaterSigningVerifier = __signingVerifier; +}; +#endif + + diff --git a/libraries/WiFi/src/BearSSLHelpers.h b/libraries/WiFi/src/BearSSLHelpers.h new file mode 100644 index 00000000..9d104e83 --- /dev/null +++ b/libraries/WiFi/src/BearSSLHelpers.h @@ -0,0 +1,247 @@ +/* + WiFiClientBearSSL- SSL client/server for esp8266 using BearSSL libraries + - Mostly compatible with Arduino WiFi shield library and standard + WiFiClient/ServerSecure (except for certificate handling). + + Copyright (c) 2018 Earle F. Philhower, III + + 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include +#include +//#include + +// Internal opaque structures, not needed by user applications +namespace brssl { +class public_key; +class private_key; +}; + +namespace BearSSL { + +// Holds either a single public RSA or EC key for use when BearSSL wants a pubkey. +// Copies all associated data so no need to keep input PEM/DER keys. +// All inputs can be either in RAM or PROGMEM. +class PublicKey { +public: + PublicKey(); + PublicKey(const char *pemKey); + PublicKey(const uint8_t *derKey, size_t derLen); + PublicKey(Stream& stream, size_t size); + PublicKey(Stream& stream) : PublicKey(stream, stream.available()) { }; + ~PublicKey(); + + bool parse(const char *pemKey); + bool parse(const uint8_t *derKey, size_t derLen); + + // Accessors for internal use, not needed by apps + bool isRSA() const; + bool isEC() const; + const br_rsa_public_key *getRSA() const; + const br_ec_public_key *getEC() const; + + // Disable the copy constructor, we're pointer based + PublicKey(const PublicKey& that) = delete; + PublicKey& operator=(const PublicKey& that) = delete; + +private: + brssl::public_key *_key; +}; + +// Holds either a single private RSA or EC key for use when BearSSL wants a secretkey. +// Copies all associated data so no need to keep input PEM/DER keys. +// All inputs can be either in RAM or PROGMEM. +class PrivateKey { +public: + PrivateKey(); + PrivateKey(const char *pemKey); + PrivateKey(const uint8_t *derKey, size_t derLen); + PrivateKey(Stream& stream, size_t size); + PrivateKey(Stream& stream) : PrivateKey(stream, stream.available()) { }; + ~PrivateKey(); + + bool parse(const char *pemKey); + bool parse(const uint8_t *derKey, size_t derLen); + + // Accessors for internal use, not needed by apps + bool isRSA() const; + bool isEC() const; + const br_rsa_private_key *getRSA() const; + const br_ec_private_key *getEC() const; + + // Disable the copy constructor, we're pointer based + PrivateKey(const PrivateKey& that) = delete; + PrivateKey& operator=(const PrivateKey& that) = delete; + +private: + brssl::private_key *_key; +}; + +// Holds one or more X.509 certificates and associated trust anchors for +// use whenever BearSSL needs a cert or TA. May want to have multiple +// certs for things like a series of trusted CAs (but check the CertStore class +// for a more memory efficient way). +// Copies all associated data so no need to keep input PEM/DER certs. +// All inputs can be either in RAM or PROGMEM. +class X509List { +public: + X509List(); + X509List(const char *pemCert); + X509List(const uint8_t *derCert, size_t derLen); + X509List(Stream& stream, size_t size); + X509List(Stream& stream) : X509List(stream, stream.available()) { }; + ~X509List(); + + bool append(const char *pemCert); + bool append(const uint8_t *derCert, size_t derLen); + + // Accessors + size_t getCount() const { + return _count; + } + const br_x509_certificate *getX509Certs() const { + return _cert; + } + const br_x509_trust_anchor *getTrustAnchors() const { + return _ta; + } + + // Disable the copy constructor, we're pointer based + X509List(const X509List& that) = delete; + X509List& operator=(const X509List& that) = delete; + +private: + size_t _count; + br_x509_certificate *_cert; + br_x509_trust_anchor *_ta; +}; + +// Opaque object which wraps the BearSSL SSL session to make repeated connections +// significantly faster. Completely optional. +class WiFiClientSecure; + +// Cache for a TLS session with a server +// Use with BearSSL::WiFiClientSecure::setSession +// to accelerate the TLS handshake +class Session { + friend class WiFiClientSecureCtx; + +public: + Session() { + memset(&_session, 0, sizeof(_session)); + } +private: + br_ssl_session_parameters *getSession() { + return &_session; + } + // The actual BearSSL session information + br_ssl_session_parameters _session; +}; + +// Represents a single server session. +// Use with BearSSL::ServerSessions. +typedef uint8_t ServerSession[100]; + +// Cache for the TLS sessions of multiple clients. +// Use with BearSSL::WiFiServerSecure::setCache +class ServerSessions { + friend class WiFiClientSecureCtx; + +public: + // Uses the given buffer to cache the given number of sessions and initializes it. + ServerSessions(ServerSession *sessions, uint32_t size) : ServerSessions(sessions, size, false) {} + + // Dynamically allocates a cache for the given number of sessions and initializes it. + // If the allocation of the buffer wasn't successful, the value + // returned by size() will be 0. + ServerSessions(uint32_t size) : ServerSessions(size > 0 ? new ServerSession[size] : nullptr, size, true) {} + + ~ServerSessions(); + + // Returns the number of sessions the cache can hold. + uint32_t size() { + return _size; + } + +private: + ServerSessions(ServerSession *sessions, uint32_t size, bool isDynamic); + + // Returns the cache's vtable or null if the cache has no capacity. + const br_ssl_session_cache_class **getCache(); + + // Size of the store in sessions. + uint32_t _size; + // Store where the information for the sessions are stored. + ServerSession *_store; + // Whether the store is dynamically allocated. + // If this is true, the store needs to be freed in the destructor. + bool _isDynamic; + + // Cache of the server using the _store. + br_ssl_session_cache_lru _cache; +}; + +#if 0 + +// Updater SHA256 hash and signature verification +class HashSHA256 : public UpdaterHashClass { +public: + virtual void begin() override; + virtual void add(const void *data, uint32_t len) override; + virtual void end() override; + virtual int len() override; + virtual const void *hash() override; + virtual const unsigned char *oid() override; +private: + br_sha256_context _cc; + unsigned char _sha256[32]; +}; + +class SigningVerifier : public UpdaterVerifyClass { +public: + virtual uint32_t length() override; + virtual bool verify(UpdaterHashClass *hash, const void *signature, uint32_t signatureLen) override; + +public: + SigningVerifier(PublicKey *pubKey) { + _pubKey = pubKey; + stack_thunk_add_ref(); + } + ~SigningVerifier() { + stack_thunk_del_ref(); + } + +private: + PublicKey *_pubKey; +}; + +// Stack thunked versions of calls +extern "C" { + extern unsigned char *thunk_br_ssl_engine_recvapp_buf(const br_ssl_engine_context *cc, size_t *len); + extern void thunk_br_ssl_engine_recvapp_ack(br_ssl_engine_context *cc, size_t len); + extern unsigned char *thunk_br_ssl_engine_recvrec_buf(const br_ssl_engine_context *cc, size_t *len); + extern void thunk_br_ssl_engine_recvrec_ack(br_ssl_engine_context *cc, size_t len); + extern unsigned char *thunk_br_ssl_engine_sendapp_buf(const br_ssl_engine_context *cc, size_t *len); + extern void thunk_br_ssl_engine_sendapp_ack(br_ssl_engine_context *cc, size_t len); + extern unsigned char *thunk_br_ssl_engine_sendrec_buf(const br_ssl_engine_context *cc, size_t *len); + extern void thunk_br_ssl_engine_sendrec_ack(br_ssl_engine_context *cc, size_t len); +}; + +#endif + +}; diff --git a/libraries/WiFi/src/CertStoreBearSSL.cpp b/libraries/WiFi/src/CertStoreBearSSL.cpp new file mode 100644 index 00000000..a5b785bf --- /dev/null +++ b/libraries/WiFi/src/CertStoreBearSSL.cpp @@ -0,0 +1,236 @@ +/* + CertStoreBearSSL.cpp - Library for Arduino ESP8266 + Copyright (c) 2018 Earle F. Philhower, III + + 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "CertStoreBearSSL.h" +#include + + +#if defined(DEBUG_ESP_SSL) && defined(DEBUG_ESP_PORT) +#define DEBUG_BSSL(fmt, ...) DEBUG_ESP_PORT.printf_P((PGM_P)PSTR( "BSSL:" fmt), ## __VA_ARGS__) +#else +#define DEBUG_BSSL(...) +#endif + +namespace BearSSL { + +extern "C" { + // Callback for the x509 decoder + static void dn_append(void *ctx, const void *buf, size_t len) { + br_sha256_context *sha1 = (br_sha256_context*)ctx; + br_sha256_update(sha1, buf, len); + } +} + + +CertStore::~CertStore() { + free(_indexName); + free(_dataName); +} + +CertStore::CertInfo CertStore::_preprocessCert(uint32_t length, uint32_t offset, const void *raw) { + CertStore::CertInfo ci; + + // Clear the CertInfo + memset(&ci, 0, sizeof(ci)); + + // Process it using SHA256, same as the hashed_dn + br_x509_decoder_context *ctx = new (std::nothrow) br_x509_decoder_context; + br_sha256_context *sha256 = new (std::nothrow) br_sha256_context; + if (!ctx || !sha256) { + if (ctx) { + delete ctx; + } + if (sha256) { + delete sha256; + } + DEBUG_BSSL("CertStore::_preprocessCert: OOM\n"); + return ci; + } + + br_sha256_init(sha256); + br_x509_decoder_init(ctx, dn_append, sha256, nullptr, nullptr); + br_x509_decoder_push(ctx, (const void*)raw, length); + + // Copy result to structure + br_sha256_out(sha256, &ci.sha256); + ci.length = length; + ci.offset = offset; + + // Clean up allocated memory + delete sha256; + delete ctx; + + // Return result + return ci; +} + +// The certs.ar file is a UNIX ar format file, concatenating all the +// individual certificates into a single blob in a space-efficient way. +int CertStore::initCertStore(fs::FS &fs, const char *indexFileName, const char *dataFileName) { + int count = 0; + uint32_t offset = 0; + + _fs = &fs; + + // In case initCertStore called multiple times, don't leak old filenames + free(_indexName); + free(_dataName); + + // No strdup_P, so manually do it + _indexName = (char *)malloc(strlen_P(indexFileName) + 1); + _dataName = (char *)malloc(strlen_P(dataFileName) + 1); + if (!_indexName || !_dataName) { + free(_indexName); + free(_dataName); + return 0; + } + memcpy_P(_indexName, indexFileName, strlen_P(indexFileName) + 1); + memcpy_P(_dataName, dataFileName, strlen_P(dataFileName) + 1); + + fs::File index = _fs->open(_indexName, "w"); + if (!index) { + return 0; + } + + fs::File data = _fs->open(_dataName, "r"); + if (!data) { + index.close(); + return 0; + } + + uint8_t magic[8]; + if (data.read(magic, sizeof(magic)) != sizeof(magic) || + memcmp(magic, "!\n", sizeof(magic))) { + data.close(); + index.close(); + return 0; + } + offset += sizeof(magic); + + while (true) { + uint8_t fileHeader[60]; + // 0..15 = filename in ASCII + // 48...57 = length in decimal ASCII + int32_t length; + if (data.read(fileHeader, sizeof(fileHeader)) != sizeof(fileHeader)) { + break; + } + offset += sizeof(fileHeader); + fileHeader[58] = 0; + if (1 != sscanf((char *)(fileHeader + 48), "%ld", &length) || !length) { + break; + } + + void *raw = malloc(length); + if (!raw) { + break; + } + if (data.read((uint8_t *)raw, length) != length) { + free(raw); + break; + } + + // If the filename starts with "//" then this is a rename file, skip it + if (fileHeader[0] != '/' || fileHeader[1] != '/') { + CertStore::CertInfo ci = _preprocessCert(length, offset, raw); + if (index.write((uint8_t *)&ci, sizeof(ci)) != (ssize_t)sizeof(ci)) { + free(raw); + break; + } + count++; + } + + offset += length; + free(raw); + if (offset & 1) { + uint8_t x; + data.read(&x, 1); + offset++; + } + } + data.close(); + index.close(); + return count; +} + +void CertStore::installCertStore(br_x509_minimal_context *ctx) { + br_x509_minimal_set_dynamic(ctx, (void*)this, findHashedTA, freeHashedTA); +} + +const br_x509_trust_anchor *CertStore::findHashedTA(void *ctx, void *hashed_dn, size_t len) { + CertStore *cs = static_cast(ctx); + CertStore::CertInfo ci; + + if (!cs || len != sizeof(ci.sha256) || !cs->_indexName || !cs->_dataName || !cs->_fs) { + return nullptr; + } + + fs::File index = cs->_fs->open(cs->_indexName, "r"); + if (!index) { + return nullptr; + } + + while (index.read((uint8_t *)&ci, sizeof(ci)) == sizeof(ci)) { + if (!memcmp(ci.sha256, hashed_dn, sizeof(ci.sha256))) { + index.close(); + uint8_t *der = (uint8_t*)malloc(ci.length); + if (!der) { + return nullptr; + } + fs::File data = cs->_fs->open(cs->_dataName, "r"); + if (!data) { + free(der); + return nullptr; + } + if (!data.seek(ci.offset, fs::SeekSet)) { + data.close(); + free(der); + return nullptr; + } + if (data.read(der, ci.length) != (int)ci.length) { + free(der); + return nullptr; + } + data.close(); + cs->_x509 = new (std::nothrow) X509List(der, ci.length); + free(der); + if (!cs->_x509) { + DEBUG_BSSL("CertStore::findHashedTA: OOM\n"); + return nullptr; + } + + br_x509_trust_anchor *ta = (br_x509_trust_anchor*)cs->_x509->getTrustAnchors(); + memcpy(ta->dn.data, ci.sha256, sizeof(ci.sha256)); + ta->dn.len = sizeof(ci.sha256); + + return ta; + } + } + index.close(); + return nullptr; +} + +void CertStore::freeHashedTA(void *ctx, const br_x509_trust_anchor *ta) { + CertStore *cs = static_cast(ctx); + (void) ta; // Unused + delete cs->_x509; + cs->_x509 = nullptr; +} + +} diff --git a/libraries/WiFi/src/CertStoreBearSSL.h b/libraries/WiFi/src/CertStoreBearSSL.h new file mode 100644 index 00000000..ebc2932e --- /dev/null +++ b/libraries/WiFi/src/CertStoreBearSSL.h @@ -0,0 +1,73 @@ +/* + CertStoreBearSSL.h - Library for Arduino ESP8266 + Copyright (c) 2018 Earle F. Philhower, III + + 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include +#include +#include +#include + +// Base class for the certificate stores, which allow use +// of a large set of certificates stored on FS or SD card to +// be dynamically used when validating a X509 certificate + +namespace BearSSL { + +class CertStoreBase { +public: + virtual ~CertStoreBase() {} + + // Installs the cert store into the X509 decoder (normally via static function callbacks) + virtual void installCertStore(br_x509_minimal_context *ctx) = 0; +}; + +class CertStore: public CertStoreBase { +public: + CertStore() { }; + ~CertStore(); + + // Set the file interface instances, do preprocessing + int initCertStore(fs::FS &fs, const char *indexFileName, const char *dataFileName); + + // Installs the cert store into the X509 decoder (normally via static function callbacks) + void installCertStore(br_x509_minimal_context *ctx); + +protected: + fs::FS *_fs = nullptr; + char *_indexName = nullptr; + char *_dataName = nullptr; + X509List *_x509 = nullptr; + + // These need to be static as they are callbacks from BearSSL C code + static const br_x509_trust_anchor *findHashedTA(void *ctx, void *hashed_dn, size_t len); + static void freeHashedTA(void *ctx, const br_x509_trust_anchor *ta); + + // The binary format of the index file + class CertInfo { + public: + uint8_t sha256[32]; + uint32_t offset; + uint32_t length; + }; + static CertInfo _preprocessCert(uint32_t length, uint32_t offset, const void *raw); + +}; + +}; diff --git a/libraries/WiFi/src/WiFi.h b/libraries/WiFi/src/WiFi.h index f161b622..dfd0bc4b 100644 --- a/libraries/WiFi/src/WiFi.h +++ b/libraries/WiFi/src/WiFi.h @@ -8,6 +8,6 @@ #include "WiFiClass.h" #include "WiFiClient.h" #include "WiFiServer.h" -//#include "WiFiClientSecure.h" -//#include "WiFiServerSecure.h" +#include "WiFiClientSecure.h" +#include "WiFiServerSecure.h" #include "WiFiUdp.h" diff --git a/libraries/WiFi/src/WiFiClientSecure.h b/libraries/WiFi/src/WiFiClientSecure.h new file mode 100644 index 00000000..e3326e9a --- /dev/null +++ b/libraries/WiFi/src/WiFiClientSecure.h @@ -0,0 +1,25 @@ +/* + WiFiClientSecure.h - Variant of WiFiClient with TLS support + Copyright (c) 2015 Ivan Grokhotkov. All rights reserved. + This file is part of the esp8266 core for Arduino environment. + + + 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +*/ +#include "WiFiClient.h" +#include "WiFiClientSecureBearSSL.h" + +using namespace BearSSL; diff --git a/libraries/WiFi/src/WiFiClientSecureBearSSL.cpp b/libraries/WiFi/src/WiFiClientSecureBearSSL.cpp new file mode 100644 index 00000000..b82cdd89 --- /dev/null +++ b/libraries/WiFi/src/WiFiClientSecureBearSSL.cpp @@ -0,0 +1,1666 @@ +/* + WiFiClientBearSSL- SSL client/server for esp8266 using BearSSL libraries + - Mostly compatible with Arduino WiFi shield library and standard + WiFiClient/ServerSecure (except for certificate handling). + + Copyright (c) 2018 Earle F. Philhower, III + + 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include +#include +#include +//#include + + + +//#include "debug.h" +#include "WiFi.h" +//#include "PolledTimeout.h" +#include "WiFiClient.h" +#include "WiFiClientSecureBearSSL.h" +#include "StackThunk.h" +#include "lwip/opt.h" +#include "lwip/ip.h" +#include "lwip/tcp.h" +#include "lwip/inet.h" +#include "lwip/netif.h" +#include +//#include "c_types.h" +//#include +//#include +//#include +#if 0 +#if !CORE_MOCK + +// The BearSSL thunks in use for now +#define br_ssl_engine_recvapp_ack thunk_br_ssl_engine_recvapp_ack +#define br_ssl_engine_recvapp_buf thunk_br_ssl_engine_recvapp_buf +#define br_ssl_engine_recvrec_ack thunk_br_ssl_engine_recvrec_ack +#define br_ssl_engine_recvrec_buf thunk_br_ssl_engine_recvrec_buf +#define br_ssl_engine_sendapp_ack thunk_br_ssl_engine_sendapp_ack +#define br_ssl_engine_sendapp_buf thunk_br_ssl_engine_sendapp_buf +#define br_ssl_engine_sendrec_ack thunk_br_ssl_engine_sendrec_ack +#define br_ssl_engine_sendrec_buf thunk_br_ssl_engine_sendrec_buf + +#endif +#endif + +#if defined(DEBUG_ESP_SSL) && defined(DEBUG_ESP_PORT) +#define DEBUG_BSSL(fmt, ...) DEBUG_ESP_PORT.printf_P((PGM_P)PSTR( "BSSL:" fmt), ## __VA_ARGS__) +#else +#define DEBUG_BSSL(...) +#endif + +extern "C" uint32_t __picoRand() { + return rp2040.hwrand32(); +} + +extern "C" void stack_thunk_add_ref() {} +extern "C" void stack_thunk_del_ref() {} + +namespace BearSSL { + +void WiFiClientSecureCtx::_clear() { + // TLS handshake may take more than the 5 second default timeout + _timeout = 15000; + + _sc = nullptr; + _sc_svr = nullptr; + _eng = nullptr; + _x509_minimal = nullptr; + _x509_insecure = nullptr; + _x509_knownkey = nullptr; + _iobuf_in = nullptr; + _iobuf_out = nullptr; + _now = 0; // You can override or ensure time() is correct w/configTime + _ta = nullptr; + setBufferSizes(16384, 512); // Minimum safe + _handshake_done = false; + _recvapp_buf = nullptr; + _recvapp_len = 0; + _oom_err = false; + _session = nullptr; + _cipher_list = nullptr; + _cipher_cnt = 0; + _tls_min = BR_TLS10; + _tls_max = BR_TLS12; +} + +void WiFiClientSecureCtx::_clearAuthenticationSettings() { + _use_insecure = false; + _use_fingerprint = false; + _use_self_signed = false; + _knownkey = nullptr; + _ta = nullptr; +} + + +WiFiClientSecureCtx::WiFiClientSecureCtx() : WiFiClient() { + _clear(); + _clearAuthenticationSettings(); + _certStore = nullptr; // Don't want to remove cert store on a clear, should be long lived + _sk = nullptr; + stack_thunk_add_ref(); +} + +WiFiClientSecureCtx::~WiFiClientSecureCtx() { + if (_client) { + _client->unref(); + _client = nullptr; + } + _cipher_list = nullptr; // std::shared will free if last reference + _freeSSL(); + stack_thunk_del_ref(); +} + +WiFiClientSecureCtx::WiFiClientSecureCtx(ClientContext* client, + const X509List *chain, const PrivateKey *sk, + int iobuf_in_size, int iobuf_out_size, ServerSessions *cache, + const X509List *client_CA_ta, int tls_min, int tls_max) { + _clear(); + _clearAuthenticationSettings(); + stack_thunk_add_ref(); + _iobuf_in_size = iobuf_in_size; + _iobuf_out_size = iobuf_out_size; + _client = client; + _client->ref(); + _tls_min = tls_min; + _tls_max = tls_max; + if (!_connectSSLServerRSA(chain, sk, cache, client_CA_ta)) { + _client->unref(); + _client = nullptr; + _clear(); + } +} + +WiFiClientSecureCtx::WiFiClientSecureCtx(ClientContext *client, + const X509List *chain, + unsigned cert_issuer_key_type, const PrivateKey *sk, + int iobuf_in_size, int iobuf_out_size, ServerSessions *cache, + const X509List *client_CA_ta, int tls_min, int tls_max) { + _clear(); + _clearAuthenticationSettings(); + stack_thunk_add_ref(); + _iobuf_in_size = iobuf_in_size; + _iobuf_out_size = iobuf_out_size; + _client = client; + _client->ref(); + _tls_min = tls_min; + _tls_max = tls_max; + if (!_connectSSLServerEC(chain, cert_issuer_key_type, sk, cache, client_CA_ta)) { + _client->unref(); + _client = nullptr; + _clear(); + } +} + +void WiFiClientSecureCtx::setClientRSACert(const X509List *chain, const PrivateKey *sk) { + _chain = chain; + _sk = sk; +} + +void WiFiClientSecureCtx::setClientECCert(const X509List *chain, + const PrivateKey *sk, unsigned allowed_usages, unsigned cert_issuer_key_type) { + _chain = chain; + _sk = sk; + _allowed_usages = allowed_usages; + _cert_issuer_key_type = cert_issuer_key_type; +} + +void WiFiClientSecureCtx::setBufferSizes(int recv, int xmit) { + // Following constants taken from bearssl/src/ssl/ssl_engine.c (not exported unfortunately) + const int MAX_OUT_OVERHEAD = 85; + const int MAX_IN_OVERHEAD = 325; + + // The data buffers must be between 512B and 16KB + recv = std::max(512, std::min(16384, recv)); + xmit = std::max(512, std::min(16384, xmit)); + + // Add in overhead for SSL protocol + recv += MAX_IN_OVERHEAD; + xmit += MAX_OUT_OVERHEAD; + _iobuf_in_size = recv; + _iobuf_out_size = xmit; +} + +bool WiFiClientSecureCtx::stop(unsigned int maxWaitMs) { + bool ret = WiFiClient::stop(maxWaitMs); // calls our virtual flush() + // Only if we've already connected, store session params and clear the connection options + if (_handshake_done) { + if (_session) { + br_ssl_engine_get_session_parameters(_eng, _session->getSession()); + } + } + _freeSSL(); + return ret; +} + +bool WiFiClientSecureCtx::flush(unsigned int maxWaitMs) { + (void) _run_until(BR_SSL_SENDAPP); + return WiFiClient::flush(maxWaitMs); +} + +int WiFiClientSecureCtx::connect(IPAddress ip, uint16_t port) { + if (!WiFiClient::connect(ip, port)) { + return 0; + } + return _connectSSL(nullptr); +} + +int WiFiClientSecureCtx::connect(const char* name, uint16_t port) { + IPAddress remote_addr; + if (!WiFi.hostByName(name, remote_addr)) { + DEBUG_BSSL("connect: Name lookup failure\n"); + return 0; + } + if (!WiFiClient::connect(remote_addr, port)) { + DEBUG_BSSL("connect: Unable to connect TCP socket\n"); + return 0; + } + return _connectSSL(name); +} + +int WiFiClientSecureCtx::connect(const String& host, uint16_t port) { + return connect(host.c_str(), port); +} + +void WiFiClientSecureCtx::_freeSSL() { + // These are smart pointers and will free if refcnt==0 + _sc = nullptr; + _sc_svr = nullptr; + _x509_minimal = nullptr; + _x509_insecure = nullptr; + _x509_knownkey = nullptr; + _iobuf_in = nullptr; + _iobuf_out = nullptr; + // Reset non-allocated ptrs (pointing to bits potentially free'd above) + _recvapp_buf = nullptr; + _recvapp_len = 0; + // This connection is toast + _handshake_done = false; + _timeout = 15000; +} + +bool WiFiClientSecureCtx::_clientConnected() { + return (_client && _client->state() == ESTABLISHED); +} + +uint8_t WiFiClientSecureCtx::connected() { + if (available() || (_clientConnected() && _handshake_done && (br_ssl_engine_current_state(_eng) != BR_SSL_CLOSED))) { + return true; + } + return false; +} + +int WiFiClientSecureCtx::availableForWrite() { + // code taken from ::_write() + if (!connected() || !_handshake_done) { + return 0; + } + // Get BearSSL to a state where we can send + if (_run_until(BR_SSL_SENDAPP) < 0) { + return 0; + } + if (br_ssl_engine_current_state(_eng) & BR_SSL_SENDAPP) { + size_t sendapp_len; + (void)br_ssl_engine_sendapp_buf(_eng, &sendapp_len); + // We want to call br_ssl_engine_sendapp_ack(0) but 0 is forbidden (bssl doc). + // After checking br_ssl_engine_sendapp_buf() src code, + // it seems that it is OK to not call ack when the buffer is left untouched. + //forbidden: br_ssl_engine_sendapp_ack(_eng, 0); + return (int)sendapp_len; + } + return 0; +} + +size_t WiFiClientSecureCtx::_write(const uint8_t *buf, size_t size, bool pmem) { + size_t sent_bytes = 0; + + if (!connected() || !size || !_handshake_done) { + return 0; + } + + do { + // Ensure we yield if we need multiple fragments to avoid WDT + // if (sent_bytes) { + // optimistic_yield(1000); + // } + + // Get BearSSL to a state where we can send + if (_run_until(BR_SSL_SENDAPP) < 0) { + break; + } + + if (br_ssl_engine_current_state(_eng) & BR_SSL_SENDAPP) { + size_t sendapp_len; + unsigned char *sendapp_buf = br_ssl_engine_sendapp_buf(_eng, &sendapp_len); + int to_send = size > sendapp_len ? sendapp_len : size; + if (pmem) { + memcpy_P(sendapp_buf, buf, to_send); + } else { + memcpy(sendapp_buf, buf, to_send); + } + br_ssl_engine_sendapp_ack(_eng, to_send); + br_ssl_engine_flush(_eng, 0); + flush(); + buf += to_send; + sent_bytes += to_send; + size -= to_send; + } else { + break; + } + } while (size); + + return sent_bytes; +} + +size_t WiFiClientSecureCtx::write(const uint8_t *buf, size_t size) { + return _write(buf, size, false); +} + +//size_t WiFiClientSecureCtx::write_P(PGM_P buf, size_t size) { +// return _write((const uint8_t *)buf, size, true); +//} + +//size_t WiFiClientSecureCtx::write(Stream& stream) { +// if (!connected() || !_handshake_done) { +// DEBUG_BSSL("write: Connect/handshake not completed yet\n"); +// return 0; +// } +// return stream.sendAll(this); +//} + +int WiFiClientSecureCtx::read(uint8_t *buf, size_t size) { + if (!ctx_present() || !_handshake_done) { + return -1; + } + + int avail = available(); + bool conn = connected(); + if (!avail && conn) { + return 0; // We're still connected, but nothing to read + } + if (!avail && !conn) { + DEBUG_BSSL("read: Not connected, none left available\n"); + return -1; + } + + if (avail) { + // Take data from the recvapp buffer + int to_copy = _recvapp_len < size ? _recvapp_len : size; + memcpy(buf, _recvapp_buf, to_copy); + br_ssl_engine_recvapp_ack(_eng, to_copy); + _recvapp_buf = nullptr; + _recvapp_len = 0; + return to_copy; + } + + if (!conn) { + DEBUG_BSSL("read: Not connected\n"); + return -1; + } + return 0; // If we're connected, no error but no read. +} +#if 0 +// return a pointer to available data buffer (size = peekAvailable()) +// semantic forbids any kind of read() before calling peekConsume() +const char* WiFiClientSecureCtx::peekBuffer() { + return (const char*)_recvapp_buf; +} + +// consume bytes after use (see peekBuffer) +void WiFiClientSecureCtx::peekConsume(size_t consume) { + // according to WiFiClientSecureCtx::read: + br_ssl_engine_recvapp_ack(_eng, consume); + _recvapp_buf = nullptr; + _recvapp_len = 0; +} +#endif +int WiFiClientSecureCtx::read() { + uint8_t c; + if (1 == read(&c, 1)) { + return c; + } + DEBUG_BSSL("read: failed\n"); + return -1; +} + +int WiFiClientSecureCtx::available() { + if (_recvapp_buf) { + return _recvapp_len; // Anything from last call? + } + _recvapp_buf = nullptr; + _recvapp_len = 0; + if (!ctx_present() || _run_until(BR_SSL_RECVAPP, false) < 0) { + return 0; + } + int st = br_ssl_engine_current_state(_eng); + if (st == BR_SSL_CLOSED) { + return 0; // Nothing leftover, SSL is closed + } + if (st & BR_SSL_RECVAPP) { + _recvapp_buf = br_ssl_engine_recvapp_buf(_eng, &_recvapp_len); + return _recvapp_len; + } + + return 0; +} + +int WiFiClientSecureCtx::peek() { + if (!ctx_present() || !available()) { + DEBUG_BSSL("peek: Not connected, none left available\n"); + return -1; + } + if (_recvapp_buf && _recvapp_len) { + return _recvapp_buf[0]; + } + DEBUG_BSSL("peek: No data left\n"); + return -1; +} + +size_t WiFiClientSecureCtx::peekBytes(uint8_t *buffer, size_t length) { + size_t to_copy = 0; + if (!ctx_present()) { + DEBUG_BSSL("peekBytes: Not connected\n"); + return 0; + } + + _startMillis = millis(); + while ((available() < (int) length) && ((millis() - _startMillis) < 5000)) { + yield(); + } + + to_copy = _recvapp_len < length ? _recvapp_len : length; + memcpy(buffer, _recvapp_buf, to_copy); + return to_copy; +} + +/* --- Copied almost verbatim from BEARSSL SSL_IO.C --- + Run the engine, until the specified target state is achieved, or + an error occurs. The target state is SENDAPP, RECVAPP, or the + combination of both (the combination matches either). When a match is + achieved, this function returns 0. On error, it returns -1. +*/ +int WiFiClientSecureCtx::_run_until(unsigned target, bool blocking) { + if (!ctx_present()) { + DEBUG_BSSL("_run_until: Not connected\n"); + return -1; + } + + uint32_t start = millis(); + // esp8266::polledTimeout::oneShotMs loopTimeout(_timeout); + + for (int no_work = 0; blocking || no_work < 2;) { + // optimistic_yield(100); + + if (millis() - start > _timeout) { + DEBUG_BSSL("_run_until: Timeout\n"); + return -1; + } + + int state; + state = br_ssl_engine_current_state(_eng); + if (state & BR_SSL_CLOSED) { + return -1; + } + + if (!(_client->state() == ESTABLISHED) && !WiFiClient::available()) { + return (state & target) ? 0 : -1; + } + + /* + If there is some record data to send, do it. This takes + precedence over everything else. + */ + if (state & BR_SSL_SENDREC) { + unsigned char *buf; + size_t len; + int wlen; + size_t availForWrite; + + buf = br_ssl_engine_sendrec_buf(_eng, &len); + availForWrite = WiFiClient::availableForWrite(); + + if (!blocking && len > availForWrite) { + /* + writes on WiFiClient will block if len > availableForWrite() + this is needed to prevent available() calls from blocking + on dropped connections + */ + len = availForWrite; + } + wlen = WiFiClient::write(buf, len); + if (wlen <= 0) { + /* + If we received a close_notify and we + still send something, then we have our + own response close_notify to send, and + the peer is allowed by RFC 5246 not to + wait for it. + */ + return -1; + } + if (wlen > 0) { + br_ssl_engine_sendrec_ack(_eng, wlen); + } + no_work = 0; + continue; + } + + /* + If we reached our target, then we are finished. + */ + if (state & target) { + return 0; + } + + /* + If some application data must be read, and we did not + exit, then this means that we are trying to write data, + and that's not possible until the application data is + read. This may happen if using a shared in/out buffer, + and the underlying protocol is not strictly half-duplex. + This is unrecoverable here, so we report an error. + */ + if (state & BR_SSL_RECVAPP) { + DEBUG_BSSL("_run_until: Fatal protocol state\n"); + return -1; + } + + /* + If we reached that point, then either we are trying + to read data and there is some, or the engine is stuck + until a new record is obtained. + */ + if (state & BR_SSL_RECVREC) { + if (WiFiClient::available()) { + unsigned char *buf; + size_t len; + int rlen; + + buf = br_ssl_engine_recvrec_buf(_eng, &len); + rlen = WiFiClient::read(buf, len); + if (rlen < 0) { + return -1; + } + if (rlen > 0) { + br_ssl_engine_recvrec_ack(_eng, rlen); + } + no_work = 0; + continue; + } + } + + /* + We can reach that point if the target RECVAPP, and + the state contains SENDAPP only. This may happen with + a shared in/out buffer. In that case, we must flush + the buffered data to "make room" for a new incoming + record. + */ + br_ssl_engine_flush(_eng, 0); + + no_work++; // We didn't actually advance here + } + // We only get here if we ran through the loop without getting anything done + return -1; +} + +bool WiFiClientSecureCtx::_wait_for_handshake() { + _handshake_done = false; + while (!_handshake_done && _clientConnected()) { + int ret = _run_until(BR_SSL_SENDAPP); + if (ret < 0) { + DEBUG_BSSL("_wait_for_handshake: failed\n"); + break; + } + if (br_ssl_engine_current_state(_eng) & BR_SSL_SENDAPP) { + _handshake_done = true; + } + // optimistic_yield(1000); + } + return _handshake_done; +} + +static uint8_t htoi(unsigned char c) { + if (c >= '0' && c <= '9') { + return c - '0'; + } else if (c >= 'A' && c <= 'F') { + return 10 + c - 'A'; + } else if (c >= 'a' && c <= 'f') { + return 10 + c - 'a'; + } else { + return 255; + } +} + +// Set a fingerprint by parsing an ASCII string +bool WiFiClientSecureCtx::setFingerprint(const char *fpStr) { + int idx = 0; + uint8_t c, d; + uint8_t fp[20]; + + while (idx < 20) { + c = pgm_read_byte(fpStr++); + if (!c) { + break; // String ended, done processing + } + d = pgm_read_byte(fpStr++); + if (!d) { + DEBUG_BSSL("setFingerprint: FP too short\n"); + return false; // Only half of the last hex digit, error + } + c = htoi(c); + d = htoi(d); + if ((c > 15) || (d > 15)) { + DEBUG_BSSL("setFingerprint: Invalid char\n"); + return false; // Error in one of the hex characters + } + fp[idx++] = (c << 4) | d; + + // Skip 0 or more spaces or colons + while (pgm_read_byte(fpStr) && (pgm_read_byte(fpStr) == ' ' || pgm_read_byte(fpStr) == ':')) { + fpStr++; + } + } + if ((idx != 20) || pgm_read_byte(fpStr)) { + DEBUG_BSSL("setFingerprint: Garbage at end of fp\n"); + return false; // Garbage at EOL or we didn't have enough hex digits + } + return setFingerprint(fp); +} + +extern "C" { + + // BearSSL doesn't define a true insecure decoder, so we make one ourselves + // from the simple parser. It generates the issuer and subject hashes and + // the SHA1 fingerprint, only one (or none!) of which will be used to + // "verify" the certificate. + + // Private x509 decoder state + struct br_x509_insecure_context { + const br_x509_class *vtable; + bool done_cert; + const uint8_t *match_fingerprint; + br_sha1_context sha1_cert; + bool allow_self_signed; + br_sha256_context sha256_subject; + br_sha256_context sha256_issuer; + br_x509_decoder_context ctx; + }; + + // Callback for the x509_minimal subject DN + static void insecure_subject_dn_append(void *ctx, const void *buf, size_t len) { + br_x509_insecure_context *xc = (br_x509_insecure_context *)ctx; + br_sha256_update(&xc->sha256_subject, buf, len); + } + + // Callback for the x509_minimal issuer DN + static void insecure_issuer_dn_append(void *ctx, const void *buf, size_t len) { + br_x509_insecure_context *xc = (br_x509_insecure_context *)ctx; + br_sha256_update(&xc->sha256_issuer, buf, len); + } + + // Callback on the first byte of any certificate + static void insecure_start_chain(const br_x509_class **ctx, const char *server_name) { + br_x509_insecure_context *xc = (br_x509_insecure_context *)ctx; + br_x509_decoder_init(&xc->ctx, insecure_subject_dn_append, xc, insecure_issuer_dn_append, xc); + xc->done_cert = false; + br_sha1_init(&xc->sha1_cert); + br_sha256_init(&xc->sha256_subject); + br_sha256_init(&xc->sha256_issuer); + (void)server_name; + } + + // Callback for each certificate present in the chain (but only operates + // on the first one by design). + static void insecure_start_cert(const br_x509_class **ctx, uint32_t length) { + (void) ctx; + (void) length; + } + + // Callback for each byte stream in the chain. Only process first cert. + static void insecure_append(const br_x509_class **ctx, const unsigned char *buf, size_t len) { + br_x509_insecure_context *xc = (br_x509_insecure_context *)ctx; + // Don't process anything but the first certificate in the chain + if (!xc->done_cert) { + br_sha1_update(&xc->sha1_cert, buf, len); + br_x509_decoder_push(&xc->ctx, (const void*)buf, len); +#if defined(DEBUG_ESP_SSL) && defined(DEBUG_ESP_PORT) + DEBUG_BSSL("CERT: "); + for (size_t i = 0; i < len; i++) { + DEBUG_ESP_PORT.printf_P(PSTR("%02x "), buf[i] & 0xff); + } + DEBUG_ESP_PORT.printf_P(PSTR("\n")); +#endif + } + } + + // Callback on individual cert end. + static void insecure_end_cert(const br_x509_class **ctx) { + br_x509_insecure_context *xc = (br_x509_insecure_context *)ctx; + xc->done_cert = true; + } + + // Callback when complete chain has been parsed. + // Return 0 on validation success, !0 on validation error + static unsigned insecure_end_chain(const br_x509_class **ctx) { + const br_x509_insecure_context *xc = (const br_x509_insecure_context *)ctx; + if (!xc->done_cert) { + DEBUG_BSSL("insecure_end_chain: No cert seen\n"); + return 1; // error + } + + // Handle SHA1 fingerprint matching + char res[20]; + br_sha1_out(&xc->sha1_cert, res); + if (xc->match_fingerprint && memcmp(res, xc->match_fingerprint, sizeof(res))) { +#ifdef DEBUG_ESP_SSL + DEBUG_BSSL("insecure_end_chain: Received cert FP doesn't match\n"); + char buff[3 * sizeof(res) + 1]; // 3 chars per byte XX_, and null + buff[0] = 0; + for (size_t i = 0; i < sizeof(res); i++) { + char hex[4]; // XX_\0 + snprintf(hex, sizeof(hex), "%02x ", xc->match_fingerprint[i] & 0xff); + strlcat(buff, hex, sizeof(buff)); + } + DEBUG_BSSL("insecure_end_chain: expected %s\n", buff); + buff[0] = 0; + for (size_t i = 0; i < sizeof(res); i++) { + char hex[4]; // XX_\0 + snprintf(hex, sizeof(hex), "%02x ", res[i] & 0xff); + strlcat(buff, hex, sizeof(buff)); + } + DEBUG_BSSL("insecure_end_chain: received %s\n", buff); +#endif + return BR_ERR_X509_NOT_TRUSTED; + } + + // Handle self-signer certificate acceptance + char res_issuer[32]; + char res_subject[32]; + br_sha256_out(&xc->sha256_issuer, res_issuer); + br_sha256_out(&xc->sha256_subject, res_subject); + if (xc->allow_self_signed && memcmp(res_subject, res_issuer, sizeof(res_issuer))) { + DEBUG_BSSL("insecure_end_chain: Didn't get self-signed cert\n"); + return BR_ERR_X509_NOT_TRUSTED; + } + + // Default (no validation at all) or no errors in prior checks = success. + return 0; + } + + // Return the public key from the validator (set by x509_minimal) + static const br_x509_pkey *insecure_get_pkey(const br_x509_class *const *ctx, unsigned *usages) { + const br_x509_insecure_context *xc = (const br_x509_insecure_context *)ctx; + if (usages != NULL) { + *usages = BR_KEYTYPE_KEYX | BR_KEYTYPE_SIGN; // I said we were insecure! + } + return &xc->ctx.pkey; + } + + // Set up the x509 insecure data structures for BearSSL core to use. + void br_x509_insecure_init(br_x509_insecure_context *ctx, int _use_fingerprint, const uint8_t _fingerprint[20], int _allow_self_signed) { + static const br_x509_class br_x509_insecure_vtable PROGMEM = { + sizeof(br_x509_insecure_context), + insecure_start_chain, + insecure_start_cert, + insecure_append, + insecure_end_cert, + insecure_end_chain, + insecure_get_pkey + }; + + memset(ctx, 0, sizeof * ctx); + ctx->vtable = &br_x509_insecure_vtable; + ctx->done_cert = false; + ctx->match_fingerprint = _use_fingerprint ? _fingerprint : nullptr; + ctx->allow_self_signed = _allow_self_signed ? 1 : 0; + } + + // Some constants uses to init the server/client contexts + // Note that suites_P needs to be copied to RAM before use w/BearSSL! + // List copied verbatim from BearSSL/ssl_client_full.c + /* + The "full" profile supports all implemented cipher suites. + + Rationale for suite order, from most important to least + important rule: + + -- Don't use 3DES if AES or ChaCha20 is available. + -- Try to have Forward Secrecy (ECDHE suite) if possible. + -- When not using Forward Secrecy, ECDH key exchange is + better than RSA key exchange (slightly more expensive on the + client, but much cheaper on the server, and it implies smaller + messages). + -- ChaCha20+Poly1305 is better than AES/GCM (faster, smaller code). + -- GCM is better than CCM and CBC. CCM is better than CBC. + -- CCM is preferable over CCM_8 (with CCM_8, forgeries may succeed + with probability 2^(-64)). + -- AES-128 is preferred over AES-256 (AES-128 is already + strong enough, and AES-256 is 40% more expensive). + */ + static const uint16_t suites_P[] PROGMEM = { +#ifndef BEARSSL_SSL_BASIC + BR_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, + BR_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, + BR_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, + BR_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, + BR_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, + BR_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, + BR_TLS_ECDHE_ECDSA_WITH_AES_128_CCM, + BR_TLS_ECDHE_ECDSA_WITH_AES_256_CCM, + BR_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8, + BR_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8, + BR_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, + BR_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, + BR_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, + BR_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, + BR_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, + BR_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, + BR_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, + BR_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, + BR_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, + BR_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, + BR_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, + BR_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, + BR_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, + BR_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, + BR_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, + BR_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, + BR_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, + BR_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, + BR_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, + BR_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, + BR_TLS_RSA_WITH_AES_128_GCM_SHA256, + BR_TLS_RSA_WITH_AES_256_GCM_SHA384, + BR_TLS_RSA_WITH_AES_128_CCM, + BR_TLS_RSA_WITH_AES_256_CCM, + BR_TLS_RSA_WITH_AES_128_CCM_8, + BR_TLS_RSA_WITH_AES_256_CCM_8, +#endif + BR_TLS_RSA_WITH_AES_128_CBC_SHA256, + BR_TLS_RSA_WITH_AES_256_CBC_SHA256, + BR_TLS_RSA_WITH_AES_128_CBC_SHA, + BR_TLS_RSA_WITH_AES_256_CBC_SHA, +#ifndef BEARSSL_SSL_BASIC + BR_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, + BR_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, + BR_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, + BR_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, + BR_TLS_RSA_WITH_3DES_EDE_CBC_SHA +#endif + }; +#ifndef BEARSSL_SSL_BASIC + // Server w/EC has one set, not possible with basic SSL config + static const uint16_t suites_server_ec_P [] PROGMEM = { + BR_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, + BR_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, + BR_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, + BR_TLS_ECDHE_ECDSA_WITH_AES_128_CCM, + BR_TLS_ECDHE_ECDSA_WITH_AES_256_CCM, + BR_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8, + BR_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8, + BR_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, + BR_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, + BR_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, + BR_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, + BR_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, + BR_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, + BR_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, + BR_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, + BR_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, + BR_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, + BR_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, + BR_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, + BR_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, + BR_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, + BR_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, + BR_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, + BR_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, + BR_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, + BR_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA + }; +#endif + + static const uint16_t suites_server_rsa_P[] PROGMEM = { +#ifndef BEARSSL_SSL_BASIC + BR_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, + BR_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, + BR_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, + BR_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, + BR_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, + BR_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, + BR_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, + BR_TLS_RSA_WITH_AES_128_GCM_SHA256, + BR_TLS_RSA_WITH_AES_256_GCM_SHA384, + BR_TLS_RSA_WITH_AES_128_CCM, + BR_TLS_RSA_WITH_AES_256_CCM, + BR_TLS_RSA_WITH_AES_128_CCM_8, + BR_TLS_RSA_WITH_AES_256_CCM_8, +#endif + BR_TLS_RSA_WITH_AES_128_CBC_SHA256, + BR_TLS_RSA_WITH_AES_256_CBC_SHA256, + BR_TLS_RSA_WITH_AES_128_CBC_SHA, + BR_TLS_RSA_WITH_AES_256_CBC_SHA, +#ifndef BEARSSL_SSL_BASIC + BR_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, + BR_TLS_RSA_WITH_3DES_EDE_CBC_SHA +#endif + }; + + + // For apps which want to use less secure but faster ciphers, only + static const uint16_t faster_suites_P[] PROGMEM = { + BR_TLS_RSA_WITH_AES_256_CBC_SHA256, + BR_TLS_RSA_WITH_AES_128_CBC_SHA256, + BR_TLS_RSA_WITH_AES_256_CBC_SHA, + BR_TLS_RSA_WITH_AES_128_CBC_SHA + }; + + // Install hashes into the SSL engine + static void br_ssl_client_install_hashes(br_ssl_engine_context *eng) { + br_ssl_engine_set_hash(eng, br_md5_ID, &br_md5_vtable); + br_ssl_engine_set_hash(eng, br_sha1_ID, &br_sha1_vtable); + br_ssl_engine_set_hash(eng, br_sha224_ID, &br_sha224_vtable); + br_ssl_engine_set_hash(eng, br_sha256_ID, &br_sha256_vtable); + br_ssl_engine_set_hash(eng, br_sha384_ID, &br_sha384_vtable); + br_ssl_engine_set_hash(eng, br_sha512_ID, &br_sha512_vtable); + } + + static void br_x509_minimal_install_hashes(br_x509_minimal_context *x509) { + br_x509_minimal_set_hash(x509, br_md5_ID, &br_md5_vtable); + br_x509_minimal_set_hash(x509, br_sha1_ID, &br_sha1_vtable); + br_x509_minimal_set_hash(x509, br_sha224_ID, &br_sha224_vtable); + br_x509_minimal_set_hash(x509, br_sha256_ID, &br_sha256_vtable); + br_x509_minimal_set_hash(x509, br_sha384_ID, &br_sha384_vtable); + br_x509_minimal_set_hash(x509, br_sha512_ID, &br_sha512_vtable); + } + + // Default initializion for our SSL clients + static void br_ssl_client_base_init(br_ssl_client_context *cc, const uint16_t *cipher_list, int cipher_cnt) { + uint16_t suites[cipher_cnt]; + memcpy_P(suites, cipher_list, cipher_cnt * sizeof(cipher_list[0])); + br_ssl_client_zero(cc); + br_ssl_engine_add_flags(&cc->eng, BR_OPT_NO_RENEGOTIATION); // forbid SSL renegotiation, as we free the Private Key after handshake + br_ssl_engine_set_versions(&cc->eng, BR_TLS10, BR_TLS12); + br_ssl_engine_set_suites(&cc->eng, suites, (sizeof suites) / (sizeof suites[0])); + br_ssl_client_set_default_rsapub(cc); + br_ssl_engine_set_default_rsavrfy(&cc->eng); +#ifndef BEARSSL_SSL_BASIC + br_ssl_engine_set_default_ecdsa(&cc->eng); +#endif + br_ssl_client_install_hashes(&cc->eng); + br_ssl_engine_set_prf10(&cc->eng, &br_tls10_prf); + br_ssl_engine_set_prf_sha256(&cc->eng, &br_tls12_sha256_prf); + br_ssl_engine_set_prf_sha384(&cc->eng, &br_tls12_sha384_prf); + br_ssl_engine_set_default_aes_cbc(&cc->eng); +#ifndef BEARSSL_SSL_BASIC + br_ssl_engine_set_default_aes_gcm(&cc->eng); + br_ssl_engine_set_default_aes_ccm(&cc->eng); + br_ssl_engine_set_default_des_cbc(&cc->eng); + br_ssl_engine_set_default_chapol(&cc->eng); +#endif + } + + // Default initializion for our SSL clients + static void br_ssl_server_base_init(br_ssl_server_context *cc, const uint16_t *cipher_list, int cipher_cnt) { + uint16_t suites[cipher_cnt]; + memcpy_P(suites, cipher_list, cipher_cnt * sizeof(cipher_list[0])); + br_ssl_server_zero(cc); + br_ssl_engine_add_flags(&cc->eng, BR_OPT_NO_RENEGOTIATION); // forbid SSL renegotiation, as we free the Private Key after handshake + br_ssl_engine_set_versions(&cc->eng, BR_TLS10, BR_TLS12); + br_ssl_engine_set_suites(&cc->eng, suites, (sizeof suites) / (sizeof suites[0])); +#ifndef BEARSSL_SSL_BASIC + br_ssl_engine_set_default_ec(&cc->eng); +#endif + + br_ssl_client_install_hashes(&cc->eng); + br_ssl_engine_set_prf10(&cc->eng, &br_tls10_prf); + br_ssl_engine_set_prf_sha256(&cc->eng, &br_tls12_sha256_prf); + br_ssl_engine_set_prf_sha384(&cc->eng, &br_tls12_sha384_prf); + br_ssl_engine_set_default_aes_cbc(&cc->eng); +#ifndef BEARSSL_SSL_BASIC + br_ssl_engine_set_default_aes_ccm(&cc->eng); + br_ssl_engine_set_default_aes_gcm(&cc->eng); + br_ssl_engine_set_default_des_cbc(&cc->eng); + br_ssl_engine_set_default_chapol(&cc->eng); +#endif + } + +} + +// Set custom list of ciphers +bool WiFiClientSecureCtx::setCiphers(const uint16_t *cipherAry, int cipherCount) { + _cipher_list = nullptr; + _cipher_list = std::shared_ptr(new (std::nothrow) uint16_t[cipherCount], std::default_delete()); + if (!_cipher_list.get()) { + DEBUG_BSSL("setCiphers: list empty\n"); + return false; + } + memcpy_P(_cipher_list.get(), cipherAry, cipherCount * sizeof(uint16_t)); + _cipher_cnt = cipherCount; + return true; +} + +bool WiFiClientSecureCtx::setCiphersLessSecure() { + return setCiphers(faster_suites_P, sizeof(faster_suites_P) / sizeof(faster_suites_P[0])); +} + +bool WiFiClientSecureCtx::setCiphers(const std::vector& list) { + return setCiphers(&list[0], list.size()); +} + +bool WiFiClientSecureCtx::setSSLVersion(uint32_t min, uint32_t max) { + if (((min != BR_TLS10) && (min != BR_TLS11) && (min != BR_TLS12)) || + ((max != BR_TLS10) && (max != BR_TLS11) && (max != BR_TLS12)) || + (max < min)) { + return false; // Invalid options + } + _tls_min = min; + _tls_max = max; + return true; +} + +// Installs the appropriate X509 cert validation method for a client connection +bool WiFiClientSecureCtx::_installClientX509Validator() { + if (_use_insecure || _use_fingerprint || _use_self_signed) { + // Use common insecure x509 authenticator + _x509_insecure = std::make_shared(); + if (!_x509_insecure) { + DEBUG_BSSL("_installClientX509Validator: OOM for _x509_insecure\n"); + return false; + } + br_x509_insecure_init(_x509_insecure.get(), _use_fingerprint, _fingerprint, _use_self_signed); + br_ssl_engine_set_x509(_eng, &_x509_insecure->vtable); + } else if (_knownkey) { + // Simple, pre-known public key authenticator, ignores cert completely. + _x509_knownkey = std::make_shared(); + if (!_x509_knownkey) { + DEBUG_BSSL("_installClientX509Validator: OOM for _x509_knownkey\n"); + return false; + } + if (_knownkey->isRSA()) { + br_x509_knownkey_init_rsa(_x509_knownkey.get(), _knownkey->getRSA(), _knownkey_usages); + } else if (_knownkey->isEC()) { +#ifndef BEARSSL_SSL_BASIC + br_x509_knownkey_init_ec(_x509_knownkey.get(), _knownkey->getEC(), _knownkey_usages); +#else + (void) _knownkey; + (void) _knownkey_usages; + DEBUG_BSSL("_installClientX509Validator: Attempting to use EC keys in minimal cipher mode (no EC)\n"); + return false; +#endif + } + br_ssl_engine_set_x509(_eng, &_x509_knownkey->vtable); + } else { + // X509 minimal validator. Checks dates, cert chain for trusted CA, etc. + _x509_minimal = std::make_shared(); + if (!_x509_minimal) { + DEBUG_BSSL("_installClientX509Validator: OOM for _x509_minimal\n"); + return false; + } + br_x509_minimal_init(_x509_minimal.get(), &br_sha256_vtable, _ta ? _ta->getTrustAnchors() : nullptr, _ta ? _ta->getCount() : 0); + br_x509_minimal_set_rsa(_x509_minimal.get(), br_ssl_engine_get_rsavrfy(_eng)); +#ifndef BEARSSL_SSL_BASIC + br_x509_minimal_set_ecdsa(_x509_minimal.get(), br_ssl_engine_get_ec(_eng), br_ssl_engine_get_ecdsa(_eng)); +#endif + br_x509_minimal_install_hashes(_x509_minimal.get()); + if (_now) { + // Magic constants convert to x509 times + br_x509_minimal_set_time(_x509_minimal.get(), ((uint32_t)_now) / 86400 + 719528, ((uint32_t)_now) % 86400); + } + if (_certStore) { + _certStore->installCertStore(_x509_minimal.get()); + } + br_ssl_engine_set_x509(_eng, &_x509_minimal->vtable); + } + return true; +} + +std::shared_ptr WiFiClientSecureCtx::_alloc_iobuf(size_t sz) { + // Allocate buffer with preference to IRAM + // HeapSelectIram primary; + auto sptr = std::shared_ptr(new (std::nothrow) unsigned char[sz], std::default_delete()); + if (!sptr) { + // HeapSelectDram alternate; + sptr = std::shared_ptr(new (std::nothrow) unsigned char[sz], std::default_delete()); + } + return sptr; +} + +// Called by connect() to do the actual SSL setup and handshake. +// Returns if the SSL handshake succeeded. +bool WiFiClientSecureCtx::_connectSSL(const char* hostName) { + DEBUG_BSSL("_connectSSL: start connection\n"); + _freeSSL(); + _oom_err = false; + +#ifdef DEBUG_ESP_SSL + // BearSSL will reject all connections unless an authentication option is set, warn in DEBUG builds + if (!_use_insecure && !_use_fingerprint && !_use_self_signed && !_knownkey && !_certStore && !_ta) { + DEBUG_BSSL("Connection *will* fail, no authentication method is setup\n"); + } +#endif + + _sc = std::make_shared(); + _eng = &_sc->eng; // Allocation/deallocation taken care of by the _sc shared_ptr + _iobuf_in = _alloc_iobuf(_iobuf_in_size); + _iobuf_out = _alloc_iobuf(_iobuf_out_size); + // DBG_MMU_PRINTF("\n_iobuf_in: %p\n", _iobuf_in.get()); + // DBG_MMU_PRINTF( "_iobuf_out: %p\n", _iobuf_out.get()); + // DBG_MMU_PRINTF( "_iobuf_in_size: %u\n", _iobuf_in_size); + // DBG_MMU_PRINTF( "_iobuf_out_size: %u\n", _iobuf_out_size); + + if (!_sc || !_iobuf_in || !_iobuf_out) { + _freeSSL(); // Frees _sc, _iobuf* + _oom_err = true; + DEBUG_BSSL("_connectSSL: OOM error\n"); + return false; + } + + // If no cipher list yet set, use defaults + if (_cipher_list.get() == nullptr) { + br_ssl_client_base_init(_sc.get(), suites_P, sizeof(suites_P) / sizeof(suites_P[0])); + } else { + br_ssl_client_base_init(_sc.get(), _cipher_list.get(), _cipher_cnt); + } + // Only failure possible in the installation is OOM + if (!_installClientX509Validator()) { + _freeSSL(); + _oom_err = true; + DEBUG_BSSL("_connectSSL: Can't install x509 validator\n"); + return false; + } + br_ssl_engine_set_buffers_bidi(_eng, _iobuf_in.get(), _iobuf_in_size, _iobuf_out.get(), _iobuf_out_size); + br_ssl_engine_set_versions(_eng, _tls_min, _tls_max); + + // Apply any client certificates, if supplied. + if (_sk && _sk->isRSA()) { + br_ssl_client_set_single_rsa(_sc.get(), _chain ? _chain->getX509Certs() : nullptr, _chain ? _chain->getCount() : 0, + _sk->getRSA(), br_rsa_pkcs1_sign_get_default()); + } else if (_sk && _sk->isEC()) { +#ifndef BEARSSL_SSL_BASIC + br_ssl_client_set_single_ec(_sc.get(), _chain ? _chain->getX509Certs() : nullptr, _chain ? _chain->getCount() : 0, + _sk->getEC(), _allowed_usages, + _cert_issuer_key_type, br_ec_get_default(), br_ecdsa_sign_asn1_get_default()); +#else + _freeSSL(); + DEBUG_BSSL("_connectSSL: Attempting to use EC cert in minimal cipher mode (no EC)\n"); + return false; +#endif + } + + // Restore session from the storage spot, if present + if (_session) { + br_ssl_engine_set_session_parameters(_eng, _session->getSession()); + } + + if (!br_ssl_client_reset(_sc.get(), hostName, _session ? 1 : 0)) { + _freeSSL(); + DEBUG_BSSL("_connectSSL: Can't reset client\n"); + return false; + } + + auto ret = _wait_for_handshake(); +#ifdef DEBUG_ESP_SSL + if (!ret) { + char err[256]; + getLastSSLError(err, sizeof(err)); + DEBUG_BSSL("Couldn't connect. Error = '%s'\n", err); + } else { + DEBUG_BSSL("Connected!\n"); + } +#endif + + // Session is already validated here, there is no need to keep following + _x509_minimal = nullptr; + _x509_insecure = nullptr; + _x509_knownkey = nullptr; + + // reduce timeout after successful handshake to fail fast if server stop accepting our data for whathever reason + if (ret) { + _timeout = 5000; + } + + return ret; +} + +// Slightly different X509 setup for servers who want to validate client +// certificates, so factor it out as it's used in RSA and EC servers. +bool WiFiClientSecureCtx::_installServerX509Validator(const X509List *client_CA_ta) { + if (client_CA_ta) { + _ta = client_CA_ta; + // X509 minimal validator. Checks dates, cert chain for trusted CA, etc. + _x509_minimal = std::make_shared(); + if (!_x509_minimal) { + _freeSSL(); + _oom_err = true; + DEBUG_BSSL("_installServerX509Validator: OOM for _x509_minimal\n"); + return false; + } + br_x509_minimal_init(_x509_minimal.get(), &br_sha256_vtable, _ta->getTrustAnchors(), _ta->getCount()); + br_ssl_engine_set_default_rsavrfy(_eng); +#ifndef BEARSSL_SSL_BASIC + br_ssl_engine_set_default_ecdsa(_eng); +#endif + br_x509_minimal_set_rsa(_x509_minimal.get(), br_ssl_engine_get_rsavrfy(_eng)); +#ifndef BEARSSL_SSL_BASIC + br_x509_minimal_set_ecdsa(_x509_minimal.get(), br_ssl_engine_get_ec(_eng), br_ssl_engine_get_ecdsa(_eng)); +#endif + br_x509_minimal_install_hashes(_x509_minimal.get()); + if (_now) { + // Magic constants convert to x509 times + br_x509_minimal_set_time(_x509_minimal.get(), ((uint32_t)_now) / 86400 + 719528, ((uint32_t)_now) % 86400); + } + br_ssl_engine_set_x509(_eng, &_x509_minimal->vtable); + br_ssl_server_set_trust_anchor_names_alt(_sc_svr.get(), _ta->getTrustAnchors(), _ta->getCount()); + } + return true; +} + + +// Called by WiFiServerBearSSL when an RSA cert/key is specified. +bool WiFiClientSecureCtx::_connectSSLServerRSA(const X509List *chain, + const PrivateKey *sk, ServerSessions *cache, + const X509List *client_CA_ta) { + _freeSSL(); + _oom_err = false; + _sc_svr = std::make_shared(); + _eng = &_sc_svr->eng; // Allocation/deallocation taken care of by the _sc shared_ptr + _iobuf_in = _alloc_iobuf(_iobuf_in_size); + _iobuf_out = _alloc_iobuf(_iobuf_out_size); + // DBG_MMU_PRINTF("\n_iobuf_in: %p\n", _iobuf_in.get()); + // DBG_MMU_PRINTF( "_iobuf_out: %p\n", _iobuf_out.get()); + // DBG_MMU_PRINTF( "_iobuf_in_size: %u\n", _iobuf_in_size); + // DBG_MMU_PRINTF( "_iobuf_out_size: %u\n", _iobuf_out_size); + + if (!_sc_svr || !_iobuf_in || !_iobuf_out) { + _freeSSL(); + _oom_err = true; + DEBUG_BSSL("_connectSSLServerRSA: OOM error\n"); + return false; + } + + br_ssl_server_base_init(_sc_svr.get(), suites_server_rsa_P, sizeof(suites_server_rsa_P) / sizeof(suites_server_rsa_P[0])); + br_ssl_server_set_single_rsa(_sc_svr.get(), chain ? chain->getX509Certs() : nullptr, chain ? chain->getCount() : 0, + sk ? sk->getRSA() : nullptr, BR_KEYTYPE_KEYX | BR_KEYTYPE_SIGN, + br_rsa_private_get_default(), br_rsa_pkcs1_sign_get_default()); + br_ssl_engine_set_buffers_bidi(_eng, _iobuf_in.get(), _iobuf_in_size, _iobuf_out.get(), _iobuf_out_size); + br_ssl_engine_set_versions(_eng, _tls_min, _tls_max); + if (cache != nullptr) { + br_ssl_server_set_cache(_sc_svr.get(), cache->getCache()); + } + if (client_CA_ta && !_installServerX509Validator(client_CA_ta)) { + DEBUG_BSSL("_connectSSLServerRSA: Can't install serverX509check\n"); + return false; + } + if (!br_ssl_server_reset(_sc_svr.get())) { + _freeSSL(); + DEBUG_BSSL("_connectSSLServerRSA: Can't reset server ctx\n"); + return false; + } + + return _wait_for_handshake(); +} + +// Called by WiFiServerBearSSL when an elliptic curve cert/key is specified. +bool WiFiClientSecureCtx::_connectSSLServerEC(const X509List *chain, + unsigned cert_issuer_key_type, const PrivateKey *sk, + ServerSessions *cache, const X509List *client_CA_ta) { +#ifndef BEARSSL_SSL_BASIC + _freeSSL(); + _oom_err = false; + _sc_svr = std::make_shared(); + _eng = &_sc_svr->eng; // Allocation/deallocation taken care of by the _sc shared_ptr + _iobuf_in = _alloc_iobuf(_iobuf_in_size); + _iobuf_out = _alloc_iobuf(_iobuf_out_size); + // DBG_MMU_PRINTF("\n_iobuf_in: %p\n", _iobuf_in.get()); + // DBG_MMU_PRINTF( "_iobuf_out: %p\n", _iobuf_out.get()); + // DBG_MMU_PRINTF( "_iobuf_in_size: %u\n", _iobuf_in_size); + // DBG_MMU_PRINTF( "_iobuf_out_size: %u\n", _iobuf_out_size); + + if (!_sc_svr || !_iobuf_in || !_iobuf_out) { + _freeSSL(); + _oom_err = true; + DEBUG_BSSL("_connectSSLServerEC: OOM error\n"); + return false; + } + + br_ssl_server_base_init(_sc_svr.get(), suites_server_ec_P, sizeof(suites_server_ec_P) / sizeof(suites_server_ec_P[0])); + br_ssl_server_set_single_ec(_sc_svr.get(), chain ? chain->getX509Certs() : nullptr, chain ? chain->getCount() : 0, + sk ? sk->getEC() : nullptr, BR_KEYTYPE_KEYX | BR_KEYTYPE_SIGN, + cert_issuer_key_type, br_ssl_engine_get_ec(_eng), br_ecdsa_i15_sign_asn1); + br_ssl_engine_set_buffers_bidi(_eng, _iobuf_in.get(), _iobuf_in_size, _iobuf_out.get(), _iobuf_out_size); + br_ssl_engine_set_versions(_eng, _tls_min, _tls_max); + if (cache != nullptr) { + br_ssl_server_set_cache(_sc_svr.get(), cache->getCache()); + } + if (client_CA_ta && !_installServerX509Validator(client_CA_ta)) { + DEBUG_BSSL("_connectSSLServerEC: Can't install serverX509check\n"); + return false; + } + if (!br_ssl_server_reset(_sc_svr.get())) { + _freeSSL(); + DEBUG_BSSL("_connectSSLServerEC: Can't reset server ctx\n"); + return false; + } + + return _wait_for_handshake(); +#else + (void) chain; + (void) cert_issuer_key_type; + (void) sk; + (void) cache; + (void) client_CA_ta; + DEBUG_BSSL("_connectSSLServerEC: Attempting to use EC cert in minimal cipher mode (no EC)\n"); + return false; +#endif +} + +// Returns an error ID and possibly a string (if dest != null) of the last +// BearSSL reported error. +int WiFiClientSecureCtx::getLastSSLError(char *dest, size_t len) { + int err = 0; + const char *t = PSTR("OK"); + const char *recv_fatal = ""; + const char *send_fatal = ""; + if (_sc || _sc_svr) { + err = br_ssl_engine_last_error(_eng); + } + if (_oom_err) { + err = -1000; + } else { + if (err & BR_ERR_RECV_FATAL_ALERT) { + recv_fatal = PSTR("SSL received fatal alert - "); + err &= ~BR_ERR_RECV_FATAL_ALERT; + } + if (err & BR_ERR_SEND_FATAL_ALERT) { + send_fatal = PSTR("SSL sent fatal alert - "); + err &= ~BR_ERR_SEND_FATAL_ALERT; + } + } + switch (err) { + case -1000: t = PSTR("Unable to allocate memory for SSL structures and buffers."); break; + case BR_ERR_BAD_PARAM: t = PSTR("Caller-provided parameter is incorrect."); break; + case BR_ERR_BAD_STATE: t = PSTR("Operation requested by the caller cannot be applied with the current context state (e.g. reading data while outgoing data is waiting to be sent)."); break; + case BR_ERR_UNSUPPORTED_VERSION: t = PSTR("Incoming protocol or record version is unsupported."); break; + case BR_ERR_BAD_VERSION: t = PSTR("Incoming record version does not match the expected version."); break; + case BR_ERR_BAD_LENGTH: t = PSTR("Incoming record length is invalid."); break; + case BR_ERR_TOO_LARGE: t = PSTR("Incoming record is too large to be processed, or buffer is too small for the handshake message to send."); break; + case BR_ERR_BAD_MAC: t = PSTR("Decryption found an invalid padding, or the record MAC is not correct."); break; + case BR_ERR_NO_RANDOM: t = PSTR("No initial entropy was provided, and none can be obtained from the OS."); break; + case BR_ERR_UNKNOWN_TYPE: t = PSTR("Incoming record type is unknown."); break; + case BR_ERR_UNEXPECTED: t = PSTR("Incoming record or message has wrong type with regards to the current engine state."); break; + case BR_ERR_BAD_CCS: t = PSTR("ChangeCipherSpec message from the peer has invalid contents."); break; + case BR_ERR_BAD_ALERT: t = PSTR("Alert message from the peer has invalid contents (odd length)."); break; + case BR_ERR_BAD_HANDSHAKE: t = PSTR("Incoming handshake message decoding failed."); break; + case BR_ERR_OVERSIZED_ID: t = PSTR("ServerHello contains a session ID which is larger than 32 bytes."); break; + case BR_ERR_BAD_CIPHER_SUITE: t = PSTR("Server wants to use a cipher suite that we did not claim to support. This is also reported if we tried to advertise a cipher suite that we do not support."); break; + case BR_ERR_BAD_COMPRESSION: t = PSTR("Server wants to use a compression that we did not claim to support."); break; + case BR_ERR_BAD_FRAGLEN: t = PSTR("Server's max fragment length does not match client's."); break; + case BR_ERR_BAD_SECRENEG: t = PSTR("Secure renegotiation failed."); break; + case BR_ERR_EXTRA_EXTENSION: t = PSTR("Server sent an extension type that we did not announce, or used the same extension type several times in a single ServerHello."); break; + case BR_ERR_BAD_SNI: t = PSTR("Invalid Server Name Indication contents (when used by the server, this extension shall be empty)."); break; + case BR_ERR_BAD_HELLO_DONE: t = PSTR("Invalid ServerHelloDone from the server (length is not 0)."); break; + case BR_ERR_LIMIT_EXCEEDED: t = PSTR("Internal limit exceeded (e.g. server's public key is too large)."); break; + case BR_ERR_BAD_FINISHED: t = PSTR("Finished message from peer does not match the expected value."); break; + case BR_ERR_RESUME_MISMATCH: t = PSTR("Session resumption attempt with distinct version or cipher suite."); break; + case BR_ERR_INVALID_ALGORITHM: t = PSTR("Unsupported or invalid algorithm (ECDHE curve, signature algorithm, hash function)."); break; + case BR_ERR_BAD_SIGNATURE: t = PSTR("Invalid signature in ServerKeyExchange or CertificateVerify message."); break; + case BR_ERR_WRONG_KEY_USAGE: t = PSTR("Peer's public key does not have the proper type or is not allowed for the requested operation."); break; + case BR_ERR_NO_CLIENT_AUTH: t = PSTR("Client did not send a certificate upon request, or the client certificate could not be validated."); break; + case BR_ERR_IO: t = PSTR("I/O error or premature close on transport stream."); break; + case BR_ERR_X509_INVALID_VALUE: t = PSTR("Invalid value in an ASN.1 structure."); break; + case BR_ERR_X509_TRUNCATED: t = PSTR("Truncated certificate or other ASN.1 object."); break; + case BR_ERR_X509_EMPTY_CHAIN: t = PSTR("Empty certificate chain (no certificate at all)."); break; + case BR_ERR_X509_INNER_TRUNC: t = PSTR("Decoding error: inner element extends beyond outer element size."); break; + case BR_ERR_X509_BAD_TAG_CLASS: t = PSTR("Decoding error: unsupported tag class (application or private)."); break; + case BR_ERR_X509_BAD_TAG_VALUE: t = PSTR("Decoding error: unsupported tag value."); break; + case BR_ERR_X509_INDEFINITE_LENGTH: t = PSTR("Decoding error: indefinite length."); break; + case BR_ERR_X509_EXTRA_ELEMENT: t = PSTR("Decoding error: extraneous element."); break; + case BR_ERR_X509_UNEXPECTED: t = PSTR("Decoding error: unexpected element."); break; + case BR_ERR_X509_NOT_CONSTRUCTED: t = PSTR("Decoding error: expected constructed element, but is primitive."); break; + case BR_ERR_X509_NOT_PRIMITIVE: t = PSTR("Decoding error: expected primitive element, but is constructed."); break; + case BR_ERR_X509_PARTIAL_BYTE: t = PSTR("Decoding error: BIT STRING length is not multiple of 8."); break; + case BR_ERR_X509_BAD_BOOLEAN: t = PSTR("Decoding error: BOOLEAN value has invalid length."); break; + case BR_ERR_X509_OVERFLOW: t = PSTR("Decoding error: value is off-limits."); break; + case BR_ERR_X509_BAD_DN: t = PSTR("Invalid distinguished name."); break; + case BR_ERR_X509_BAD_TIME: t = PSTR("Invalid date/time representation."); break; + case BR_ERR_X509_UNSUPPORTED: t = PSTR("Certificate contains unsupported features that cannot be ignored."); break; + case BR_ERR_X509_LIMIT_EXCEEDED: t = PSTR("Key or signature size exceeds internal limits."); break; + case BR_ERR_X509_WRONG_KEY_TYPE: t = PSTR("Key type does not match that which was expected."); break; + case BR_ERR_X509_BAD_SIGNATURE: t = PSTR("Signature is invalid."); break; + case BR_ERR_X509_TIME_UNKNOWN: t = PSTR("Validation time is unknown."); break; + case BR_ERR_X509_EXPIRED: t = PSTR("Certificate is expired or not yet valid."); break; + case BR_ERR_X509_DN_MISMATCH: t = PSTR("Issuer/Subject DN mismatch in the chain."); break; + case BR_ERR_X509_BAD_SERVER_NAME: t = PSTR("Expected server name was not found in the chain."); break; + case BR_ERR_X509_CRITICAL_EXTENSION: t = PSTR("Unknown critical extension in certificate."); break; + case BR_ERR_X509_NOT_CA: t = PSTR("Not a CA, or path length constraint violation."); break; + case BR_ERR_X509_FORBIDDEN_KEY_USAGE: t = PSTR("Key Usage extension prohibits intended usage."); break; + case BR_ERR_X509_WEAK_PUBLIC_KEY: t = PSTR("Public key found in certificate is too small."); break; + case BR_ERR_X509_NOT_TRUSTED: t = PSTR("Chain could not be linked to a trust anchor."); break; + default: t = PSTR("Unknown error code."); break; + } + if (dest) { + // snprintf is PSTR safe and guaranteed to 0-terminate + snprintf(dest, len, "%s%s%s", recv_fatal, send_fatal, t); + } + return err; +} + +bool WiFiClientSecure::probeMaxFragmentLength(const char* name, uint16_t port, uint16_t len) { + IPAddress remote_addr; + if (!WiFi.hostByName(name, remote_addr)) { + DEBUG_BSSL("probeMaxFragmentLength: Can't resolve host\n"); + return false; + } + return WiFiClientSecure::probeMaxFragmentLength(remote_addr, port, len); +} + +bool WiFiClientSecure::probeMaxFragmentLength(const String& host, uint16_t port, uint16_t len) { + return WiFiClientSecure::probeMaxFragmentLength(host.c_str(), port, len); +} + + +// Helper function which aborts a TLS handshake by sending TLS +// ClientAbort and ClientClose messages. +static bool _SendAbort(WiFiClient& probe, bool supportsLen) { + // If we're still connected, send the appropriate notice that + // we're aborting the handshake per RFCs. + static const uint8_t clientAbort_P[] PROGMEM = { + 0x15 /*alert*/, 0x03, 0x03 /*TLS 1.2*/, 0x00, 0x02, + 1, 90 /* warning: user_cancelled */ + }; + static const uint8_t clientClose_P[] PROGMEM = { + 0x15 /*alert*/, 0x03, 0x03 /*TLS 1.2*/, 0x00, 0x02, + 1, 0 /* warning: close_notify */ + }; + if (probe.connected()) { + uint8_t msg[sizeof(clientAbort_P)]; + memcpy_P(msg, clientAbort_P, sizeof(clientAbort_P)); + probe.write(msg, sizeof(clientAbort_P)); + memcpy_P(msg, clientClose_P, sizeof(clientClose_P)); + probe.write(msg, sizeof(clientClose_P)); + } + return supportsLen; +} + +// Checks for support of Maximum Frame Length Negotiation at the given +// blocksize. Note that, per spec, only 512, 1024, 2048, and 4096 are +// supported. Many servers today do not support this negotiation. + +// TODO - Allow for fragmentation...but not very critical as the ServerHello +// we use comes to < 80 bytes which has no reason to ever be fragmented. +// TODO - Check the type of returned extensions and that the MFL is the exact +// same one we sent. Not critical as only horribly broken servers would +// return changed or add their own extensions. +bool WiFiClientSecure::probeMaxFragmentLength(IPAddress ip, uint16_t port, uint16_t len) { + // Hardcoded TLS 1.2 packets used throughout + static const uint8_t clientHelloHead_P[] PROGMEM = { + 0x16, 0x03, 0x03, 0x00, 0, // TLS header, change last 2 bytes to len + 0x01, 0x00, 0x00, 0, // Last 3 bytes == length + 0x03, 0x03, // Proto version TLS 1.2 + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, // Random (gmtime + rand[28]) + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, + 0x00, // Session ID + }; + // Followed by our cipher-suite, generated on-the-fly + // 0x00, 0x02, // cipher suite len + // 0xc0, 0x13, // BR_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA + static const uint8_t clientHelloTail_P[] PROGMEM = { + 0x01, 0x00, // No compression + 0x00, 26 + 14 + 6 + 5, // Extension length + 0x00, 0x0d, 0x00, 0x16, 0x00, 0x14, 0x04, 0x03, 0x03, 0x03, 0x05, 0x03, + 0x06, 0x03, 0x02, 0x03, 0x04, 0x01, 0x03, 0x01, 0x05, 0x01, 0x06, + 0x01, 0x02, 0x01, // Supported signature algorithms + 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x08, 0x00, 0x17, 0x00, 0x18, 0x00, 0x19, + 0x00, 0x1d, // Supported groups + 0x00, 0x0b, 0x00, 0x02, 0x01, 0x00, // Supported EC formats + 0x00, 0x01, // Max Frag Len + 0x00, 0x01, // len of MaxFragLen + }; + // Followed by a 1-byte MFLN size requesst + // 0x04 // 2^12 = 4K + uint8_t mfl; + + switch (len) { + case 512: mfl = 1; break; + case 1024: mfl = 2; break; + case 2048: mfl = 3; break; + case 4096: mfl = 4; break; + default: return false; // Invalid size + } + int ttlLen = sizeof(clientHelloHead_P) + (2 + sizeof(suites_P)) + (sizeof(clientHelloTail_P) + 1); + uint8_t *clientHello = new (std::nothrow) uint8_t[ttlLen]; + if (!clientHello) { + DEBUG_BSSL("probeMaxFragmentLength: OOM\n"); + return false; + } + memcpy_P(clientHello, clientHelloHead_P, sizeof(clientHelloHead_P)); + clientHello[sizeof(clientHelloHead_P) + 0] = sizeof(suites_P) >> 8; // MSB byte len + clientHello[sizeof(clientHelloHead_P) + 1] = sizeof(suites_P) & 0xff; // LSB byte len + for (size_t i = 0; i < sizeof(suites_P) / sizeof(suites_P[0]); i++) { + uint16_t flip = pgm_read_word(&suites_P[i]); + // Swap to network byte order + flip = ((flip >> 8) & 0xff) | ((flip & 0xff) << 8); + memcpy(clientHello + sizeof(clientHelloHead_P) + 2 + 2 * i, &flip, 2); + } + memcpy_P(clientHello + sizeof(clientHelloHead_P) + 2 + sizeof(suites_P), clientHelloTail_P, sizeof(clientHelloTail_P)); + clientHello[sizeof(clientHelloHead_P) + 2 + sizeof(suites_P) + sizeof(clientHelloTail_P)] = mfl; + + // Fix up TLS fragment length + clientHello[3] = (ttlLen - 5) >> 8; + clientHello[4] = (ttlLen - 5) & 0xff; + // Fix up ClientHello message length + clientHello[7] = (ttlLen - 5 - 4) >> 8; + clientHello[8] = (ttlLen - 5 - 4) & 0xff; + + WiFiClient probe; + probe.connect(ip, port); + if (!probe.connected()) { + delete[] clientHello; + DEBUG_BSSL("probeMaxFragmentLength: Can't connect\n"); + return false; + } + + int ret = probe.write(clientHello, ttlLen); + delete[] clientHello; // We're done w/the hello message + if (!probe.connected() || (ret != ttlLen)) { + DEBUG_BSSL("probeMaxFragmentLength: Protocol error\n"); + return false; + } + + bool supportsLen = false; + uint8_t fragResp[5]; + int fragLen; + uint8_t hand[4]; + int handLen; + uint8_t protoVer[2]; + uint8_t rand[32]; + uint8_t sessionLen; + uint8_t cipher[2]; + uint8_t comp; + uint8_t extBytes[2]; + uint16_t extLen; + + ret = probe.readBytes(fragResp, 5); + if (!probe.connected() || (ret != 5) || (fragResp[0] != 0x16) || (fragResp[1] != 0x03) || (fragResp[2] != 0x03)) { + // Short read, not a HANDSHAKE or not TLS 1.2, so it's not supported + return _SendAbort(probe, supportsLen); + } + fragLen = (fragResp[3] << 8) | fragResp[4]; + if (fragLen < 4 + 2 + 32 + 1 + 2 + 1) { + // Too short to have an extension + return _SendAbort(probe, supportsLen); + } + + ret = probe.readBytes(hand, 4); + fragLen -= ret; + if ((ret != 4) || (hand[0] != 2)) { + // Short read or not server_hello + return _SendAbort(probe, supportsLen); + } + handLen = (hand[1] << 16) | (hand[2] << 8) | hand[3]; + if (handLen != fragLen) { + // Got some weird mismatch, this is invalid + return _SendAbort(probe, supportsLen); + } + + ret = probe.readBytes(protoVer, 2); + handLen -= ret; + if ((ret != 2) || (protoVer[0] != 0x03) || (protoVer[1] != 0x03)) { + // Short read or not tls 1.2, so can't do MFLN + return _SendAbort(probe, supportsLen); + } + + ret = probe.readBytes(rand, 32); + handLen -= ret; + if (ret != 32) { + // short read of random data + return _SendAbort(probe, supportsLen); + } + + ret = probe.readBytes(&sessionLen, 1); + handLen -= ret; + if ((ret != 1) || (sessionLen > 32)) { + // short read of session len or invalid size + return _SendAbort(probe, supportsLen); + } + if (sessionLen) { + ret = probe.readBytes(rand, sessionLen); + handLen -= ret; + if (ret != sessionLen) { + // short session id read + return _SendAbort(probe, supportsLen); + } + } + + ret = probe.readBytes(cipher, 2); + handLen -= ret; + if (ret != 2) { + // Short read...we don't check the cipher here + return _SendAbort(probe, supportsLen); + } + + ret = probe.readBytes(&comp, 1); + handLen -= ret; + if ((ret != 1) || comp != 0) { + // short read or invalid compression + return _SendAbort(probe, supportsLen); + } + + ret = probe.readBytes(extBytes, 2); + handLen -= ret; + extLen = extBytes[1] | (extBytes[0] << 8); + if ((extLen == 0) || (ret != 2)) { + return _SendAbort(probe, supportsLen); + } + + while (handLen > 0) { + // Parse each extension and look for MFLN + uint8_t typeBytes[2]; + ret = probe.readBytes(typeBytes, 2); + handLen -= 2; + if ((ret != 2) || (handLen <= 0)) { + return _SendAbort(probe, supportsLen); + } + uint8_t lenBytes[2]; + ret = probe.readBytes(lenBytes, 2); + handLen -= 2; + uint16_t extLen = lenBytes[1] | (lenBytes[0] << 8); + if ((ret != 2) || (handLen <= 0) || (extLen > 32) || (extLen > handLen)) { + return _SendAbort(probe, supportsLen); + } + if ((typeBytes[0] == 0x00) && (typeBytes[1] == 0x01)) { // MFLN extension! + // If present and 1-byte in length, it's supported + return _SendAbort(probe, extLen == 1 ? true : false); + } + // Skip the extension, move to next one + uint8_t junk[32]; + ret = probe.readBytes(junk, extLen); + handLen -= extLen; + if (ret != extLen) { + return _SendAbort(probe, supportsLen); + } + } + return _SendAbort(probe, supportsLen); +} + +}; diff --git a/libraries/WiFi/src/WiFiClientSecureBearSSL.h b/libraries/WiFi/src/WiFiClientSecureBearSSL.h new file mode 100644 index 00000000..e57a1ef7 --- /dev/null +++ b/libraries/WiFi/src/WiFiClientSecureBearSSL.h @@ -0,0 +1,465 @@ +/* + WiFiClientBearSSL- SSL client/server for esp8266 using BearSSL libraries + - Mostly compatible with Arduino WiFi shield library and standard + WiFiClient/ServerSecure (except for certificate handling). + + Copyright (c) 2018 Earle F. Philhower, III + + 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + + +#pragma once + +#include +#include "WiFiClient.h" +#include +#include "BearSSLHelpers.h" +#include "CertStoreBearSSL.h" + +namespace BearSSL { + +class WiFiClientSecureCtx : public WiFiClient { +public: + WiFiClientSecureCtx(); + WiFiClientSecureCtx(const WiFiClientSecureCtx &rhs) = delete; + ~WiFiClientSecureCtx() override; + + WiFiClientSecureCtx& operator=(const WiFiClientSecureCtx&) = delete; + + // TODO: usage is invalid b/c of deleted copy, but this will only trigger an error when it is actually used by something + // TODO: don't remove just yet to avoid including the WiFiClient default implementation and unintentionally causing + // a 'slice' that this method tries to avoid in the first place + std::unique_ptr clone() const override { + return nullptr; + } + + int connect(IPAddress ip, uint16_t port) override; + int connect(const String& host, uint16_t port) override; + int connect(const char* name, uint16_t port) override; + + uint8_t connected() override; + size_t write(const uint8_t *buf, size_t size) override; + // size_t write_P(PGM_P buf, size_t size) override; + size_t write(Stream& stream); // Note this is not virtual + int read(uint8_t *buf, size_t size) override; + int read(char *buf, size_t size) { + return read((uint8_t*)buf, size); + } + int available() override; + int read() override; + int peek() override; + size_t peekBytes(uint8_t *buffer, size_t length) override; + bool flush(unsigned int maxWaitMs); + bool stop(unsigned int maxWaitMs); + void flush() override { + (void)flush(0); + } + void stop() override { + (void)stop(0); + } + + int availableForWrite() override; + + // Allow sessions to be saved/restored automatically to a memory area + void setSession(Session *session) { + _session = session; + } + + // Don't validate the chain, just accept whatever is given. VERY INSECURE! + void setInsecure() { + _clearAuthenticationSettings(); + _use_insecure = true; + } + // Assume a given public key, don't validate or use cert info at all + void setKnownKey(const PublicKey *pk, unsigned usages = BR_KEYTYPE_KEYX | BR_KEYTYPE_SIGN) { + _clearAuthenticationSettings(); + _knownkey = pk; + _knownkey_usages = usages; + } + // Only check SHA1 fingerprint of certificate + bool setFingerprint(const uint8_t fingerprint[20]) { + _clearAuthenticationSettings(); + _use_fingerprint = true; + memcpy_P(_fingerprint, fingerprint, 20); + return true; + } + bool setFingerprint(const char *fpStr); + // Accept any certificate that's self-signed + void allowSelfSignedCerts() { + _clearAuthenticationSettings(); + _use_self_signed = true; + } + // Install certificates of trusted CAs or specific site + void setTrustAnchors(const X509List *ta) { + _clearAuthenticationSettings(); + _ta = ta; + } + // In cases when NTP is not used, app must set a time manually to check cert validity + void setX509Time(time_t now) { + _now = now; + } + // Install a client certificate for this connection, in case the server requires it (i.e. MQTT) + void setClientRSACert(const X509List *cert, const PrivateKey *sk); + void setClientECCert(const X509List *cert, const PrivateKey *sk, + unsigned allowed_usages, unsigned cert_issuer_key_type); + + // Sets the requested buffer size for transmit and receive + void setBufferSizes(int recv, int xmit); + + // Returns whether MFLN negotiation for the above buffer sizes succeeded (after connection) + int getMFLNStatus() { + return connected() && br_ssl_engine_get_mfln_negotiated(_eng); + } + + // Return an error code and possibly a text string in a passed-in buffer with last SSL failure + int getLastSSLError(char *dest = NULL, size_t len = 0); + + // Attach a preconfigured certificate store + void setCertStore(CertStoreBase *certStore) { + _certStore = certStore; + } + + // Select specific ciphers (i.e. optimize for speed over security) + // These may be in PROGMEM or RAM, either will run properly + bool setCiphers(const uint16_t *cipherAry, int cipherCount); + bool setCiphers(const std::vector& list); + bool setCiphersLessSecure(); // Only use the limited set of RSA ciphers without EC + + // Limit the TLS versions BearSSL will connect with. Default is + // BR_TLS10...BR_TLS12 + bool setSSLVersion(uint32_t min = BR_TLS10, uint32_t max = BR_TLS12); +#if 0 + // peek buffer API is present + virtual bool hasPeekBufferAPI() const override { + return true; + } + + // return number of byte accessible by peekBuffer() + virtual size_t peekAvailable() override { + return WiFiClientSecureCtx::available(); + } + + // return a pointer to available data buffer (size = peekAvailable()) + // semantic forbids any kind of read() before calling peekConsume() + virtual const char* peekBuffer() override; + + // consume bytes after use (see peekBuffer) + virtual void peekConsume(size_t consume) override; +#endif +protected: + bool _connectSSL(const char *hostName); // Do initial SSL handshake + +private: + void _clear(); + void _clearAuthenticationSettings(); + // Only one of the following two should ever be != nullptr! + std::shared_ptr _sc; + std::shared_ptr _sc_svr; + inline bool ctx_present() { + return (_sc != nullptr) || (_sc_svr != nullptr); + } + br_ssl_engine_context *_eng; // &_sc->eng, to allow for client or server contexts + std::shared_ptr _x509_minimal; + std::shared_ptr _x509_insecure; + std::shared_ptr _x509_knownkey; + std::shared_ptr _iobuf_in; + std::shared_ptr _iobuf_out; + time_t _now; + const X509List *_ta; + CertStoreBase *_certStore; + int _iobuf_in_size; + int _iobuf_out_size; + bool _handshake_done; + bool _oom_err; + + // Optional storage space pointer for session parameters + // Will be used on connect and updated on close + Session *_session; + + bool _use_insecure; + bool _use_fingerprint; + uint8_t _fingerprint[20]; + bool _use_self_signed; + const PublicKey *_knownkey; + unsigned _knownkey_usages; + + // Custom cipher list pointer or NULL if default + std::shared_ptr _cipher_list; + uint8_t _cipher_cnt; + + // TLS ciphers allowed + uint32_t _tls_min; + uint32_t _tls_max; + + unsigned char *_recvapp_buf; + size_t _recvapp_len; + + bool _clientConnected(); // Is the underlying socket alive? + std::shared_ptr _alloc_iobuf(size_t sz); + void _freeSSL(); + int _run_until(unsigned target, bool blocking = true); + size_t _write(const uint8_t *buf, size_t size, bool pmem); + bool _wait_for_handshake(); // Sets and return the _handshake_done after connecting + + // Optional client certificate + const X509List *_chain; + const PrivateKey *_sk; + unsigned _allowed_usages; + unsigned _cert_issuer_key_type; + + // Methods for handling server.available() call which returns a client connection. + friend class WiFiClientSecure; // access to private context constructors + WiFiClientSecureCtx(ClientContext *client, const X509List *chain, unsigned cert_issuer_key_type, + const PrivateKey *sk, int iobuf_in_size, int iobuf_out_size, ServerSessions *cache, + const X509List *client_CA_ta, int tls_min, int tls_max); + WiFiClientSecureCtx(ClientContext* client, const X509List *chain, const PrivateKey *sk, + int iobuf_in_size, int iobuf_out_size, ServerSessions *cache, + const X509List *client_CA_ta, int tls_min, int tls_max); + + // RSA keyed server + bool _connectSSLServerRSA(const X509List *chain, const PrivateKey *sk, + ServerSessions *cache, const X509List *client_CA_ta); + // EC keyed server + bool _connectSSLServerEC(const X509List *chain, unsigned cert_issuer_key_type, const PrivateKey *sk, + ServerSessions *cache, const X509List *client_CA_ta); + + // X.509 validators differ from server to client + bool _installClientX509Validator(); // Set up X509 validator for a client conn. + bool _installServerX509Validator(const X509List *client_CA_ta); // Setup X509 client cert validation, if supplied + + uint8_t *_streamLoad(Stream& stream, size_t size); +}; // class WiFiClientSecureCtx + + +class WiFiClientSecure : public WiFiClient { + + // WiFiClient's "ClientContext* _client" is always nullptr in this class. + // Instead, all virtual functions call their counterpart in "WiFiClientecureCtx* _ctx" + // which also derives from WiFiClient (this parent is the one which is eventually used) + + // TODO: notice that this complicates the implementation by having two distinct ways the client connection is managed, consider: + // - implementing the secure connection details in the ClientContext + // (i.e. delegate the write & read functions there) + // - simplify the inheritance chain by implementing base wificlient class and inherit the original wificlient and wificlientsecure from it + // - abstract internals so it's possible to seamlessly =default copy and move with the instance *without* resorting to manual copy and initialization of each member + + // TODO: prefer implementing virtual overrides in the .cpp (or, at least one of them) + +public: + + WiFiClientSecure(): _ctx(new WiFiClientSecureCtx()) { + _owned = _ctx.get(); + } + WiFiClientSecure(const WiFiClientSecure &rhs): WiFiClient(), _ctx(rhs._ctx) { + if (_ctx) { + _owned = _ctx.get(); + } + } + ~WiFiClientSecure() override { + _ctx = nullptr; + } + + WiFiClientSecure& operator=(const WiFiClientSecure&) = default; + + std::unique_ptr clone() const override { + return std::unique_ptr(new WiFiClientSecure(*this)); + } + + uint8_t status() override { + return _ctx->status(); + } + int connect(IPAddress ip, uint16_t port) override { + return _ctx->connect(ip, port); + } + int connect(const String& host, uint16_t port) override { + return _ctx->connect(host, port); + } + int connect(const char* name, uint16_t port) override { + return _ctx->connect(name, port); + } + + uint8_t connected() override { + return _ctx->connected(); + } + size_t write(const uint8_t *buf, size_t size) override { + return _ctx->write(buf, size); + } + //size_t write_P(PGM_P buf, size_t size) override { return _ctx->write_P(buf, size); } + size_t write(const char *buf) { + return write((const uint8_t*)buf, strlen(buf)); + } + // size_t write_P(const char *buf) { return write_P((PGM_P)buf, strlen_P(buf)); } + size_t write(Stream& stream) { /* Note this is not virtual */ + return _ctx->write(stream); + } + int read(uint8_t *buf, size_t size) override { + return _ctx->read(buf, size); + } + int available() override { + return _ctx->available(); + } + int availableForWrite() override { + return _ctx->availableForWrite(); + } + int read() override { + return _ctx->read(); + } + int peek() override { + return _ctx->peek(); + } + size_t peekBytes(uint8_t *buffer, size_t length) override { + return _ctx->peekBytes(buffer, length); + } + bool flush(unsigned int maxWaitMs) { + return _ctx->flush(maxWaitMs); + } + bool stop(unsigned int maxWaitMs) { + return _ctx->stop(maxWaitMs); + } + void flush() override { + (void)flush(0); + } + void stop() override { + (void)stop(0); + } + + // Allow sessions to be saved/restored automatically to a memory area + void setSession(Session *session) { + _ctx->setSession(session); + } + + // Don't validate the chain, just accept whatever is given. VERY INSECURE! + void setInsecure() { + _ctx->setInsecure(); + } + + // Assume a given public key, don't validate or use cert info at all + void setKnownKey(const PublicKey *pk, unsigned usages = BR_KEYTYPE_KEYX | BR_KEYTYPE_SIGN) { + _ctx->setKnownKey(pk, usages); + } + // Only check SHA1 fingerprint of certificate + bool setFingerprint(const uint8_t fingerprint[20]) { + return _ctx->setFingerprint(fingerprint); + } + bool setFingerprint(const char *fpStr) { + return _ctx->setFingerprint(fpStr); + } + // Accept any certificate that's self-signed + void allowSelfSignedCerts() { + _ctx->allowSelfSignedCerts(); + } + + // Install certificates of trusted CAs or specific site + void setTrustAnchors(const X509List *ta) { + _ctx->setTrustAnchors(ta); + } + // In cases when NTP is not used, app must set a time manually to check cert validity + void setX509Time(time_t now) { + _ctx->setX509Time(now); + } + // Install a client certificate for this connection, in case the server requires it (i.e. MQTT) + void setClientRSACert(const X509List *cert, const PrivateKey *sk) { + _ctx->setClientRSACert(cert, sk); + } + void setClientECCert(const X509List *cert, const PrivateKey *sk, + unsigned allowed_usages, unsigned cert_issuer_key_type) { + _ctx->setClientECCert(cert, sk, allowed_usages, cert_issuer_key_type); + } + + // Sets the requested buffer size for transmit and receive + void setBufferSizes(int recv, int xmit) { + _ctx->setBufferSizes(recv, xmit); + } + + // Returns whether MFLN negotiation for the above buffer sizes succeeded (after connection) + int getMFLNStatus() { + return _ctx->getMFLNStatus(); + } + + // Return an error code and possibly a text string in a passed-in buffer with last SSL failure + int getLastSSLError(char *dest = NULL, size_t len = 0) { + return _ctx->getLastSSLError(dest, len); + } + + // Attach a preconfigured certificate store + void setCertStore(CertStoreBase *certStore) { + _ctx->setCertStore(certStore); + } + + // Select specific ciphers (i.e. optimize for speed over security) + // These may be in PROGMEM or RAM, either will run properly + bool setCiphers(const uint16_t *cipherAry, int cipherCount) { + return _ctx->setCiphers(cipherAry, cipherCount); + } + bool setCiphers(const std::vector list) { + return _ctx->setCiphers(list); + } + bool setCiphersLessSecure() { + return _ctx->setCiphersLessSecure(); // Only use the limited set of RSA ciphers without EC + } + + // Limit the TLS versions BearSSL will connect with. Default is + // BR_TLS10...BR_TLS12. Allowed values are: BR_TLS10, BR_TLS11, BR_TLS12 + bool setSSLVersion(uint32_t min = BR_TLS10, uint32_t max = BR_TLS12) { + return _ctx->setSSLVersion(min, max); + }; + + // Check for Maximum Fragment Length support for given len before connection (possibly insecure) + static bool probeMaxFragmentLength(IPAddress ip, uint16_t port, uint16_t len); + static bool probeMaxFragmentLength(const char *hostname, uint16_t port, uint16_t len); + static bool probeMaxFragmentLength(const String& host, uint16_t port, uint16_t len); +#if 0 + // peek buffer API is present + virtual bool hasPeekBufferAPI() const override { + return true; + } + + // return number of byte accessible by peekBuffer() + virtual size_t peekAvailable() override { + return _ctx->available(); + } + + // return a pointer to available data buffer (size = peekAvailable()) + // semantic forbids any kind of read() before calling peekConsume() + virtual const char* peekBuffer() override { + return _ctx->peekBuffer(); + } + + // consume bytes after use (see peekBuffer) + virtual void peekConsume(size_t consume) override { + return _ctx->peekConsume(consume); + } +#endif +private: + std::shared_ptr _ctx; + + // Methods for handling server.available() call which returns a client connection. + friend class WiFiServerSecure; // Server needs to access these constructors + WiFiClientSecure(ClientContext *client, const X509List *chain, unsigned cert_issuer_key_type, + const PrivateKey *sk, int iobuf_in_size, int iobuf_out_size, ServerSessions *cache, + const X509List *client_CA_ta, int tls_min, int tls_max): + _ctx(new WiFiClientSecureCtx(client, chain, cert_issuer_key_type, sk, iobuf_in_size, iobuf_out_size, cache, client_CA_ta, tls_min, tls_max)) { + } + + WiFiClientSecure(ClientContext* client, const X509List *chain, const PrivateKey *sk, + int iobuf_in_size, int iobuf_out_size, ServerSessions *cache, + const X509List *client_CA_ta, int tls_min, int tls_max): + _ctx(new WiFiClientSecureCtx(client, chain, sk, iobuf_in_size, iobuf_out_size, cache, client_CA_ta, tls_min, tls_max)) { + } + +}; // class WiFiClientSecure + +}; // namespace BearSSL diff --git a/libraries/WiFi/src/WiFiServerSecure.h b/libraries/WiFi/src/WiFiServerSecure.h new file mode 100644 index 00000000..60471383 --- /dev/null +++ b/libraries/WiFi/src/WiFiServerSecure.h @@ -0,0 +1,23 @@ +/* + WiFiServerSecure.h - Library for Arduino ESP8266 + Copyright (c) 2017 Earle F. Philhower, III + + 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "WiFiClientSecure.h" +#include "WiFiServerSecureBearSSL.h" diff --git a/libraries/WiFi/src/WiFiServerSecureBearSSL.cpp b/libraries/WiFi/src/WiFiServerSecureBearSSL.cpp new file mode 100644 index 00000000..9526105c --- /dev/null +++ b/libraries/WiFi/src/WiFiServerSecureBearSSL.cpp @@ -0,0 +1,118 @@ +/* + WiFiServerBearSSL.cpp - SSL server for esp8266, mostly compatible + with Arduino WiFi shield library + + Copyright (c) 2018 Earle F. Philhower, III + + 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +//extern "C" { +//#include "osapi.h" +//#include "ets_sys.h" +//} + +#include "StackThunk.h" +//#include "debug.h" +#include "WiFi.h" +#include "WiFiClient.h" +#include "WiFiServer.h" +#include "lwip/opt.h" +#include "lwip/tcp.h" +#include "lwip/inet.h" +#include +#include "WiFiServerSecureBearSSL.h" +#define DBG_MMU_PRINTF(x) + +namespace BearSSL { + +// Only need to call the standard server constructor +WiFiServerSecure::WiFiServerSecure(IPAddress addr, uint16_t port) : WiFiServer(addr, port) { + stack_thunk_add_ref(); +} + +// Only need to call the standard server constructor +WiFiServerSecure::WiFiServerSecure(uint16_t port) : WiFiServer(port) { + stack_thunk_add_ref(); +} + +WiFiServerSecure::WiFiServerSecure(const WiFiServerSecure &rhs) : WiFiServer(rhs) { + *this = rhs; + stack_thunk_add_ref(); +} + +WiFiServerSecure::~WiFiServerSecure() { + stack_thunk_del_ref(); +} + +// Specify a RSA-signed certificate and key for the server. Only copies the pointer, the +// caller needs to preserve this chain and key for the life of the object. +void WiFiServerSecure::setRSACert(const X509List *chain, const PrivateKey *sk) { + _chain = chain; + _sk = sk; +} + +// Specify a EC-signed certificate and key for the server. Only copies the pointer, the +// caller needs to preserve this chain and key for the life of the object. +void WiFiServerSecure::setECCert(const X509List *chain, unsigned cert_issuer_key_type, const PrivateKey *sk) { + _chain = chain; + _cert_issuer_key_type = cert_issuer_key_type; + _sk = sk; +} + +// Return a client if there's an available connection waiting. If one is returned, +// then any validation (i.e. client cert checking) will have succeeded. +WiFiClientSecure WiFiServerSecure::available(uint8_t* status) { + (void) status; // Unused + return accept(); +} + +WiFiClientSecure WiFiServerSecure::accept() { + if (_unclaimed) { + if (_sk && _sk->isRSA()) { + WiFiClientSecure result(_unclaimed, _chain, _sk, _iobuf_in_size, _iobuf_out_size, _cache, _client_CA_ta, _tls_min, _tls_max); + _unclaimed = _unclaimed->next(); + result.setNoDelay(_noDelay); + DEBUGV("WS:av\r\n"); + return result; + } else if (_sk && _sk->isEC()) { + WiFiClientSecure result(_unclaimed, _chain, _cert_issuer_key_type, _sk, _iobuf_in_size, _iobuf_out_size, _cache, _client_CA_ta, _tls_min, _tls_max); + _unclaimed = _unclaimed->next(); + result.setNoDelay(_noDelay); + DEBUGV("WS:av\r\n"); + return result; + } else { + // No key was defined, so we can't actually accept and attempt accept() and SSL handshake. + DEBUGV("WS:nokey\r\n"); + } + } + + // Something weird, return a no-op object + // optimistic_yield(1000); + return WiFiClientSecure(); +} + +bool WiFiServerSecure::setSSLVersion(uint32_t min, uint32_t max) { + if (((min != BR_TLS10) && (min != BR_TLS11) && (min != BR_TLS12)) || + ((max != BR_TLS10) && (max != BR_TLS11) && (max != BR_TLS12)) || + (max < min)) { + return false; // Invalid options + } + _tls_min = min; + _tls_max = max; + return true; +} + +}; diff --git a/libraries/WiFi/src/WiFiServerSecureBearSSL.h b/libraries/WiFi/src/WiFiServerSecureBearSSL.h new file mode 100644 index 00000000..c3c6e878 --- /dev/null +++ b/libraries/WiFi/src/WiFiServerSecureBearSSL.h @@ -0,0 +1,88 @@ +/* + WiFiServerBearSSL.h - Library for Arduino ESP8266 + Copyright (c) 2018 Earle F. Philhower, III + + 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "WiFiServer.h" +#include "WiFiClientSecureBearSSL.h" +#include "BearSSLHelpers.h" +#include + +namespace BearSSL { + +class WiFiClientSecure; + +class WiFiServerSecure : public WiFiServer { +public: + WiFiServerSecure(IPAddress addr, uint16_t port); + WiFiServerSecure(uint16_t port); + WiFiServerSecure(const WiFiServerSecure &rhs); + virtual ~WiFiServerSecure(); + + // Override the default buffer sizes, if you know what you're doing... + void setBufferSizes(int recv, int xmit) { + _iobuf_in_size = recv; + _iobuf_out_size = xmit; + } + + // Sets the server's cache to the given one. + void setCache(ServerSessions *cache) { + _cache = cache; + } + + // Set the server's RSA key and x509 certificate (required, pick one). + // Caller needs to preserve the chain and key throughout the life of the server. + void setRSACert(const X509List *chain, const PrivateKey *sk); + // Set the server's EC key and x509 certificate (required, pick one) + // Caller needs to preserve the chain and key throughout the life of the server. + void setECCert(const X509List *chain, unsigned cert_issuer_key_type, const PrivateKey *sk); + + // Require client certificates validated against the passed in x509 trust anchor + // Caller needs to preserve the cert throughout the life of the server. + void setClientTrustAnchor(const X509List *client_CA_ta) { + _client_CA_ta = client_CA_ta; + } + + // Limit the TLS versions BearSSL will connect with. Default is + // BR_TLS10...BR_TLS12 + bool setSSLVersion(uint32_t min = BR_TLS10, uint32_t max = BR_TLS12); + + // If awaiting connection available and authenticated (i.e. client cert), return it. + WiFiClientSecure accept(); // https://www.arduino.cc/en/Reference/EthernetServerAccept + WiFiClientSecure available(uint8_t* status = NULL) __attribute__((deprecated("Renamed to accept()."))); + + WiFiServerSecure& operator=(const WiFiServerSecure&) = default; + + using ClientType = WiFiClientSecure; + +private: + const X509List *_chain = nullptr; + unsigned _cert_issuer_key_type = 0; + const PrivateKey *_sk = nullptr; + int _iobuf_in_size = BR_SSL_BUFSIZE_INPUT; + int _iobuf_out_size = 837; + const X509List *_client_CA_ta = nullptr; + ServerSessions *_cache = nullptr; + + // TLS ciphers allowed + uint32_t _tls_min = BR_TLS10; + uint32_t _tls_max = BR_TLS12; +}; + +}; diff --git a/platform.txt b/platform.txt index b5a2fa23..26db603c 100644 --- a/platform.txt +++ b/platform.txt @@ -43,10 +43,11 @@ compiler.warning_flags.all=-Wall -Wextra -Werror=return-type -Wno-ignored-qualif compiler.netdefines=-DPICO_CYW43_ARCH_THREADSAFE_BACKGROUND=1 -DCYW43_LWIP=0 -DLWIP_IPV6=1 -DLWIP_IPV4=1 -DLWIP_IGMP=1 -DLWIP_CHECKSUM_CTRL_PER_NETIF=1 compiler.defines={build.led} {build.usbstack_flags} -DCFG_TUSB_MCU=OPT_MCU_RP2040 -DUSB_VID={build.vid} -DUSB_PID={build.pid} '-DUSB_MANUFACTURER={build.usb_manufacturer}' '-DUSB_PRODUCT={build.usb_product}' {compiler.netdefines} -compiler.includes="-iprefix{runtime.platform.path}/" "@{runtime.platform.path}/lib/platform_inc.txt" "-I{runtime.platform.path}/tools/libpico" +compiler.includes="-iprefix{runtime.platform.path}/" "@{runtime.platform.path}/lib/platform_inc.txt" "-I{runtime.platform.path}/tools/libpico" "-I{runtime.platform.path}/include" compiler.flags=-march=armv6-m -mcpu=cortex-m0plus -mthumb -ffunction-sections -fdata-sections {build.flags.exceptions} {build.flags.stackprotect} compiler.wrap="@{runtime.platform.path}/lib/platform_wrap.txt" compiler.libpico="{runtime.platform.path}/lib/libpico.a" +compiler.libbearssl="{runtime.platform.path}/lib/libbearssl.a" compiler.c.cmd=arm-none-eabi-gcc compiler.c.flags=-c {compiler.warning_flags} {compiler.defines} {compiler.flags} -MMD {compiler.includes} -std=gnu17 -g @@ -122,7 +123,7 @@ recipe.hooks.linking.prelink.1.pattern="{runtime.tools.pqt-python3.path}/python3 recipe.hooks.linking.prelink.2.pattern="{compiler.path}{compiler.S.cmd}" {compiler.c.elf.flags} {compiler.c.elf.extra_flags} -c "{runtime.platform.path}/boot2/{build.boot2}.S" "-I{runtime.platform.path}/pico-sdk/src/rp2040/hardware_regs/include/" "-I{runtime.platform.path}/pico-sdk/src/common/pico_binary_info/include" -o "{build.path}/boot2.o" ## Combine gc-sections, archives, and objects -recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" "-L{build.path}" {compiler.c.elf.flags} {compiler.c.elf.extra_flags} {compiler.ldflags} "-Wl,--script={build.path}/memmap_default.ld" "-Wl,-Map,{build.path}/{build.project_name}.map" -o "{build.path}/{build.project_name}.elf" -Wl,--start-group {object_files} "{build.path}/{archive_file}" "{build.path}/boot2.o" {compiler.libraries.ldflags} {compiler.libpico} -lm -lc {build.flags.libstdcpp} -lc -Wl,--end-group +recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" "-L{build.path}" {compiler.c.elf.flags} {compiler.c.elf.extra_flags} {compiler.ldflags} "-Wl,--script={build.path}/memmap_default.ld" "-Wl,-Map,{build.path}/{build.project_name}.map" -o "{build.path}/{build.project_name}.elf" -Wl,--start-group {object_files} "{build.path}/{archive_file}" "{build.path}/boot2.o" {compiler.libraries.ldflags} {compiler.libpico} {compiler.libbearssl} -lm -lc {build.flags.libstdcpp} -lc -Wl,--end-group ## Create output (UF2 file) recipe.objcopy.uf2.pattern="{runtime.tools.pqt-elf2uf2.path}/elf2uf2" "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.uf2" diff --git a/tools/libbearssl/Makefile b/tools/libbearssl/Makefile new file mode 100644 index 00000000..5818a24d --- /dev/null +++ b/tools/libbearssl/Makefile @@ -0,0 +1,29 @@ + + +VER_H=../../include/bearssl/bearssl_git.h + +all T0 clean: bearssl/README.txt + PATH="$(PATH):$(PWD)/../../system/arm-none-eabi/bin/" && cd bearssl && make CONF=pico $@ + +install: all version-header + cp bearssl/pico/libbearssl.a ../../lib/. + ar d ../../lib/libbearssl.a `ar t ../../lib/libbearssl.a | egrep 'x86|sse|pwr8|i62|m32|m62|m64|ct64|ctmul64'` # Remove unneeded objects + cp bearssl/inc/bearssl*.h ../../include/bearssl/. + +bearssl/README.txt: + git submodule update --init --recursive bearssl + cd bearssl && (git remote add bearssl https://www.bearssl.org/git/BearSSL || true) + +merge-upstream: + cd bearssl && git pull bearssl master + +version-header: + echo "// Do not edit -- Automatically generated by tools/sdk/ssl/bearssl/Makefile" > $(VER_H) + echo -n "#define BEARSSL_GIT " >> $(VER_H) + cd bearssl && git rev-parse --short HEAD >> ../$(VER_H) + +native: bearssl/README.txt + cd bearssl && make + +native32: bearssl/README.txt + cd bearssl && make CONF=Unix32 diff --git a/tools/libbearssl/README.md b/tools/libbearssl/README.md new file mode 100644 index 00000000..14dc71a1 --- /dev/null +++ b/tools/libbearssl/README.md @@ -0,0 +1,45 @@ +# BearSSL ESP8266 builder + +This directory contains the git submodule for the ESP8266 ported bearssl low-level library, a port of [BearSSL](https://www.bearssl.org) + +If you are only working on the `BearSSL::` namespace functions in the +Arduino `ESP8266WiFi` library (`BearSSL::WiFiClientSecure`, +`BearSSL::WiFiServerSecure`, etc.) you do _NOT_ need to work in this +directory. + +Normal users can simply use the libbearssl.a file already included in +the `Arduino` repo. Experienced users looking to work on the underlying +BearSSL-ESP8266 ported library can use this directory to automate the +build flow. + + +## Prerequisites +The tools directory needs to be populated (i.e. Arduino IDE should be able +to compile an executable probect. `get.py` should ensure this). + +### UNIX-like system (Linux, Mac): +If you need to change the *.t0 (Forth-like language) you will need a +.NET-compatible runtime (such as `mono` under Linux) to rebuild the +resulant `.c` files. + +### For Windows (untested) +Microsoft's .NET runtime must be installed to run the `.t0`->`.c` workflow. + + +## Building +* `make all`: Init the submodule, if needed, then build _but do not install_ the library +* `make install`: Init the submodule, if needed, then build and copy the library to the standard location in `tools/sdk/lib` + +## Editing the library +`https://github.com/earlephilhower/bearssl-esp8266` is the current repository +for this library. A `git remote` to the original BearSSL sources from +`https://bearssl.org/git/BearSSL` is added on submodule init. You can either +manually do pulls, or `make merge-upstream` to bring in any BearSSL upstream +changes. + +Documentation in the library README-esp8266 and git log describes the changes done. + + +Feel free to drop me a line at if you have questions. + +-Earle F. Philhower, III diff --git a/tools/libbearssl/bearssl b/tools/libbearssl/bearssl new file mode 160000 index 00000000..f294aa02 --- /dev/null +++ b/tools/libbearssl/bearssl @@ -0,0 +1 @@ +Subproject commit f294aa022f82833941ffdf3b0f306c2072e3a26c -- 2.54.0 From a76ad44b7b618abb2b685a18d2e2cc78f91ce083 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Sun, 17 Jul 2022 12:11:05 -0700 Subject: [PATCH 02/15] Add NTP server --- cores/rp2040/posix.cpp | 7 +++++++ docs/wifi.rst | 8 +++++--- lib/libbearssl.a | Bin 7626624 -> 7626624 bytes lib/libpico.a | Bin 3014760 -> 3018130 bytes libraries/WiFi/keywords.txt | 1 + libraries/WiFi/src/WiFi.h | 2 ++ tools/libbearssl/Makefile | 2 +- tools/libpico/lwipopts.h | 10 +++++++--- 8 files changed, 23 insertions(+), 7 deletions(-) diff --git a/cores/rp2040/posix.cpp b/cores/rp2040/posix.cpp index 2fc55e7f..19564b7d 100644 --- a/cores/rp2040/posix.cpp +++ b/cores/rp2040/posix.cpp @@ -108,6 +108,13 @@ extern "C" int settimeofday(const struct timeval *tv, const struct timezone *tz) return 0; } +// For NTP +extern "C" void __setSystemTime(unsigned long long sec, unsigned long usec) { + uint64_t now_us = to_us_since_boot(get_absolute_time()); + uint64_t newnow_us = sec * 1000000LL + usec; + __timedelta_us = newnow_us - now_us; +} + extern "C" int _isatty(int file) { (void) file; errno = ENOSYS; diff --git a/docs/wifi.rst b/docs/wifi.rst index 3e758ff0..4a64d7d9 100644 --- a/docs/wifi.rst +++ b/docs/wifi.rst @@ -13,12 +13,14 @@ Supported Features * Access Point Mode (AP, creates its own wireless network) with 4 clients * WiFi Scanning and Reporting * See the ``ScanNetworks.ino`` example to better understand the process. -* `WiFiClient (TCP/IP client) `__ +* `WiFiClient (TCP/IP client) `_ * See the ``WiFiClient.ino`` example which connects the Pico W to a remote internet service and retrieves some data -* `WiFiServer (TCP/IP server) `__ +* `WiFiServer (TCP/IP server) `_ * See the ``WiFiServer.ino`` example which implements a frientdy TCP/IP server -* `WiFiUDP (UDP packet input/output) `__ +* `WiFiUDP (UDP packet input/output) `_ * See the ``UDP.ino`` example for a simple send/receive UDP application +* `NTP (Netwok Time Protocol) `_ + * Use ``NTP.begin(server)`` where ``server`` can be a host name or an IP address In the near future TLS (SSL/https) encryption is planned, but is not yet implemented. diff --git a/lib/libbearssl.a b/lib/libbearssl.a index 778be3a306450bc1a54ee03e5c67382797aee51f..f091b718da7e20119234244f3f0df9be10a3766e 100644 GIT binary patch delta 4878 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 b4W6wkNueshOU2_IwS<+*LG#qs$-Msqqkt2S diff --git a/lib/libpico.a b/lib/libpico.a index af0116b2debab95affbb1feae2ce5a20d2eab862..8d4ac949e62b13cac71bd3965cefb4a413c1b989 100644 GIT binary patch delta 23813 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 M=!KhGKR);W0gTw{o&W#< delta 21122 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 Date: Sun, 17 Jul 2022 12:20:28 -0700 Subject: [PATCH 03/15] Clean style/spelling --- .github/workflows/pull-request.yml | 4 ++-- cores/rp2040/RP2040Support.h | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 299a02ae..5950eb74 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -20,7 +20,7 @@ jobs: - name: Run codespell uses: codespell-project/actions-codespell@master with: - skip: ./ArduinoCore-API,./libraries/ESP8266SdFat,./libraries/Adafruit_TinyUSB_Arduino,./libraries/LittleFS/lib,./tools/pyserial,./pico-sdk,./.github,./docs/i2s.rst,./cores/rp2040/api,./libraries/FreeRTOS + skip: ./ArduinoCore-API,./libraries/ESP8266SdFat,./libraries/Adafruit_TinyUSB_Arduino,./libraries/LittleFS/lib,./tools/pyserial,./pico-sdk,./.github,./docs/i2s.rst,./cores/rp2040/api,./libraries/FreeRTOS,./tools/libbearssl/bearssl ignore_words_list: ser,dout # Consistent style @@ -211,4 +211,4 @@ jobs: - name: Build Fade Example run: pio ci --board=rpipico --board=adafruit_feather -O "platform_packages=framework-arduinopico@symlink:///home/runner/work/arduino-pico/arduino-pico" libraries/rp2040/examples/Fade/Fade.ino - name: Build TinyUSB Example - run: pio ci --board=rpipico --board=adafruit_feather -O "platform_packages=framework-arduinopico@symlink:///home/runner/work/arduino-pico/arduino-pico" -O "build_flags=-DUSE_TINYUSB" libraries/Adafruit_TinyUSB_Arduino/examples/CDC/cdc_multi/cdc_multi.ino \ No newline at end of file + run: pio ci --board=rpipico --board=adafruit_feather -O "platform_packages=framework-arduinopico@symlink:///home/runner/work/arduino-pico/arduino-pico" -O "build_flags=-DUSE_TINYUSB" libraries/Adafruit_TinyUSB_Arduino/examples/CDC/cdc_multi/cdc_multi.ino diff --git a/cores/rp2040/RP2040Support.h b/cores/rp2040/RP2040Support.h index cbc18a40..2245bef2 100644 --- a/cores/rp2040/RP2040Support.h +++ b/cores/rp2040/RP2040Support.h @@ -284,7 +284,9 @@ public: unsigned long int b; do { b = rosc_hw->randombit & 1; - if (b != (rosc_hw->randombit & 1)) break; + if (b != (rosc_hw->randombit & 1)) { + break; + } } while (true); r <<= 1; r |= b; -- 2.54.0 From fa15ac8e8e8283751889ccdda37e06704d9961b1 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Sun, 17 Jul 2022 12:31:50 -0700 Subject: [PATCH 04/15] Clean up include path, add BearSSL headers --- .github/workflows/pull-request.yml | 2 +- include/bearssl/bearssl.h | 183 + include/bearssl/bearssl_aead.h | 1059 ++++ include/bearssl/bearssl_block.h | 2618 ++++++++++ include/bearssl/bearssl_ec.h | 967 ++++ include/bearssl/bearssl_git.h | 2 + include/bearssl/bearssl_hash.h | 1346 +++++ include/bearssl/bearssl_hmac.h | 241 + include/bearssl/bearssl_kdf.h | 284 ++ include/bearssl/bearssl_pem.h | 294 ++ include/bearssl/bearssl_prf.h | 150 + include/bearssl/bearssl_rand.h | 397 ++ include/bearssl/bearssl_rsa.h | 1655 +++++++ include/bearssl/bearssl_ssl.h | 4308 +++++++++++++++++ include/bearssl/bearssl_x509.h | 1669 +++++++ include/lwipopts.h | 103 + .../pico_base/pico/config_autogen.h | 0 {lib => include}/pico_base/pico/version.h | 0 include/tusb_config.h | 92 + lib/libpico.a | Bin 3018130 -> 3018130 bytes lib/platform_inc.txt | 2 +- platform.txt | 2 +- tools/libpico/make-libpico.sh | 6 +- tools/platformio-build.py | 5 +- 24 files changed, 15379 insertions(+), 6 deletions(-) create mode 100644 include/bearssl/bearssl.h create mode 100644 include/bearssl/bearssl_aead.h create mode 100644 include/bearssl/bearssl_block.h create mode 100644 include/bearssl/bearssl_ec.h create mode 100644 include/bearssl/bearssl_git.h create mode 100644 include/bearssl/bearssl_hash.h create mode 100644 include/bearssl/bearssl_hmac.h create mode 100644 include/bearssl/bearssl_kdf.h create mode 100644 include/bearssl/bearssl_pem.h create mode 100644 include/bearssl/bearssl_prf.h create mode 100644 include/bearssl/bearssl_rand.h create mode 100644 include/bearssl/bearssl_rsa.h create mode 100644 include/bearssl/bearssl_ssl.h create mode 100644 include/bearssl/bearssl_x509.h create mode 100644 include/lwipopts.h rename {lib => include}/pico_base/pico/config_autogen.h (100%) rename {lib => include}/pico_base/pico/version.h (100%) create mode 100644 include/tusb_config.h diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 5950eb74..d6490290 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -20,7 +20,7 @@ jobs: - name: Run codespell uses: codespell-project/actions-codespell@master with: - skip: ./ArduinoCore-API,./libraries/ESP8266SdFat,./libraries/Adafruit_TinyUSB_Arduino,./libraries/LittleFS/lib,./tools/pyserial,./pico-sdk,./.github,./docs/i2s.rst,./cores/rp2040/api,./libraries/FreeRTOS,./tools/libbearssl/bearssl + skip: ./ArduinoCore-API,./libraries/ESP8266SdFat,./libraries/Adafruit_TinyUSB_Arduino,./libraries/LittleFS/lib,./tools/pyserial,./pico-sdk,./.github,./docs/i2s.rst,./cores/rp2040/api,./libraries/FreeRTOS,./tools/libbearssl/bearssl,./include ignore_words_list: ser,dout # Consistent style diff --git a/include/bearssl/bearssl.h b/include/bearssl/bearssl.h new file mode 100644 index 00000000..310edb25 --- /dev/null +++ b/include/bearssl/bearssl.h @@ -0,0 +1,183 @@ +/* + * Copyright (c) 2016 Thomas Pornin + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef BR_BEARSSL_H__ +#define BR_BEARSSL_H__ + +#include +#include + +/** \mainpage BearSSL API + * + * # API Layout + * + * The functions and structures defined by the BearSSL API are located + * in various header files: + * + * | Header file | Elements | + * | :-------------- | :------------------------------------------------ | + * | bearssl_hash.h | Hash functions | + * | bearssl_hmac.h | HMAC | + * | bearssl_kdf.h | Key Derivation Functions | + * | bearssl_rand.h | Pseudorandom byte generators | + * | bearssl_prf.h | PRF implementations (for SSL/TLS) | + * | bearssl_block.h | Symmetric encryption | + * | bearssl_aead.h | AEAD algorithms (combined encryption + MAC) | + * | bearssl_rsa.h | RSA encryption and signatures | + * | bearssl_ec.h | Elliptic curves support (including ECDSA) | + * | bearssl_ssl.h | SSL/TLS engine interface | + * | bearssl_x509.h | X.509 certificate decoding and validation | + * | bearssl_pem.h | Base64/PEM decoding support functions | + * + * Applications using BearSSL are supposed to simply include `bearssl.h` + * as follows: + * + * #include + * + * The `bearssl.h` file itself includes all the other header files. It is + * possible to include specific header files, but it has no practical + * advantage for the application. The API is separated into separate + * header files only for documentation convenience. + * + * + * # Conventions + * + * ## MUST and SHALL + * + * In all descriptions, the usual "MUST", "SHALL", "MAY",... terminology + * is used. Failure to meet requirements expressed with a "MUST" or + * "SHALL" implies undefined behaviour, which means that segmentation + * faults, buffer overflows, and other similar adverse events, may occur. + * + * In general, BearSSL is not very forgiving of programming errors, and + * does not include much failsafes or error reporting when the problem + * does not arise from external transient conditions, and can be fixed + * only in the application code. This is done so in order to make the + * total code footprint lighter. + * + * + * ## `NULL` values + * + * Function parameters with a pointer type shall not be `NULL` unless + * explicitly authorised by the documentation. As an exception, when + * the pointer aims at a sequence of bytes and is accompanied with + * a length parameter, and the length is zero (meaning that there is + * no byte at all to retrieve), then the pointer may be `NULL` even if + * not explicitly allowed. + * + * + * ## Memory Allocation + * + * BearSSL does not perform dynamic memory allocation. This implies that + * for any functionality that requires a non-transient state, the caller + * is responsible for allocating the relevant context structure. Such + * allocation can be done in any appropriate area, including static data + * segments, the heap, and the stack, provided that proper alignment is + * respected. The header files define these context structures + * (including size and contents), so the C compiler should handle + * alignment automatically. + * + * Since there is no dynamic resource allocation, there is also nothing to + * release. When the calling code is done with a BearSSL feature, it + * may simple release the context structures it allocated itself, with + * no "close function" to call. If the context structures were allocated + * on the stack (as local variables), then even that release operation is + * implicit. + * + * + * ## Structure Contents + * + * Except when explicitly indicated, structure contents are opaque: they + * are included in the header files so that calling code may know the + * structure sizes and alignment requirements, but callers SHALL NOT + * access individual fields directly. For fields that are supposed to + * be read from or written to, the API defines accessor functions (the + * simplest of these accessor functions are defined as `static inline` + * functions, and the C compiler will optimise them away). + * + * + * # API Usage + * + * BearSSL usage for running a SSL/TLS client or server is described + * on the [BearSSL Web site](https://www.bearssl.org/api1.html). The + * BearSSL source archive also comes with sample code. + */ + +#include "bearssl_hash.h" +#include "bearssl_hmac.h" +#include "bearssl_kdf.h" +#include "bearssl_rand.h" +#include "bearssl_prf.h" +#include "bearssl_block.h" +#include "bearssl_aead.h" +#include "bearssl_rsa.h" +#include "bearssl_ec.h" +#include "bearssl_ssl.h" +#include "bearssl_x509.h" +#include "bearssl_pem.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** \brief Type for a configuration option. + * + * A "configuration option" is a value that is selected when the BearSSL + * library itself is compiled. Most options are boolean; their value is + * then either 1 (option is enabled) or 0 (option is disabled). Some + * values have other integer values. Option names correspond to macro + * names. Some of the options can be explicitly set in the internal + * `"config.h"` file. + */ +typedef struct { + /** \brief Configurable option name. */ + const char *name; + /** \brief Configurable option value. */ + long value; +} br_config_option; + +/** \brief Get configuration report. + * + * This function returns compiled configuration options, each as a + * 'long' value. Names match internal macro names, in particular those + * that can be set in the `"config.h"` inner file. For boolean options, + * the numerical value is 1 if enabled, 0 if disabled. For maximum + * key sizes, values are expressed in bits. + * + * The returned array is terminated by an entry whose `name` is `NULL`. + * + * \return the configuration report. + */ +const br_config_option *br_get_config(void); + +/* ======================================================================= */ + +/** \brief Version feature: support for time callback. */ +#define BR_FEATURE_X509_TIME_CALLBACK 1 + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/bearssl/bearssl_aead.h b/include/bearssl/bearssl_aead.h new file mode 100644 index 00000000..8e35a1fd --- /dev/null +++ b/include/bearssl/bearssl_aead.h @@ -0,0 +1,1059 @@ +/* + * Copyright (c) 2017 Thomas Pornin + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef BR_BEARSSL_AEAD_H__ +#define BR_BEARSSL_AEAD_H__ + +#include +#include + +#include "bearssl_block.h" +#include "bearssl_hash.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** \file bearssl_aead.h + * + * # Authenticated Encryption with Additional Data + * + * This file documents the API for AEAD encryption. + * + * + * ## Procedural API + * + * An AEAD algorithm processes messages and provides confidentiality + * (encryption) and checked integrity (MAC). It uses the following + * parameters: + * + * - A symmetric key. Exact size depends on the AEAD algorithm. + * + * - A nonce (IV). Size depends on the AEAD algorithm; for most + * algorithms, it is crucial for security that any given nonce + * value is never used twice for the same key and distinct + * messages. + * + * - Data to encrypt and protect. + * + * - Additional authenticated data, which is covered by the MAC but + * otherwise left untouched (i.e. not encrypted). + * + * The AEAD algorithm encrypts the data, and produces an authentication + * tag. It is assumed that the encrypted data, the tag, the additional + * authenticated data and the nonce are sent to the receiver; the + * additional data and the nonce may be implicit (e.g. using elements of + * the underlying transport protocol, such as record sequence numbers). + * The receiver will recompute the tag value and compare it with the one + * received; if they match, then the data is correct, and can be + * decrypted and used; otherwise, at least one of the elements was + * altered in transit, normally leading to wholesale rejection of the + * complete message. + * + * For each AEAD algorithm, identified by a symbolic name (hereafter + * denoted as "`xxx`"), the following functions are defined: + * + * - `br_xxx_init()` + * + * Initialise the AEAD algorithm, on a provided context structure. + * Exact parameters depend on the algorithm, and may include + * pointers to extra implementations and context structures. The + * secret key is provided at this point, either directly or + * indirectly. + * + * - `br_xxx_reset()` + * + * Start a new AEAD computation. The nonce value is provided as + * parameter to this function. + * + * - `br_xxx_aad_inject()` + * + * Inject some additional authenticated data. Additional data may + * be provided in several chunks of arbitrary length. + * + * - `br_xxx_flip()` + * + * This function MUST be called after injecting all additional + * authenticated data, and before beginning to encrypt the plaintext + * (or decrypt the ciphertext). + * + * - `br_xxx_run()` + * + * Process some plaintext (to encrypt) or ciphertext (to decrypt). + * Encryption/decryption is done in place. Data may be provided in + * several chunks of arbitrary length. + * + * - `br_xxx_get_tag()` + * + * Compute the authentication tag. All message data (encrypted or + * decrypted) must have been injected at that point. Also, this + * call may modify internal context elements, so it may be called + * only once for a given AEAD computation. + * + * - `br_xxx_check_tag()` + * + * An alternative to `br_xxx_get_tag()`, meant to be used by the + * receiver: the authentication tag is internally recomputed, and + * compared with the one provided as parameter. + * + * This API makes the following assumptions on the AEAD algorithm: + * + * - Encryption does not expand the size of the ciphertext; there is + * no padding. This is true of most modern AEAD modes such as GCM. + * + * - The additional authenticated data must be processed first, + * before the encrypted/decrypted data. + * + * - Nonce, plaintext and additional authenticated data all consist + * in an integral number of bytes. There is no provision to use + * elements whose length in bits is not a multiple of 8. + * + * Each AEAD algorithm has its own requirements and limits on the sizes + * of additional data and plaintext. This API does not provide any + * way to report invalid usage; it is up to the caller to ensure that + * the provided key, nonce, and data elements all fit the algorithm's + * requirements. + * + * + * ## Object-Oriented API + * + * Each context structure begins with a field (called `vtable`) that + * points to an instance of a structure that references the relevant + * functions through pointers. Each such structure contains the + * following: + * + * - `reset` + * + * Pointer to the reset function, that allows starting a new + * computation. + * + * - `aad_inject` + * + * Pointer to the additional authenticated data injection function. + * + * - `flip` + * + * Pointer to the function that transitions from additional data + * to main message data processing. + * + * - `get_tag` + * + * Pointer to the function that computes and returns the tag. + * + * - `check_tag` + * + * Pointer to the function that computes and verifies the tag against + * a received value. + * + * Note that there is no OOP method for context initialisation: the + * various AEAD algorithms have different requirements that would not + * map well to a single initialisation API. + * + * The OOP API is not provided for CCM, due to its specific requirements + * (length of plaintext must be known in advance). + */ + +/** + * \brief Class type of an AEAD algorithm. + */ +typedef struct br_aead_class_ br_aead_class; +struct br_aead_class_ { + + /** + * \brief Size (in bytes) of authentication tags created by + * this AEAD algorithm. + */ + size_t tag_size; + + /** + * \brief Reset an AEAD context. + * + * This function resets an already initialised AEAD context for + * a new computation run. Implementations and keys are + * conserved. This function can be called at any time; it + * cancels any ongoing AEAD computation that uses the provided + * context structure. + + * The provided IV is a _nonce_. Each AEAD algorithm has its + * own requirements on IV size and contents; for most of them, + * it is crucial to security that each nonce value is used + * only once for a given secret key. + * + * \param cc AEAD context structure. + * \param iv AEAD nonce to use. + * \param len AEAD nonce length (in bytes). + */ + void (*reset)(const br_aead_class **cc, const void *iv, size_t len); + + /** + * \brief Inject additional authenticated data. + * + * The provided data is injected into a running AEAD + * computation. Additional data must be injected _before_ the + * call to `flip()`. Additional data can be injected in several + * chunks of arbitrary length. + * + * \param cc AEAD context structure. + * \param data pointer to additional authenticated data. + * \param len length of additional authenticated data (in bytes). + */ + void (*aad_inject)(const br_aead_class **cc, + const void *data, size_t len); + + /** + * \brief Finish injection of additional authenticated data. + * + * This function MUST be called before beginning the actual + * encryption or decryption (with `run()`), even if no + * additional authenticated data was injected. No additional + * authenticated data may be injected after this function call. + * + * \param cc AEAD context structure. + */ + void (*flip)(const br_aead_class **cc); + + /** + * \brief Encrypt or decrypt some data. + * + * Data encryption or decryption can be done after `flip()` has + * been called on the context. If `encrypt` is non-zero, then + * the provided data shall be plaintext, and it is encrypted in + * place. Otherwise, the data shall be ciphertext, and it is + * decrypted in place. + * + * Data may be provided in several chunks of arbitrary length. + * + * \param cc AEAD context structure. + * \param encrypt non-zero for encryption, zero for decryption. + * \param data data to encrypt or decrypt. + * \param len data length (in bytes). + */ + void (*run)(const br_aead_class **cc, int encrypt, + void *data, size_t len); + + /** + * \brief Compute authentication tag. + * + * Compute the AEAD authentication tag. The tag length depends + * on the AEAD algorithm; it is written in the provided `tag` + * buffer. This call terminates the AEAD run: no data may be + * processed with that AEAD context afterwards, until `reset()` + * is called to initiate a new AEAD run. + * + * The tag value must normally be sent along with the encrypted + * data. When decrypting, the tag value must be recomputed and + * compared with the received tag: if the two tag values differ, + * then either the tag or the encrypted data was altered in + * transit. As an alternative to this function, the + * `check_tag()` function may be used to compute and check the + * tag value. + * + * Tag length depends on the AEAD algorithm. + * + * \param cc AEAD context structure. + * \param tag destination buffer for the tag. + */ + void (*get_tag)(const br_aead_class **cc, void *tag); + + /** + * \brief Compute and check authentication tag. + * + * This function is an alternative to `get_tag()`, and is + * normally used on the receiving end (i.e. when decrypting + * messages). The tag value is recomputed and compared with the + * provided tag value. If they match, 1 is returned; on + * mismatch, 0 is returned. A returned value of 0 means that the + * data or the tag was altered in transit, normally leading to + * wholesale rejection of the complete message. + * + * Tag length depends on the AEAD algorithm. + * + * \param cc AEAD context structure. + * \param tag tag value to compare with. + * \return 1 on success (exact match of tag value), 0 otherwise. + */ + uint32_t (*check_tag)(const br_aead_class **cc, const void *tag); + + /** + * \brief Compute authentication tag (with truncation). + * + * This function is similar to `get_tag()`, except that the tag + * length is provided. Some AEAD algorithms allow several tag + * lengths, usually by truncating the normal tag. Shorter tags + * mechanically increase success probability of forgeries. + * The range of allowed tag lengths depends on the algorithm. + * + * \param cc AEAD context structure. + * \param tag destination buffer for the tag. + * \param len tag length (in bytes). + */ + void (*get_tag_trunc)(const br_aead_class **cc, void *tag, size_t len); + + /** + * \brief Compute and check authentication tag (with truncation). + * + * This function is similar to `check_tag()` except that it + * works over an explicit tag length. See `get_tag()` for a + * discussion of explicit tag lengths; the range of allowed tag + * lengths depends on the algorithm. + * + * \param cc AEAD context structure. + * \param tag tag value to compare with. + * \param len tag length (in bytes). + * \return 1 on success (exact match of tag value), 0 otherwise. + */ + uint32_t (*check_tag_trunc)(const br_aead_class **cc, + const void *tag, size_t len); +}; + +/** + * \brief Context structure for GCM. + * + * GCM is an AEAD mode that combines a block cipher in CTR mode with a + * MAC based on GHASH, to provide authenticated encryption: + * + * - Any block cipher with 16-byte blocks can be used with GCM. + * + * - The nonce can have any length, from 0 up to 2^64-1 bits; however, + * 96-bit nonces (12 bytes) are recommended (nonces with a length + * distinct from 12 bytes are internally hashed, which risks reusing + * nonce value with a small but not always negligible probability). + * + * - Additional authenticated data may have length up to 2^64-1 bits. + * + * - Message length may range up to 2^39-256 bits at most. + * + * - The authentication tag has length 16 bytes. + * + * The GCM initialisation function receives as parameter an + * _initialised_ block cipher implementation context, with the secret + * key already set. A pointer to that context will be kept within the + * GCM context structure. It is up to the caller to allocate and + * initialise that block cipher context. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_aead_class *vtable; + +#ifndef BR_DOXYGEN_IGNORE + const br_block_ctr_class **bctx; + br_ghash gh; + unsigned char h[16]; + unsigned char j0_1[12]; + unsigned char buf[16]; + unsigned char y[16]; + uint32_t j0_2, jc; + uint64_t count_aad, count_ctr; +#endif +} br_gcm_context; + +/** + * \brief Initialize a GCM context. + * + * A block cipher implementation, with its initialised context structure, + * is provided. The block cipher MUST use 16-byte blocks in CTR mode, + * and its secret key MUST have been already set in the provided context. + * A GHASH implementation must also be provided. The parameters are linked + * in the GCM context. + * + * After this function has been called, the `br_gcm_reset()` function must + * be called, to provide the IV for GCM computation. + * + * \param ctx GCM context structure. + * \param bctx block cipher context (already initialised with secret key). + * \param gh GHASH implementation. + */ +void br_gcm_init(br_gcm_context *ctx, + const br_block_ctr_class **bctx, br_ghash gh); + +/** + * \brief Reset a GCM context. + * + * This function resets an already initialised GCM context for a new + * computation run. Implementations and keys are conserved. This function + * can be called at any time; it cancels any ongoing GCM computation that + * uses the provided context structure. + * + * The provided IV is a _nonce_. It is critical to GCM security that IV + * values are not repeated for the same encryption key. IV can have + * arbitrary length (up to 2^64-1 bits), but the "normal" length is + * 96 bits (12 bytes). + * + * \param ctx GCM context structure. + * \param iv GCM nonce to use. + * \param len GCM nonce length (in bytes). + */ +void br_gcm_reset(br_gcm_context *ctx, const void *iv, size_t len); + +/** + * \brief Inject additional authenticated data into GCM. + * + * The provided data is injected into a running GCM computation. Additional + * data must be injected _before_ the call to `br_gcm_flip()`. + * Additional data can be injected in several chunks of arbitrary length; + * the maximum total size of additional authenticated data is 2^64-1 + * bits. + * + * \param ctx GCM context structure. + * \param data pointer to additional authenticated data. + * \param len length of additional authenticated data (in bytes). + */ +void br_gcm_aad_inject(br_gcm_context *ctx, const void *data, size_t len); + +/** + * \brief Finish injection of additional authenticated data into GCM. + * + * This function MUST be called before beginning the actual encryption + * or decryption (with `br_gcm_run()`), even if no additional authenticated + * data was injected. No additional authenticated data may be injected + * after this function call. + * + * \param ctx GCM context structure. + */ +void br_gcm_flip(br_gcm_context *ctx); + +/** + * \brief Encrypt or decrypt some data with GCM. + * + * Data encryption or decryption can be done after `br_gcm_flip()` + * has been called on the context. If `encrypt` is non-zero, then the + * provided data shall be plaintext, and it is encrypted in place. + * Otherwise, the data shall be ciphertext, and it is decrypted in place. + * + * Data may be provided in several chunks of arbitrary length. The maximum + * total length for data is 2^39-256 bits, i.e. about 65 gigabytes. + * + * \param ctx GCM context structure. + * \param encrypt non-zero for encryption, zero for decryption. + * \param data data to encrypt or decrypt. + * \param len data length (in bytes). + */ +void br_gcm_run(br_gcm_context *ctx, int encrypt, void *data, size_t len); + +/** + * \brief Compute GCM authentication tag. + * + * Compute the GCM authentication tag. The tag is a 16-byte value which + * is written in the provided `tag` buffer. This call terminates the + * GCM run: no data may be processed with that GCM context afterwards, + * until `br_gcm_reset()` is called to initiate a new GCM run. + * + * The tag value must normally be sent along with the encrypted data. + * When decrypting, the tag value must be recomputed and compared with + * the received tag: if the two tag values differ, then either the tag + * or the encrypted data was altered in transit. As an alternative to + * this function, the `br_gcm_check_tag()` function can be used to + * compute and check the tag value. + * + * \param ctx GCM context structure. + * \param tag destination buffer for the tag (16 bytes). + */ +void br_gcm_get_tag(br_gcm_context *ctx, void *tag); + +/** + * \brief Compute and check GCM authentication tag. + * + * This function is an alternative to `br_gcm_get_tag()`, normally used + * on the receiving end (i.e. when decrypting value). The tag value is + * recomputed and compared with the provided tag value. If they match, 1 + * is returned; on mismatch, 0 is returned. A returned value of 0 means + * that the data or the tag was altered in transit, normally leading to + * wholesale rejection of the complete message. + * + * \param ctx GCM context structure. + * \param tag tag value to compare with (16 bytes). + * \return 1 on success (exact match of tag value), 0 otherwise. + */ +uint32_t br_gcm_check_tag(br_gcm_context *ctx, const void *tag); + +/** + * \brief Compute GCM authentication tag (with truncation). + * + * This function is similar to `br_gcm_get_tag()`, except that it allows + * the tag to be truncated to a smaller length. The intended tag length + * is provided as `len` (in bytes); it MUST be no more than 16, but + * it may be smaller. Note that decreasing tag length mechanically makes + * forgeries easier; NIST SP 800-38D specifies that the tag length shall + * lie between 12 and 16 bytes (inclusive), but may be truncated down to + * 4 or 8 bytes, for specific applications that can tolerate it. It must + * also be noted that successful forgeries leak information on the + * authentication key, making subsequent forgeries easier. Therefore, + * tag truncation, and in particular truncation to sizes lower than 12 + * bytes, shall be envisioned only with great care. + * + * The tag is written in the provided `tag` buffer. This call terminates + * the GCM run: no data may be processed with that GCM context + * afterwards, until `br_gcm_reset()` is called to initiate a new GCM + * run. + * + * The tag value must normally be sent along with the encrypted data. + * When decrypting, the tag value must be recomputed and compared with + * the received tag: if the two tag values differ, then either the tag + * or the encrypted data was altered in transit. As an alternative to + * this function, the `br_gcm_check_tag_trunc()` function can be used to + * compute and check the tag value. + * + * \param ctx GCM context structure. + * \param tag destination buffer for the tag. + * \param len tag length (16 bytes or less). + */ +void br_gcm_get_tag_trunc(br_gcm_context *ctx, void *tag, size_t len); + +/** + * \brief Compute and check GCM authentication tag (with truncation). + * + * This function is an alternative to `br_gcm_get_tag_trunc()`, normally used + * on the receiving end (i.e. when decrypting value). The tag value is + * recomputed and compared with the provided tag value. If they match, 1 + * is returned; on mismatch, 0 is returned. A returned value of 0 means + * that the data or the tag was altered in transit, normally leading to + * wholesale rejection of the complete message. + * + * Tag length MUST be 16 bytes or less. The normal GCM tag length is 16 + * bytes. See `br_check_tag_trunc()` for some discussion on the potential + * perils of truncating authentication tags. + * + * \param ctx GCM context structure. + * \param tag tag value to compare with. + * \param len tag length (in bytes). + * \return 1 on success (exact match of tag value), 0 otherwise. + */ +uint32_t br_gcm_check_tag_trunc(br_gcm_context *ctx, + const void *tag, size_t len); + +/** + * \brief Class instance for GCM. + */ +extern const br_aead_class br_gcm_vtable; + +/** + * \brief Context structure for EAX. + * + * EAX is an AEAD mode that combines a block cipher in CTR mode with + * CBC-MAC using the same block cipher and the same key, to provide + * authenticated encryption: + * + * - Any block cipher with 16-byte blocks can be used with EAX + * (technically, other block sizes are defined as well, but this + * is not implemented by these functions; shorter blocks also + * imply numerous security issues). + * + * - The nonce can have any length, as long as nonce values are + * not reused (thus, if nonces are randomly selected, the nonce + * size should be such that reuse probability is negligible). + * + * - Additional authenticated data length is unlimited. + * + * - Message length is unlimited. + * + * - The authentication tag has length 16 bytes. + * + * The EAX initialisation function receives as parameter an + * _initialised_ block cipher implementation context, with the secret + * key already set. A pointer to that context will be kept within the + * EAX context structure. It is up to the caller to allocate and + * initialise that block cipher context. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_aead_class *vtable; + +#ifndef BR_DOXYGEN_IGNORE + const br_block_ctrcbc_class **bctx; + unsigned char L2[16]; + unsigned char L4[16]; + unsigned char nonce[16]; + unsigned char head[16]; + unsigned char ctr[16]; + unsigned char cbcmac[16]; + unsigned char buf[16]; + size_t ptr; +#endif +} br_eax_context; + +/** + * \brief EAX captured state. + * + * Some internal values computed by EAX may be captured at various + * points, and reused for another EAX run with the same secret key, + * for lower per-message overhead. Captured values do not depend on + * the nonce. + */ +typedef struct { +#ifndef BR_DOXYGEN_IGNORE + unsigned char st[3][16]; +#endif +} br_eax_state; + +/** + * \brief Initialize an EAX context. + * + * A block cipher implementation, with its initialised context + * structure, is provided. The block cipher MUST use 16-byte blocks in + * CTR + CBC-MAC mode, and its secret key MUST have been already set in + * the provided context. The parameters are linked in the EAX context. + * + * After this function has been called, the `br_eax_reset()` function must + * be called, to provide the nonce for EAX computation. + * + * \param ctx EAX context structure. + * \param bctx block cipher context (already initialised with secret key). + */ +void br_eax_init(br_eax_context *ctx, const br_block_ctrcbc_class **bctx); + +/** + * \brief Capture pre-AAD state. + * + * This function precomputes key-dependent data, and stores it in the + * provided `st` structure. This structure should then be used with + * `br_eax_reset_pre_aad()`, or updated with `br_eax_get_aad_mac()` + * and then used with `br_eax_reset_post_aad()`. + * + * The EAX context structure is unmodified by this call. + * + * \param ctx EAX context structure. + * \param st recipient for captured state. + */ +void br_eax_capture(const br_eax_context *ctx, br_eax_state *st); + +/** + * \brief Reset an EAX context. + * + * This function resets an already initialised EAX context for a new + * computation run. Implementations and keys are conserved. This function + * can be called at any time; it cancels any ongoing EAX computation that + * uses the provided context structure. + * + * It is critical to EAX security that nonce values are not repeated for + * the same encryption key. Nonces can have arbitrary length. If nonces + * are randomly generated, then a nonce length of at least 128 bits (16 + * bytes) is recommended, to make nonce reuse probability sufficiently + * low. + * + * \param ctx EAX context structure. + * \param nonce EAX nonce to use. + * \param len EAX nonce length (in bytes). + */ +void br_eax_reset(br_eax_context *ctx, const void *nonce, size_t len); + +/** + * \brief Reset an EAX context with a pre-AAD captured state. + * + * This function is an alternative to `br_eax_reset()`, that reuses a + * previously captured state structure for lower per-message overhead. + * The state should have been populated with `br_eax_capture_state()` + * but not updated with `br_eax_get_aad_mac()`. + * + * After this function is called, additional authenticated data MUST + * be injected. At least one byte of additional authenticated data + * MUST be provided with `br_eax_aad_inject()`; computation result will + * be incorrect if `br_eax_flip()` is called right away. + * + * After injection of the AAD and call to `br_eax_flip()`, at least + * one message byte must be provided. Empty messages are not supported + * with this reset mode. + * + * \param ctx EAX context structure. + * \param st pre-AAD captured state. + * \param nonce EAX nonce to use. + * \param len EAX nonce length (in bytes). + */ +void br_eax_reset_pre_aad(br_eax_context *ctx, const br_eax_state *st, + const void *nonce, size_t len); + +/** + * \brief Reset an EAX context with a post-AAD captured state. + * + * This function is an alternative to `br_eax_reset()`, that reuses a + * previously captured state structure for lower per-message overhead. + * The state should have been populated with `br_eax_capture_state()` + * and then updated with `br_eax_get_aad_mac()`. + * + * After this function is called, message data MUST be injected. The + * `br_eax_flip()` function MUST NOT be called. At least one byte of + * message data MUST be provided with `br_eax_run()`; empty messages + * are not supported with this reset mode. + * + * \param ctx EAX context structure. + * \param st post-AAD captured state. + * \param nonce EAX nonce to use. + * \param len EAX nonce length (in bytes). + */ +void br_eax_reset_post_aad(br_eax_context *ctx, const br_eax_state *st, + const void *nonce, size_t len); + +/** + * \brief Inject additional authenticated data into EAX. + * + * The provided data is injected into a running EAX computation. Additional + * data must be injected _before_ the call to `br_eax_flip()`. + * Additional data can be injected in several chunks of arbitrary length; + * the total amount of additional authenticated data is unlimited. + * + * \param ctx EAX context structure. + * \param data pointer to additional authenticated data. + * \param len length of additional authenticated data (in bytes). + */ +void br_eax_aad_inject(br_eax_context *ctx, const void *data, size_t len); + +/** + * \brief Finish injection of additional authenticated data into EAX. + * + * This function MUST be called before beginning the actual encryption + * or decryption (with `br_eax_run()`), even if no additional authenticated + * data was injected. No additional authenticated data may be injected + * after this function call. + * + * \param ctx EAX context structure. + */ +void br_eax_flip(br_eax_context *ctx); + +/** + * \brief Obtain a copy of the MAC on additional authenticated data. + * + * This function may be called only after `br_eax_flip()`; it copies the + * AAD-specific MAC value into the provided state. The MAC value depends + * on the secret key and the additional data itself, but not on the + * nonce. The updated state `st` is meant to be used as parameter for a + * further `br_eax_reset_post_aad()` call. + * + * \param ctx EAX context structure. + * \param st captured state to update. + */ +static inline void +br_eax_get_aad_mac(const br_eax_context *ctx, br_eax_state *st) +{ + memcpy(st->st[1], ctx->head, sizeof ctx->head); +} + +/** + * \brief Encrypt or decrypt some data with EAX. + * + * Data encryption or decryption can be done after `br_eax_flip()` + * has been called on the context. If `encrypt` is non-zero, then the + * provided data shall be plaintext, and it is encrypted in place. + * Otherwise, the data shall be ciphertext, and it is decrypted in place. + * + * Data may be provided in several chunks of arbitrary length. + * + * \param ctx EAX context structure. + * \param encrypt non-zero for encryption, zero for decryption. + * \param data data to encrypt or decrypt. + * \param len data length (in bytes). + */ +void br_eax_run(br_eax_context *ctx, int encrypt, void *data, size_t len); + +/** + * \brief Compute EAX authentication tag. + * + * Compute the EAX authentication tag. The tag is a 16-byte value which + * is written in the provided `tag` buffer. This call terminates the + * EAX run: no data may be processed with that EAX context afterwards, + * until `br_eax_reset()` is called to initiate a new EAX run. + * + * The tag value must normally be sent along with the encrypted data. + * When decrypting, the tag value must be recomputed and compared with + * the received tag: if the two tag values differ, then either the tag + * or the encrypted data was altered in transit. As an alternative to + * this function, the `br_eax_check_tag()` function can be used to + * compute and check the tag value. + * + * \param ctx EAX context structure. + * \param tag destination buffer for the tag (16 bytes). + */ +void br_eax_get_tag(br_eax_context *ctx, void *tag); + +/** + * \brief Compute and check EAX authentication tag. + * + * This function is an alternative to `br_eax_get_tag()`, normally used + * on the receiving end (i.e. when decrypting value). The tag value is + * recomputed and compared with the provided tag value. If they match, 1 + * is returned; on mismatch, 0 is returned. A returned value of 0 means + * that the data or the tag was altered in transit, normally leading to + * wholesale rejection of the complete message. + * + * \param ctx EAX context structure. + * \param tag tag value to compare with (16 bytes). + * \return 1 on success (exact match of tag value), 0 otherwise. + */ +uint32_t br_eax_check_tag(br_eax_context *ctx, const void *tag); + +/** + * \brief Compute EAX authentication tag (with truncation). + * + * This function is similar to `br_eax_get_tag()`, except that it allows + * the tag to be truncated to a smaller length. The intended tag length + * is provided as `len` (in bytes); it MUST be no more than 16, but + * it may be smaller. Note that decreasing tag length mechanically makes + * forgeries easier; NIST SP 800-38D specifies that the tag length shall + * lie between 12 and 16 bytes (inclusive), but may be truncated down to + * 4 or 8 bytes, for specific applications that can tolerate it. It must + * also be noted that successful forgeries leak information on the + * authentication key, making subsequent forgeries easier. Therefore, + * tag truncation, and in particular truncation to sizes lower than 12 + * bytes, shall be envisioned only with great care. + * + * The tag is written in the provided `tag` buffer. This call terminates + * the EAX run: no data may be processed with that EAX context + * afterwards, until `br_eax_reset()` is called to initiate a new EAX + * run. + * + * The tag value must normally be sent along with the encrypted data. + * When decrypting, the tag value must be recomputed and compared with + * the received tag: if the two tag values differ, then either the tag + * or the encrypted data was altered in transit. As an alternative to + * this function, the `br_eax_check_tag_trunc()` function can be used to + * compute and check the tag value. + * + * \param ctx EAX context structure. + * \param tag destination buffer for the tag. + * \param len tag length (16 bytes or less). + */ +void br_eax_get_tag_trunc(br_eax_context *ctx, void *tag, size_t len); + +/** + * \brief Compute and check EAX authentication tag (with truncation). + * + * This function is an alternative to `br_eax_get_tag_trunc()`, normally used + * on the receiving end (i.e. when decrypting value). The tag value is + * recomputed and compared with the provided tag value. If they match, 1 + * is returned; on mismatch, 0 is returned. A returned value of 0 means + * that the data or the tag was altered in transit, normally leading to + * wholesale rejection of the complete message. + * + * Tag length MUST be 16 bytes or less. The normal EAX tag length is 16 + * bytes. See `br_check_tag_trunc()` for some discussion on the potential + * perils of truncating authentication tags. + * + * \param ctx EAX context structure. + * \param tag tag value to compare with. + * \param len tag length (in bytes). + * \return 1 on success (exact match of tag value), 0 otherwise. + */ +uint32_t br_eax_check_tag_trunc(br_eax_context *ctx, + const void *tag, size_t len); + +/** + * \brief Class instance for EAX. + */ +extern const br_aead_class br_eax_vtable; + +/** + * \brief Context structure for CCM. + * + * CCM is an AEAD mode that combines a block cipher in CTR mode with + * CBC-MAC using the same block cipher and the same key, to provide + * authenticated encryption: + * + * - Any block cipher with 16-byte blocks can be used with CCM + * (technically, other block sizes are defined as well, but this + * is not implemented by these functions; shorter blocks also + * imply numerous security issues). + * + * - The authentication tag length, and plaintext length, MUST be + * known when starting processing data. Plaintext and ciphertext + * can still be provided by chunks, but the total size must match + * the value provided upon initialisation. + * + * - The nonce length is constrained between 7 and 13 bytes (inclusive). + * Furthermore, the plaintext length, when encoded, must fit over + * 15-nonceLen bytes; thus, if the nonce has length 13 bytes, then + * the plaintext length cannot exceed 65535 bytes. + * + * - Additional authenticated data length is practically unlimited + * (formal limit is at 2^64 bytes). + * + * - The authentication tag has length 4 to 16 bytes (even values only). + * + * The CCM initialisation function receives as parameter an + * _initialised_ block cipher implementation context, with the secret + * key already set. A pointer to that context will be kept within the + * CCM context structure. It is up to the caller to allocate and + * initialise that block cipher context. + */ +typedef struct { +#ifndef BR_DOXYGEN_IGNORE + const br_block_ctrcbc_class **bctx; + unsigned char ctr[16]; + unsigned char cbcmac[16]; + unsigned char tagmask[16]; + unsigned char buf[16]; + size_t ptr; + size_t tag_len; +#endif +} br_ccm_context; + +/** + * \brief Initialize a CCM context. + * + * A block cipher implementation, with its initialised context + * structure, is provided. The block cipher MUST use 16-byte blocks in + * CTR + CBC-MAC mode, and its secret key MUST have been already set in + * the provided context. The parameters are linked in the CCM context. + * + * After this function has been called, the `br_ccm_reset()` function must + * be called, to provide the nonce for CCM computation. + * + * \param ctx CCM context structure. + * \param bctx block cipher context (already initialised with secret key). + */ +void br_ccm_init(br_ccm_context *ctx, const br_block_ctrcbc_class **bctx); + +/** + * \brief Reset a CCM context. + * + * This function resets an already initialised CCM context for a new + * computation run. Implementations and keys are conserved. This function + * can be called at any time; it cancels any ongoing CCM computation that + * uses the provided context structure. + * + * The `aad_len` parameter contains the total length, in bytes, of the + * additional authenticated data. It may be zero. That length MUST be + * exact. + * + * The `data_len` parameter contains the total length, in bytes, of the + * data that will be injected (plaintext or ciphertext). That length MUST + * be exact. Moreover, that length MUST be less than 2^(8*(15-nonce_len)). + * + * The nonce length (`nonce_len`), in bytes, must be in the 7..13 range + * (inclusive). + * + * The tag length (`tag_len`), in bytes, must be in the 4..16 range, and + * be an even integer. Short tags mechanically allow for higher forgery + * probabilities; hence, tag sizes smaller than 12 bytes shall be used only + * with care. + * + * It is critical to CCM security that nonce values are not repeated for + * the same encryption key. Random generation of nonces is not generally + * recommended, due to the relatively small maximum nonce value. + * + * Returned value is 1 on success, 0 on error. An error is reported if + * the tag or nonce length is out of range, or if the + * plaintext/ciphertext length cannot be encoded with the specified + * nonce length. + * + * \param ctx CCM context structure. + * \param nonce CCM nonce to use. + * \param nonce_len CCM nonce length (in bytes, 7 to 13). + * \param aad_len additional authenticated data length (in bytes). + * \param data_len plaintext/ciphertext length (in bytes). + * \param tag_len tag length (in bytes). + * \return 1 on success, 0 on error. + */ +int br_ccm_reset(br_ccm_context *ctx, const void *nonce, size_t nonce_len, + uint64_t aad_len, uint64_t data_len, size_t tag_len); + +/** + * \brief Inject additional authenticated data into CCM. + * + * The provided data is injected into a running CCM computation. Additional + * data must be injected _before_ the call to `br_ccm_flip()`. + * Additional data can be injected in several chunks of arbitrary length, + * but the total amount MUST exactly match the value which was provided + * to `br_ccm_reset()`. + * + * \param ctx CCM context structure. + * \param data pointer to additional authenticated data. + * \param len length of additional authenticated data (in bytes). + */ +void br_ccm_aad_inject(br_ccm_context *ctx, const void *data, size_t len); + +/** + * \brief Finish injection of additional authenticated data into CCM. + * + * This function MUST be called before beginning the actual encryption + * or decryption (with `br_ccm_run()`), even if no additional authenticated + * data was injected. No additional authenticated data may be injected + * after this function call. + * + * \param ctx CCM context structure. + */ +void br_ccm_flip(br_ccm_context *ctx); + +/** + * \brief Encrypt or decrypt some data with CCM. + * + * Data encryption or decryption can be done after `br_ccm_flip()` + * has been called on the context. If `encrypt` is non-zero, then the + * provided data shall be plaintext, and it is encrypted in place. + * Otherwise, the data shall be ciphertext, and it is decrypted in place. + * + * Data may be provided in several chunks of arbitrary length, provided + * that the total length exactly matches the length provided to the + * `br_ccm_reset()` call. + * + * \param ctx CCM context structure. + * \param encrypt non-zero for encryption, zero for decryption. + * \param data data to encrypt or decrypt. + * \param len data length (in bytes). + */ +void br_ccm_run(br_ccm_context *ctx, int encrypt, void *data, size_t len); + +/** + * \brief Compute CCM authentication tag. + * + * Compute the CCM authentication tag. This call terminates the CCM + * run: all data must have been injected with `br_ccm_run()` (in zero, + * one or more successive calls). After this function has been called, + * no more data can br processed; a `br_ccm_reset()` call is required + * to start a new message. + * + * The tag length was provided upon context initialisation (last call + * to `br_ccm_reset()`); it is returned by this function. + * + * The tag value must normally be sent along with the encrypted data. + * When decrypting, the tag value must be recomputed and compared with + * the received tag: if the two tag values differ, then either the tag + * or the encrypted data was altered in transit. As an alternative to + * this function, the `br_ccm_check_tag()` function can be used to + * compute and check the tag value. + * + * \param ctx CCM context structure. + * \param tag destination buffer for the tag (up to 16 bytes). + * \return the tag length (in bytes). + */ +size_t br_ccm_get_tag(br_ccm_context *ctx, void *tag); + +/** + * \brief Compute and check CCM authentication tag. + * + * This function is an alternative to `br_ccm_get_tag()`, normally used + * on the receiving end (i.e. when decrypting value). The tag value is + * recomputed and compared with the provided tag value. If they match, 1 + * is returned; on mismatch, 0 is returned. A returned value of 0 means + * that the data or the tag was altered in transit, normally leading to + * wholesale rejection of the complete message. + * + * \param ctx CCM context structure. + * \param tag tag value to compare with (up to 16 bytes). + * \return 1 on success (exact match of tag value), 0 otherwise. + */ +uint32_t br_ccm_check_tag(br_ccm_context *ctx, const void *tag); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/bearssl/bearssl_block.h b/include/bearssl/bearssl_block.h new file mode 100644 index 00000000..683a4906 --- /dev/null +++ b/include/bearssl/bearssl_block.h @@ -0,0 +1,2618 @@ +/* + * Copyright (c) 2016 Thomas Pornin + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef BR_BEARSSL_BLOCK_H__ +#define BR_BEARSSL_BLOCK_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** \file bearssl_block.h + * + * # Block Ciphers and Symmetric Ciphers + * + * This file documents the API for block ciphers and other symmetric + * ciphers. + * + * + * ## Procedural API + * + * For a block cipher implementation, up to three separate sets of + * functions are provided, for CBC encryption, CBC decryption, and CTR + * encryption/decryption. Each set has its own context structure, + * initialised with the encryption key. + * + * For CBC encryption and decryption, the data to encrypt or decrypt is + * referenced as a sequence of blocks. The implementations assume that + * there is no partial block; no padding is applied or removed. The + * caller is responsible for handling any kind of padding. + * + * Function for CTR encryption are defined only for block ciphers with + * blocks of 16 bytes or more (i.e. AES, but not DES/3DES). + * + * Each implemented block cipher is identified by an "internal name" + * from which are derived the names of structures and functions that + * implement the cipher. For the block cipher of internal name "`xxx`", + * the following are defined: + * + * - `br_xxx_BLOCK_SIZE` + * + * A macro that evaluates to the block size (in bytes) of the + * cipher. For all implemented block ciphers, this value is a + * power of two. + * + * - `br_xxx_cbcenc_keys` + * + * Context structure that contains the subkeys resulting from the key + * expansion. These subkeys are appropriate for CBC encryption. The + * structure first field is called `vtable` and points to the + * appropriate OOP structure. + * + * - `br_xxx_cbcenc_init(br_xxx_cbcenc_keys *ctx, const void *key, size_t len)` + * + * Perform key expansion: subkeys for CBC encryption are computed and + * written in the provided context structure. The key length MUST be + * adequate for the implemented block cipher. This function also sets + * the `vtable` field. + * + * - `br_xxx_cbcenc_run(const br_xxx_cbcenc_keys *ctx, void *iv, void *data, size_t len)` + * + * Perform CBC encryption of `len` bytes, in place. The encrypted data + * replaces the cleartext. `len` MUST be a multiple of the block length + * (if it is not, the function may loop forever or overflow a buffer). + * The IV is provided with the `iv` pointer; it is also updated with + * a copy of the last encrypted block. + * + * - `br_xxx_cbcdec_keys` + * + * Context structure that contains the subkeys resulting from the key + * expansion. These subkeys are appropriate for CBC decryption. The + * structure first field is called `vtable` and points to the + * appropriate OOP structure. + * + * - `br_xxx_cbcdec_init(br_xxx_cbcenc_keys *ctx, const void *key, size_t len)` + * + * Perform key expansion: subkeys for CBC decryption are computed and + * written in the provided context structure. The key length MUST be + * adequate for the implemented block cipher. This function also sets + * the `vtable` field. + * + * - `br_xxx_cbcdec_run(const br_xxx_cbcdec_keys *ctx, void *iv, void *data, size_t num_blocks)` + * + * Perform CBC decryption of `len` bytes, in place. The decrypted data + * replaces the ciphertext. `len` MUST be a multiple of the block length + * (if it is not, the function may loop forever or overflow a buffer). + * The IV is provided with the `iv` pointer; it is also updated with + * a copy of the last _encrypted_ block. + * + * - `br_xxx_ctr_keys` + * + * Context structure that contains the subkeys resulting from the key + * expansion. These subkeys are appropriate for CTR encryption and + * decryption. The structure first field is called `vtable` and + * points to the appropriate OOP structure. + * + * - `br_xxx_ctr_init(br_xxx_ctr_keys *ctx, const void *key, size_t len)` + * + * Perform key expansion: subkeys for CTR encryption and decryption + * are computed and written in the provided context structure. The + * key length MUST be adequate for the implemented block cipher. This + * function also sets the `vtable` field. + * + * - `br_xxx_ctr_run(const br_xxx_ctr_keys *ctx, const void *iv, uint32_t cc, void *data, size_t len)` (returns `uint32_t`) + * + * Perform CTR encryption/decryption of some data. Processing is done + * "in place" (the output data replaces the input data). This function + * implements the "standard incrementing function" from NIST SP800-38A, + * annex B: the IV length shall be 4 bytes less than the block size + * (i.e. 12 bytes for AES) and the counter is the 32-bit value starting + * with `cc`. The data length (`len`) is not necessarily a multiple of + * the block size. The new counter value is returned, which supports + * chunked processing, provided that each chunk length (except possibly + * the last one) is a multiple of the block size. + * + * - `br_xxx_ctrcbc_keys` + * + * Context structure that contains the subkeys resulting from the + * key expansion. These subkeys are appropriate for doing combined + * CTR encryption/decryption and CBC-MAC, as used in the CCM and EAX + * authenticated encryption modes. The structure first field is + * called `vtable` and points to the appropriate OOP structure. + * + * - `br_xxx_ctrcbc_init(br_xxx_ctr_keys *ctx, const void *key, size_t len)` + * + * Perform key expansion: subkeys for combined CTR + * encryption/decryption and CBC-MAC are computed and written in the + * provided context structure. The key length MUST be adequate for + * the implemented block cipher. This function also sets the + * `vtable` field. + * + * - `br_xxx_ctrcbc_encrypt(const br_xxx_ctrcbc_keys *ctx, void *ctr, void *cbcmac, void *data, size_t len)` + * + * Perform CTR encryption of some data, and CBC-MAC. Processing is + * done "in place" (the output data replaces the input data). This + * function applies CTR encryption on the data, using a full + * block-size counter (i.e. for 128-bit blocks, the counter is + * incremented as a 128-bit value). The 'ctr' array contains the + * initial value for the counter (used in the first block) and it is + * updated with the new value after data processing. The 'cbcmac' + * value shall point to a block-sized value which is used as IV for + * CBC-MAC, computed over the encrypted data (output of CTR + * encryption); the resulting CBC-MAC is written over 'cbcmac' on + * output. + * + * The data length MUST be a multiple of the block size. + * + * - `br_xxx_ctrcbc_decrypt(const br_xxx_ctrcbc_keys *ctx, void *ctr, void *cbcmac, void *data, size_t len)` + * + * Perform CTR decryption of some data, and CBC-MAC. Processing is + * done "in place" (the output data replaces the input data). This + * function applies CTR decryption on the data, using a full + * block-size counter (i.e. for 128-bit blocks, the counter is + * incremented as a 128-bit value). The 'ctr' array contains the + * initial value for the counter (used in the first block) and it is + * updated with the new value after data processing. The 'cbcmac' + * value shall point to a block-sized value which is used as IV for + * CBC-MAC, computed over the encrypted data (input of CTR + * encryption); the resulting CBC-MAC is written over 'cbcmac' on + * output. + * + * The data length MUST be a multiple of the block size. + * + * - `br_xxx_ctrcbc_ctr(const br_xxx_ctrcbc_keys *ctx, void *ctr, void *data, size_t len)` + * + * Perform CTR encryption or decryption of the provided data. The + * data is processed "in place" (the output data replaces the input + * data). A full block-sized counter is applied (i.e. for 128-bit + * blocks, the counter is incremented as a 128-bit value). The 'ctr' + * array contains the initial value for the counter (used in the + * first block), and it is updated with the new value after data + * processing. + * + * The data length MUST be a multiple of the block size. + * + * - `br_xxx_ctrcbc_mac(const br_xxx_ctrcbc_keys *ctx, void *cbcmac, const void *data, size_t len)` + * + * Compute CBC-MAC over the provided data. The IV for CBC-MAC is + * provided as 'cbcmac'; the output is written over the same array. + * The data itself is untouched. The data length MUST be a multiple + * of the block size. + * + * + * It shall be noted that the key expansion functions return `void`. If + * the provided key length is not allowed, then there will be no error + * reporting; implementations need not validate the key length, thus an + * invalid key length may result in undefined behaviour (e.g. buffer + * overflow). + * + * Subkey structures contain no interior pointer, and no external + * resources are allocated upon key expansion. They can thus be + * discarded without any explicit deallocation. + * + * + * ## Object-Oriented API + * + * Each context structure begins with a field (called `vtable`) that + * points to an instance of a structure that references the relevant + * functions through pointers. Each such structure contains the + * following: + * + * - `context_size` + * + * The size (in bytes) of the context structure for subkeys. + * + * - `block_size` + * + * The cipher block size (in bytes). + * + * - `log_block_size` + * + * The base-2 logarithm of cipher block size (e.g. 4 for blocks + * of 16 bytes). + * + * - `init` + * + * Pointer to the key expansion function. + * + * - `run` + * + * Pointer to the encryption/decryption function. + * + * For combined CTR/CBC-MAC encryption, the `vtable` has a slightly + * different structure: + * + * - `context_size` + * + * The size (in bytes) of the context structure for subkeys. + * + * - `block_size` + * + * The cipher block size (in bytes). + * + * - `log_block_size` + * + * The base-2 logarithm of cipher block size (e.g. 4 for blocks + * of 16 bytes). + * + * - `init` + * + * Pointer to the key expansion function. + * + * - `encrypt` + * + * Pointer to the CTR encryption + CBC-MAC function. + * + * - `decrypt` + * + * Pointer to the CTR decryption + CBC-MAC function. + * + * - `ctr` + * + * Pointer to the CTR encryption/decryption function. + * + * - `mac` + * + * Pointer to the CBC-MAC function. + * + * For block cipher "`xxx`", static, constant instances of these + * structures are defined, under the names: + * + * - `br_xxx_cbcenc_vtable` + * - `br_xxx_cbcdec_vtable` + * - `br_xxx_ctr_vtable` + * - `br_xxx_ctrcbc_vtable` + * + * + * ## Implemented Block Ciphers + * + * Provided implementations are: + * + * | Name | Function | Block Size (bytes) | Key lengths (bytes) | + * | :-------- | :------- | :----------------: | :-----------------: | + * | aes_big | AES | 16 | 16, 24 and 32 | + * | aes_small | AES | 16 | 16, 24 and 32 | + * | aes_ct | AES | 16 | 16, 24 and 32 | + * | aes_ct64 | AES | 16 | 16, 24 and 32 | + * | aes_x86ni | AES | 16 | 16, 24 and 32 | + * | aes_pwr8 | AES | 16 | 16, 24 and 32 | + * | des_ct | DES/3DES | 8 | 8, 16 and 24 | + * | des_tab | DES/3DES | 8 | 8, 16 and 24 | + * + * **Note:** DES/3DES nominally uses keys of 64, 128 and 192 bits (i.e. 8, + * 16 and 24 bytes), but some of the bits are ignored by the algorithm, so + * the _effective_ key lengths, from a security point of view, are 56, + * 112 and 168 bits, respectively. + * + * `aes_big` is a "classical" AES implementation, using tables. It + * is fast but not constant-time, since it makes data-dependent array + * accesses. + * + * `aes_small` is an AES implementation optimized for code size. It + * is substantially slower than `aes_big`; it is not constant-time + * either. + * + * `aes_ct` is a constant-time implementation of AES; its code is about + * as big as that of `aes_big`, while its performance is comparable to + * that of `aes_small`. However, it is constant-time. This + * implementation should thus be considered to be the "default" AES in + * BearSSL, to be used unless the operational context guarantees that a + * non-constant-time implementation is safe, or an architecture-specific + * constant-time implementation can be used (e.g. using dedicated + * hardware opcodes). + * + * `aes_ct64` is another constant-time implementation of AES. It is + * similar to `aes_ct` but uses 64-bit values. On 32-bit machines, + * `aes_ct64` is not faster than `aes_ct`, often a bit slower, and has + * a larger footprint; however, on 64-bit architectures, `aes_ct64` + * is typically twice faster than `aes_ct` for modes that allow parallel + * operations (i.e. CTR, and CBC decryption, but not CBC encryption). + * + * `aes_x86ni` exists only on x86 architectures (32-bit and 64-bit). It + * uses the AES-NI opcodes when available. + * + * `aes_pwr8` exists only on PowerPC / POWER architectures (32-bit and + * 64-bit, both little-endian and big-endian). It uses the AES opcodes + * present in POWER8 and later. + * + * `des_tab` is a classic, table-based implementation of DES/3DES. It + * is not constant-time. + * + * `des_ct` is an constant-time implementation of DES/3DES. It is + * substantially slower than `des_tab`. + * + * ## ChaCha20 and Poly1305 + * + * ChaCha20 is a stream cipher. Poly1305 is a MAC algorithm. They + * are described in [RFC 7539](https://tools.ietf.org/html/rfc7539). + * + * Two function pointer types are defined: + * + * - `br_chacha20_run` describes a function that implements ChaCha20 + * only. + * + * - `br_poly1305_run` describes an implementation of Poly1305, + * in the AEAD combination with ChaCha20 specified in RFC 7539 + * (the ChaCha20 implementation is provided as a function pointer). + * + * `chacha20_ct` is a straightforward implementation of ChaCha20 in + * plain C; it is constant-time, small, and reasonably fast. + * + * `chacha20_sse2` leverages SSE2 opcodes (on x86 architectures that + * support these opcodes). It is faster than `chacha20_ct`. + * + * `poly1305_ctmul` is an implementation of the ChaCha20+Poly1305 AEAD + * construction, where the Poly1305 part is performed with mixed 32-bit + * multiplications (operands are 32-bit, result is 64-bit). + * + * `poly1305_ctmul32` implements ChaCha20+Poly1305 using pure 32-bit + * multiplications (32-bit operands, 32-bit result). It is slower than + * `poly1305_ctmul`, except on some specific architectures such as + * the ARM Cortex M0+. + * + * `poly1305_ctmulq` implements ChaCha20+Poly1305 with mixed 64-bit + * multiplications (operands are 64-bit, result is 128-bit) on 64-bit + * platforms that support such operations. + * + * `poly1305_i15` implements ChaCha20+Poly1305 with the generic "i15" + * big integer implementation. It is meant mostly for testing purposes, + * although it can help with saving a few hundred bytes of code footprint + * on systems where code size is scarce. + */ + +/** + * \brief Class type for CBC encryption implementations. + * + * A `br_block_cbcenc_class` instance points to the functions implementing + * a specific block cipher, when used in CBC mode for encrypting data. + */ +typedef struct br_block_cbcenc_class_ br_block_cbcenc_class; +struct br_block_cbcenc_class_ { + /** + * \brief Size (in bytes) of the context structure appropriate + * for containing subkeys. + */ + size_t context_size; + + /** + * \brief Size of individual blocks (in bytes). + */ + unsigned block_size; + + /** + * \brief Base-2 logarithm of the size of individual blocks, + * expressed in bytes. + */ + unsigned log_block_size; + + /** + * \brief Initialisation function. + * + * This function sets the `vtable` field in the context structure. + * The key length MUST be one of the key lengths supported by + * the implementation. + * + * \param ctx context structure to initialise. + * \param key secret key. + * \param key_len key length (in bytes). + */ + void (*init)(const br_block_cbcenc_class **ctx, + const void *key, size_t key_len); + + /** + * \brief Run the CBC encryption. + * + * The `iv` parameter points to the IV for this run; it is + * updated with a copy of the last encrypted block. The data + * is encrypted "in place"; its length (`len`) MUST be a + * multiple of the block size. + * + * \param ctx context structure (already initialised). + * \param iv IV for CBC encryption (updated). + * \param data data to encrypt. + * \param len data length (in bytes, multiple of block size). + */ + void (*run)(const br_block_cbcenc_class *const *ctx, + void *iv, void *data, size_t len); +}; + +/** + * \brief Class type for CBC decryption implementations. + * + * A `br_block_cbcdec_class` instance points to the functions implementing + * a specific block cipher, when used in CBC mode for decrypting data. + */ +typedef struct br_block_cbcdec_class_ br_block_cbcdec_class; +struct br_block_cbcdec_class_ { + /** + * \brief Size (in bytes) of the context structure appropriate + * for containing subkeys. + */ + size_t context_size; + + /** + * \brief Size of individual blocks (in bytes). + */ + unsigned block_size; + + /** + * \brief Base-2 logarithm of the size of individual blocks, + * expressed in bytes. + */ + unsigned log_block_size; + + /** + * \brief Initialisation function. + * + * This function sets the `vtable` field in the context structure. + * The key length MUST be one of the key lengths supported by + * the implementation. + * + * \param ctx context structure to initialise. + * \param key secret key. + * \param key_len key length (in bytes). + */ + void (*init)(const br_block_cbcdec_class **ctx, + const void *key, size_t key_len); + + /** + * \brief Run the CBC decryption. + * + * The `iv` parameter points to the IV for this run; it is + * updated with a copy of the last encrypted block. The data + * is decrypted "in place"; its length (`len`) MUST be a + * multiple of the block size. + * + * \param ctx context structure (already initialised). + * \param iv IV for CBC decryption (updated). + * \param data data to decrypt. + * \param len data length (in bytes, multiple of block size). + */ + void (*run)(const br_block_cbcdec_class *const *ctx, + void *iv, void *data, size_t len); +}; + +/** + * \brief Class type for CTR encryption/decryption implementations. + * + * A `br_block_ctr_class` instance points to the functions implementing + * a specific block cipher, when used in CTR mode for encrypting or + * decrypting data. + */ +typedef struct br_block_ctr_class_ br_block_ctr_class; +struct br_block_ctr_class_ { + /** + * \brief Size (in bytes) of the context structure appropriate + * for containing subkeys. + */ + size_t context_size; + + /** + * \brief Size of individual blocks (in bytes). + */ + unsigned block_size; + + /** + * \brief Base-2 logarithm of the size of individual blocks, + * expressed in bytes. + */ + unsigned log_block_size; + + /** + * \brief Initialisation function. + * + * This function sets the `vtable` field in the context structure. + * The key length MUST be one of the key lengths supported by + * the implementation. + * + * \param ctx context structure to initialise. + * \param key secret key. + * \param key_len key length (in bytes). + */ + void (*init)(const br_block_ctr_class **ctx, + const void *key, size_t key_len); + + /** + * \brief Run the CTR encryption or decryption. + * + * The `iv` parameter points to the IV for this run; its + * length is exactly 4 bytes less than the block size (e.g. + * 12 bytes for AES/CTR). The IV is combined with a 32-bit + * block counter to produce the block value which is processed + * with the block cipher. + * + * The data to encrypt or decrypt is updated "in place". Its + * length (`len` bytes) is not required to be a multiple of + * the block size; if the final block is partial, then the + * corresponding key stream bits are dropped. + * + * The resulting counter value is returned. + * + * \param ctx context structure (already initialised). + * \param iv IV for CTR encryption/decryption. + * \param cc initial value for the block counter. + * \param data data to encrypt or decrypt. + * \param len data length (in bytes). + * \return the new block counter value. + */ + uint32_t (*run)(const br_block_ctr_class *const *ctx, + const void *iv, uint32_t cc, void *data, size_t len); +}; + +/** + * \brief Class type for combined CTR and CBC-MAC implementations. + * + * A `br_block_ctrcbc_class` instance points to the functions implementing + * a specific block cipher, when used in CTR mode for encrypting or + * decrypting data, along with CBC-MAC. + */ +typedef struct br_block_ctrcbc_class_ br_block_ctrcbc_class; +struct br_block_ctrcbc_class_ { + /** + * \brief Size (in bytes) of the context structure appropriate + * for containing subkeys. + */ + size_t context_size; + + /** + * \brief Size of individual blocks (in bytes). + */ + unsigned block_size; + + /** + * \brief Base-2 logarithm of the size of individual blocks, + * expressed in bytes. + */ + unsigned log_block_size; + + /** + * \brief Initialisation function. + * + * This function sets the `vtable` field in the context structure. + * The key length MUST be one of the key lengths supported by + * the implementation. + * + * \param ctx context structure to initialise. + * \param key secret key. + * \param key_len key length (in bytes). + */ + void (*init)(const br_block_ctrcbc_class **ctx, + const void *key, size_t key_len); + + /** + * \brief Run the CTR encryption + CBC-MAC. + * + * The `ctr` parameter points to the counter; its length shall + * be equal to the block size. It is updated by this function + * as encryption proceeds. + * + * The `cbcmac` parameter points to the IV for CBC-MAC. The MAC + * is computed over the encrypted data (output of CTR + * encryption). Its length shall be equal to the block size. The + * computed CBC-MAC value is written over the `cbcmac` array. + * + * The data to encrypt is updated "in place". Its length (`len` + * bytes) MUST be a multiple of the block size. + * + * \param ctx context structure (already initialised). + * \param ctr counter for CTR encryption (initial and final). + * \param cbcmac IV and output buffer for CBC-MAC. + * \param data data to encrypt. + * \param len data length (in bytes). + */ + void (*encrypt)(const br_block_ctrcbc_class *const *ctx, + void *ctr, void *cbcmac, void *data, size_t len); + + /** + * \brief Run the CTR decryption + CBC-MAC. + * + * The `ctr` parameter points to the counter; its length shall + * be equal to the block size. It is updated by this function + * as decryption proceeds. + * + * The `cbcmac` parameter points to the IV for CBC-MAC. The MAC + * is computed over the encrypted data (i.e. before CTR + * decryption). Its length shall be equal to the block size. The + * computed CBC-MAC value is written over the `cbcmac` array. + * + * The data to decrypt is updated "in place". Its length (`len` + * bytes) MUST be a multiple of the block size. + * + * \param ctx context structure (already initialised). + * \param ctr counter for CTR encryption (initial and final). + * \param cbcmac IV and output buffer for CBC-MAC. + * \param data data to decrypt. + * \param len data length (in bytes). + */ + void (*decrypt)(const br_block_ctrcbc_class *const *ctx, + void *ctr, void *cbcmac, void *data, size_t len); + + /** + * \brief Run the CTR encryption/decryption only. + * + * The `ctr` parameter points to the counter; its length shall + * be equal to the block size. It is updated by this function + * as decryption proceeds. + * + * The data to decrypt is updated "in place". Its length (`len` + * bytes) MUST be a multiple of the block size. + * + * \param ctx context structure (already initialised). + * \param ctr counter for CTR encryption (initial and final). + * \param data data to decrypt. + * \param len data length (in bytes). + */ + void (*ctr)(const br_block_ctrcbc_class *const *ctx, + void *ctr, void *data, size_t len); + + /** + * \brief Run the CBC-MAC only. + * + * The `cbcmac` parameter points to the IV for CBC-MAC. The MAC + * is computed over the encrypted data (i.e. before CTR + * decryption). Its length shall be equal to the block size. The + * computed CBC-MAC value is written over the `cbcmac` array. + * + * The data is unmodified. Its length (`len` bytes) MUST be a + * multiple of the block size. + * + * \param ctx context structure (already initialised). + * \param cbcmac IV and output buffer for CBC-MAC. + * \param data data to decrypt. + * \param len data length (in bytes). + */ + void (*mac)(const br_block_ctrcbc_class *const *ctx, + void *cbcmac, const void *data, size_t len); +}; + +/* + * Traditional, table-based AES implementation. It is fast, but uses + * internal tables (in particular a 1 kB table for encryption, another + * 1 kB table for decryption, and a 256-byte table for key schedule), + * and it is not constant-time. In contexts where cache-timing attacks + * apply, this implementation may leak the secret key. + */ + +/** \brief AES block size (16 bytes). */ +#define br_aes_big_BLOCK_SIZE 16 + +/** + * \brief Context for AES subkeys (`aes_big` implementation, CBC encryption). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_cbcenc_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + uint32_t skey[60]; + unsigned num_rounds; +#endif +} br_aes_big_cbcenc_keys; + +/** + * \brief Context for AES subkeys (`aes_big` implementation, CBC decryption). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_cbcdec_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + uint32_t skey[60]; + unsigned num_rounds; +#endif +} br_aes_big_cbcdec_keys; + +/** + * \brief Context for AES subkeys (`aes_big` implementation, CTR encryption + * and decryption). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_ctr_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + uint32_t skey[60]; + unsigned num_rounds; +#endif +} br_aes_big_ctr_keys; + +/** + * \brief Context for AES subkeys (`aes_big` implementation, CTR encryption + * and decryption + CBC-MAC). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_ctrcbc_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + uint32_t skey[60]; + unsigned num_rounds; +#endif +} br_aes_big_ctrcbc_keys; + +/** + * \brief Class instance for AES CBC encryption (`aes_big` implementation). + */ +extern const br_block_cbcenc_class br_aes_big_cbcenc_vtable; + +/** + * \brief Class instance for AES CBC decryption (`aes_big` implementation). + */ +extern const br_block_cbcdec_class br_aes_big_cbcdec_vtable; + +/** + * \brief Class instance for AES CTR encryption and decryption + * (`aes_big` implementation). + */ +extern const br_block_ctr_class br_aes_big_ctr_vtable; + +/** + * \brief Class instance for AES CTR encryption/decryption + CBC-MAC + * (`aes_big` implementation). + */ +extern const br_block_ctrcbc_class br_aes_big_ctrcbc_vtable; + +/** + * \brief Context initialisation (key schedule) for AES CBC encryption + * (`aes_big` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_aes_big_cbcenc_init(br_aes_big_cbcenc_keys *ctx, + const void *key, size_t len); + +/** + * \brief Context initialisation (key schedule) for AES CBC decryption + * (`aes_big` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_aes_big_cbcdec_init(br_aes_big_cbcdec_keys *ctx, + const void *key, size_t len); + +/** + * \brief Context initialisation (key schedule) for AES CTR encryption + * and decryption (`aes_big` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_aes_big_ctr_init(br_aes_big_ctr_keys *ctx, + const void *key, size_t len); + +/** + * \brief Context initialisation (key schedule) for AES CTR + CBC-MAC + * (`aes_big` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_aes_big_ctrcbc_init(br_aes_big_ctrcbc_keys *ctx, + const void *key, size_t len); + +/** + * \brief CBC encryption with AES (`aes_big` implementation). + * + * \param ctx context (already initialised). + * \param iv IV (updated). + * \param data data to encrypt (updated). + * \param len data length (in bytes, MUST be multiple of 16). + */ +void br_aes_big_cbcenc_run(const br_aes_big_cbcenc_keys *ctx, void *iv, + void *data, size_t len); + +/** + * \brief CBC decryption with AES (`aes_big` implementation). + * + * \param ctx context (already initialised). + * \param iv IV (updated). + * \param data data to decrypt (updated). + * \param len data length (in bytes, MUST be multiple of 16). + */ +void br_aes_big_cbcdec_run(const br_aes_big_cbcdec_keys *ctx, void *iv, + void *data, size_t len); + +/** + * \brief CTR encryption and decryption with AES (`aes_big` implementation). + * + * \param ctx context (already initialised). + * \param iv IV (constant, 12 bytes). + * \param cc initial block counter value. + * \param data data to encrypt or decrypt (updated). + * \param len data length (in bytes). + * \return new block counter value. + */ +uint32_t br_aes_big_ctr_run(const br_aes_big_ctr_keys *ctx, + const void *iv, uint32_t cc, void *data, size_t len); + +/** + * \brief CTR encryption + CBC-MAC with AES (`aes_big` implementation). + * + * \param ctx context (already initialised). + * \param ctr counter for CTR (16 bytes, updated). + * \param cbcmac IV for CBC-MAC (updated). + * \param data data to encrypt (updated). + * \param len data length (in bytes, MUST be a multiple of 16). + */ +void br_aes_big_ctrcbc_encrypt(const br_aes_big_ctrcbc_keys *ctx, + void *ctr, void *cbcmac, void *data, size_t len); + +/** + * \brief CTR decryption + CBC-MAC with AES (`aes_big` implementation). + * + * \param ctx context (already initialised). + * \param ctr counter for CTR (16 bytes, updated). + * \param cbcmac IV for CBC-MAC (updated). + * \param data data to decrypt (updated). + * \param len data length (in bytes, MUST be a multiple of 16). + */ +void br_aes_big_ctrcbc_decrypt(const br_aes_big_ctrcbc_keys *ctx, + void *ctr, void *cbcmac, void *data, size_t len); + +/** + * \brief CTR encryption/decryption with AES (`aes_big` implementation). + * + * \param ctx context (already initialised). + * \param ctr counter for CTR (16 bytes, updated). + * \param data data to MAC (updated). + * \param len data length (in bytes, MUST be a multiple of 16). + */ +void br_aes_big_ctrcbc_ctr(const br_aes_big_ctrcbc_keys *ctx, + void *ctr, void *data, size_t len); + +/** + * \brief CBC-MAC with AES (`aes_big` implementation). + * + * \param ctx context (already initialised). + * \param cbcmac IV for CBC-MAC (updated). + * \param data data to MAC (unmodified). + * \param len data length (in bytes, MUST be a multiple of 16). + */ +void br_aes_big_ctrcbc_mac(const br_aes_big_ctrcbc_keys *ctx, + void *cbcmac, const void *data, size_t len); + +/* + * AES implementation optimized for size. It is slower than the + * traditional table-based AES implementation, but requires much less + * code. It still uses data-dependent table accesses (albeit within a + * much smaller 256-byte table), which makes it conceptually vulnerable + * to cache-timing attacks. + */ + +/** \brief AES block size (16 bytes). */ +#define br_aes_small_BLOCK_SIZE 16 + +/** + * \brief Context for AES subkeys (`aes_small` implementation, CBC encryption). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_cbcenc_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + uint32_t skey[60]; + unsigned num_rounds; +#endif +} br_aes_small_cbcenc_keys; + +/** + * \brief Context for AES subkeys (`aes_small` implementation, CBC decryption). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_cbcdec_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + uint32_t skey[60]; + unsigned num_rounds; +#endif +} br_aes_small_cbcdec_keys; + +/** + * \brief Context for AES subkeys (`aes_small` implementation, CTR encryption + * and decryption). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_ctr_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + uint32_t skey[60]; + unsigned num_rounds; +#endif +} br_aes_small_ctr_keys; + +/** + * \brief Context for AES subkeys (`aes_small` implementation, CTR encryption + * and decryption + CBC-MAC). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_ctrcbc_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + uint32_t skey[60]; + unsigned num_rounds; +#endif +} br_aes_small_ctrcbc_keys; + +/** + * \brief Class instance for AES CBC encryption (`aes_small` implementation). + */ +extern const br_block_cbcenc_class br_aes_small_cbcenc_vtable; + +/** + * \brief Class instance for AES CBC decryption (`aes_small` implementation). + */ +extern const br_block_cbcdec_class br_aes_small_cbcdec_vtable; + +/** + * \brief Class instance for AES CTR encryption and decryption + * (`aes_small` implementation). + */ +extern const br_block_ctr_class br_aes_small_ctr_vtable; + +/** + * \brief Class instance for AES CTR encryption/decryption + CBC-MAC + * (`aes_small` implementation). + */ +extern const br_block_ctrcbc_class br_aes_small_ctrcbc_vtable; + +/** + * \brief Context initialisation (key schedule) for AES CBC encryption + * (`aes_small` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_aes_small_cbcenc_init(br_aes_small_cbcenc_keys *ctx, + const void *key, size_t len); + +/** + * \brief Context initialisation (key schedule) for AES CBC decryption + * (`aes_small` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_aes_small_cbcdec_init(br_aes_small_cbcdec_keys *ctx, + const void *key, size_t len); + +/** + * \brief Context initialisation (key schedule) for AES CTR encryption + * and decryption (`aes_small` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_aes_small_ctr_init(br_aes_small_ctr_keys *ctx, + const void *key, size_t len); + +/** + * \brief Context initialisation (key schedule) for AES CTR + CBC-MAC + * (`aes_small` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_aes_small_ctrcbc_init(br_aes_small_ctrcbc_keys *ctx, + const void *key, size_t len); + +/** + * \brief CBC encryption with AES (`aes_small` implementation). + * + * \param ctx context (already initialised). + * \param iv IV (updated). + * \param data data to encrypt (updated). + * \param len data length (in bytes, MUST be multiple of 16). + */ +void br_aes_small_cbcenc_run(const br_aes_small_cbcenc_keys *ctx, void *iv, + void *data, size_t len); + +/** + * \brief CBC decryption with AES (`aes_small` implementation). + * + * \param ctx context (already initialised). + * \param iv IV (updated). + * \param data data to decrypt (updated). + * \param len data length (in bytes, MUST be multiple of 16). + */ +void br_aes_small_cbcdec_run(const br_aes_small_cbcdec_keys *ctx, void *iv, + void *data, size_t len); + +/** + * \brief CTR encryption and decryption with AES (`aes_small` implementation). + * + * \param ctx context (already initialised). + * \param iv IV (constant, 12 bytes). + * \param cc initial block counter value. + * \param data data to decrypt (updated). + * \param len data length (in bytes). + * \return new block counter value. + */ +uint32_t br_aes_small_ctr_run(const br_aes_small_ctr_keys *ctx, + const void *iv, uint32_t cc, void *data, size_t len); + +/** + * \brief CTR encryption + CBC-MAC with AES (`aes_small` implementation). + * + * \param ctx context (already initialised). + * \param ctr counter for CTR (16 bytes, updated). + * \param cbcmac IV for CBC-MAC (updated). + * \param data data to encrypt (updated). + * \param len data length (in bytes, MUST be a multiple of 16). + */ +void br_aes_small_ctrcbc_encrypt(const br_aes_small_ctrcbc_keys *ctx, + void *ctr, void *cbcmac, void *data, size_t len); + +/** + * \brief CTR decryption + CBC-MAC with AES (`aes_small` implementation). + * + * \param ctx context (already initialised). + * \param ctr counter for CTR (16 bytes, updated). + * \param cbcmac IV for CBC-MAC (updated). + * \param data data to decrypt (updated). + * \param len data length (in bytes, MUST be a multiple of 16). + */ +void br_aes_small_ctrcbc_decrypt(const br_aes_small_ctrcbc_keys *ctx, + void *ctr, void *cbcmac, void *data, size_t len); + +/** + * \brief CTR encryption/decryption with AES (`aes_small` implementation). + * + * \param ctx context (already initialised). + * \param ctr counter for CTR (16 bytes, updated). + * \param data data to MAC (updated). + * \param len data length (in bytes, MUST be a multiple of 16). + */ +void br_aes_small_ctrcbc_ctr(const br_aes_small_ctrcbc_keys *ctx, + void *ctr, void *data, size_t len); + +/** + * \brief CBC-MAC with AES (`aes_small` implementation). + * + * \param ctx context (already initialised). + * \param cbcmac IV for CBC-MAC (updated). + * \param data data to MAC (unmodified). + * \param len data length (in bytes, MUST be a multiple of 16). + */ +void br_aes_small_ctrcbc_mac(const br_aes_small_ctrcbc_keys *ctx, + void *cbcmac, const void *data, size_t len); + +/* + * Constant-time AES implementation. Its size is similar to that of + * 'aes_big', and its performance is similar to that of 'aes_small' (faster + * decryption, slower encryption). However, it is constant-time, i.e. + * immune to cache-timing and similar attacks. + */ + +/** \brief AES block size (16 bytes). */ +#define br_aes_ct_BLOCK_SIZE 16 + +/** + * \brief Context for AES subkeys (`aes_ct` implementation, CBC encryption). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_cbcenc_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + uint32_t skey[60]; + unsigned num_rounds; +#endif +} br_aes_ct_cbcenc_keys; + +/** + * \brief Context for AES subkeys (`aes_ct` implementation, CBC decryption). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_cbcdec_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + uint32_t skey[60]; + unsigned num_rounds; +#endif +} br_aes_ct_cbcdec_keys; + +/** + * \brief Context for AES subkeys (`aes_ct` implementation, CTR encryption + * and decryption). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_ctr_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + uint32_t skey[60]; + unsigned num_rounds; +#endif +} br_aes_ct_ctr_keys; + +/** + * \brief Context for AES subkeys (`aes_ct` implementation, CTR encryption + * and decryption + CBC-MAC). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_ctrcbc_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + uint32_t skey[60]; + unsigned num_rounds; +#endif +} br_aes_ct_ctrcbc_keys; + +/** + * \brief Class instance for AES CBC encryption (`aes_ct` implementation). + */ +extern const br_block_cbcenc_class br_aes_ct_cbcenc_vtable; + +/** + * \brief Class instance for AES CBC decryption (`aes_ct` implementation). + */ +extern const br_block_cbcdec_class br_aes_ct_cbcdec_vtable; + +/** + * \brief Class instance for AES CTR encryption and decryption + * (`aes_ct` implementation). + */ +extern const br_block_ctr_class br_aes_ct_ctr_vtable; + +/** + * \brief Class instance for AES CTR encryption/decryption + CBC-MAC + * (`aes_ct` implementation). + */ +extern const br_block_ctrcbc_class br_aes_ct_ctrcbc_vtable; + +/** + * \brief Context initialisation (key schedule) for AES CBC encryption + * (`aes_ct` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_aes_ct_cbcenc_init(br_aes_ct_cbcenc_keys *ctx, + const void *key, size_t len); + +/** + * \brief Context initialisation (key schedule) for AES CBC decryption + * (`aes_ct` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_aes_ct_cbcdec_init(br_aes_ct_cbcdec_keys *ctx, + const void *key, size_t len); + +/** + * \brief Context initialisation (key schedule) for AES CTR encryption + * and decryption (`aes_ct` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_aes_ct_ctr_init(br_aes_ct_ctr_keys *ctx, + const void *key, size_t len); + +/** + * \brief Context initialisation (key schedule) for AES CTR + CBC-MAC + * (`aes_ct` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_aes_ct_ctrcbc_init(br_aes_ct_ctrcbc_keys *ctx, + const void *key, size_t len); + +/** + * \brief CBC encryption with AES (`aes_ct` implementation). + * + * \param ctx context (already initialised). + * \param iv IV (updated). + * \param data data to encrypt (updated). + * \param len data length (in bytes, MUST be multiple of 16). + */ +void br_aes_ct_cbcenc_run(const br_aes_ct_cbcenc_keys *ctx, void *iv, + void *data, size_t len); + +/** + * \brief CBC decryption with AES (`aes_ct` implementation). + * + * \param ctx context (already initialised). + * \param iv IV (updated). + * \param data data to decrypt (updated). + * \param len data length (in bytes, MUST be multiple of 16). + */ +void br_aes_ct_cbcdec_run(const br_aes_ct_cbcdec_keys *ctx, void *iv, + void *data, size_t len); + +/** + * \brief CTR encryption and decryption with AES (`aes_ct` implementation). + * + * \param ctx context (already initialised). + * \param iv IV (constant, 12 bytes). + * \param cc initial block counter value. + * \param data data to decrypt (updated). + * \param len data length (in bytes). + * \return new block counter value. + */ +uint32_t br_aes_ct_ctr_run(const br_aes_ct_ctr_keys *ctx, + const void *iv, uint32_t cc, void *data, size_t len); + +/** + * \brief CTR encryption + CBC-MAC with AES (`aes_ct` implementation). + * + * \param ctx context (already initialised). + * \param ctr counter for CTR (16 bytes, updated). + * \param cbcmac IV for CBC-MAC (updated). + * \param data data to encrypt (updated). + * \param len data length (in bytes, MUST be a multiple of 16). + */ +void br_aes_ct_ctrcbc_encrypt(const br_aes_ct_ctrcbc_keys *ctx, + void *ctr, void *cbcmac, void *data, size_t len); + +/** + * \brief CTR decryption + CBC-MAC with AES (`aes_ct` implementation). + * + * \param ctx context (already initialised). + * \param ctr counter for CTR (16 bytes, updated). + * \param cbcmac IV for CBC-MAC (updated). + * \param data data to decrypt (updated). + * \param len data length (in bytes, MUST be a multiple of 16). + */ +void br_aes_ct_ctrcbc_decrypt(const br_aes_ct_ctrcbc_keys *ctx, + void *ctr, void *cbcmac, void *data, size_t len); + +/** + * \brief CTR encryption/decryption with AES (`aes_ct` implementation). + * + * \param ctx context (already initialised). + * \param ctr counter for CTR (16 bytes, updated). + * \param data data to MAC (updated). + * \param len data length (in bytes, MUST be a multiple of 16). + */ +void br_aes_ct_ctrcbc_ctr(const br_aes_ct_ctrcbc_keys *ctx, + void *ctr, void *data, size_t len); + +/** + * \brief CBC-MAC with AES (`aes_ct` implementation). + * + * \param ctx context (already initialised). + * \param cbcmac IV for CBC-MAC (updated). + * \param data data to MAC (unmodified). + * \param len data length (in bytes, MUST be a multiple of 16). + */ +void br_aes_ct_ctrcbc_mac(const br_aes_ct_ctrcbc_keys *ctx, + void *cbcmac, const void *data, size_t len); + +/* + * 64-bit constant-time AES implementation. It is similar to 'aes_ct' + * but uses 64-bit registers, making it about twice faster than 'aes_ct' + * on 64-bit platforms, while remaining constant-time and with a similar + * code size. (The doubling in performance is only for CBC decryption + * and CTR mode; CBC encryption is non-parallel and cannot benefit from + * the larger registers.) + */ + +/** \brief AES block size (16 bytes). */ +#define br_aes_ct64_BLOCK_SIZE 16 + +/** + * \brief Context for AES subkeys (`aes_ct64` implementation, CBC encryption). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_cbcenc_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + uint64_t skey[30]; + unsigned num_rounds; +#endif +} br_aes_ct64_cbcenc_keys; + +/** + * \brief Context for AES subkeys (`aes_ct64` implementation, CBC decryption). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_cbcdec_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + uint64_t skey[30]; + unsigned num_rounds; +#endif +} br_aes_ct64_cbcdec_keys; + +/** + * \brief Context for AES subkeys (`aes_ct64` implementation, CTR encryption + * and decryption). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_ctr_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + uint64_t skey[30]; + unsigned num_rounds; +#endif +} br_aes_ct64_ctr_keys; + +/** + * \brief Context for AES subkeys (`aes_ct64` implementation, CTR encryption + * and decryption + CBC-MAC). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_ctrcbc_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + uint64_t skey[30]; + unsigned num_rounds; +#endif +} br_aes_ct64_ctrcbc_keys; + +/** + * \brief Class instance for AES CBC encryption (`aes_ct64` implementation). + */ +extern const br_block_cbcenc_class br_aes_ct64_cbcenc_vtable; + +/** + * \brief Class instance for AES CBC decryption (`aes_ct64` implementation). + */ +extern const br_block_cbcdec_class br_aes_ct64_cbcdec_vtable; + +/** + * \brief Class instance for AES CTR encryption and decryption + * (`aes_ct64` implementation). + */ +extern const br_block_ctr_class br_aes_ct64_ctr_vtable; + +/** + * \brief Class instance for AES CTR encryption/decryption + CBC-MAC + * (`aes_ct64` implementation). + */ +extern const br_block_ctrcbc_class br_aes_ct64_ctrcbc_vtable; + +/** + * \brief Context initialisation (key schedule) for AES CBC encryption + * (`aes_ct64` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_aes_ct64_cbcenc_init(br_aes_ct64_cbcenc_keys *ctx, + const void *key, size_t len); + +/** + * \brief Context initialisation (key schedule) for AES CBC decryption + * (`aes_ct64` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_aes_ct64_cbcdec_init(br_aes_ct64_cbcdec_keys *ctx, + const void *key, size_t len); + +/** + * \brief Context initialisation (key schedule) for AES CTR encryption + * and decryption (`aes_ct64` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_aes_ct64_ctr_init(br_aes_ct64_ctr_keys *ctx, + const void *key, size_t len); + +/** + * \brief Context initialisation (key schedule) for AES CTR + CBC-MAC + * (`aes_ct64` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_aes_ct64_ctrcbc_init(br_aes_ct64_ctrcbc_keys *ctx, + const void *key, size_t len); + +/** + * \brief CBC encryption with AES (`aes_ct64` implementation). + * + * \param ctx context (already initialised). + * \param iv IV (updated). + * \param data data to encrypt (updated). + * \param len data length (in bytes, MUST be multiple of 16). + */ +void br_aes_ct64_cbcenc_run(const br_aes_ct64_cbcenc_keys *ctx, void *iv, + void *data, size_t len); + +/** + * \brief CBC decryption with AES (`aes_ct64` implementation). + * + * \param ctx context (already initialised). + * \param iv IV (updated). + * \param data data to decrypt (updated). + * \param len data length (in bytes, MUST be multiple of 16). + */ +void br_aes_ct64_cbcdec_run(const br_aes_ct64_cbcdec_keys *ctx, void *iv, + void *data, size_t len); + +/** + * \brief CTR encryption and decryption with AES (`aes_ct64` implementation). + * + * \param ctx context (already initialised). + * \param iv IV (constant, 12 bytes). + * \param cc initial block counter value. + * \param data data to decrypt (updated). + * \param len data length (in bytes). + * \return new block counter value. + */ +uint32_t br_aes_ct64_ctr_run(const br_aes_ct64_ctr_keys *ctx, + const void *iv, uint32_t cc, void *data, size_t len); + +/** + * \brief CTR encryption + CBC-MAC with AES (`aes_ct64` implementation). + * + * \param ctx context (already initialised). + * \param ctr counter for CTR (16 bytes, updated). + * \param cbcmac IV for CBC-MAC (updated). + * \param data data to encrypt (updated). + * \param len data length (in bytes, MUST be a multiple of 16). + */ +void br_aes_ct64_ctrcbc_encrypt(const br_aes_ct64_ctrcbc_keys *ctx, + void *ctr, void *cbcmac, void *data, size_t len); + +/** + * \brief CTR decryption + CBC-MAC with AES (`aes_ct64` implementation). + * + * \param ctx context (already initialised). + * \param ctr counter for CTR (16 bytes, updated). + * \param cbcmac IV for CBC-MAC (updated). + * \param data data to decrypt (updated). + * \param len data length (in bytes, MUST be a multiple of 16). + */ +void br_aes_ct64_ctrcbc_decrypt(const br_aes_ct64_ctrcbc_keys *ctx, + void *ctr, void *cbcmac, void *data, size_t len); + +/** + * \brief CTR encryption/decryption with AES (`aes_ct64` implementation). + * + * \param ctx context (already initialised). + * \param ctr counter for CTR (16 bytes, updated). + * \param data data to MAC (updated). + * \param len data length (in bytes, MUST be a multiple of 16). + */ +void br_aes_ct64_ctrcbc_ctr(const br_aes_ct64_ctrcbc_keys *ctx, + void *ctr, void *data, size_t len); + +/** + * \brief CBC-MAC with AES (`aes_ct64` implementation). + * + * \param ctx context (already initialised). + * \param cbcmac IV for CBC-MAC (updated). + * \param data data to MAC (unmodified). + * \param len data length (in bytes, MUST be a multiple of 16). + */ +void br_aes_ct64_ctrcbc_mac(const br_aes_ct64_ctrcbc_keys *ctx, + void *cbcmac, const void *data, size_t len); + +/* + * AES implementation using AES-NI opcodes (x86 platform). + */ + +/** \brief AES block size (16 bytes). */ +#define br_aes_x86ni_BLOCK_SIZE 16 + +/** + * \brief Context for AES subkeys (`aes_x86ni` implementation, CBC encryption). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_cbcenc_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + union { + unsigned char skni[16 * 15]; + } skey; + unsigned num_rounds; +#endif +} br_aes_x86ni_cbcenc_keys; + +/** + * \brief Context for AES subkeys (`aes_x86ni` implementation, CBC decryption). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_cbcdec_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + union { + unsigned char skni[16 * 15]; + } skey; + unsigned num_rounds; +#endif +} br_aes_x86ni_cbcdec_keys; + +/** + * \brief Context for AES subkeys (`aes_x86ni` implementation, CTR encryption + * and decryption). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_ctr_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + union { + unsigned char skni[16 * 15]; + } skey; + unsigned num_rounds; +#endif +} br_aes_x86ni_ctr_keys; + +/** + * \brief Context for AES subkeys (`aes_x86ni` implementation, CTR encryption + * and decryption + CBC-MAC). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_ctrcbc_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + union { + unsigned char skni[16 * 15]; + } skey; + unsigned num_rounds; +#endif +} br_aes_x86ni_ctrcbc_keys; + +/** + * \brief Class instance for AES CBC encryption (`aes_x86ni` implementation). + * + * Since this implementation might be omitted from the library, or the + * AES opcode unavailable on the current CPU, a pointer to this class + * instance should be obtained through `br_aes_x86ni_cbcenc_get_vtable()`. + */ +extern const br_block_cbcenc_class br_aes_x86ni_cbcenc_vtable; + +/** + * \brief Class instance for AES CBC decryption (`aes_x86ni` implementation). + * + * Since this implementation might be omitted from the library, or the + * AES opcode unavailable on the current CPU, a pointer to this class + * instance should be obtained through `br_aes_x86ni_cbcdec_get_vtable()`. + */ +extern const br_block_cbcdec_class br_aes_x86ni_cbcdec_vtable; + +/** + * \brief Class instance for AES CTR encryption and decryption + * (`aes_x86ni` implementation). + * + * Since this implementation might be omitted from the library, or the + * AES opcode unavailable on the current CPU, a pointer to this class + * instance should be obtained through `br_aes_x86ni_ctr_get_vtable()`. + */ +extern const br_block_ctr_class br_aes_x86ni_ctr_vtable; + +/** + * \brief Class instance for AES CTR encryption/decryption + CBC-MAC + * (`aes_x86ni` implementation). + * + * Since this implementation might be omitted from the library, or the + * AES opcode unavailable on the current CPU, a pointer to this class + * instance should be obtained through `br_aes_x86ni_ctrcbc_get_vtable()`. + */ +extern const br_block_ctrcbc_class br_aes_x86ni_ctrcbc_vtable; + +/** + * \brief Context initialisation (key schedule) for AES CBC encryption + * (`aes_x86ni` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_aes_x86ni_cbcenc_init(br_aes_x86ni_cbcenc_keys *ctx, + const void *key, size_t len); + +/** + * \brief Context initialisation (key schedule) for AES CBC decryption + * (`aes_x86ni` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_aes_x86ni_cbcdec_init(br_aes_x86ni_cbcdec_keys *ctx, + const void *key, size_t len); + +/** + * \brief Context initialisation (key schedule) for AES CTR encryption + * and decryption (`aes_x86ni` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_aes_x86ni_ctr_init(br_aes_x86ni_ctr_keys *ctx, + const void *key, size_t len); + +/** + * \brief Context initialisation (key schedule) for AES CTR + CBC-MAC + * (`aes_x86ni` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_aes_x86ni_ctrcbc_init(br_aes_x86ni_ctrcbc_keys *ctx, + const void *key, size_t len); + +/** + * \brief CBC encryption with AES (`aes_x86ni` implementation). + * + * \param ctx context (already initialised). + * \param iv IV (updated). + * \param data data to encrypt (updated). + * \param len data length (in bytes, MUST be multiple of 16). + */ +void br_aes_x86ni_cbcenc_run(const br_aes_x86ni_cbcenc_keys *ctx, void *iv, + void *data, size_t len); + +/** + * \brief CBC decryption with AES (`aes_x86ni` implementation). + * + * \param ctx context (already initialised). + * \param iv IV (updated). + * \param data data to decrypt (updated). + * \param len data length (in bytes, MUST be multiple of 16). + */ +void br_aes_x86ni_cbcdec_run(const br_aes_x86ni_cbcdec_keys *ctx, void *iv, + void *data, size_t len); + +/** + * \brief CTR encryption and decryption with AES (`aes_x86ni` implementation). + * + * \param ctx context (already initialised). + * \param iv IV (constant, 12 bytes). + * \param cc initial block counter value. + * \param data data to decrypt (updated). + * \param len data length (in bytes). + * \return new block counter value. + */ +uint32_t br_aes_x86ni_ctr_run(const br_aes_x86ni_ctr_keys *ctx, + const void *iv, uint32_t cc, void *data, size_t len); + +/** + * \brief CTR encryption + CBC-MAC with AES (`aes_x86ni` implementation). + * + * \param ctx context (already initialised). + * \param ctr counter for CTR (16 bytes, updated). + * \param cbcmac IV for CBC-MAC (updated). + * \param data data to encrypt (updated). + * \param len data length (in bytes, MUST be a multiple of 16). + */ +void br_aes_x86ni_ctrcbc_encrypt(const br_aes_x86ni_ctrcbc_keys *ctx, + void *ctr, void *cbcmac, void *data, size_t len); + +/** + * \brief CTR decryption + CBC-MAC with AES (`aes_x86ni` implementation). + * + * \param ctx context (already initialised). + * \param ctr counter for CTR (16 bytes, updated). + * \param cbcmac IV for CBC-MAC (updated). + * \param data data to decrypt (updated). + * \param len data length (in bytes, MUST be a multiple of 16). + */ +void br_aes_x86ni_ctrcbc_decrypt(const br_aes_x86ni_ctrcbc_keys *ctx, + void *ctr, void *cbcmac, void *data, size_t len); + +/** + * \brief CTR encryption/decryption with AES (`aes_x86ni` implementation). + * + * \param ctx context (already initialised). + * \param ctr counter for CTR (16 bytes, updated). + * \param data data to MAC (updated). + * \param len data length (in bytes, MUST be a multiple of 16). + */ +void br_aes_x86ni_ctrcbc_ctr(const br_aes_x86ni_ctrcbc_keys *ctx, + void *ctr, void *data, size_t len); + +/** + * \brief CBC-MAC with AES (`aes_x86ni` implementation). + * + * \param ctx context (already initialised). + * \param cbcmac IV for CBC-MAC (updated). + * \param data data to MAC (unmodified). + * \param len data length (in bytes, MUST be a multiple of 16). + */ +void br_aes_x86ni_ctrcbc_mac(const br_aes_x86ni_ctrcbc_keys *ctx, + void *cbcmac, const void *data, size_t len); + +/** + * \brief Obtain the `aes_x86ni` AES-CBC (encryption) implementation, if + * available. + * + * This function returns a pointer to `br_aes_x86ni_cbcenc_vtable`, if + * that implementation was compiled in the library _and_ the x86 AES + * opcodes are available on the currently running CPU. If either of + * these conditions is not met, then this function returns `NULL`. + * + * \return the `aes_x86ni` AES-CBC (encryption) implementation, or `NULL`. + */ +const br_block_cbcenc_class *br_aes_x86ni_cbcenc_get_vtable(void); + +/** + * \brief Obtain the `aes_x86ni` AES-CBC (decryption) implementation, if + * available. + * + * This function returns a pointer to `br_aes_x86ni_cbcdec_vtable`, if + * that implementation was compiled in the library _and_ the x86 AES + * opcodes are available on the currently running CPU. If either of + * these conditions is not met, then this function returns `NULL`. + * + * \return the `aes_x86ni` AES-CBC (decryption) implementation, or `NULL`. + */ +const br_block_cbcdec_class *br_aes_x86ni_cbcdec_get_vtable(void); + +/** + * \brief Obtain the `aes_x86ni` AES-CTR implementation, if available. + * + * This function returns a pointer to `br_aes_x86ni_ctr_vtable`, if + * that implementation was compiled in the library _and_ the x86 AES + * opcodes are available on the currently running CPU. If either of + * these conditions is not met, then this function returns `NULL`. + * + * \return the `aes_x86ni` AES-CTR implementation, or `NULL`. + */ +const br_block_ctr_class *br_aes_x86ni_ctr_get_vtable(void); + +/** + * \brief Obtain the `aes_x86ni` AES-CTR + CBC-MAC implementation, if + * available. + * + * This function returns a pointer to `br_aes_x86ni_ctrcbc_vtable`, if + * that implementation was compiled in the library _and_ the x86 AES + * opcodes are available on the currently running CPU. If either of + * these conditions is not met, then this function returns `NULL`. + * + * \return the `aes_x86ni` AES-CTR implementation, or `NULL`. + */ +const br_block_ctrcbc_class *br_aes_x86ni_ctrcbc_get_vtable(void); + +/* + * AES implementation using POWER8 opcodes. + */ + +/** \brief AES block size (16 bytes). */ +#define br_aes_pwr8_BLOCK_SIZE 16 + +/** + * \brief Context for AES subkeys (`aes_pwr8` implementation, CBC encryption). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_cbcenc_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + union { + unsigned char skni[16 * 15]; + } skey; + unsigned num_rounds; +#endif +} br_aes_pwr8_cbcenc_keys; + +/** + * \brief Context for AES subkeys (`aes_pwr8` implementation, CBC decryption). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_cbcdec_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + union { + unsigned char skni[16 * 15]; + } skey; + unsigned num_rounds; +#endif +} br_aes_pwr8_cbcdec_keys; + +/** + * \brief Context for AES subkeys (`aes_pwr8` implementation, CTR encryption + * and decryption). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_ctr_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + union { + unsigned char skni[16 * 15]; + } skey; + unsigned num_rounds; +#endif +} br_aes_pwr8_ctr_keys; + +/** + * \brief Context for AES subkeys (`aes_pwr8` implementation, CTR encryption + * and decryption + CBC-MAC). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_ctrcbc_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + union { + unsigned char skni[16 * 15]; + } skey; + unsigned num_rounds; +#endif +} br_aes_pwr8_ctrcbc_keys; + +/** + * \brief Class instance for AES CBC encryption (`aes_pwr8` implementation). + * + * Since this implementation might be omitted from the library, or the + * AES opcode unavailable on the current CPU, a pointer to this class + * instance should be obtained through `br_aes_pwr8_cbcenc_get_vtable()`. + */ +extern const br_block_cbcenc_class br_aes_pwr8_cbcenc_vtable; + +/** + * \brief Class instance for AES CBC decryption (`aes_pwr8` implementation). + * + * Since this implementation might be omitted from the library, or the + * AES opcode unavailable on the current CPU, a pointer to this class + * instance should be obtained through `br_aes_pwr8_cbcdec_get_vtable()`. + */ +extern const br_block_cbcdec_class br_aes_pwr8_cbcdec_vtable; + +/** + * \brief Class instance for AES CTR encryption and decryption + * (`aes_pwr8` implementation). + * + * Since this implementation might be omitted from the library, or the + * AES opcode unavailable on the current CPU, a pointer to this class + * instance should be obtained through `br_aes_pwr8_ctr_get_vtable()`. + */ +extern const br_block_ctr_class br_aes_pwr8_ctr_vtable; + +/** + * \brief Class instance for AES CTR encryption/decryption + CBC-MAC + * (`aes_pwr8` implementation). + * + * Since this implementation might be omitted from the library, or the + * AES opcode unavailable on the current CPU, a pointer to this class + * instance should be obtained through `br_aes_pwr8_ctrcbc_get_vtable()`. + */ +extern const br_block_ctrcbc_class br_aes_pwr8_ctrcbc_vtable; + +/** + * \brief Context initialisation (key schedule) for AES CBC encryption + * (`aes_pwr8` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_aes_pwr8_cbcenc_init(br_aes_pwr8_cbcenc_keys *ctx, + const void *key, size_t len); + +/** + * \brief Context initialisation (key schedule) for AES CBC decryption + * (`aes_pwr8` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_aes_pwr8_cbcdec_init(br_aes_pwr8_cbcdec_keys *ctx, + const void *key, size_t len); + +/** + * \brief Context initialisation (key schedule) for AES CTR encryption + * and decryption (`aes_pwr8` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_aes_pwr8_ctr_init(br_aes_pwr8_ctr_keys *ctx, + const void *key, size_t len); + +/** + * \brief Context initialisation (key schedule) for AES CTR + CBC-MAC + * (`aes_pwr8` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_aes_pwr8_ctrcbc_init(br_aes_pwr8_ctrcbc_keys *ctx, + const void *key, size_t len); + +/** + * \brief CBC encryption with AES (`aes_pwr8` implementation). + * + * \param ctx context (already initialised). + * \param iv IV (updated). + * \param data data to encrypt (updated). + * \param len data length (in bytes, MUST be multiple of 16). + */ +void br_aes_pwr8_cbcenc_run(const br_aes_pwr8_cbcenc_keys *ctx, void *iv, + void *data, size_t len); + +/** + * \brief CBC decryption with AES (`aes_pwr8` implementation). + * + * \param ctx context (already initialised). + * \param iv IV (updated). + * \param data data to decrypt (updated). + * \param len data length (in bytes, MUST be multiple of 16). + */ +void br_aes_pwr8_cbcdec_run(const br_aes_pwr8_cbcdec_keys *ctx, void *iv, + void *data, size_t len); + +/** + * \brief CTR encryption and decryption with AES (`aes_pwr8` implementation). + * + * \param ctx context (already initialised). + * \param iv IV (constant, 12 bytes). + * \param cc initial block counter value. + * \param data data to decrypt (updated). + * \param len data length (in bytes). + * \return new block counter value. + */ +uint32_t br_aes_pwr8_ctr_run(const br_aes_pwr8_ctr_keys *ctx, + const void *iv, uint32_t cc, void *data, size_t len); + +/** + * \brief CTR encryption + CBC-MAC with AES (`aes_pwr8` implementation). + * + * \param ctx context (already initialised). + * \param ctr counter for CTR (16 bytes, updated). + * \param cbcmac IV for CBC-MAC (updated). + * \param data data to encrypt (updated). + * \param len data length (in bytes, MUST be a multiple of 16). + */ +void br_aes_pwr8_ctrcbc_encrypt(const br_aes_pwr8_ctrcbc_keys *ctx, + void *ctr, void *cbcmac, void *data, size_t len); + +/** + * \brief CTR decryption + CBC-MAC with AES (`aes_pwr8` implementation). + * + * \param ctx context (already initialised). + * \param ctr counter for CTR (16 bytes, updated). + * \param cbcmac IV for CBC-MAC (updated). + * \param data data to decrypt (updated). + * \param len data length (in bytes, MUST be a multiple of 16). + */ +void br_aes_pwr8_ctrcbc_decrypt(const br_aes_pwr8_ctrcbc_keys *ctx, + void *ctr, void *cbcmac, void *data, size_t len); + +/** + * \brief CTR encryption/decryption with AES (`aes_pwr8` implementation). + * + * \param ctx context (already initialised). + * \param ctr counter for CTR (16 bytes, updated). + * \param data data to MAC (updated). + * \param len data length (in bytes, MUST be a multiple of 16). + */ +void br_aes_pwr8_ctrcbc_ctr(const br_aes_pwr8_ctrcbc_keys *ctx, + void *ctr, void *data, size_t len); + +/** + * \brief CBC-MAC with AES (`aes_pwr8` implementation). + * + * \param ctx context (already initialised). + * \param cbcmac IV for CBC-MAC (updated). + * \param data data to MAC (unmodified). + * \param len data length (in bytes, MUST be a multiple of 16). + */ +void br_aes_pwr8_ctrcbc_mac(const br_aes_pwr8_ctrcbc_keys *ctx, + void *cbcmac, const void *data, size_t len); + +/** + * \brief Obtain the `aes_pwr8` AES-CBC (encryption) implementation, if + * available. + * + * This function returns a pointer to `br_aes_pwr8_cbcenc_vtable`, if + * that implementation was compiled in the library _and_ the POWER8 + * crypto opcodes are available on the currently running CPU. If either + * of these conditions is not met, then this function returns `NULL`. + * + * \return the `aes_pwr8` AES-CBC (encryption) implementation, or `NULL`. + */ +const br_block_cbcenc_class *br_aes_pwr8_cbcenc_get_vtable(void); + +/** + * \brief Obtain the `aes_pwr8` AES-CBC (decryption) implementation, if + * available. + * + * This function returns a pointer to `br_aes_pwr8_cbcdec_vtable`, if + * that implementation was compiled in the library _and_ the POWER8 + * crypto opcodes are available on the currently running CPU. If either + * of these conditions is not met, then this function returns `NULL`. + * + * \return the `aes_pwr8` AES-CBC (decryption) implementation, or `NULL`. + */ +const br_block_cbcdec_class *br_aes_pwr8_cbcdec_get_vtable(void); + +/** + * \brief Obtain the `aes_pwr8` AES-CTR implementation, if available. + * + * This function returns a pointer to `br_aes_pwr8_ctr_vtable`, if that + * implementation was compiled in the library _and_ the POWER8 crypto + * opcodes are available on the currently running CPU. If either of + * these conditions is not met, then this function returns `NULL`. + * + * \return the `aes_pwr8` AES-CTR implementation, or `NULL`. + */ +const br_block_ctr_class *br_aes_pwr8_ctr_get_vtable(void); + +/** + * \brief Obtain the `aes_pwr8` AES-CTR + CBC-MAC implementation, if + * available. + * + * This function returns a pointer to `br_aes_pwr8_ctrcbc_vtable`, if + * that implementation was compiled in the library _and_ the POWER8 AES + * opcodes are available on the currently running CPU. If either of + * these conditions is not met, then this function returns `NULL`. + * + * \return the `aes_pwr8` AES-CTR implementation, or `NULL`. + */ +const br_block_ctrcbc_class *br_aes_pwr8_ctrcbc_get_vtable(void); + +/** + * \brief Aggregate structure large enough to be used as context for + * subkeys (CBC encryption) for all AES implementations. + */ +typedef union { + const br_block_cbcenc_class *vtable; + br_aes_big_cbcenc_keys c_big; + br_aes_small_cbcenc_keys c_small; + br_aes_ct_cbcenc_keys c_ct; + br_aes_ct64_cbcenc_keys c_ct64; + br_aes_x86ni_cbcenc_keys c_x86ni; + br_aes_pwr8_cbcenc_keys c_pwr8; +} br_aes_gen_cbcenc_keys; + +/** + * \brief Aggregate structure large enough to be used as context for + * subkeys (CBC decryption) for all AES implementations. + */ +typedef union { + const br_block_cbcdec_class *vtable; + br_aes_big_cbcdec_keys c_big; + br_aes_small_cbcdec_keys c_small; + br_aes_ct_cbcdec_keys c_ct; + br_aes_ct64_cbcdec_keys c_ct64; + br_aes_x86ni_cbcdec_keys c_x86ni; + br_aes_pwr8_cbcdec_keys c_pwr8; +} br_aes_gen_cbcdec_keys; + +/** + * \brief Aggregate structure large enough to be used as context for + * subkeys (CTR encryption and decryption) for all AES implementations. + */ +typedef union { + const br_block_ctr_class *vtable; + br_aes_big_ctr_keys c_big; + br_aes_small_ctr_keys c_small; + br_aes_ct_ctr_keys c_ct; + br_aes_ct64_ctr_keys c_ct64; + br_aes_x86ni_ctr_keys c_x86ni; + br_aes_pwr8_ctr_keys c_pwr8; +} br_aes_gen_ctr_keys; + +/** + * \brief Aggregate structure large enough to be used as context for + * subkeys (CTR encryption/decryption + CBC-MAC) for all AES implementations. + */ +typedef union { + const br_block_ctrcbc_class *vtable; + br_aes_big_ctrcbc_keys c_big; + br_aes_small_ctrcbc_keys c_small; + br_aes_ct_ctrcbc_keys c_ct; + br_aes_ct64_ctrcbc_keys c_ct64; + br_aes_x86ni_ctrcbc_keys c_x86ni; + br_aes_pwr8_ctrcbc_keys c_pwr8; +} br_aes_gen_ctrcbc_keys; + +/* + * Traditional, table-based implementation for DES/3DES. Since tables are + * used, cache-timing attacks are conceptually possible. + */ + +/** \brief DES/3DES block size (8 bytes). */ +#define br_des_tab_BLOCK_SIZE 8 + +/** + * \brief Context for DES subkeys (`des_tab` implementation, CBC encryption). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_cbcenc_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + uint32_t skey[96]; + unsigned num_rounds; +#endif +} br_des_tab_cbcenc_keys; + +/** + * \brief Context for DES subkeys (`des_tab` implementation, CBC decryption). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_cbcdec_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + uint32_t skey[96]; + unsigned num_rounds; +#endif +} br_des_tab_cbcdec_keys; + +/** + * \brief Class instance for DES CBC encryption (`des_tab` implementation). + */ +extern const br_block_cbcenc_class br_des_tab_cbcenc_vtable; + +/** + * \brief Class instance for DES CBC decryption (`des_tab` implementation). + */ +extern const br_block_cbcdec_class br_des_tab_cbcdec_vtable; + +/** + * \brief Context initialisation (key schedule) for DES CBC encryption + * (`des_tab` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_des_tab_cbcenc_init(br_des_tab_cbcenc_keys *ctx, + const void *key, size_t len); + +/** + * \brief Context initialisation (key schedule) for DES CBC decryption + * (`des_tab` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_des_tab_cbcdec_init(br_des_tab_cbcdec_keys *ctx, + const void *key, size_t len); + +/** + * \brief CBC encryption with DES (`des_tab` implementation). + * + * \param ctx context (already initialised). + * \param iv IV (updated). + * \param data data to encrypt (updated). + * \param len data length (in bytes, MUST be multiple of 8). + */ +void br_des_tab_cbcenc_run(const br_des_tab_cbcenc_keys *ctx, void *iv, + void *data, size_t len); + +/** + * \brief CBC decryption with DES (`des_tab` implementation). + * + * \param ctx context (already initialised). + * \param iv IV (updated). + * \param data data to decrypt (updated). + * \param len data length (in bytes, MUST be multiple of 8). + */ +void br_des_tab_cbcdec_run(const br_des_tab_cbcdec_keys *ctx, void *iv, + void *data, size_t len); + +/* + * Constant-time implementation for DES/3DES. It is substantially slower + * (by a factor of about 4x), but also immune to cache-timing attacks. + */ + +/** \brief DES/3DES block size (8 bytes). */ +#define br_des_ct_BLOCK_SIZE 8 + +/** + * \brief Context for DES subkeys (`des_ct` implementation, CBC encryption). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_cbcenc_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + uint32_t skey[96]; + unsigned num_rounds; +#endif +} br_des_ct_cbcenc_keys; + +/** + * \brief Context for DES subkeys (`des_ct` implementation, CBC decryption). + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** \brief Pointer to vtable for this context. */ + const br_block_cbcdec_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + uint32_t skey[96]; + unsigned num_rounds; +#endif +} br_des_ct_cbcdec_keys; + +/** + * \brief Class instance for DES CBC encryption (`des_ct` implementation). + */ +extern const br_block_cbcenc_class br_des_ct_cbcenc_vtable; + +/** + * \brief Class instance for DES CBC decryption (`des_ct` implementation). + */ +extern const br_block_cbcdec_class br_des_ct_cbcdec_vtable; + +/** + * \brief Context initialisation (key schedule) for DES CBC encryption + * (`des_ct` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_des_ct_cbcenc_init(br_des_ct_cbcenc_keys *ctx, + const void *key, size_t len); + +/** + * \brief Context initialisation (key schedule) for DES CBC decryption + * (`des_ct` implementation). + * + * \param ctx context to initialise. + * \param key secret key. + * \param len secret key length (in bytes). + */ +void br_des_ct_cbcdec_init(br_des_ct_cbcdec_keys *ctx, + const void *key, size_t len); + +/** + * \brief CBC encryption with DES (`des_ct` implementation). + * + * \param ctx context (already initialised). + * \param iv IV (updated). + * \param data data to encrypt (updated). + * \param len data length (in bytes, MUST be multiple of 8). + */ +void br_des_ct_cbcenc_run(const br_des_ct_cbcenc_keys *ctx, void *iv, + void *data, size_t len); + +/** + * \brief CBC decryption with DES (`des_ct` implementation). + * + * \param ctx context (already initialised). + * \param iv IV (updated). + * \param data data to decrypt (updated). + * \param len data length (in bytes, MUST be multiple of 8). + */ +void br_des_ct_cbcdec_run(const br_des_ct_cbcdec_keys *ctx, void *iv, + void *data, size_t len); + +/* + * These structures are large enough to accommodate subkeys for all + * DES/3DES implementations. + */ + +/** + * \brief Aggregate structure large enough to be used as context for + * subkeys (CBC encryption) for all DES implementations. + */ +typedef union { + const br_block_cbcenc_class *vtable; + br_des_tab_cbcenc_keys tab; + br_des_ct_cbcenc_keys ct; +} br_des_gen_cbcenc_keys; + +/** + * \brief Aggregate structure large enough to be used as context for + * subkeys (CBC decryption) for all DES implementations. + */ +typedef union { + const br_block_cbcdec_class *vtable; + br_des_tab_cbcdec_keys c_tab; + br_des_ct_cbcdec_keys c_ct; +} br_des_gen_cbcdec_keys; + +/** + * \brief Type for a ChaCha20 implementation. + * + * An implementation follows the description in RFC 7539: + * + * - Key is 256 bits (`key` points to exactly 32 bytes). + * + * - IV is 96 bits (`iv` points to exactly 12 bytes). + * + * - Block counter is over 32 bits and starts at value `cc`; the + * resulting value is returned. + * + * Data (pointed to by `data`, of length `len`) is encrypted/decrypted + * in place. If `len` is not a multiple of 64, then the excess bytes from + * the last block processing are dropped (therefore, "chunked" processing + * works only as long as each non-final chunk has a length multiple of 64). + * + * \param key secret key (32 bytes). + * \param iv IV (12 bytes). + * \param cc initial counter value. + * \param data data to encrypt or decrypt. + * \param len data length (in bytes). + */ +typedef uint32_t (*br_chacha20_run)(const void *key, + const void *iv, uint32_t cc, void *data, size_t len); + +/** + * \brief ChaCha20 implementation (straightforward C code, constant-time). + * + * \see br_chacha20_run + * + * \param key secret key (32 bytes). + * \param iv IV (12 bytes). + * \param cc initial counter value. + * \param data data to encrypt or decrypt. + * \param len data length (in bytes). + */ +uint32_t br_chacha20_ct_run(const void *key, + const void *iv, uint32_t cc, void *data, size_t len); + +/** + * \brief ChaCha20 implementation (SSE2 code, constant-time). + * + * This implementation is available only on x86 platforms, depending on + * compiler support. Moreover, in 32-bit mode, it might not actually run, + * if the underlying hardware does not implement the SSE2 opcode (in + * 64-bit mode, SSE2 is part of the ABI, so if the code could be compiled + * at all, then it can run). Use `br_chacha20_sse2_get()` to safely obtain + * a pointer to that function. + * + * \see br_chacha20_run + * + * \param key secret key (32 bytes). + * \param iv IV (12 bytes). + * \param cc initial counter value. + * \param data data to encrypt or decrypt. + * \param len data length (in bytes). + */ +uint32_t br_chacha20_sse2_run(const void *key, + const void *iv, uint32_t cc, void *data, size_t len); + +/** + * \brief Obtain the `sse2` ChaCha20 implementation, if available. + * + * This function returns a pointer to `br_chacha20_sse2_run`, if + * that implementation was compiled in the library _and_ the SSE2 + * opcodes are available on the currently running CPU. If either of + * these conditions is not met, then this function returns `0`. + * + * \return the `sse2` ChaCha20 implementation, or `0`. + */ +br_chacha20_run br_chacha20_sse2_get(void); + +/** + * \brief Type for a ChaCha20+Poly1305 AEAD implementation. + * + * The provided data is encrypted or decrypted with ChaCha20. The + * authentication tag is computed on the concatenation of the + * additional data and the ciphertext, with the padding and lengths + * as described in RFC 7539 (section 2.8). + * + * After decryption, the caller is responsible for checking that the + * computed tag matches the expected value. + * + * \param key secret key (32 bytes). + * \param iv nonce (12 bytes). + * \param data data to encrypt or decrypt. + * \param len data length (in bytes). + * \param aad additional authenticated data. + * \param aad_len length of additional authenticated data (in bytes). + * \param tag output buffer for the authentication tag. + * \param ichacha implementation of ChaCha20. + * \param encrypt non-zero for encryption, zero for decryption. + */ +typedef void (*br_poly1305_run)(const void *key, const void *iv, + void *data, size_t len, const void *aad, size_t aad_len, + void *tag, br_chacha20_run ichacha, int encrypt); + +/** + * \brief ChaCha20+Poly1305 AEAD implementation (mixed 32-bit multiplications). + * + * \see br_poly1305_run + * + * \param key secret key (32 bytes). + * \param iv nonce (12 bytes). + * \param data data to encrypt or decrypt. + * \param len data length (in bytes). + * \param aad additional authenticated data. + * \param aad_len length of additional authenticated data (in bytes). + * \param tag output buffer for the authentication tag. + * \param ichacha implementation of ChaCha20. + * \param encrypt non-zero for encryption, zero for decryption. + */ +void br_poly1305_ctmul_run(const void *key, const void *iv, + void *data, size_t len, const void *aad, size_t aad_len, + void *tag, br_chacha20_run ichacha, int encrypt); + +/** + * \brief ChaCha20+Poly1305 AEAD implementation (pure 32-bit multiplications). + * + * \see br_poly1305_run + * + * \param key secret key (32 bytes). + * \param iv nonce (12 bytes). + * \param data data to encrypt or decrypt. + * \param len data length (in bytes). + * \param aad additional authenticated data. + * \param aad_len length of additional authenticated data (in bytes). + * \param tag output buffer for the authentication tag. + * \param ichacha implementation of ChaCha20. + * \param encrypt non-zero for encryption, zero for decryption. + */ +void br_poly1305_ctmul32_run(const void *key, const void *iv, + void *data, size_t len, const void *aad, size_t aad_len, + void *tag, br_chacha20_run ichacha, int encrypt); + +/** + * \brief ChaCha20+Poly1305 AEAD implementation (i15). + * + * This implementation relies on the generic big integer code "i15" + * (which uses pure 32-bit multiplications). As such, it may save a + * little code footprint in a context where "i15" is already included + * (e.g. for elliptic curves or for RSA); however, it is also + * substantially slower than the ctmul and ctmul32 implementations. + * + * \see br_poly1305_run + * + * \param key secret key (32 bytes). + * \param iv nonce (12 bytes). + * \param data data to encrypt or decrypt. + * \param len data length (in bytes). + * \param aad additional authenticated data. + * \param aad_len length of additional authenticated data (in bytes). + * \param tag output buffer for the authentication tag. + * \param ichacha implementation of ChaCha20. + * \param encrypt non-zero for encryption, zero for decryption. + */ +void br_poly1305_i15_run(const void *key, const void *iv, + void *data, size_t len, const void *aad, size_t aad_len, + void *tag, br_chacha20_run ichacha, int encrypt); + +/** + * \brief ChaCha20+Poly1305 AEAD implementation (ctmulq). + * + * This implementation uses 64-bit multiplications (result over 128 bits). + * It is available only on platforms that offer such a primitive (in + * practice, 64-bit architectures). Use `br_poly1305_ctmulq_get()` to + * dynamically obtain a pointer to that function, or 0 if not supported. + * + * \see br_poly1305_run + * + * \param key secret key (32 bytes). + * \param iv nonce (12 bytes). + * \param data data to encrypt or decrypt. + * \param len data length (in bytes). + * \param aad additional authenticated data. + * \param aad_len length of additional authenticated data (in bytes). + * \param tag output buffer for the authentication tag. + * \param ichacha implementation of ChaCha20. + * \param encrypt non-zero for encryption, zero for decryption. + */ +void br_poly1305_ctmulq_run(const void *key, const void *iv, + void *data, size_t len, const void *aad, size_t aad_len, + void *tag, br_chacha20_run ichacha, int encrypt); + +/** + * \brief Get the ChaCha20+Poly1305 "ctmulq" implementation, if available. + * + * This function returns a pointer to the `br_poly1305_ctmulq_run()` + * function if supported on the current platform; otherwise, it returns 0. + * + * \return the ctmulq ChaCha20+Poly1305 implementation, or 0. + */ +br_poly1305_run br_poly1305_ctmulq_get(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/bearssl/bearssl_ec.h b/include/bearssl/bearssl_ec.h new file mode 100644 index 00000000..acd3a2bf --- /dev/null +++ b/include/bearssl/bearssl_ec.h @@ -0,0 +1,967 @@ +/* + * Copyright (c) 2016 Thomas Pornin + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef BR_BEARSSL_EC_H__ +#define BR_BEARSSL_EC_H__ + +#include +#include + +#include "bearssl_rand.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** \file bearssl_ec.h + * + * # Elliptic Curves + * + * This file documents the EC implementations provided with BearSSL, and + * ECDSA. + * + * ## Elliptic Curve API + * + * Only "named curves" are supported. Each EC implementation supports + * one or several named curves, identified by symbolic identifiers. + * These identifiers are small integers, that correspond to the values + * registered by the + * [IANA](http://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-8). + * + * Since all currently defined elliptic curve identifiers are in the 0..31 + * range, it is convenient to encode support of some curves in a 32-bit + * word, such that bit x corresponds to curve of identifier x. + * + * An EC implementation is incarnated by a `br_ec_impl` instance, that + * offers the following fields: + * + * - `supported_curves` + * + * A 32-bit word that documents the identifiers of the curves supported + * by this implementation. + * + * - `generator()` + * + * Callback method that returns a pointer to the conventional generator + * point for that curve. + * + * - `order()` + * + * Callback method that returns a pointer to the subgroup order for + * that curve. That value uses unsigned big-endian encoding. + * + * - `xoff()` + * + * Callback method that returns the offset and length of the X + * coordinate in an encoded point. + * + * - `mul()` + * + * Multiply a curve point with an integer. + * + * - `mulgen()` + * + * Multiply the curve generator with an integer. This may be faster + * than the generic `mul()`. + * + * - `muladd()` + * + * Multiply two curve points by two integers, and return the sum of + * the two products. + * + * All curve points are represented in uncompressed format. The `mul()` + * and `muladd()` methods take care to validate that the provided points + * are really part of the relevant curve subgroup. + * + * For all point multiplication functions, the following holds: + * + * - Functions validate that the provided points are valid members + * of the relevant curve subgroup. An error is reported if that is + * not the case. + * + * - Processing is constant-time, even if the point operands are not + * valid. This holds for both the source and resulting points, and + * the multipliers (integers). Only the byte length of the provided + * multiplier arrays (not their actual value length in bits) may + * leak through timing-based side channels. + * + * - The multipliers (integers) MUST be lower than the subgroup order. + * If this property is not met, then the result is indeterminate, + * but an error value is not necessarily returned. + * + * + * ## ECDSA + * + * ECDSA signatures have two standard formats, called "raw" and "asn1". + * Internally, such a signature is a pair of modular integers `(r,s)`. + * The "raw" format is the concatenation of the unsigned big-endian + * encodings of these two integers, possibly left-padded with zeros so + * that they have the same encoded length. The "asn1" format is the + * DER encoding of an ASN.1 structure that contains the two integer + * values: + * + * ECDSASignature ::= SEQUENCE { + * r INTEGER, + * s INTEGER + * } + * + * In general, in all of X.509 and SSL/TLS, the "asn1" format is used. + * BearSSL offers ECDSA implementations for both formats; conversion + * functions between the two formats are also provided. Conversion of a + * "raw" format signature into "asn1" may enlarge a signature by no more + * than 9 bytes for all supported curves; conversely, conversion of an + * "asn1" signature to "raw" may expand the signature but the "raw" + * length will never be more than twice the length of the "asn1" length + * (and usually it will be shorter). + * + * Note that for a given signature, the "raw" format is not fully + * deterministic, in that it does not enforce a minimal common length. + */ + +/* + * Standard curve ID. These ID are equal to the assigned numerical + * identifiers assigned to these curves for TLS: + * http://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-8 + */ + +/** \brief Identifier for named curve sect163k1. */ +#define BR_EC_sect163k1 1 + +/** \brief Identifier for named curve sect163r1. */ +#define BR_EC_sect163r1 2 + +/** \brief Identifier for named curve sect163r2. */ +#define BR_EC_sect163r2 3 + +/** \brief Identifier for named curve sect193r1. */ +#define BR_EC_sect193r1 4 + +/** \brief Identifier for named curve sect193r2. */ +#define BR_EC_sect193r2 5 + +/** \brief Identifier for named curve sect233k1. */ +#define BR_EC_sect233k1 6 + +/** \brief Identifier for named curve sect233r1. */ +#define BR_EC_sect233r1 7 + +/** \brief Identifier for named curve sect239k1. */ +#define BR_EC_sect239k1 8 + +/** \brief Identifier for named curve sect283k1. */ +#define BR_EC_sect283k1 9 + +/** \brief Identifier for named curve sect283r1. */ +#define BR_EC_sect283r1 10 + +/** \brief Identifier for named curve sect409k1. */ +#define BR_EC_sect409k1 11 + +/** \brief Identifier for named curve sect409r1. */ +#define BR_EC_sect409r1 12 + +/** \brief Identifier for named curve sect571k1. */ +#define BR_EC_sect571k1 13 + +/** \brief Identifier for named curve sect571r1. */ +#define BR_EC_sect571r1 14 + +/** \brief Identifier for named curve secp160k1. */ +#define BR_EC_secp160k1 15 + +/** \brief Identifier for named curve secp160r1. */ +#define BR_EC_secp160r1 16 + +/** \brief Identifier for named curve secp160r2. */ +#define BR_EC_secp160r2 17 + +/** \brief Identifier for named curve secp192k1. */ +#define BR_EC_secp192k1 18 + +/** \brief Identifier for named curve secp192r1. */ +#define BR_EC_secp192r1 19 + +/** \brief Identifier for named curve secp224k1. */ +#define BR_EC_secp224k1 20 + +/** \brief Identifier for named curve secp224r1. */ +#define BR_EC_secp224r1 21 + +/** \brief Identifier for named curve secp256k1. */ +#define BR_EC_secp256k1 22 + +/** \brief Identifier for named curve secp256r1. */ +#define BR_EC_secp256r1 23 + +/** \brief Identifier for named curve secp384r1. */ +#define BR_EC_secp384r1 24 + +/** \brief Identifier for named curve secp521r1. */ +#define BR_EC_secp521r1 25 + +/** \brief Identifier for named curve brainpoolP256r1. */ +#define BR_EC_brainpoolP256r1 26 + +/** \brief Identifier for named curve brainpoolP384r1. */ +#define BR_EC_brainpoolP384r1 27 + +/** \brief Identifier for named curve brainpoolP512r1. */ +#define BR_EC_brainpoolP512r1 28 + +/** \brief Identifier for named curve Curve25519. */ +#define BR_EC_curve25519 29 + +/** \brief Identifier for named curve Curve448. */ +#define BR_EC_curve448 30 + +/** + * \brief Structure for an EC public key. + */ +typedef struct { + /** \brief Identifier for the curve used by this key. */ + int curve; + /** \brief Public curve point (uncompressed format). */ + unsigned char *q; + /** \brief Length of public curve point (in bytes). */ + size_t qlen; +} br_ec_public_key; + +/** + * \brief Structure for an EC private key. + * + * The private key is an integer modulo the curve subgroup order. The + * encoding below tolerates extra leading zeros. In general, it is + * recommended that the private key has the same length as the curve + * subgroup order. + */ +typedef struct { + /** \brief Identifier for the curve used by this key. */ + int curve; + /** \brief Private key (integer, unsigned big-endian encoding). */ + unsigned char *x; + /** \brief Private key length (in bytes). */ + size_t xlen; +} br_ec_private_key; + +/** + * \brief Type for an EC implementation. + */ +typedef struct { + /** + * \brief Supported curves. + * + * This word is a bitfield: bit `x` is set if the curve of ID `x` + * is supported. E.g. an implementation supporting both NIST P-256 + * (secp256r1, ID 23) and NIST P-384 (secp384r1, ID 24) will have + * value `0x01800000` in this field. + */ + uint32_t supported_curves; + + /** + * \brief Get the conventional generator. + * + * This function returns the conventional generator (encoded + * curve point) for the specified curve. This function MUST NOT + * be called if the curve is not supported. + * + * \param curve curve identifier. + * \param len receiver for the encoded generator length (in bytes). + * \return the encoded generator. + */ + const unsigned char *(*generator)(int curve, size_t *len); + + /** + * \brief Get the subgroup order. + * + * This function returns the order of the subgroup generated by + * the conventional generator, for the specified curve. Unsigned + * big-endian encoding is used. This function MUST NOT be called + * if the curve is not supported. + * + * \param curve curve identifier. + * \param len receiver for the encoded order length (in bytes). + * \return the encoded order. + */ + const unsigned char *(*order)(int curve, size_t *len); + + /** + * \brief Get the offset and length for the X coordinate. + * + * This function returns the offset and length (in bytes) of + * the X coordinate in an encoded non-zero point. + * + * \param curve curve identifier. + * \param len receiver for the X coordinate length (in bytes). + * \return the offset for the X coordinate (in bytes). + */ + size_t (*xoff)(int curve, size_t *len); + + /** + * \brief Multiply a curve point by an integer. + * + * The source point is provided in array `G` (of size `Glen` bytes); + * the multiplication result is written over it. The multiplier + * `x` (of size `xlen` bytes) uses unsigned big-endian encoding. + * + * Rules: + * + * - The specified curve MUST be supported. + * + * - The source point must be a valid point on the relevant curve + * subgroup (and not the "point at infinity" either). If this is + * not the case, then this function returns an error (0). + * + * - The multiplier integer MUST be non-zero and less than the + * curve subgroup order. If this property does not hold, then + * the result is indeterminate and an error code is not + * guaranteed. + * + * Returned value is 1 on success, 0 on error. On error, the + * contents of `G` are indeterminate. + * + * \param G point to multiply. + * \param Glen length of the encoded point (in bytes). + * \param x multiplier (unsigned big-endian). + * \param xlen multiplier length (in bytes). + * \param curve curve identifier. + * \return 1 on success, 0 on error. + */ + uint32_t (*mul)(unsigned char *G, size_t Glen, + const unsigned char *x, size_t xlen, int curve); + + /** + * \brief Multiply the generator by an integer. + * + * The multiplier MUST be non-zero and less than the curve + * subgroup order. Results are indeterminate if this property + * does not hold. + * + * \param R output buffer for the point. + * \param x multiplier (unsigned big-endian). + * \param xlen multiplier length (in bytes). + * \param curve curve identifier. + * \return encoded result point length (in bytes). + */ + size_t (*mulgen)(unsigned char *R, + const unsigned char *x, size_t xlen, int curve); + + /** + * \brief Multiply two points by two integers and add the + * results. + * + * The point `x*A + y*B` is computed and written back in the `A` + * array. + * + * Rules: + * + * - The specified curve MUST be supported. + * + * - The source points (`A` and `B`) must be valid points on + * the relevant curve subgroup (and not the "point at + * infinity" either). If this is not the case, then this + * function returns an error (0). + * + * - If the `B` pointer is `NULL`, then the conventional + * subgroup generator is used. With some implementations, + * this may be faster than providing a pointer to the + * generator. + * + * - The multiplier integers (`x` and `y`) MUST be non-zero + * and less than the curve subgroup order. If either integer + * is zero, then an error is reported, but if one of them is + * not lower than the subgroup order, then the result is + * indeterminate and an error code is not guaranteed. + * + * - If the final result is the point at infinity, then an + * error is returned. + * + * Returned value is 1 on success, 0 on error. On error, the + * contents of `A` are indeterminate. + * + * \param A first point to multiply. + * \param B second point to multiply (`NULL` for the generator). + * \param len common length of the encoded points (in bytes). + * \param x multiplier for `A` (unsigned big-endian). + * \param xlen length of multiplier for `A` (in bytes). + * \param y multiplier for `A` (unsigned big-endian). + * \param ylen length of multiplier for `A` (in bytes). + * \param curve curve identifier. + * \return 1 on success, 0 on error. + */ + uint32_t (*muladd)(unsigned char *A, const unsigned char *B, size_t len, + const unsigned char *x, size_t xlen, + const unsigned char *y, size_t ylen, int curve); +} br_ec_impl; + +/** + * \brief EC implementation "i31". + * + * This implementation internally uses generic code for modular integers, + * with a representation as sequences of 31-bit words. It supports secp256r1, + * secp384r1 and secp521r1 (aka NIST curves P-256, P-384 and P-521). + */ +extern const br_ec_impl br_ec_prime_i31; + +/** + * \brief EC implementation "i15". + * + * This implementation internally uses generic code for modular integers, + * with a representation as sequences of 15-bit words. It supports secp256r1, + * secp384r1 and secp521r1 (aka NIST curves P-256, P-384 and P-521). + */ +extern const br_ec_impl br_ec_prime_i15; + +/** + * \brief EC implementation "m15" for P-256. + * + * This implementation uses specialised code for curve secp256r1 (also + * known as NIST P-256), with optional Karatsuba decomposition, and fast + * modular reduction thanks to the field modulus special format. Only + * 32-bit multiplications are used (with 32-bit results, not 64-bit). + */ +extern const br_ec_impl br_ec_p256_m15; + +/** + * \brief EC implementation "m31" for P-256. + * + * This implementation uses specialised code for curve secp256r1 (also + * known as NIST P-256), relying on multiplications of 31-bit values + * (MUL31). + */ +extern const br_ec_impl br_ec_p256_m31; + +/** + * \brief EC implementation "m62" (specialised code) for P-256. + * + * This implementation uses custom code relying on multiplication of + * integers up to 64 bits, with a 128-bit result. This implementation is + * defined only on platforms that offer the 64x64->128 multiplication + * support; use `br_ec_p256_m62_get()` to dynamically obtain a pointer + * to that implementation. + */ +extern const br_ec_impl br_ec_p256_m62; + +/** + * \brief Get the "m62" implementation of P-256, if available. + * + * \return the implementation, or 0. + */ +const br_ec_impl *br_ec_p256_m62_get(void); + +/** + * \brief EC implementation "m64" (specialised code) for P-256. + * + * This implementation uses custom code relying on multiplication of + * integers up to 64 bits, with a 128-bit result. This implementation is + * defined only on platforms that offer the 64x64->128 multiplication + * support; use `br_ec_p256_m64_get()` to dynamically obtain a pointer + * to that implementation. + */ +extern const br_ec_impl br_ec_p256_m64; + +/** + * \brief Get the "m64" implementation of P-256, if available. + * + * \return the implementation, or 0. + */ +const br_ec_impl *br_ec_p256_m64_get(void); + +/** + * \brief EC implementation "i15" (generic code) for Curve25519. + * + * This implementation uses the generic code for modular integers (with + * 15-bit words) to support Curve25519. Due to the specificities of the + * curve definition, the following applies: + * + * - `muladd()` is not implemented (the function returns 0 systematically). + * - `order()` returns 2^255-1, since the point multiplication algorithm + * accepts any 32-bit integer as input (it clears the top bit and low + * three bits systematically). + */ +extern const br_ec_impl br_ec_c25519_i15; + +/** + * \brief EC implementation "i31" (generic code) for Curve25519. + * + * This implementation uses the generic code for modular integers (with + * 31-bit words) to support Curve25519. Due to the specificities of the + * curve definition, the following applies: + * + * - `muladd()` is not implemented (the function returns 0 systematically). + * - `order()` returns 2^255-1, since the point multiplication algorithm + * accepts any 32-bit integer as input (it clears the top bit and low + * three bits systematically). + */ +extern const br_ec_impl br_ec_c25519_i31; + +/** + * \brief EC implementation "m15" (specialised code) for Curve25519. + * + * This implementation uses custom code relying on multiplication of + * integers up to 15 bits. Due to the specificities of the curve + * definition, the following applies: + * + * - `muladd()` is not implemented (the function returns 0 systematically). + * - `order()` returns 2^255-1, since the point multiplication algorithm + * accepts any 32-bit integer as input (it clears the top bit and low + * three bits systematically). + */ +extern const br_ec_impl br_ec_c25519_m15; + +/** + * \brief EC implementation "m31" (specialised code) for Curve25519. + * + * This implementation uses custom code relying on multiplication of + * integers up to 31 bits. Due to the specificities of the curve + * definition, the following applies: + * + * - `muladd()` is not implemented (the function returns 0 systematically). + * - `order()` returns 2^255-1, since the point multiplication algorithm + * accepts any 32-bit integer as input (it clears the top bit and low + * three bits systematically). + */ +extern const br_ec_impl br_ec_c25519_m31; + +/** + * \brief EC implementation "m62" (specialised code) for Curve25519. + * + * This implementation uses custom code relying on multiplication of + * integers up to 62 bits, with a 124-bit result. This implementation is + * defined only on platforms that offer the 64x64->128 multiplication + * support; use `br_ec_c25519_m62_get()` to dynamically obtain a pointer + * to that implementation. Due to the specificities of the curve + * definition, the following applies: + * + * - `muladd()` is not implemented (the function returns 0 systematically). + * - `order()` returns 2^255-1, since the point multiplication algorithm + * accepts any 32-bit integer as input (it clears the top bit and low + * three bits systematically). + */ +extern const br_ec_impl br_ec_c25519_m62; + +/** + * \brief Get the "m62" implementation of Curve25519, if available. + * + * \return the implementation, or 0. + */ +const br_ec_impl *br_ec_c25519_m62_get(void); + +/** + * \brief EC implementation "m64" (specialised code) for Curve25519. + * + * This implementation uses custom code relying on multiplication of + * integers up to 64 bits, with a 128-bit result. This implementation is + * defined only on platforms that offer the 64x64->128 multiplication + * support; use `br_ec_c25519_m64_get()` to dynamically obtain a pointer + * to that implementation. Due to the specificities of the curve + * definition, the following applies: + * + * - `muladd()` is not implemented (the function returns 0 systematically). + * - `order()` returns 2^255-1, since the point multiplication algorithm + * accepts any 32-bit integer as input (it clears the top bit and low + * three bits systematically). + */ +extern const br_ec_impl br_ec_c25519_m64; + +/** + * \brief Get the "m64" implementation of Curve25519, if available. + * + * \return the implementation, or 0. + */ +const br_ec_impl *br_ec_c25519_m64_get(void); + +/** + * \brief Aggregate EC implementation "m15". + * + * This implementation is a wrapper for: + * + * - `br_ec_c25519_m15` for Curve25519 + * - `br_ec_p256_m15` for NIST P-256 + * - `br_ec_prime_i15` for other curves (NIST P-384 and NIST-P512) + */ +extern const br_ec_impl br_ec_all_m15; + +/** + * \brief Aggregate EC implementation "m31". + * + * This implementation is a wrapper for: + * + * - `br_ec_c25519_m31` for Curve25519 + * - `br_ec_p256_m31` for NIST P-256 + * - `br_ec_prime_i31` for other curves (NIST P-384 and NIST-P512) + */ +extern const br_ec_impl br_ec_all_m31; + +/** + * \brief Get the "default" EC implementation for the current system. + * + * This returns a pointer to the preferred implementation on the + * current system. + * + * \return the default EC implementation. + */ +const br_ec_impl *br_ec_get_default(void); + +/** + * \brief Convert a signature from "raw" to "asn1". + * + * Conversion is done "in place" and the new length is returned. + * Conversion may enlarge the signature, but by no more than 9 bytes at + * most. On error, 0 is returned (error conditions include an odd raw + * signature length, or an oversized integer). + * + * \param sig signature to convert. + * \param sig_len signature length (in bytes). + * \return the new signature length, or 0 on error. + */ +size_t br_ecdsa_raw_to_asn1(void *sig, size_t sig_len); + +/** + * \brief Convert a signature from "asn1" to "raw". + * + * Conversion is done "in place" and the new length is returned. + * Conversion may enlarge the signature, but the new signature length + * will be less than twice the source length at most. On error, 0 is + * returned (error conditions include an invalid ASN.1 structure or an + * oversized integer). + * + * \param sig signature to convert. + * \param sig_len signature length (in bytes). + * \return the new signature length, or 0 on error. + */ +size_t br_ecdsa_asn1_to_raw(void *sig, size_t sig_len); + +/** + * \brief Type for an ECDSA signer function. + * + * A pointer to the EC implementation is provided. The hash value is + * assumed to have the length inferred from the designated hash function + * class. + * + * Signature is written in the buffer pointed to by `sig`, and the length + * (in bytes) is returned. On error, nothing is written in the buffer, + * and 0 is returned. This function returns 0 if the specified curve is + * not supported by the provided EC implementation. + * + * The signature format is either "raw" or "asn1", depending on the + * implementation; maximum length is predictable from the implemented + * curve: + * + * | curve | raw | asn1 | + * | :--------- | --: | ---: | + * | NIST P-256 | 64 | 72 | + * | NIST P-384 | 96 | 104 | + * | NIST P-521 | 132 | 139 | + * + * \param impl EC implementation to use. + * \param hf hash function used to process the data. + * \param hash_value signed data (hashed). + * \param sk EC private key. + * \param sig destination buffer. + * \return the signature length (in bytes), or 0 on error. + */ +typedef size_t (*br_ecdsa_sign)(const br_ec_impl *impl, + const br_hash_class *hf, const void *hash_value, + const br_ec_private_key *sk, void *sig); + +/** + * \brief Type for an ECDSA signature verification function. + * + * A pointer to the EC implementation is provided. The hashed value, + * computed over the purportedly signed data, is also provided with + * its length. + * + * The signature format is either "raw" or "asn1", depending on the + * implementation. + * + * Returned value is 1 on success (valid signature), 0 on error. This + * function returns 0 if the specified curve is not supported by the + * provided EC implementation. + * + * \param impl EC implementation to use. + * \param hash signed data (hashed). + * \param hash_len hash value length (in bytes). + * \param pk EC public key. + * \param sig signature. + * \param sig_len signature length (in bytes). + * \return 1 on success, 0 on error. + */ +typedef uint32_t (*br_ecdsa_vrfy)(const br_ec_impl *impl, + const void *hash, size_t hash_len, + const br_ec_public_key *pk, const void *sig, size_t sig_len); + +/** + * \brief ECDSA signature generator, "i31" implementation, "asn1" format. + * + * \see br_ecdsa_sign() + * + * \param impl EC implementation to use. + * \param hf hash function used to process the data. + * \param hash_value signed data (hashed). + * \param sk EC private key. + * \param sig destination buffer. + * \return the signature length (in bytes), or 0 on error. + */ +size_t br_ecdsa_i31_sign_asn1(const br_ec_impl *impl, + const br_hash_class *hf, const void *hash_value, + const br_ec_private_key *sk, void *sig); + +/** + * \brief ECDSA signature generator, "i31" implementation, "raw" format. + * + * \see br_ecdsa_sign() + * + * \param impl EC implementation to use. + * \param hf hash function used to process the data. + * \param hash_value signed data (hashed). + * \param sk EC private key. + * \param sig destination buffer. + * \return the signature length (in bytes), or 0 on error. + */ +size_t br_ecdsa_i31_sign_raw(const br_ec_impl *impl, + const br_hash_class *hf, const void *hash_value, + const br_ec_private_key *sk, void *sig); + +/** + * \brief ECDSA signature verifier, "i31" implementation, "asn1" format. + * + * \see br_ecdsa_vrfy() + * + * \param impl EC implementation to use. + * \param hash signed data (hashed). + * \param hash_len hash value length (in bytes). + * \param pk EC public key. + * \param sig signature. + * \param sig_len signature length (in bytes). + * \return 1 on success, 0 on error. + */ +uint32_t br_ecdsa_i31_vrfy_asn1(const br_ec_impl *impl, + const void *hash, size_t hash_len, + const br_ec_public_key *pk, const void *sig, size_t sig_len); + +/** + * \brief ECDSA signature verifier, "i31" implementation, "raw" format. + * + * \see br_ecdsa_vrfy() + * + * \param impl EC implementation to use. + * \param hash signed data (hashed). + * \param hash_len hash value length (in bytes). + * \param pk EC public key. + * \param sig signature. + * \param sig_len signature length (in bytes). + * \return 1 on success, 0 on error. + */ +uint32_t br_ecdsa_i31_vrfy_raw(const br_ec_impl *impl, + const void *hash, size_t hash_len, + const br_ec_public_key *pk, const void *sig, size_t sig_len); + +/** + * \brief ECDSA signature generator, "i15" implementation, "asn1" format. + * + * \see br_ecdsa_sign() + * + * \param impl EC implementation to use. + * \param hf hash function used to process the data. + * \param hash_value signed data (hashed). + * \param sk EC private key. + * \param sig destination buffer. + * \return the signature length (in bytes), or 0 on error. + */ +size_t br_ecdsa_i15_sign_asn1(const br_ec_impl *impl, + const br_hash_class *hf, const void *hash_value, + const br_ec_private_key *sk, void *sig); + +/** + * \brief ECDSA signature generator, "i15" implementation, "raw" format. + * + * \see br_ecdsa_sign() + * + * \param impl EC implementation to use. + * \param hf hash function used to process the data. + * \param hash_value signed data (hashed). + * \param sk EC private key. + * \param sig destination buffer. + * \return the signature length (in bytes), or 0 on error. + */ +size_t br_ecdsa_i15_sign_raw(const br_ec_impl *impl, + const br_hash_class *hf, const void *hash_value, + const br_ec_private_key *sk, void *sig); + +/** + * \brief ECDSA signature verifier, "i15" implementation, "asn1" format. + * + * \see br_ecdsa_vrfy() + * + * \param impl EC implementation to use. + * \param hash signed data (hashed). + * \param hash_len hash value length (in bytes). + * \param pk EC public key. + * \param sig signature. + * \param sig_len signature length (in bytes). + * \return 1 on success, 0 on error. + */ +uint32_t br_ecdsa_i15_vrfy_asn1(const br_ec_impl *impl, + const void *hash, size_t hash_len, + const br_ec_public_key *pk, const void *sig, size_t sig_len); + +/** + * \brief ECDSA signature verifier, "i15" implementation, "raw" format. + * + * \see br_ecdsa_vrfy() + * + * \param impl EC implementation to use. + * \param hash signed data (hashed). + * \param hash_len hash value length (in bytes). + * \param pk EC public key. + * \param sig signature. + * \param sig_len signature length (in bytes). + * \return 1 on success, 0 on error. + */ +uint32_t br_ecdsa_i15_vrfy_raw(const br_ec_impl *impl, + const void *hash, size_t hash_len, + const br_ec_public_key *pk, const void *sig, size_t sig_len); + +/** + * \brief Get "default" ECDSA implementation (signer, asn1 format). + * + * This returns the preferred implementation of ECDSA signature generation + * ("asn1" output format) on the current system. + * + * \return the default implementation. + */ +br_ecdsa_sign br_ecdsa_sign_asn1_get_default(void); + +/** + * \brief Get "default" ECDSA implementation (signer, raw format). + * + * This returns the preferred implementation of ECDSA signature generation + * ("raw" output format) on the current system. + * + * \return the default implementation. + */ +br_ecdsa_sign br_ecdsa_sign_raw_get_default(void); + +/** + * \brief Get "default" ECDSA implementation (verifier, asn1 format). + * + * This returns the preferred implementation of ECDSA signature verification + * ("asn1" output format) on the current system. + * + * \return the default implementation. + */ +br_ecdsa_vrfy br_ecdsa_vrfy_asn1_get_default(void); + +/** + * \brief Get "default" ECDSA implementation (verifier, raw format). + * + * This returns the preferred implementation of ECDSA signature verification + * ("raw" output format) on the current system. + * + * \return the default implementation. + */ +br_ecdsa_vrfy br_ecdsa_vrfy_raw_get_default(void); + +/** + * \brief Maximum size for EC private key element buffer. + * + * This is the largest number of bytes that `br_ec_keygen()` may need or + * ever return. + */ +#define BR_EC_KBUF_PRIV_MAX_SIZE 72 + +/** + * \brief Maximum size for EC public key element buffer. + * + * This is the largest number of bytes that `br_ec_compute_public()` may + * need or ever return. + */ +#define BR_EC_KBUF_PUB_MAX_SIZE 145 + +/** + * \brief Generate a new EC private key. + * + * If the specified `curve` is not supported by the elliptic curve + * implementation (`impl`), then this function returns zero. + * + * The `sk` structure fields are set to the new private key data. In + * particular, `sk.x` is made to point to the provided key buffer (`kbuf`), + * in which the actual private key data is written. That buffer is assumed + * to be large enough. The `BR_EC_KBUF_PRIV_MAX_SIZE` defines the maximum + * size for all supported curves. + * + * The number of bytes used in `kbuf` is returned. If `kbuf` is `NULL`, then + * the private key is not actually generated, and `sk` may also be `NULL`; + * the minimum length for `kbuf` is still computed and returned. + * + * If `sk` is `NULL` but `kbuf` is not `NULL`, then the private key is + * still generated and stored in `kbuf`. + * + * \param rng_ctx source PRNG context (already initialized). + * \param impl the elliptic curve implementation. + * \param sk the private key structure to fill, or `NULL`. + * \param kbuf the key element buffer, or `NULL`. + * \param curve the curve identifier. + * \return the key data length (in bytes), or zero. + */ +size_t br_ec_keygen(const br_prng_class **rng_ctx, + const br_ec_impl *impl, br_ec_private_key *sk, + void *kbuf, int curve); + +/** + * \brief Compute EC public key from EC private key. + * + * This function uses the provided elliptic curve implementation (`impl`) + * to compute the public key corresponding to the private key held in `sk`. + * The public key point is written into `kbuf`, which is then linked from + * the `*pk` structure. The size of the public key point, i.e. the number + * of bytes used in `kbuf`, is returned. + * + * If `kbuf` is `NULL`, then the public key point is NOT computed, and + * the public key structure `*pk` is unmodified (`pk` may be `NULL` in + * that case). The size of the public key point is still returned. + * + * If `pk` is `NULL` but `kbuf` is not `NULL`, then the public key + * point is computed and stored in `kbuf`, and its size is returned. + * + * If the curve used by the private key is not supported by the curve + * implementation, then this function returns zero. + * + * The private key MUST be valid. An off-range private key value is not + * necessarily detected, and leads to unpredictable results. + * + * \param impl the elliptic curve implementation. + * \param pk the public key structure to fill (or `NULL`). + * \param kbuf the public key point buffer (or `NULL`). + * \param sk the source private key. + * \return the public key point length (in bytes), or zero. + */ +size_t br_ec_compute_pub(const br_ec_impl *impl, br_ec_public_key *pk, + void *kbuf, const br_ec_private_key *sk); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/bearssl/bearssl_git.h b/include/bearssl/bearssl_git.h new file mode 100644 index 00000000..b232c746 --- /dev/null +++ b/include/bearssl/bearssl_git.h @@ -0,0 +1,2 @@ +// Do not edit -- Automatically generated by tools/sdk/ssl/bearssl/Makefile +#define BEARSSL_GIT f294aa0 diff --git a/include/bearssl/bearssl_hash.h b/include/bearssl/bearssl_hash.h new file mode 100644 index 00000000..ca4fa26c --- /dev/null +++ b/include/bearssl/bearssl_hash.h @@ -0,0 +1,1346 @@ +/* + * Copyright (c) 2016 Thomas Pornin + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef BR_BEARSSL_HASH_H__ +#define BR_BEARSSL_HASH_H__ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** \file bearssl_hash.h + * + * # Hash Functions + * + * This file documents the API for hash functions. + * + * + * ## Procedural API + * + * For each implemented hash function, of name "`xxx`", the following + * elements are defined: + * + * - `br_xxx_vtable` + * + * An externally defined instance of `br_hash_class`. + * + * - `br_xxx_SIZE` + * + * A macro that evaluates to the output size (in bytes) of the + * hash function. + * + * - `br_xxx_ID` + * + * A macro that evaluates to a symbolic identifier for the hash + * function. Such identifiers are used with HMAC and signature + * algorithm implementations. + * + * NOTE: for the "standard" hash functions defined in [the TLS + * standard](https://tools.ietf.org/html/rfc5246#section-7.4.1.4.1), + * the symbolic identifiers match the constants used in TLS, i.e. + * 1 to 6 for MD5, SHA-1, SHA-224, SHA-256, SHA-384 and SHA-512, + * respectively. + * + * - `br_xxx_context` + * + * Context for an ongoing computation. It is allocated by the + * caller, and a pointer to it is passed to all functions. A + * context contains no interior pointer, so it can be moved around + * and cloned (with a simple `memcpy()` or equivalent) in order to + * capture the function state at some point. Computations that use + * distinct context structures are independent of each other. The + * first field of `br_xxx_context` is always a pointer to the + * `br_xxx_vtable` structure; `br_xxx_init()` sets that pointer. + * + * - `br_xxx_init(br_xxx_context *ctx)` + * + * Initialise the provided context. Previous contents of the structure + * are ignored. This calls resets the context to the start of a new + * hash computation; it also sets the first field of the context + * structure (called `vtable`) to a pointer to the statically + * allocated constant `br_xxx_vtable` structure. + * + * - `br_xxx_update(br_xxx_context *ctx, const void *data, size_t len)` + * + * Add some more bytes to the hash computation represented by the + * provided context. + * + * - `br_xxx_out(const br_xxx_context *ctx, void *out)` + * + * Complete the hash computation and write the result in the provided + * buffer. The output buffer MUST be large enough to accommodate the + * result. The context is NOT modified by this operation, so this + * function can be used to get a "partial hash" while still keeping + * the possibility of adding more bytes to the input. + * + * - `br_xxx_state(const br_xxx_context *ctx, void *out)` + * + * Get a copy of the "current state" for the computation so far. For + * MD functions (MD5, SHA-1, SHA-2 family), this is the running state + * resulting from the processing of the last complete input block. + * Returned value is the current input length (in bytes). + * + * - `br_xxx_set_state(br_xxx_context *ctx, const void *stb, uint64_t count)` + * + * Set the internal state to the provided values. The 'stb' and + * 'count' values shall match that which was obtained from + * `br_xxx_state()`. This restores the hash state only if the state + * values were at an appropriate block boundary. This does NOT set + * the `vtable` pointer in the context. + * + * Context structures can be discarded without any explicit deallocation. + * Hash function implementations are purely software and don't reserve + * any resources outside of the context structure itself. + * + * + * ## Object-Oriented API + * + * For each hash function that follows the procedural API described + * above, an object-oriented API is also provided. In that API, function + * pointers from the vtable (`br_xxx_vtable`) are used. The vtable + * incarnates object-oriented programming. An introduction on the OOP + * concept used here can be read on the BearSSL Web site:
+ *    [https://www.bearssl.org/oop.html](https://www.bearssl.org/oop.html) + * + * The vtable offers functions called `init()`, `update()`, `out()`, + * `set()` and `set_state()`, which are in fact the functions from + * the procedural API. That vtable also contains two informative fields: + * + * - `context_size` + * + * The size of the context structure (`br_xxx_context`), in bytes. + * This can be used by generic implementations to perform dynamic + * context allocation. + * + * - `desc` + * + * A "descriptor" field that encodes some information on the hash + * function: symbolic identifier, output size, state size, + * internal block size, details on the padding. + * + * Users of this object-oriented API (in particular generic HMAC + * implementations) may make the following assumptions: + * + * - Hash output size is no more than 64 bytes. + * - Hash internal state size is no more than 64 bytes. + * - Internal block size is a power of two, no less than 16 and no more + * than 256. + * + * + * ## Implemented Hash Functions + * + * Implemented hash functions are: + * + * | Function | Name | Output length | State length | + * | :-------- | :------ | :-----------: | :----------: | + * | MD5 | md5 | 16 | 16 | + * | SHA-1 | sha1 | 20 | 20 | + * | SHA-224 | sha224 | 28 | 32 | + * | SHA-256 | sha256 | 32 | 32 | + * | SHA-384 | sha384 | 48 | 64 | + * | SHA-512 | sha512 | 64 | 64 | + * | MD5+SHA-1 | md5sha1 | 36 | 36 | + * + * (MD5+SHA-1 is the concatenation of MD5 and SHA-1 computed over the + * same input; in the implementation, the internal data buffer is + * shared, thus making it more memory-efficient than separate MD5 and + * SHA-1. It can be useful in implementing SSL 3.0, TLS 1.0 and TLS + * 1.1.) + * + * + * ## Multi-Hasher + * + * An aggregate hasher is provided, that can compute several standard + * hash functions in parallel. It uses `br_multihash_context` and a + * procedural API. It is configured with the implementations (the vtables) + * that it should use; it will then compute all these hash functions in + * parallel, on the same input. It is meant to be used in cases when the + * hash of an object will be used, but the exact hash function is not + * known yet (typically, streamed processing on X.509 certificates). + * + * Only the standard hash functions (MD5, SHA-1, SHA-224, SHA-256, SHA-384 + * and SHA-512) are supported by the multi-hasher. + * + * + * ## GHASH + * + * GHASH is not a generic hash function; it is a _universal_ hash function, + * which, as the name does not say, means that it CANNOT be used in most + * places where a hash function is needed. GHASH is used within the GCM + * encryption mode, to provide the checked integrity functionality. + * + * A GHASH implementation is basically a function that uses the type defined + * in this file under the name `br_ghash`: + * + * typedef void (*br_ghash)(void *y, const void *h, const void *data, size_t len); + * + * The `y` pointer refers to a 16-byte value which is used as input, and + * receives the output of the GHASH invocation. `h` is a 16-byte secret + * value (that serves as key). `data` and `len` define the input data. + * + * Three GHASH implementations are provided, all constant-time, based on + * the use of integer multiplications with appropriate masking to cancel + * carry propagation. + */ + +/** + * \brief Class type for hash function implementations. + * + * A `br_hash_class` instance references the methods implementing a hash + * function. Constant instances of this structure are defined for each + * implemented hash function. Such instances are also called "vtables". + * + * Vtables are used to support object-oriented programming, as + * described on [the BearSSL Web site](https://www.bearssl.org/oop.html). + */ +typedef struct br_hash_class_ br_hash_class; +struct br_hash_class_ { + /** + * \brief Size (in bytes) of the context structure appropriate for + * computing this hash function. + */ + size_t context_size; + + /** + * \brief Descriptor word that contains information about the hash + * function. + * + * For each word `xxx` described below, use `BR_HASHDESC_xxx_OFF` + * and `BR_HASHDESC_xxx_MASK` to access the specific value, as + * follows: + * + * (hf->desc >> BR_HASHDESC_xxx_OFF) & BR_HASHDESC_xxx_MASK + * + * The defined elements are: + * + * - `ID`: the symbolic identifier for the function, as defined + * in [TLS](https://tools.ietf.org/html/rfc5246#section-7.4.1.4.1) + * (MD5 = 1, SHA-1 = 2,...). + * + * - `OUT`: hash output size, in bytes. + * + * - `STATE`: internal running state size, in bytes. + * + * - `LBLEN`: base-2 logarithm for the internal block size, as + * defined for HMAC processing (this is 6 for MD5, SHA-1, SHA-224 + * and SHA-256, since these functions use 64-byte blocks; for + * SHA-384 and SHA-512, this is 7, corresponding to their + * 128-byte blocks). + * + * The descriptor may contain a few other flags. + */ + uint32_t desc; + + /** + * \brief Initialisation method. + * + * This method takes as parameter a pointer to a context area, + * that it initialises. The first field of the context is set + * to this vtable; other elements are initialised for a new hash + * computation. + * + * \param ctx pointer to (the first field of) the context. + */ + void (*init)(const br_hash_class **ctx); + + /** + * \brief Data injection method. + * + * The `len` bytes starting at address `data` are injected into + * the running hash computation incarnated by the specified + * context. The context is updated accordingly. It is allowed + * to have `len == 0`, in which case `data` is ignored (and could + * be `NULL`), and nothing happens. + * on the input data. + * + * \param ctx pointer to (the first field of) the context. + * \param data pointer to the first data byte to inject. + * \param len number of bytes to inject. + */ + void (*update)(const br_hash_class **ctx, const void *data, size_t len); + + /** + * \brief Produce hash output. + * + * The hash output corresponding to all data bytes injected in the + * context since the last `init()` call is computed, and written + * in the buffer pointed to by `dst`. The hash output size depends + * on the implemented hash function (e.g. 16 bytes for MD5). + * The context is _not_ modified by this call, so further bytes + * may be afterwards injected to continue the current computation. + * + * \param ctx pointer to (the first field of) the context. + * \param dst destination buffer for the hash output. + */ + void (*out)(const br_hash_class *const *ctx, void *dst); + + /** + * \brief Get running state. + * + * This method saves the current running state into the `dst` + * buffer. What constitutes the "running state" depends on the + * hash function; for Merkle-DamgÃ¥rd hash functions (like + * MD5 or SHA-1), this is the output obtained after processing + * each block. The number of bytes injected so far is returned. + * The context is not modified by this call. + * + * \param ctx pointer to (the first field of) the context. + * \param dst destination buffer for the state. + * \return the injected total byte length. + */ + uint64_t (*state)(const br_hash_class *const *ctx, void *dst); + + /** + * \brief Set running state. + * + * This methods replaces the running state for the function. + * + * \param ctx pointer to (the first field of) the context. + * \param stb source buffer for the state. + * \param count injected total byte length. + */ + void (*set_state)(const br_hash_class **ctx, + const void *stb, uint64_t count); +}; + +#ifndef BR_DOXYGEN_IGNORE +#define BR_HASHDESC_ID(id) ((uint32_t)(id) << BR_HASHDESC_ID_OFF) +#define BR_HASHDESC_ID_OFF 0 +#define BR_HASHDESC_ID_MASK 0xFF + +#define BR_HASHDESC_OUT(size) ((uint32_t)(size) << BR_HASHDESC_OUT_OFF) +#define BR_HASHDESC_OUT_OFF 8 +#define BR_HASHDESC_OUT_MASK 0x7F + +#define BR_HASHDESC_STATE(size) ((uint32_t)(size) << BR_HASHDESC_STATE_OFF) +#define BR_HASHDESC_STATE_OFF 15 +#define BR_HASHDESC_STATE_MASK 0xFF + +#define BR_HASHDESC_LBLEN(ls) ((uint32_t)(ls) << BR_HASHDESC_LBLEN_OFF) +#define BR_HASHDESC_LBLEN_OFF 23 +#define BR_HASHDESC_LBLEN_MASK 0x0F + +#define BR_HASHDESC_MD_PADDING ((uint32_t)1 << 28) +#define BR_HASHDESC_MD_PADDING_128 ((uint32_t)1 << 29) +#define BR_HASHDESC_MD_PADDING_BE ((uint32_t)1 << 30) +#endif + +/* + * Specific hash functions. + * + * Rules for contexts: + * -- No interior pointer. + * -- No pointer to external dynamically allocated resources. + * -- First field is called 'vtable' and is a pointer to a + * const-qualified br_hash_class instance (pointer is set by init()). + * -- SHA-224 and SHA-256 contexts are identical. + * -- SHA-384 and SHA-512 contexts are identical. + * + * Thus, contexts can be moved and cloned to capture the hash function + * current state; and there is no need for any explicit "release" function. + */ + +/** + * \brief Symbolic identifier for MD5. + */ +#define br_md5_ID 1 + +/** + * \brief MD5 output size (in bytes). + */ +#define br_md5_SIZE 16 + +/** + * \brief Constant vtable for MD5. + */ +extern const br_hash_class br_md5_vtable; + +/** + * \brief MD5 context. + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** + * \brief Pointer to vtable for this context. + */ + const br_hash_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + unsigned char buf[64]; + uint64_t count; + uint32_t val[4]; +#endif +} br_md5_context; + +/** + * \brief MD5 context initialisation. + * + * This function initialises or resets a context for a new MD5 + * computation. It also sets the vtable pointer. + * + * \param ctx pointer to the context structure. + */ +void br_md5_init(br_md5_context *ctx); + +/** + * \brief Inject some data bytes in a running MD5 computation. + * + * The provided context is updated with some data bytes. If the number + * of bytes (`len`) is zero, then the data pointer (`data`) is ignored + * and may be `NULL`, and this function does nothing. + * + * \param ctx pointer to the context structure. + * \param data pointer to the injected data. + * \param len injected data length (in bytes). + */ +void br_md5_update(br_md5_context *ctx, const void *data, size_t len); + +/** + * \brief Compute MD5 output. + * + * The MD5 output for the concatenation of all bytes injected in the + * provided context since the last initialisation or reset call, is + * computed and written in the buffer pointed to by `out`. The context + * itself is not modified, so extra bytes may be injected afterwards + * to continue that computation. + * + * \param ctx pointer to the context structure. + * \param out destination buffer for the hash output. + */ +void br_md5_out(const br_md5_context *ctx, void *out); + +/** + * \brief Save MD5 running state. + * + * The running state for MD5 (output of the last internal block + * processing) is written in the buffer pointed to by `out`. The + * number of bytes injected since the last initialisation or reset + * call is returned. The context is not modified. + * + * \param ctx pointer to the context structure. + * \param out destination buffer for the running state. + * \return the injected total byte length. + */ +uint64_t br_md5_state(const br_md5_context *ctx, void *out); + +/** + * \brief Restore MD5 running state. + * + * The running state for MD5 is set to the provided values. + * + * \param ctx pointer to the context structure. + * \param stb source buffer for the running state. + * \param count the injected total byte length. + */ +void br_md5_set_state(br_md5_context *ctx, const void *stb, uint64_t count); + +/** + * \brief Symbolic identifier for SHA-1. + */ +#define br_sha1_ID 2 + +/** + * \brief SHA-1 output size (in bytes). + */ +#define br_sha1_SIZE 20 + +/** + * \brief Constant vtable for SHA-1. + */ +extern const br_hash_class br_sha1_vtable; + +/** + * \brief SHA-1 context. + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** + * \brief Pointer to vtable for this context. + */ + const br_hash_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + unsigned char buf[64]; + uint64_t count; + uint32_t val[5]; +#endif +} br_sha1_context; + +/** + * \brief SHA-1 context initialisation. + * + * This function initialises or resets a context for a new SHA-1 + * computation. It also sets the vtable pointer. + * + * \param ctx pointer to the context structure. + */ +void br_sha1_init(br_sha1_context *ctx); + +/** + * \brief Inject some data bytes in a running SHA-1 computation. + * + * The provided context is updated with some data bytes. If the number + * of bytes (`len`) is zero, then the data pointer (`data`) is ignored + * and may be `NULL`, and this function does nothing. + * + * \param ctx pointer to the context structure. + * \param data pointer to the injected data. + * \param len injected data length (in bytes). + */ +void br_sha1_update(br_sha1_context *ctx, const void *data, size_t len); + +/** + * \brief Compute SHA-1 output. + * + * The SHA-1 output for the concatenation of all bytes injected in the + * provided context since the last initialisation or reset call, is + * computed and written in the buffer pointed to by `out`. The context + * itself is not modified, so extra bytes may be injected afterwards + * to continue that computation. + * + * \param ctx pointer to the context structure. + * \param out destination buffer for the hash output. + */ +void br_sha1_out(const br_sha1_context *ctx, void *out); + +/** + * \brief Save SHA-1 running state. + * + * The running state for SHA-1 (output of the last internal block + * processing) is written in the buffer pointed to by `out`. The + * number of bytes injected since the last initialisation or reset + * call is returned. The context is not modified. + * + * \param ctx pointer to the context structure. + * \param out destination buffer for the running state. + * \return the injected total byte length. + */ +uint64_t br_sha1_state(const br_sha1_context *ctx, void *out); + +/** + * \brief Restore SHA-1 running state. + * + * The running state for SHA-1 is set to the provided values. + * + * \param ctx pointer to the context structure. + * \param stb source buffer for the running state. + * \param count the injected total byte length. + */ +void br_sha1_set_state(br_sha1_context *ctx, const void *stb, uint64_t count); + +/** + * \brief Symbolic identifier for SHA-224. + */ +#define br_sha224_ID 3 + +/** + * \brief SHA-224 output size (in bytes). + */ +#define br_sha224_SIZE 28 + +/** + * \brief Constant vtable for SHA-224. + */ +extern const br_hash_class br_sha224_vtable; + +/** + * \brief SHA-224 context. + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** + * \brief Pointer to vtable for this context. + */ + const br_hash_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + unsigned char buf[64]; + uint64_t count; + uint32_t val[8]; +#endif +} br_sha224_context; + +/** + * \brief SHA-224 context initialisation. + * + * This function initialises or resets a context for a new SHA-224 + * computation. It also sets the vtable pointer. + * + * \param ctx pointer to the context structure. + */ +void br_sha224_init(br_sha224_context *ctx); + +/** + * \brief Inject some data bytes in a running SHA-224 computation. + * + * The provided context is updated with some data bytes. If the number + * of bytes (`len`) is zero, then the data pointer (`data`) is ignored + * and may be `NULL`, and this function does nothing. + * + * \param ctx pointer to the context structure. + * \param data pointer to the injected data. + * \param len injected data length (in bytes). + */ +void br_sha224_update(br_sha224_context *ctx, const void *data, size_t len); + +/** + * \brief Compute SHA-224 output. + * + * The SHA-224 output for the concatenation of all bytes injected in the + * provided context since the last initialisation or reset call, is + * computed and written in the buffer pointed to by `out`. The context + * itself is not modified, so extra bytes may be injected afterwards + * to continue that computation. + * + * \param ctx pointer to the context structure. + * \param out destination buffer for the hash output. + */ +void br_sha224_out(const br_sha224_context *ctx, void *out); + +/** + * \brief Save SHA-224 running state. + * + * The running state for SHA-224 (output of the last internal block + * processing) is written in the buffer pointed to by `out`. The + * number of bytes injected since the last initialisation or reset + * call is returned. The context is not modified. + * + * \param ctx pointer to the context structure. + * \param out destination buffer for the running state. + * \return the injected total byte length. + */ +uint64_t br_sha224_state(const br_sha224_context *ctx, void *out); + +/** + * \brief Restore SHA-224 running state. + * + * The running state for SHA-224 is set to the provided values. + * + * \param ctx pointer to the context structure. + * \param stb source buffer for the running state. + * \param count the injected total byte length. + */ +void br_sha224_set_state(br_sha224_context *ctx, + const void *stb, uint64_t count); + +/** + * \brief Symbolic identifier for SHA-256. + */ +#define br_sha256_ID 4 + +/** + * \brief SHA-256 output size (in bytes). + */ +#define br_sha256_SIZE 32 + +/** + * \brief Constant vtable for SHA-256. + */ +extern const br_hash_class br_sha256_vtable; + +#ifdef BR_DOXYGEN_IGNORE +/** + * \brief SHA-256 context. + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** + * \brief Pointer to vtable for this context. + */ + const br_hash_class *vtable; +} br_sha256_context; +#else +typedef br_sha224_context br_sha256_context; +#endif + +/** + * \brief SHA-256 context initialisation. + * + * This function initialises or resets a context for a new SHA-256 + * computation. It also sets the vtable pointer. + * + * \param ctx pointer to the context structure. + */ +void br_sha256_init(br_sha256_context *ctx); + +#ifdef BR_DOXYGEN_IGNORE +/** + * \brief Inject some data bytes in a running SHA-256 computation. + * + * The provided context is updated with some data bytes. If the number + * of bytes (`len`) is zero, then the data pointer (`data`) is ignored + * and may be `NULL`, and this function does nothing. + * + * \param ctx pointer to the context structure. + * \param data pointer to the injected data. + * \param len injected data length (in bytes). + */ +void br_sha256_update(br_sha256_context *ctx, const void *data, size_t len); +#else +#define br_sha256_update br_sha224_update +#endif + +/** + * \brief Compute SHA-256 output. + * + * The SHA-256 output for the concatenation of all bytes injected in the + * provided context since the last initialisation or reset call, is + * computed and written in the buffer pointed to by `out`. The context + * itself is not modified, so extra bytes may be injected afterwards + * to continue that computation. + * + * \param ctx pointer to the context structure. + * \param out destination buffer for the hash output. + */ +void br_sha256_out(const br_sha256_context *ctx, void *out); + +#ifdef BR_DOXYGEN_IGNORE +/** + * \brief Save SHA-256 running state. + * + * The running state for SHA-256 (output of the last internal block + * processing) is written in the buffer pointed to by `out`. The + * number of bytes injected since the last initialisation or reset + * call is returned. The context is not modified. + * + * \param ctx pointer to the context structure. + * \param out destination buffer for the running state. + * \return the injected total byte length. + */ +uint64_t br_sha256_state(const br_sha256_context *ctx, void *out); +#else +#define br_sha256_state br_sha224_state +#endif + +#ifdef BR_DOXYGEN_IGNORE +/** + * \brief Restore SHA-256 running state. + * + * The running state for SHA-256 is set to the provided values. + * + * \param ctx pointer to the context structure. + * \param stb source buffer for the running state. + * \param count the injected total byte length. + */ +void br_sha256_set_state(br_sha256_context *ctx, + const void *stb, uint64_t count); +#else +#define br_sha256_set_state br_sha224_set_state +#endif + +/** + * \brief Symbolic identifier for SHA-384. + */ +#define br_sha384_ID 5 + +/** + * \brief SHA-384 output size (in bytes). + */ +#define br_sha384_SIZE 48 + +/** + * \brief Constant vtable for SHA-384. + */ +extern const br_hash_class br_sha384_vtable; + +/** + * \brief SHA-384 context. + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** + * \brief Pointer to vtable for this context. + */ + const br_hash_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + unsigned char buf[128]; + uint64_t count; + uint64_t val[8]; +#endif +} br_sha384_context; + +/** + * \brief SHA-384 context initialisation. + * + * This function initialises or resets a context for a new SHA-384 + * computation. It also sets the vtable pointer. + * + * \param ctx pointer to the context structure. + */ +void br_sha384_init(br_sha384_context *ctx); + +/** + * \brief Inject some data bytes in a running SHA-384 computation. + * + * The provided context is updated with some data bytes. If the number + * of bytes (`len`) is zero, then the data pointer (`data`) is ignored + * and may be `NULL`, and this function does nothing. + * + * \param ctx pointer to the context structure. + * \param data pointer to the injected data. + * \param len injected data length (in bytes). + */ +void br_sha384_update(br_sha384_context *ctx, const void *data, size_t len); + +/** + * \brief Compute SHA-384 output. + * + * The SHA-384 output for the concatenation of all bytes injected in the + * provided context since the last initialisation or reset call, is + * computed and written in the buffer pointed to by `out`. The context + * itself is not modified, so extra bytes may be injected afterwards + * to continue that computation. + * + * \param ctx pointer to the context structure. + * \param out destination buffer for the hash output. + */ +void br_sha384_out(const br_sha384_context *ctx, void *out); + +/** + * \brief Save SHA-384 running state. + * + * The running state for SHA-384 (output of the last internal block + * processing) is written in the buffer pointed to by `out`. The + * number of bytes injected since the last initialisation or reset + * call is returned. The context is not modified. + * + * \param ctx pointer to the context structure. + * \param out destination buffer for the running state. + * \return the injected total byte length. + */ +uint64_t br_sha384_state(const br_sha384_context *ctx, void *out); + +/** + * \brief Restore SHA-384 running state. + * + * The running state for SHA-384 is set to the provided values. + * + * \param ctx pointer to the context structure. + * \param stb source buffer for the running state. + * \param count the injected total byte length. + */ +void br_sha384_set_state(br_sha384_context *ctx, + const void *stb, uint64_t count); + +/** + * \brief Symbolic identifier for SHA-512. + */ +#define br_sha512_ID 6 + +/** + * \brief SHA-512 output size (in bytes). + */ +#define br_sha512_SIZE 64 + +/** + * \brief Constant vtable for SHA-512. + */ +extern const br_hash_class br_sha512_vtable; + +#ifdef BR_DOXYGEN_IGNORE +/** + * \brief SHA-512 context. + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** + * \brief Pointer to vtable for this context. + */ + const br_hash_class *vtable; +} br_sha512_context; +#else +typedef br_sha384_context br_sha512_context; +#endif + +/** + * \brief SHA-512 context initialisation. + * + * This function initialises or resets a context for a new SHA-512 + * computation. It also sets the vtable pointer. + * + * \param ctx pointer to the context structure. + */ +void br_sha512_init(br_sha512_context *ctx); + +#ifdef BR_DOXYGEN_IGNORE +/** + * \brief Inject some data bytes in a running SHA-512 computation. + * + * The provided context is updated with some data bytes. If the number + * of bytes (`len`) is zero, then the data pointer (`data`) is ignored + * and may be `NULL`, and this function does nothing. + * + * \param ctx pointer to the context structure. + * \param data pointer to the injected data. + * \param len injected data length (in bytes). + */ +void br_sha512_update(br_sha512_context *ctx, const void *data, size_t len); +#else +#define br_sha512_update br_sha384_update +#endif + +/** + * \brief Compute SHA-512 output. + * + * The SHA-512 output for the concatenation of all bytes injected in the + * provided context since the last initialisation or reset call, is + * computed and written in the buffer pointed to by `out`. The context + * itself is not modified, so extra bytes may be injected afterwards + * to continue that computation. + * + * \param ctx pointer to the context structure. + * \param out destination buffer for the hash output. + */ +void br_sha512_out(const br_sha512_context *ctx, void *out); + +#ifdef BR_DOXYGEN_IGNORE +/** + * \brief Save SHA-512 running state. + * + * The running state for SHA-512 (output of the last internal block + * processing) is written in the buffer pointed to by `out`. The + * number of bytes injected since the last initialisation or reset + * call is returned. The context is not modified. + * + * \param ctx pointer to the context structure. + * \param out destination buffer for the running state. + * \return the injected total byte length. + */ +uint64_t br_sha512_state(const br_sha512_context *ctx, void *out); +#else +#define br_sha512_state br_sha384_state +#endif + +#ifdef BR_DOXYGEN_IGNORE +/** + * \brief Restore SHA-512 running state. + * + * The running state for SHA-512 is set to the provided values. + * + * \param ctx pointer to the context structure. + * \param stb source buffer for the running state. + * \param count the injected total byte length. + */ +void br_sha512_set_state(br_sha512_context *ctx, + const void *stb, uint64_t count); +#else +#define br_sha512_set_state br_sha384_set_state +#endif + +/* + * "md5sha1" is a special hash function that computes both MD5 and SHA-1 + * on the same input, and produces a 36-byte output (MD5 and SHA-1 + * concatenation, in that order). State size is also 36 bytes. + */ + +/** + * \brief Symbolic identifier for MD5+SHA-1. + * + * MD5+SHA-1 is the concatenation of MD5 and SHA-1, computed over the + * same input. It is not one of the functions identified in TLS, so + * we give it a symbolic identifier of value 0. + */ +#define br_md5sha1_ID 0 + +/** + * \brief MD5+SHA-1 output size (in bytes). + */ +#define br_md5sha1_SIZE 36 + +/** + * \brief Constant vtable for MD5+SHA-1. + */ +extern const br_hash_class br_md5sha1_vtable; + +/** + * \brief MD5+SHA-1 context. + * + * First field is a pointer to the vtable; it is set by the initialisation + * function. Other fields are not supposed to be accessed by user code. + */ +typedef struct { + /** + * \brief Pointer to vtable for this context. + */ + const br_hash_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + unsigned char buf[64]; + uint64_t count; + uint32_t val_md5[4]; + uint32_t val_sha1[5]; +#endif +} br_md5sha1_context; + +/** + * \brief MD5+SHA-1 context initialisation. + * + * This function initialises or resets a context for a new SHA-512 + * computation. It also sets the vtable pointer. + * + * \param ctx pointer to the context structure. + */ +void br_md5sha1_init(br_md5sha1_context *ctx); + +/** + * \brief Inject some data bytes in a running MD5+SHA-1 computation. + * + * The provided context is updated with some data bytes. If the number + * of bytes (`len`) is zero, then the data pointer (`data`) is ignored + * and may be `NULL`, and this function does nothing. + * + * \param ctx pointer to the context structure. + * \param data pointer to the injected data. + * \param len injected data length (in bytes). + */ +void br_md5sha1_update(br_md5sha1_context *ctx, const void *data, size_t len); + +/** + * \brief Compute MD5+SHA-1 output. + * + * The MD5+SHA-1 output for the concatenation of all bytes injected in the + * provided context since the last initialisation or reset call, is + * computed and written in the buffer pointed to by `out`. The context + * itself is not modified, so extra bytes may be injected afterwards + * to continue that computation. + * + * \param ctx pointer to the context structure. + * \param out destination buffer for the hash output. + */ +void br_md5sha1_out(const br_md5sha1_context *ctx, void *out); + +/** + * \brief Save MD5+SHA-1 running state. + * + * The running state for MD5+SHA-1 (output of the last internal block + * processing) is written in the buffer pointed to by `out`. The + * number of bytes injected since the last initialisation or reset + * call is returned. The context is not modified. + * + * \param ctx pointer to the context structure. + * \param out destination buffer for the running state. + * \return the injected total byte length. + */ +uint64_t br_md5sha1_state(const br_md5sha1_context *ctx, void *out); + +/** + * \brief Restore MD5+SHA-1 running state. + * + * The running state for MD5+SHA-1 is set to the provided values. + * + * \param ctx pointer to the context structure. + * \param stb source buffer for the running state. + * \param count the injected total byte length. + */ +void br_md5sha1_set_state(br_md5sha1_context *ctx, + const void *stb, uint64_t count); + +/** + * \brief Aggregate context for configurable hash function support. + * + * The `br_hash_compat_context` type is a type which is large enough to + * serve as context for all standard hash functions defined above. + */ +typedef union { + const br_hash_class *vtable; + br_md5_context md5; + br_sha1_context sha1; + br_sha224_context sha224; + br_sha256_context sha256; + br_sha384_context sha384; + br_sha512_context sha512; + br_md5sha1_context md5sha1; +} br_hash_compat_context; + +/* + * The multi-hasher is a construct that handles hashing of the same input + * data with several hash functions, with a single shared input buffer. + * It can handle MD5, SHA-1, SHA-224, SHA-256, SHA-384 and SHA-512 + * simultaneously, though which functions are activated depends on + * the set implementation pointers. + */ + +/** + * \brief Multi-hasher context structure. + * + * The multi-hasher runs up to six hash functions in the standard TLS list + * (MD5, SHA-1, SHA-224, SHA-256, SHA-384 and SHA-512) in parallel, over + * the same input. + * + * The multi-hasher does _not_ follow the OOP structure with a vtable. + * Instead, it is configured with the vtables of the hash functions it + * should run. Structure fields are not supposed to be accessed directly. + */ +typedef struct { +#ifndef BR_DOXYGEN_IGNORE + unsigned char buf[128]; + uint64_t count; + uint32_t val_32[25]; + uint64_t val_64[16]; + const br_hash_class *impl[6]; +#endif +} br_multihash_context; + +/** + * \brief Clear a multi-hasher context. + * + * This should always be called once on a given context, _before_ setting + * the implementation pointers. + * + * \param ctx the multi-hasher context. + */ +void br_multihash_zero(br_multihash_context *ctx); + +/** + * \brief Set a hash function implementation. + * + * Implementations shall be set _after_ clearing the context (with + * `br_multihash_zero()`) but _before_ initialising the computation + * (with `br_multihash_init()`). The hash function implementation + * MUST be one of the standard hash functions (MD5, SHA-1, SHA-224, + * SHA-256, SHA-384 or SHA-512); it may also be `NULL` to remove + * an implementation from the multi-hasher. + * + * \param ctx the multi-hasher context. + * \param id the hash function symbolic identifier. + * \param impl the hash function vtable, or `NULL`. + */ +static inline void +br_multihash_setimpl(br_multihash_context *ctx, + int id, const br_hash_class *impl) +{ + /* + * This code relies on hash functions ID being values 1 to 6, + * in the MD5 to SHA-512 order. + */ + ctx->impl[id - 1] = impl; +} + +/** + * \brief Get a hash function implementation. + * + * This function returns the currently configured vtable for a given + * hash function (by symbolic ID). If no such function was configured in + * the provided multi-hasher context, then this function returns `NULL`. + * + * \param ctx the multi-hasher context. + * \param id the hash function symbolic identifier. + * \return the hash function vtable, or `NULL`. + */ +static inline const br_hash_class * +br_multihash_getimpl(const br_multihash_context *ctx, int id) +{ + return ctx->impl[id - 1]; +} + +/** + * \brief Reset a multi-hasher context. + * + * This function prepares the context for a new hashing computation, + * for all implementations configured at that point. + * + * \param ctx the multi-hasher context. + */ +void br_multihash_init(br_multihash_context *ctx); + +/** + * \brief Inject some data bytes in a running multi-hashing computation. + * + * The provided context is updated with some data bytes. If the number + * of bytes (`len`) is zero, then the data pointer (`data`) is ignored + * and may be `NULL`, and this function does nothing. + * + * \param ctx pointer to the context structure. + * \param data pointer to the injected data. + * \param len injected data length (in bytes). + */ +void br_multihash_update(br_multihash_context *ctx, + const void *data, size_t len); + +/** + * \brief Compute a hash output from a multi-hasher. + * + * The hash output for the concatenation of all bytes injected in the + * provided context since the last initialisation or reset call, is + * computed and written in the buffer pointed to by `dst`. The hash + * function to use is identified by `id` and must be one of the standard + * hash functions. If that hash function was indeed configured in the + * multi-hasher context, the corresponding hash value is written in + * `dst` and its length (in bytes) is returned. If the hash function + * was _not_ configured, then nothing is written in `dst` and 0 is + * returned. + * + * The context itself is not modified, so extra bytes may be injected + * afterwards to continue the hash computations. + * + * \param ctx pointer to the context structure. + * \param id the hash function symbolic identifier. + * \param dst destination buffer for the hash output. + * \return the hash output length (in bytes), or 0. + */ +size_t br_multihash_out(const br_multihash_context *ctx, int id, void *dst); + +/** + * \brief Type for a GHASH implementation. + * + * GHASH is a sort of keyed hash meant to be used to implement GCM in + * combination with a block cipher (with 16-byte blocks). + * + * The `y` array has length 16 bytes and is used for input and output; in + * a complete GHASH run, it starts with an all-zero value. `h` is a 16-byte + * value that serves as key (it is derived from the encryption key in GCM, + * using the block cipher). The data length (`len`) is expressed in bytes. + * The `y` array is updated. + * + * If the data length is not a multiple of 16, then the data is implicitly + * padded with zeros up to the next multiple of 16. Thus, when using GHASH + * in GCM, this method may be called twice, for the associated data and + * for the ciphertext, respectively; the zero-padding implements exactly + * the GCM rules. + * + * \param y the array to update. + * \param h the GHASH key. + * \param data the input data (may be `NULL` if `len` is zero). + * \param len the input data length (in bytes). + */ +typedef void (*br_ghash)(void *y, const void *h, const void *data, size_t len); + +/** + * \brief GHASH implementation using multiplications (mixed 32-bit). + * + * This implementation uses multiplications of 32-bit values, with a + * 64-bit result. It is constant-time (if multiplications are + * constant-time). + * + * \param y the array to update. + * \param h the GHASH key. + * \param data the input data (may be `NULL` if `len` is zero). + * \param len the input data length (in bytes). + */ +void br_ghash_ctmul(void *y, const void *h, const void *data, size_t len); + +/** + * \brief GHASH implementation using multiplications (strict 32-bit). + * + * This implementation uses multiplications of 32-bit values, with a + * 32-bit result. It is usually somewhat slower than `br_ghash_ctmul()`, + * but it is expected to be faster on architectures for which the + * 32-bit multiplication opcode does not yield the upper 32 bits of the + * product. It is constant-time (if multiplications are constant-time). + * + * \param y the array to update. + * \param h the GHASH key. + * \param data the input data (may be `NULL` if `len` is zero). + * \param len the input data length (in bytes). + */ +void br_ghash_ctmul32(void *y, const void *h, const void *data, size_t len); + +/** + * \brief GHASH implementation using multiplications (64-bit). + * + * This implementation uses multiplications of 64-bit values, with a + * 64-bit result. It is constant-time (if multiplications are + * constant-time). It is substantially faster than `br_ghash_ctmul()` + * and `br_ghash_ctmul32()` on most 64-bit architectures. + * + * \param y the array to update. + * \param h the GHASH key. + * \param data the input data (may be `NULL` if `len` is zero). + * \param len the input data length (in bytes). + */ +void br_ghash_ctmul64(void *y, const void *h, const void *data, size_t len); + +/** + * \brief GHASH implementation using the `pclmulqdq` opcode (part of the + * AES-NI instructions). + * + * This implementation is available only on x86 platforms where the + * compiler supports the relevant intrinsic functions. Even if the + * compiler supports these functions, the local CPU might not support + * the `pclmulqdq` opcode, meaning that a call will fail with an + * illegal instruction exception. To safely obtain a pointer to this + * function when supported (or 0 otherwise), use `br_ghash_pclmul_get()`. + * + * \param y the array to update. + * \param h the GHASH key. + * \param data the input data (may be `NULL` if `len` is zero). + * \param len the input data length (in bytes). + */ +void br_ghash_pclmul(void *y, const void *h, const void *data, size_t len); + +/** + * \brief Obtain the `pclmul` GHASH implementation, if available. + * + * If the `pclmul` implementation was compiled in the library (depending + * on the compiler abilities) _and_ the local CPU appears to support the + * opcode, then this function will return a pointer to the + * `br_ghash_pclmul()` function. Otherwise, it will return `0`. + * + * \return the `pclmul` GHASH implementation, or `0`. + */ +br_ghash br_ghash_pclmul_get(void); + +/** + * \brief GHASH implementation using the POWER8 opcodes. + * + * This implementation is available only on POWER8 platforms (and later). + * To safely obtain a pointer to this function when supported (or 0 + * otherwise), use `br_ghash_pwr8_get()`. + * + * \param y the array to update. + * \param h the GHASH key. + * \param data the input data (may be `NULL` if `len` is zero). + * \param len the input data length (in bytes). + */ +void br_ghash_pwr8(void *y, const void *h, const void *data, size_t len); + +/** + * \brief Obtain the `pwr8` GHASH implementation, if available. + * + * If the `pwr8` implementation was compiled in the library (depending + * on the compiler abilities) _and_ the local CPU appears to support the + * opcode, then this function will return a pointer to the + * `br_ghash_pwr8()` function. Otherwise, it will return `0`. + * + * \return the `pwr8` GHASH implementation, or `0`. + */ +br_ghash br_ghash_pwr8_get(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/bearssl/bearssl_hmac.h b/include/bearssl/bearssl_hmac.h new file mode 100644 index 00000000..4dc01ca3 --- /dev/null +++ b/include/bearssl/bearssl_hmac.h @@ -0,0 +1,241 @@ +/* + * Copyright (c) 2016 Thomas Pornin + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef BR_BEARSSL_HMAC_H__ +#define BR_BEARSSL_HMAC_H__ + +#include +#include + +#include "bearssl_hash.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** \file bearssl_hmac.h + * + * # HMAC + * + * HMAC is initialized with a key and an underlying hash function; it + * then fills a "key context". That context contains the processed + * key. + * + * With the key context, a HMAC context can be initialized to process + * the input bytes and obtain the MAC output. The key context is not + * modified during that process, and can be reused. + * + * IMPORTANT: HMAC shall be used only with functions that have the + * following properties: + * + * - hash output size does not exceed 64 bytes; + * - hash internal state size does not exceed 64 bytes; + * - internal block length is a power of 2 between 16 and 256 bytes. + */ + +/** + * \brief HMAC key context. + * + * The HMAC key context is initialised with a hash function implementation + * and a secret key. Contents are opaque (callers should not access them + * directly). The caller is responsible for allocating the context where + * appropriate. Context initialisation and usage incurs no dynamic + * allocation, so there is no release function. + */ +typedef struct { +#ifndef BR_DOXYGEN_IGNORE + const br_hash_class *dig_vtable; + unsigned char ksi[64], kso[64]; +#endif +} br_hmac_key_context; + +/** + * \brief HMAC key context initialisation. + * + * Initialise the key context with the provided key, using the hash function + * identified by `digest_vtable`. This supports arbitrary key lengths. + * + * \param kc HMAC key context to initialise. + * \param digest_vtable pointer to the hash function implementation vtable. + * \param key pointer to the HMAC secret key. + * \param key_len HMAC secret key length (in bytes). + */ +void br_hmac_key_init(br_hmac_key_context *kc, + const br_hash_class *digest_vtable, const void *key, size_t key_len); + +/* + * \brief Get the underlying hash function. + * + * This function returns a pointer to the implementation vtable of the + * hash function used for this HMAC key context. + * + * \param kc HMAC key context. + * \return the hash function implementation. + */ +static inline const br_hash_class *br_hmac_key_get_digest( + const br_hmac_key_context *kc) +{ + return kc->dig_vtable; +} + +/** + * \brief HMAC computation context. + * + * The HMAC computation context maintains the state for a single HMAC + * computation. It is modified as input bytes are injected. The context + * is caller-allocated and has no release function since it does not + * dynamically allocate external resources. Its contents are opaque. + */ +typedef struct { +#ifndef BR_DOXYGEN_IGNORE + br_hash_compat_context dig; + unsigned char kso[64]; + size_t out_len; +#endif +} br_hmac_context; + +/** + * \brief HMAC computation initialisation. + * + * Initialise a HMAC context with a key context. The key context is + * unmodified. Relevant data from the key context is immediately copied; + * the key context can thus be independently reused, modified or released + * without impacting this HMAC computation. + * + * An explicit output length can be specified; the actual output length + * will be the minimum of that value and the natural HMAC output length. + * If `out_len` is 0, then the natural HMAC output length is selected. The + * "natural output length" is the output length of the underlying hash + * function. + * + * \param ctx HMAC context to initialise. + * \param kc HMAC key context (already initialised with the key). + * \param out_len HMAC output length (0 to select "natural length"). + */ +void br_hmac_init(br_hmac_context *ctx, + const br_hmac_key_context *kc, size_t out_len); + +/** + * \brief Get the HMAC output size. + * + * The HMAC output size is the number of bytes that will actually be + * produced with `br_hmac_out()` with the provided context. This function + * MUST NOT be called on a non-initialised HMAC computation context. + * The returned value is the minimum of the HMAC natural length (output + * size of the underlying hash function) and the `out_len` parameter which + * was used with the last `br_hmac_init()` call on that context (if the + * initialisation `out_len` parameter was 0, then this function will + * return the HMAC natural length). + * + * \param ctx the (already initialised) HMAC computation context. + * \return the HMAC actual output size. + */ +static inline size_t +br_hmac_size(br_hmac_context *ctx) +{ + return ctx->out_len; +} + +/* + * \brief Get the underlying hash function. + * + * This function returns a pointer to the implementation vtable of the + * hash function used for this HMAC context. + * + * \param hc HMAC context. + * \return the hash function implementation. + */ +static inline const br_hash_class *br_hmac_get_digest( + const br_hmac_context *hc) +{ + return hc->dig.vtable; +} + +/** + * \brief Inject some bytes in HMAC. + * + * The provided `len` bytes are injected as extra input in the HMAC + * computation incarnated by the `ctx` HMAC context. It is acceptable + * that `len` is zero, in which case `data` is ignored (and may be + * `NULL`) and this function does nothing. + */ +void br_hmac_update(br_hmac_context *ctx, const void *data, size_t len); + +/** + * \brief Compute the HMAC output. + * + * The destination buffer MUST be large enough to accommodate the result; + * its length is at most the "natural length" of HMAC (i.e. the output + * length of the underlying hash function). The context is NOT modified; + * further bytes may be processed. Thus, "partial HMAC" values can be + * efficiently obtained. + * + * Returned value is the output length (in bytes). + * + * \param ctx HMAC computation context. + * \param out destination buffer for the HMAC output. + * \return the produced value length (in bytes). + */ +size_t br_hmac_out(const br_hmac_context *ctx, void *out); + +/** + * \brief Constant-time HMAC computation. + * + * This function compute the HMAC output in constant time. Some extra + * input bytes are processed, then the output is computed. The extra + * input consists in the `len` bytes pointed to by `data`. The `len` + * parameter must lie between `min_len` and `max_len` (inclusive); + * `max_len` bytes are actually read from `data`. Computing time (and + * memory access pattern) will not depend upon the data byte contents or + * the value of `len`. + * + * The output is written in the `out` buffer, that MUST be large enough + * to receive it. + * + * The difference `max_len - min_len` MUST be less than 230 + * (i.e. about one gigabyte). + * + * This function computes the output properly only if the underlying + * hash function uses MD padding (i.e. MD5, SHA-1, SHA-224, SHA-256, + * SHA-384 or SHA-512). + * + * The provided context is NOT modified. + * + * \param ctx the (already initialised) HMAC computation context. + * \param data the extra input bytes. + * \param len the extra input length (in bytes). + * \param min_len minimum extra input length (in bytes). + * \param max_len maximum extra input length (in bytes). + * \param out destination buffer for the HMAC output. + * \return the produced value length (in bytes). + */ +size_t br_hmac_outCT(const br_hmac_context *ctx, + const void *data, size_t len, size_t min_len, size_t max_len, + void *out); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/bearssl/bearssl_kdf.h b/include/bearssl/bearssl_kdf.h new file mode 100644 index 00000000..955b8436 --- /dev/null +++ b/include/bearssl/bearssl_kdf.h @@ -0,0 +1,284 @@ +/* + * Copyright (c) 2018 Thomas Pornin + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef BR_BEARSSL_KDF_H__ +#define BR_BEARSSL_KDF_H__ + +#include +#include + +#include "bearssl_hash.h" +#include "bearssl_hmac.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** \file bearssl_kdf.h + * + * # Key Derivation Functions + * + * KDF are functions that takes a variable length input, and provide a + * variable length output, meant to be used to derive subkeys from a + * master key. + * + * ## HKDF + * + * HKDF is a KDF defined by [RFC 5869](https://tools.ietf.org/html/rfc5869). + * It is based on HMAC, itself using an underlying hash function. Any + * hash function can be used, as long as it is compatible with the rules + * for the HMAC implementation (i.e. output size is 64 bytes or less, hash + * internal state size is 64 bytes or less, and the internal block length is + * a power of 2 between 16 and 256 bytes). HKDF has two phases: + * + * - HKDF-Extract: the input data in ingested, along with a "salt" value. + * + * - HKDF-Expand: the output is produced, from the result of processing + * the input and salt, and using an extra non-secret parameter called + * "info". + * + * The "salt" and "info" strings are non-secret and can be empty. Their role + * is normally to bind the input and output, respectively, to conventional + * identifiers that qualifu them within the used protocol or application. + * + * The implementation defined in this file uses the following functions: + * + * - `br_hkdf_init()`: initialize an HKDF context, with a hash function, + * and the salt. This starts the HKDF-Extract process. + * + * - `br_hkdf_inject()`: inject more input bytes. This function may be + * called repeatedly if the input data is provided by chunks. + * + * - `br_hkdf_flip()`: end the HKDF-Extract process, and start the + * HKDF-Expand process. + * + * - `br_hkdf_produce()`: get the next bytes of output. This function + * may be called several times to obtain the full output by chunks. + * For correct HKDF processing, the same "info" string must be + * provided for each call. + * + * Note that the HKDF total output size (the number of bytes that + * HKDF-Expand is willing to produce) is limited: if the hash output size + * is _n_ bytes, then the maximum output size is _255*n_. + * + * ## SHAKE + * + * SHAKE is defined in + * [FIPS 202](https://csrc.nist.gov/publications/detail/fips/202/final) + * under two versions: SHAKE128 and SHAKE256, offering an alleged + * "security level" of 128 and 256 bits, respectively (SHAKE128 is + * about 20 to 25% faster than SHAKE256). SHAKE internally relies on + * the Keccak family of sponge functions, not on any externally provided + * hash function. Contrary to HKDF, SHAKE does not have a concept of + * either a "salt" or an "info" string. The API consists in four + * functions: + * + * - `br_shake_init()`: initialize a SHAKE context for a given + * security level. + * + * - `br_shake_inject()`: inject more input bytes. This function may be + * called repeatedly if the input data is provided by chunks. + * + * - `br_shake_flip()`: end the data injection process, and start the + * data production process. + * + * - `br_shake_produce()`: get the next bytes of output. This function + * may be called several times to obtain the full output by chunks. + */ + +/** + * \brief HKDF context. + * + * The HKDF context is initialized with a hash function implementation + * and a salt value. Contents are opaque (callers should not access them + * directly). The caller is responsible for allocating the context where + * appropriate. Context initialisation and usage incurs no dynamic + * allocation, so there is no release function. + */ +typedef struct { +#ifndef BR_DOXYGEN_IGNORE + union { + br_hmac_context hmac_ctx; + br_hmac_key_context prk_ctx; + } u; + unsigned char buf[64]; + size_t ptr; + size_t dig_len; + unsigned chunk_num; +#endif +} br_hkdf_context; + +/** + * \brief HKDF context initialization. + * + * The underlying hash function and salt value are provided. Arbitrary + * salt lengths can be used. + * + * HKDF makes a difference between a salt of length zero, and an + * absent salt (the latter being equivalent to a salt consisting of + * bytes of value zero, of the same length as the hash function output). + * If `salt_len` is zero, then this function assumes that the salt is + * present but of length zero. To specify an _absent_ salt, use + * `BR_HKDF_NO_SALT` as `salt` parameter (`salt_len` is then ignored). + * + * \param hc HKDF context to initialise. + * \param digest_vtable pointer to the hash function implementation vtable. + * \param salt HKDF-Extract salt. + * \param salt_len HKDF-Extract salt length (in bytes). + */ +void br_hkdf_init(br_hkdf_context *hc, const br_hash_class *digest_vtable, + const void *salt, size_t salt_len); + +/** + * \brief The special "absent salt" value for HKDF. + */ +#define BR_HKDF_NO_SALT (&br_hkdf_no_salt) + +#ifndef BR_DOXYGEN_IGNORE +extern const unsigned char br_hkdf_no_salt; +#endif + +/** + * \brief HKDF input injection (HKDF-Extract). + * + * This function injects some more input bytes ("key material") into + * HKDF. This function may be called several times, after `br_hkdf_init()` + * but before `br_hkdf_flip()`. + * + * \param hc HKDF context. + * \param ikm extra input bytes. + * \param ikm_len number of extra input bytes. + */ +void br_hkdf_inject(br_hkdf_context *hc, const void *ikm, size_t ikm_len); + +/** + * \brief HKDF switch to the HKDF-Expand phase. + * + * This call terminates the HKDF-Extract process (input injection), and + * starts the HKDF-Expand process (output production). + * + * \param hc HKDF context. + */ +void br_hkdf_flip(br_hkdf_context *hc); + +/** + * \brief HKDF output production (HKDF-Expand). + * + * Produce more output bytes from the current state. This function may be + * called several times, but only after `br_hkdf_flip()`. + * + * Returned value is the number of actually produced bytes. The total + * output length is limited to 255 times the output length of the + * underlying hash function. + * + * \param hc HKDF context. + * \param info application specific information string. + * \param info_len application specific information string length (in bytes). + * \param out destination buffer for the HKDF output. + * \param out_len the length of the requested output (in bytes). + * \return the produced output length (in bytes). + */ +size_t br_hkdf_produce(br_hkdf_context *hc, + const void *info, size_t info_len, void *out, size_t out_len); + +/** + * \brief SHAKE context. + * + * The HKDF context is initialized with a "security level". The internal + * notion is called "capacity"; the capacity is twice the security level + * (for instance, SHAKE128 has capacity 256). + * + * The caller is responsible for allocating the context where + * appropriate. Context initialisation and usage incurs no dynamic + * allocation, so there is no release function. + */ +typedef struct { +#ifndef BR_DOXYGEN_IGNORE + unsigned char dbuf[200]; + size_t dptr; + size_t rate; + uint64_t A[25]; +#endif +} br_shake_context; + +/** + * \brief SHAKE context initialization. + * + * The context is initialized for the provided "security level". + * Internally, this sets the "capacity" to twice the security level; + * thus, for SHAKE128, the `security_level` parameter should be 128, + * which corresponds to a 256-bit capacity. + * + * Allowed security levels are all multiples of 32, from 32 to 768, + * inclusive. Larger security levels imply lower performance; levels + * beyond 256 bits don't make much sense. Standard levels are 128 + * and 256 bits (for SHAKE128 and SHAKE256, respectively). + * + * \param sc SHAKE context to initialise. + * \param security_level security level (in bits). + */ +void br_shake_init(br_shake_context *sc, int security_level); + +/** + * \brief SHAKE input injection. + * + * This function injects some more input bytes ("key material") into + * SHAKE. This function may be called several times, after `br_shake_init()` + * but before `br_shake_flip()`. + * + * \param sc SHAKE context. + * \param data extra input bytes. + * \param len number of extra input bytes. + */ +void br_shake_inject(br_shake_context *sc, const void *data, size_t len); + +/** + * \brief SHAKE switch to production phase. + * + * This call terminates the input injection process, and starts the + * output production process. + * + * \param sc SHAKE context. + */ +void br_shake_flip(br_shake_context *hc); + +/** + * \brief SHAKE output production. + * + * Produce more output bytes from the current state. This function may be + * called several times, but only after `br_shake_flip()`. + * + * There is no practical limit to the number of bytes that may be produced. + * + * \param sc SHAKE context. + * \param out destination buffer for the SHAKE output. + * \param len the length of the requested output (in bytes). + */ +void br_shake_produce(br_shake_context *sc, void *out, size_t len); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/bearssl/bearssl_pem.h b/include/bearssl/bearssl_pem.h new file mode 100644 index 00000000..8dba5827 --- /dev/null +++ b/include/bearssl/bearssl_pem.h @@ -0,0 +1,294 @@ +/* + * Copyright (c) 2016 Thomas Pornin + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef BR_BEARSSL_PEM_H__ +#define BR_BEARSSL_PEM_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** \file bearssl_pem.h + * + * # PEM Support + * + * PEM is a traditional encoding layer use to store binary objects (in + * particular X.509 certificates, and private keys) in text files. While + * the acronym comes from an old, defunct standard ("Privacy Enhanced + * Mail"), the format has been reused, with some variations, by many + * systems, and is a _de facto_ standard, even though it is not, actually, + * specified in all clarity anywhere. + * + * ## Format Details + * + * BearSSL contains a generic, streamed PEM decoder, which handles the + * following format: + * + * - The input source (a sequence of bytes) is assumed to be the + * encoding of a text file in an ASCII-compatible charset. This + * includes ISO-8859-1, Windows-1252, and UTF-8 encodings. Each + * line ends on a newline character (U+000A LINE FEED). The + * U+000D CARRIAGE RETURN characters are ignored, so the code + * accepts both Windows-style and Unix-style line endings. + * + * - Each object begins with a banner that occurs at the start of + * a line; the first banner characters are "`-----BEGIN `" (five + * dashes, the word "BEGIN", and a space). The banner matching is + * not case-sensitive. + * + * - The _object name_ consists in the characters that follow the + * banner start sequence, up to the end of the line, but without + * trailing dashes (in "normal" PEM, there are five trailing + * dashes, but this implementation is not picky about these dashes). + * The BearSSL decoder normalises the name characters to uppercase + * (for ASCII letters only) and accepts names up to 127 characters. + * + * - The object ends with a banner that again occurs at the start of + * a line, and starts with "`-----END `" (again case-insensitive). + * + * - Between that start and end banner, only Base64 data shall occur. + * Base64 converts each sequence of three bytes into four + * characters; the four characters are ASCII letters, digits, "`+`" + * or "`-`" signs, and one or two "`=`" signs may occur in the last + * quartet. Whitespace is ignored (whitespace is any ASCII character + * of code 32 or less, so control characters are whitespace) and + * lines may have arbitrary length; the only restriction is that the + * four characters of a quartet must appear on the same line (no + * line break inside a quartet). + * + * - A single file may contain more than one PEM object. Bytes that + * occur between objects are ignored. + * + * + * ## PEM Decoder API + * + * The PEM decoder offers a state-machine API. The caller allocates a + * decoder context, then injects source bytes. Source bytes are pushed + * with `br_pem_decoder_push()`. The decoder stops accepting bytes when + * it reaches an "event", which is either the start of an object, the + * end of an object, or a decoding error within an object. + * + * The `br_pem_decoder_event()` function is used to obtain the current + * event; it also clears it, thus allowing the decoder to accept more + * bytes. When a object start event is raised, the decoder context + * offers the found object name (normalised to ASCII uppercase). + * + * When an object is reached, the caller must set an appropriate callback + * function, which will receive (by chunks) the decoded object data. + * + * Since the decoder context makes no dynamic allocation, it requires + * no explicit deallocation. + */ + +/** + * \brief PEM decoder context. + * + * Contents are opaque (they should not be accessed directly). + */ +typedef struct { +#ifndef BR_DOXYGEN_IGNORE + /* CPU for the T0 virtual machine. */ + struct { + uint32_t *dp; + uint32_t *rp; + const unsigned char *ip; + } cpu; + uint32_t dp_stack[32]; + uint32_t rp_stack[32]; + int err; + + const unsigned char *hbuf; + size_t hlen; + + void (*dest)(void *dest_ctx, const void *src, size_t len); + void *dest_ctx; + + unsigned char event; + char name[128]; + unsigned char buf[255]; + size_t ptr; +#endif +} br_pem_decoder_context; + +/** + * \brief Initialise a PEM decoder structure. + * + * \param ctx decoder context to initialise. + */ +void br_pem_decoder_init(br_pem_decoder_context *ctx); + +/** + * \brief Push some bytes into the decoder. + * + * Returned value is the number of bytes actually consumed; this may be + * less than the number of provided bytes if an event is raised. When an + * event is raised, it must be read (with `br_pem_decoder_event()`); + * until the event is read, this function will return 0. + * + * \param ctx decoder context. + * \param data new data bytes. + * \param len number of new data bytes. + * \return the number of bytes actually received (may be less than `len`). + */ +size_t br_pem_decoder_push(br_pem_decoder_context *ctx, + const void *data, size_t len); + +/** + * \brief Set the receiver for decoded data. + * + * When an object is entered, the provided function (with opaque context + * pointer) will be called repeatedly with successive chunks of decoded + * data for that object. If `dest` is set to 0, then decoded data is + * simply ignored. The receiver can be set at any time, but, in practice, + * it should be called immediately after receiving a "start of object" + * event. + * + * \param ctx decoder context. + * \param dest callback for receiving decoded data. + * \param dest_ctx opaque context pointer for the `dest` callback. + */ +static inline void +br_pem_decoder_setdest(br_pem_decoder_context *ctx, + void (*dest)(void *dest_ctx, const void *src, size_t len), + void *dest_ctx) +{ + ctx->dest = dest; + ctx->dest_ctx = dest_ctx; +} + +/** + * \brief Get the last event. + * + * If an event was raised, then this function returns the event value, and + * also clears it, thereby allowing the decoder to proceed. If no event + * was raised since the last call to `br_pem_decoder_event()`, then this + * function returns 0. + * + * \param ctx decoder context. + * \return the raised event, or 0. + */ +int br_pem_decoder_event(br_pem_decoder_context *ctx); + +/** + * \brief Event: start of object. + * + * This event is raised when the start of a new object has been detected. + * The object name (normalised to uppercase) can be accessed with + * `br_pem_decoder_name()`. + */ +#define BR_PEM_BEGIN_OBJ 1 + +/** + * \brief Event: end of object. + * + * This event is raised when the end of the current object is reached + * (normally, i.e. with no decoding error). + */ +#define BR_PEM_END_OBJ 2 + +/** + * \brief Event: decoding error. + * + * This event is raised when decoding fails within an object. + * This formally closes the current object and brings the decoder back + * to the "out of any object" state. The offending line in the source + * is consumed. + */ +#define BR_PEM_ERROR 3 + +/** + * \brief Get the name of the encountered object. + * + * The encountered object name is defined only when the "start of object" + * event is raised. That name is normalised to uppercase (for ASCII letters + * only) and does not include trailing dashes. + * + * \param ctx decoder context. + * \return the current object name. + */ +static inline const char * +br_pem_decoder_name(br_pem_decoder_context *ctx) +{ + return ctx->name; +} + +/** + * \brief Encode an object in PEM. + * + * This function encodes the provided binary object (`data`, of length `len` + * bytes) into PEM. The `banner` text will be included in the header and + * footer (e.g. use `"CERTIFICATE"` to get a `"BEGIN CERTIFICATE"` header). + * + * The length (in characters) of the PEM output is returned; that length + * does NOT include the terminating zero, that this function nevertheless + * adds. If using the returned value for allocation purposes, the allocated + * buffer size MUST be at least one byte larger than the returned size. + * + * If `dest` is `NULL`, then the encoding does not happen; however, the + * length of the encoded object is still computed and returned. + * + * The `data` pointer may be `NULL` only if `len` is zero (when encoding + * an object of length zero, which is not very useful), or when `dest` + * is `NULL` (in that case, source data bytes are ignored). + * + * Some `flags` can be specified to alter the encoding behaviour: + * + * - If `BR_PEM_LINE64` is set, then line-breaking will occur after + * every 64 characters of output, instead of the default of 76. + * + * - If `BR_PEM_CRLF` is set, then end-of-line sequence will use + * CR+LF instead of a single LF. + * + * The `data` and `dest` buffers may overlap, in which case the source + * binary data is destroyed in the process. Note that the PEM-encoded output + * is always larger than the source binary. + * + * \param dest the destination buffer (or `NULL`). + * \param data the source buffer (can be `NULL` in some cases). + * \param len the source length (in bytes). + * \param banner the PEM banner expression. + * \param flags the behavioural flags. + * \return the PEM object length (in characters), EXCLUDING the final zero. + */ +size_t br_pem_encode(void *dest, const void *data, size_t len, + const char *banner, unsigned flags); + +/** + * \brief PEM encoding flag: split lines at 64 characters. + */ +#define BR_PEM_LINE64 0x0001 + +/** + * \brief PEM encoding flag: use CR+LF line endings. + */ +#define BR_PEM_CRLF 0x0002 + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/bearssl/bearssl_prf.h b/include/bearssl/bearssl_prf.h new file mode 100644 index 00000000..fdf608c8 --- /dev/null +++ b/include/bearssl/bearssl_prf.h @@ -0,0 +1,150 @@ +/* + * Copyright (c) 2016 Thomas Pornin + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef BR_BEARSSL_PRF_H__ +#define BR_BEARSSL_PRF_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** \file bearssl_prf.h + * + * # The TLS PRF + * + * The "PRF" is the pseudorandom function used internally during the + * SSL/TLS handshake, notably to expand negotiated shared secrets into + * the symmetric encryption keys that will be used to process the + * application data. + * + * TLS 1.0 and 1.1 define a PRF that is based on both MD5 and SHA-1. This + * is implemented by the `br_tls10_prf()` function. + * + * TLS 1.2 redefines the PRF, using an explicit hash function. The + * `br_tls12_sha256_prf()` and `br_tls12_sha384_prf()` functions apply that + * PRF with, respectively, SHA-256 and SHA-384. Most standard cipher suites + * rely on the SHA-256 based PRF, but some use SHA-384. + * + * The PRF always uses as input three parameters: a "secret" (some + * bytes), a "label" (ASCII string), and a "seed" (again some bytes). An + * arbitrary output length can be produced. The "seed" is provided as an + * arbitrary number of binary chunks, that gets internally concatenated. + */ + +/** + * \brief Type for a seed chunk. + * + * Each chunk may have an arbitrary length, and may be empty (no byte at + * all). If the chunk length is zero, then the pointer to the chunk data + * may be `NULL`. + */ +typedef struct { + /** + * \brief Pointer to the chunk data. + */ + const void *data; + + /** + * \brief Chunk length (in bytes). + */ + size_t len; +} br_tls_prf_seed_chunk; + +/** + * \brief PRF implementation for TLS 1.0 and 1.1. + * + * This PRF is the one specified by TLS 1.0 and 1.1. It internally uses + * MD5 and SHA-1. + * + * \param dst destination buffer. + * \param len output length (in bytes). + * \param secret secret value (key) for this computation. + * \param secret_len length of "secret" (in bytes). + * \param label PRF label (zero-terminated ASCII string). + * \param seed_num number of seed chunks. + * \param seed seed chnks for this computation (usually non-secret). + */ +void br_tls10_prf(void *dst, size_t len, + const void *secret, size_t secret_len, const char *label, + size_t seed_num, const br_tls_prf_seed_chunk *seed); + +/** + * \brief PRF implementation for TLS 1.2, with SHA-256. + * + * This PRF is the one specified by TLS 1.2, when the underlying hash + * function is SHA-256. + * + * \param dst destination buffer. + * \param len output length (in bytes). + * \param secret secret value (key) for this computation. + * \param secret_len length of "secret" (in bytes). + * \param label PRF label (zero-terminated ASCII string). + * \param seed_num number of seed chunks. + * \param seed seed chnks for this computation (usually non-secret). + */ +void br_tls12_sha256_prf(void *dst, size_t len, + const void *secret, size_t secret_len, const char *label, + size_t seed_num, const br_tls_prf_seed_chunk *seed); + +/** + * \brief PRF implementation for TLS 1.2, with SHA-384. + * + * This PRF is the one specified by TLS 1.2, when the underlying hash + * function is SHA-384. + * + * \param dst destination buffer. + * \param len output length (in bytes). + * \param secret secret value (key) for this computation. + * \param secret_len length of "secret" (in bytes). + * \param label PRF label (zero-terminated ASCII string). + * \param seed_num number of seed chunks. + * \param seed seed chnks for this computation (usually non-secret). + */ +void br_tls12_sha384_prf(void *dst, size_t len, + const void *secret, size_t secret_len, const char *label, + size_t seed_num, const br_tls_prf_seed_chunk *seed); + +/** + * brief A convenient type name for a PRF implementation. + * + * \param dst destination buffer. + * \param len output length (in bytes). + * \param secret secret value (key) for this computation. + * \param secret_len length of "secret" (in bytes). + * \param label PRF label (zero-terminated ASCII string). + * \param seed_num number of seed chunks. + * \param seed seed chnks for this computation (usually non-secret). + */ +typedef void (*br_tls_prf_impl)(void *dst, size_t len, + const void *secret, size_t secret_len, const char *label, + size_t seed_num, const br_tls_prf_seed_chunk *seed); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/bearssl/bearssl_rand.h b/include/bearssl/bearssl_rand.h new file mode 100644 index 00000000..0a9f544f --- /dev/null +++ b/include/bearssl/bearssl_rand.h @@ -0,0 +1,397 @@ +/* + * Copyright (c) 2016 Thomas Pornin + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef BR_BEARSSL_RAND_H__ +#define BR_BEARSSL_RAND_H__ + +#include +#include + +#include "bearssl_block.h" +#include "bearssl_hash.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** \file bearssl_rand.h + * + * # Pseudo-Random Generators + * + * A PRNG is a state-based engine that outputs pseudo-random bytes on + * demand. It is initialized with an initial seed, and additional seed + * bytes can be added afterwards. Bytes produced depend on the seeds and + * also on the exact sequence of calls (including sizes requested for + * each call). + * + * + * ## Procedural and OOP API + * + * For the PRNG of name "`xxx`", two API are provided. The _procedural_ + * API defined a context structure `br_xxx_context` and three functions: + * + * - `br_xxx_init()` + * + * Initialise the context with an initial seed. + * + * - `br_xxx_generate()` + * + * Produce some pseudo-random bytes. + * + * - `br_xxx_update()` + * + * Inject some additional seed. + * + * The initialisation function sets the first context field (`vtable`) + * to a pointer to the vtable that supports the OOP API. The OOP API + * provides access to the same functions through function pointers, + * named `init()`, `generate()` and `update()`. + * + * Note that the context initialisation method may accept additional + * parameters, provided as a 'const void *' pointer at API level. These + * additional parameters depend on the implemented PRNG. + * + * + * ## HMAC_DRBG + * + * HMAC_DRBG is defined in [NIST SP 800-90A Revision + * 1](http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-90Ar1.pdf). + * It uses HMAC repeatedly, over some configurable underlying hash + * function. In BearSSL, it is implemented under the "`hmac_drbg`" name. + * The "extra parameters" pointer for context initialisation should be + * set to a pointer to the vtable for the underlying hash function (e.g. + * pointer to `br_sha256_vtable` to use HMAC_DRBG with SHA-256). + * + * According to the NIST standard, each request shall produce up to + * 219 bits (i.e. 64 kB of data); moreover, the context shall + * be reseeded at least once every 248 requests. This + * implementation does not maintain the reseed counter (the threshold is + * too high to be reached in practice) and does not object to producing + * more than 64 kB in a single request; thus, the code cannot fail, + * which corresponds to the fact that the API has no room for error + * codes. However, this implies that requesting more than 64 kB in one + * `generate()` request, or making more than 248 requests + * without reseeding, is formally out of NIST specification. There is + * no currently known security penalty for exceeding the NIST limits, + * and, in any case, HMAC_DRBG usage in implementing SSL/TLS always + * stays much below these thresholds. + * + * + * ## AESCTR_DRBG + * + * AESCTR_DRBG is a custom PRNG based on AES-128 in CTR mode. This is + * meant to be used only in situations where you are desperate for + * speed, and have an hardware-optimized AES/CTR implementation. Whether + * this will yield perceptible improvements depends on what you use the + * pseudorandom bytes for, and how many you want; for instance, RSA key + * pair generation uses a substantial amount of randomness, and using + * AESCTR_DRBG instead of HMAC_DRBG yields a 15 to 20% increase in key + * generation speed on a recent x86 CPU (Intel Core i7-6567U at 3.30 GHz). + * + * Internally, it uses CTR mode with successive counter values, starting + * at zero (counter value expressed over 128 bits, big-endian convention). + * The counter is not allowed to reach 32768; thus, every 32768*16 bytes + * at most, the `update()` function is run (on an empty seed, if none is + * provided). The `update()` function computes the new AES-128 key by + * applying a custom hash function to the concatenation of a state-dependent + * word (encryption of an all-one block with the current key) and the new + * seed. The custom hash function uses Hirose's construction over AES-256; + * see the comments in `aesctr_drbg.c` for details. + * + * This DRBG does not follow an existing standard, and thus should be + * considered as inadequate for production use until it has been properly + * analysed. + */ + +/** + * \brief Class type for PRNG implementations. + * + * A `br_prng_class` instance references the methods implementing a PRNG. + * Constant instances of this structure are defined for each implemented + * PRNG. Such instances are also called "vtables". + */ +typedef struct br_prng_class_ br_prng_class; +struct br_prng_class_ { + /** + * \brief Size (in bytes) of the context structure appropriate for + * running this PRNG. + */ + size_t context_size; + + /** + * \brief Initialisation method. + * + * The context to initialise is provided as a pointer to its + * first field (the vtable pointer); this function sets that + * first field to a pointer to the vtable. + * + * The extra parameters depend on the implementation; each + * implementation defines what kind of extra parameters it + * expects (if any). + * + * Requirements on the initial seed depend on the implemented + * PRNG. + * + * \param ctx PRNG context to initialise. + * \param params extra parameters for the PRNG. + * \param seed initial seed. + * \param seed_len initial seed length (in bytes). + */ + void (*init)(const br_prng_class **ctx, const void *params, + const void *seed, size_t seed_len); + + /** + * \brief Random bytes generation. + * + * This method produces `len` pseudorandom bytes, in the `out` + * buffer. The context is updated accordingly. + * + * \param ctx PRNG context. + * \param out output buffer. + * \param len number of pseudorandom bytes to produce. + */ + void (*generate)(const br_prng_class **ctx, void *out, size_t len); + + /** + * \brief Inject additional seed bytes. + * + * The provided seed bytes are added into the PRNG internal + * entropy pool. + * + * \param ctx PRNG context. + * \param seed additional seed. + * \param seed_len additional seed length (in bytes). + */ + void (*update)(const br_prng_class **ctx, + const void *seed, size_t seed_len); +}; + +/** + * \brief Context for HMAC_DRBG. + * + * The context contents are opaque, except the first field, which + * supports OOP. + */ +typedef struct { + /** + * \brief Pointer to the vtable. + * + * This field is set with the initialisation method/function. + */ + const br_prng_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + unsigned char K[64]; + unsigned char V[64]; + const br_hash_class *digest_class; +#endif +} br_hmac_drbg_context; + +/** + * \brief Statically allocated, constant vtable for HMAC_DRBG. + */ +extern const br_prng_class br_hmac_drbg_vtable; + +/** + * \brief HMAC_DRBG initialisation. + * + * The context to initialise is provided as a pointer to its first field + * (the vtable pointer); this function sets that first field to a + * pointer to the vtable. + * + * The `seed` value is what is called, in NIST terminology, the + * concatenation of the "seed", "nonce" and "personalization string", in + * that order. + * + * The `digest_class` parameter defines the underlying hash function. + * Formally, the NIST standard specifies that the hash function shall + * be only SHA-1 or one of the SHA-2 functions. This implementation also + * works with any other implemented hash function (such as MD5), but + * this is non-standard and therefore not recommended. + * + * \param ctx HMAC_DRBG context to initialise. + * \param digest_class vtable for the underlying hash function. + * \param seed initial seed. + * \param seed_len initial seed length (in bytes). + */ +void br_hmac_drbg_init(br_hmac_drbg_context *ctx, + const br_hash_class *digest_class, const void *seed, size_t seed_len); + +/** + * \brief Random bytes generation with HMAC_DRBG. + * + * This method produces `len` pseudorandom bytes, in the `out` + * buffer. The context is updated accordingly. Formally, requesting + * more than 65536 bytes in one request falls out of specification + * limits (but it won't fail). + * + * \param ctx HMAC_DRBG context. + * \param out output buffer. + * \param len number of pseudorandom bytes to produce. + */ +void br_hmac_drbg_generate(br_hmac_drbg_context *ctx, void *out, size_t len); + +/** + * \brief Inject additional seed bytes in HMAC_DRBG. + * + * The provided seed bytes are added into the HMAC_DRBG internal + * entropy pool. The process does not _replace_ existing entropy, + * thus pushing non-random bytes (i.e. bytes which are known to the + * attackers) does not degrade the overall quality of generated bytes. + * + * \param ctx HMAC_DRBG context. + * \param seed additional seed. + * \param seed_len additional seed length (in bytes). + */ +void br_hmac_drbg_update(br_hmac_drbg_context *ctx, + const void *seed, size_t seed_len); + +/** + * \brief Get the hash function implementation used by a given instance of + * HMAC_DRBG. + * + * This calls MUST NOT be performed on a context which was not + * previously initialised. + * + * \param ctx HMAC_DRBG context. + * \return the hash function vtable. + */ +static inline const br_hash_class * +br_hmac_drbg_get_hash(const br_hmac_drbg_context *ctx) +{ + return ctx->digest_class; +} + +/** + * \brief Type for a provider of entropy seeds. + * + * A "seeder" is a function that is able to obtain random values from + * some source and inject them as entropy seed in a PRNG. A seeder + * shall guarantee that the total entropy of the injected seed is large + * enough to seed a PRNG for purposes of cryptographic key generation + * (i.e. at least 128 bits). + * + * A seeder may report a failure to obtain adequate entropy. Seeders + * shall endeavour to fix themselves transient errors by trying again; + * thus, callers may consider reported errors as permanent. + * + * \param ctx PRNG context to seed. + * \return 1 on success, 0 on error. + */ +typedef int (*br_prng_seeder)(const br_prng_class **ctx); + +/** + * \brief Get a seeder backed by the operating system or hardware. + * + * Get a seeder that feeds on RNG facilities provided by the current + * operating system or hardware. If no such facility is known, then 0 + * is returned. + * + * If `name` is not `NULL`, then `*name` is set to a symbolic string + * that identifies the seeder implementation. If no seeder is returned + * and `name` is not `NULL`, then `*name` is set to a pointer to the + * constant string `"none"`. + * + * \param name receiver for seeder name, or `NULL`. + * \return the system seeder, if available, or 0. + */ +br_prng_seeder br_prng_seeder_system(const char **name); + +/** + * \brief Context for AESCTR_DRBG. + * + * The context contents are opaque, except the first field, which + * supports OOP. + */ +typedef struct { + /** + * \brief Pointer to the vtable. + * + * This field is set with the initialisation method/function. + */ + const br_prng_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + br_aes_gen_ctr_keys sk; + uint32_t cc; +#endif +} br_aesctr_drbg_context; + +/** + * \brief Statically allocated, constant vtable for AESCTR_DRBG. + */ +extern const br_prng_class br_aesctr_drbg_vtable; + +/** + * \brief AESCTR_DRBG initialisation. + * + * The context to initialise is provided as a pointer to its first field + * (the vtable pointer); this function sets that first field to a + * pointer to the vtable. + * + * The internal AES key is first set to the all-zero key; then, the + * `br_aesctr_drbg_update()` function is called with the provided `seed`. + * The call is performed even if the seed length (`seed_len`) is zero. + * + * The `aesctr` parameter defines the underlying AES/CTR implementation. + * + * \param ctx AESCTR_DRBG context to initialise. + * \param aesctr vtable for the AES/CTR implementation. + * \param seed initial seed (can be `NULL` if `seed_len` is zero). + * \param seed_len initial seed length (in bytes). + */ +void br_aesctr_drbg_init(br_aesctr_drbg_context *ctx, + const br_block_ctr_class *aesctr, const void *seed, size_t seed_len); + +/** + * \brief Random bytes generation with AESCTR_DRBG. + * + * This method produces `len` pseudorandom bytes, in the `out` + * buffer. The context is updated accordingly. + * + * \param ctx AESCTR_DRBG context. + * \param out output buffer. + * \param len number of pseudorandom bytes to produce. + */ +void br_aesctr_drbg_generate(br_aesctr_drbg_context *ctx, + void *out, size_t len); + +/** + * \brief Inject additional seed bytes in AESCTR_DRBG. + * + * The provided seed bytes are added into the AESCTR_DRBG internal + * entropy pool. The process does not _replace_ existing entropy, + * thus pushing non-random bytes (i.e. bytes which are known to the + * attackers) does not degrade the overall quality of generated bytes. + * + * \param ctx AESCTR_DRBG context. + * \param seed additional seed. + * \param seed_len additional seed length (in bytes). + */ +void br_aesctr_drbg_update(br_aesctr_drbg_context *ctx, + const void *seed, size_t seed_len); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/bearssl/bearssl_rsa.h b/include/bearssl/bearssl_rsa.h new file mode 100644 index 00000000..0a069fd3 --- /dev/null +++ b/include/bearssl/bearssl_rsa.h @@ -0,0 +1,1655 @@ +/* + * Copyright (c) 2016 Thomas Pornin + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef BR_BEARSSL_RSA_H__ +#define BR_BEARSSL_RSA_H__ + +#include +#include + +#include "bearssl_hash.h" +#include "bearssl_rand.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** \file bearssl_rsa.h + * + * # RSA + * + * This file documents the RSA implementations provided with BearSSL. + * Note that the SSL engine accesses these implementations through a + * configurable API, so it is possible to, for instance, run a SSL + * server which uses a RSA engine which is not based on this code. + * + * ## Key Elements + * + * RSA public and private keys consist in lists of big integers. All + * such integers are represented with big-endian unsigned notation: + * first byte is the most significant, and the value is positive (so + * there is no dedicated "sign bit"). Public and private key structures + * thus contain, for each such integer, a pointer to the first value byte + * (`unsigned char *`), and a length (`size_t`) which is the number of + * relevant bytes. As a general rule, minimal-length encoding is not + * enforced: values may have extra leading bytes of value 0. + * + * RSA public keys consist in two integers: + * + * - the modulus (`n`); + * - the public exponent (`e`). + * + * RSA private keys, as defined in + * [PKCS#1](https://tools.ietf.org/html/rfc3447), contain eight integers: + * + * - the modulus (`n`); + * - the public exponent (`e`); + * - the private exponent (`d`); + * - the first prime factor (`p`); + * - the second prime factor (`q`); + * - the first reduced exponent (`dp`, which is `d` modulo `p-1`); + * - the second reduced exponent (`dq`, which is `d` modulo `q-1`); + * - the CRT coefficient (`iq`, the inverse of `q` modulo `p`). + * + * However, the implementations defined in BearSSL use only five of + * these integers: `p`, `q`, `dp`, `dq` and `iq`. + * + * ## Security Features and Limitations + * + * The implementations contained in BearSSL have the following limitations + * and features: + * + * - They are constant-time. This means that the execution time and + * memory access pattern may depend on the _lengths_ of the private + * key components, but not on their value, nor on the value of + * the operand. Note that this property is not achieved through + * random masking, but "true" constant-time code. + * + * - They support only private keys with two prime factors. RSA private + * keys with three or more prime factors are nominally supported, but + * rarely used; they may offer faster operations, at the expense of + * more code and potentially a reduction in security if there are + * "too many" prime factors. + * + * - The public exponent may have arbitrary length. Of course, it is + * a good idea to keep public exponents small, so that public key + * operations are fast; but, contrary to some widely deployed + * implementations, BearSSL has no problem with public exponents + * longer than 32 bits. + * + * - The two prime factors of the modulus need not have the same length + * (but severely imbalanced factor lengths might reduce security). + * Similarly, there is no requirement that the first factor (`p`) + * be greater than the second factor (`q`). + * + * - Prime factors and modulus must be smaller than a compile-time limit. + * This is made necessary by the use of fixed-size stack buffers, and + * the limit has been adjusted to keep stack usage under 2 kB for the + * RSA operations. Currently, the maximum modulus size is 4096 bits, + * and the maximum prime factor size is 2080 bits. + * + * - The RSA functions themselves do not enforce lower size limits, + * except that which is absolutely necessary for the operation to + * mathematically make sense (e.g. a PKCS#1 v1.5 signature with + * SHA-1 requires a modulus of at least 361 bits). It is up to users + * of this code to enforce size limitations when appropriate (e.g. + * the X.509 validation engine, by default, rejects RSA keys of + * less than 1017 bits). + * + * - Within the size constraints expressed above, arbitrary bit lengths + * are supported. There is no requirement that prime factors or + * modulus have a size multiple of 8 or 16. + * + * - When verifying PKCS#1 v1.5 signatures, both variants of the hash + * function identifying header (with and without the ASN.1 NULL) are + * supported. When producing such signatures, the variant with the + * ASN.1 NULL is used. + * + * ## Implementations + * + * Three RSA implementations are included: + * + * - The **i32** implementation internally represents big integers + * as arrays of 32-bit integers. It is perfunctory and portable, + * but not very efficient. + * + * - The **i31** implementation uses 32-bit integers, each containing + * 31 bits worth of integer data. The i31 implementation is somewhat + * faster than the i32 implementation (the reduced integer size makes + * carry propagation easier) for a similar code footprint, but uses + * very slightly larger stack buffers (about 4% bigger). + * + * - The **i62** implementation is similar to the i31 implementation, + * except that it internally leverages the 64x64->128 multiplication + * opcode. This implementation is available only on architectures + * where such an opcode exists. It is much faster than i31. + * + * - The **i15** implementation uses 16-bit integers, each containing + * 15 bits worth of integer data. Multiplication results fit on + * 32 bits, so this won't use the "widening" multiplication routine + * on ARM Cortex M0/M0+, for much better performance and constant-time + * execution. + */ + +/** + * \brief RSA public key. + * + * The structure references the modulus and the public exponent. Both + * integers use unsigned big-endian representation; extra leading bytes + * of value 0 are allowed. + */ +typedef struct { + /** \brief Modulus. */ + unsigned char *n; + /** \brief Modulus length (in bytes). */ + size_t nlen; + /** \brief Public exponent. */ + unsigned char *e; + /** \brief Public exponent length (in bytes). */ + size_t elen; +} br_rsa_public_key; + +/** + * \brief RSA private key. + * + * The structure references the private factors, reduced private + * exponents, and CRT coefficient. It also contains the bit length of + * the modulus. The big integers use unsigned big-endian representation; + * extra leading bytes of value 0 are allowed. However, the modulus bit + * length (`n_bitlen`) MUST be exact. + */ +typedef struct { + /** \brief Modulus bit length (in bits, exact value). */ + uint32_t n_bitlen; + /** \brief First prime factor. */ + unsigned char *p; + /** \brief First prime factor length (in bytes). */ + size_t plen; + /** \brief Second prime factor. */ + unsigned char *q; + /** \brief Second prime factor length (in bytes). */ + size_t qlen; + /** \brief First reduced private exponent. */ + unsigned char *dp; + /** \brief First reduced private exponent length (in bytes). */ + size_t dplen; + /** \brief Second reduced private exponent. */ + unsigned char *dq; + /** \brief Second reduced private exponent length (in bytes). */ + size_t dqlen; + /** \brief CRT coefficient. */ + unsigned char *iq; + /** \brief CRT coefficient length (in bytes). */ + size_t iqlen; +} br_rsa_private_key; + +/** + * \brief Type for a RSA public key engine. + * + * The public key engine performs the modular exponentiation of the + * provided value with the public exponent. The value is modified in + * place. + * + * The value length (`xlen`) is verified to have _exactly_ the same + * length as the modulus (actual modulus length, without extra leading + * zeros in the modulus representation in memory). If the length does + * not match, then this function returns 0 and `x[]` is unmodified. + * + * It `xlen` is correct, then `x[]` is modified. Returned value is 1 + * on success, 0 on error. Error conditions include an oversized `x[]` + * (the array has the same length as the modulus, but the numerical value + * is not lower than the modulus) and an invalid modulus (e.g. an even + * integer). If an error is reported, then the new contents of `x[]` are + * unspecified. + * + * \param x operand to exponentiate. + * \param xlen length of the operand (in bytes). + * \param pk RSA public key. + * \return 1 on success, 0 on error. + */ +typedef uint32_t (*br_rsa_public)(unsigned char *x, size_t xlen, + const br_rsa_public_key *pk); + +/** + * \brief Type for a RSA signature verification engine (PKCS#1 v1.5). + * + * Parameters are: + * + * - The signature itself. The provided array is NOT modified. + * + * - The encoded OID for the hash function. The provided array must begin + * with a single byte that contains the length of the OID value (in + * bytes), followed by exactly that many bytes. This parameter may + * also be `NULL`, in which case the raw hash value should be used + * with the PKCS#1 v1.5 "type 1" padding (as used in SSL/TLS up + * to TLS-1.1, with a 36-byte hash value). + * + * - The hash output length, in bytes. + * + * - The public key. + * + * - An output buffer for the hash value. The caller must still compare + * it with the hash of the data over which the signature is computed. + * + * **Constraints:** + * + * - Hash length MUST be no more than 64 bytes. + * + * - OID value length MUST be no more than 32 bytes (i.e. `hash_oid[0]` + * must have a value in the 0..32 range, inclusive). + * + * This function verifies that the signature length (`xlen`) matches the + * modulus length (this function returns 0 on mismatch). If the modulus + * size exceeds the maximum supported RSA size, then the function also + * returns 0. + * + * Returned value is 1 on success, 0 on error. + * + * Implementations of this type need not be constant-time. + * + * \param x signature buffer. + * \param xlen signature length (in bytes). + * \param hash_oid encoded hash algorithm OID (or `NULL`). + * \param hash_len expected hash value length (in bytes). + * \param pk RSA public key. + * \param hash_out output buffer for the hash value. + * \return 1 on success, 0 on error. + */ +typedef uint32_t (*br_rsa_pkcs1_vrfy)(const unsigned char *x, size_t xlen, + const unsigned char *hash_oid, size_t hash_len, + const br_rsa_public_key *pk, unsigned char *hash_out); + +/** + * \brief Type for a RSA signature verification engine (PSS). + * + * Parameters are: + * + * - The signature itself. The provided array is NOT modified. + * + * - The hash function which was used to hash the message. + * + * - The hash function to use with MGF1 within the PSS padding. This + * is not necessarily the same hash function as the one which was + * used to hash the signed message. + * + * - The hashed message (as an array of bytes). + * + * - The PSS salt length (in bytes). + * + * - The public key. + * + * **Constraints:** + * + * - Hash message length MUST be no more than 64 bytes. + * + * Note that, contrary to PKCS#1 v1.5 signature, the hash value of the + * signed data cannot be extracted from the signature; it must be + * provided to the verification function. + * + * This function verifies that the signature length (`xlen`) matches the + * modulus length (this function returns 0 on mismatch). If the modulus + * size exceeds the maximum supported RSA size, then the function also + * returns 0. + * + * Returned value is 1 on success, 0 on error. + * + * Implementations of this type need not be constant-time. + * + * \param x signature buffer. + * \param xlen signature length (in bytes). + * \param hf_data hash function applied on the message. + * \param hf_mgf1 hash function to use with MGF1. + * \param hash hash value of the signed message. + * \param salt_len PSS salt length (in bytes). + * \param pk RSA public key. + * \return 1 on success, 0 on error. + */ +typedef uint32_t (*br_rsa_pss_vrfy)(const unsigned char *x, size_t xlen, + const br_hash_class *hf_data, const br_hash_class *hf_mgf1, + const void *hash, size_t salt_len, const br_rsa_public_key *pk); + +/** + * \brief Type for a RSA encryption engine (OAEP). + * + * Parameters are: + * + * - A source of random bytes. The source must be already initialized. + * + * - A hash function, used internally with the mask generation function + * (MGF1). + * + * - A label. The `label` pointer may be `NULL` if `label_len` is zero + * (an empty label, which is the default in PKCS#1 v2.2). + * + * - The public key. + * + * - The destination buffer. Its maximum length (in bytes) is provided; + * if that length is lower than the public key length, then an error + * is reported. + * + * - The source message. + * + * The encrypted message output has exactly the same length as the modulus + * (mathematical length, in bytes, not counting extra leading zeros in the + * modulus representation in the public key). + * + * The source message (`src`, length `src_len`) may overlap with the + * destination buffer (`dst`, length `dst_max_len`). + * + * This function returns the actual encrypted message length, in bytes; + * on error, zero is returned. An error is reported if the output buffer + * is not large enough, or the public is invalid, or the public key + * modulus exceeds the maximum supported RSA size. + * + * \param rnd source of random bytes. + * \param dig hash function to use with MGF1. + * \param label label value (may be `NULL` if `label_len` is zero). + * \param label_len label length, in bytes. + * \param pk RSA public key. + * \param dst destination buffer. + * \param dst_max_len destination buffer length (maximum encrypted data size). + * \param src message to encrypt. + * \param src_len source message length (in bytes). + * \return encrypted message length (in bytes), or 0 on error. + */ +typedef size_t (*br_rsa_oaep_encrypt)( + const br_prng_class **rnd, const br_hash_class *dig, + const void *label, size_t label_len, + const br_rsa_public_key *pk, + void *dst, size_t dst_max_len, + const void *src, size_t src_len); + +/** + * \brief Type for a RSA private key engine. + * + * The `x[]` buffer is modified in place, and its length is inferred from + * the modulus length (`x[]` is assumed to have a length of + * `(sk->n_bitlen+7)/8` bytes). + * + * Returned value is 1 on success, 0 on error. + * + * \param x operand to exponentiate. + * \param sk RSA private key. + * \return 1 on success, 0 on error. + */ +typedef uint32_t (*br_rsa_private)(unsigned char *x, + const br_rsa_private_key *sk); + +/** + * \brief Type for a RSA signature generation engine (PKCS#1 v1.5). + * + * Parameters are: + * + * - The encoded OID for the hash function. The provided array must begin + * with a single byte that contains the length of the OID value (in + * bytes), followed by exactly that many bytes. This parameter may + * also be `NULL`, in which case the raw hash value should be used + * with the PKCS#1 v1.5 "type 1" padding (as used in SSL/TLS up + * to TLS-1.1, with a 36-byte hash value). + * + * - The hash value computes over the data to sign (its length is + * expressed in bytes). + * + * - The RSA private key. + * + * - The output buffer, that receives the signature. + * + * Returned value is 1 on success, 0 on error. Error conditions include + * a too small modulus for the provided hash OID and value, or some + * invalid key parameters. The signature length is exactly + * `(sk->n_bitlen+7)/8` bytes. + * + * This function is expected to be constant-time with regards to the + * private key bytes (lengths of the modulus and the individual factors + * may leak, though) and to the hashed data. + * + * \param hash_oid encoded hash algorithm OID (or `NULL`). + * \param hash hash value. + * \param hash_len hash value length (in bytes). + * \param sk RSA private key. + * \param x output buffer for the signature value. + * \return 1 on success, 0 on error. + */ +typedef uint32_t (*br_rsa_pkcs1_sign)(const unsigned char *hash_oid, + const unsigned char *hash, size_t hash_len, + const br_rsa_private_key *sk, unsigned char *x); + +/** + * \brief Type for a RSA signature generation engine (PSS). + * + * Parameters are: + * + * - An initialized PRNG for salt generation. If the salt length is + * zero (`salt_len` parameter), then the PRNG is optional (this is + * not the typical case, as the security proof of RSA/PSS is + * tighter when a non-empty salt is used). + * + * - The hash function which was used to hash the message. + * + * - The hash function to use with MGF1 within the PSS padding. This + * is not necessarily the same function as the one used to hash the + * message. + * + * - The hashed message. + * + * - The salt length, in bytes. + * + * - The RSA private key. + * + * - The output buffer, that receives the signature. + * + * Returned value is 1 on success, 0 on error. Error conditions include + * a too small modulus for the provided hash and salt lengths, or some + * invalid key parameters. The signature length is exactly + * `(sk->n_bitlen+7)/8` bytes. + * + * This function is expected to be constant-time with regards to the + * private key bytes (lengths of the modulus and the individual factors + * may leak, though) and to the hashed data. + * + * \param rng PRNG for salt generation (`NULL` if `salt_len` is zero). + * \param hf_data hash function used to hash the signed data. + * \param hf_mgf1 hash function to use with MGF1. + * \param hash hashed message. + * \param salt_len salt length (in bytes). + * \param sk RSA private key. + * \param x output buffer for the signature value. + * \return 1 on success, 0 on error. + */ +typedef uint32_t (*br_rsa_pss_sign)(const br_prng_class **rng, + const br_hash_class *hf_data, const br_hash_class *hf_mgf1, + const unsigned char *hash_value, size_t salt_len, + const br_rsa_private_key *sk, unsigned char *x); + +/** + * \brief Encoded OID for SHA-1 (in RSA PKCS#1 signatures). + */ +#define BR_HASH_OID_SHA1 \ + ((const unsigned char *)"\x05\x2B\x0E\x03\x02\x1A") + +/** + * \brief Encoded OID for SHA-224 (in RSA PKCS#1 signatures). + */ +#define BR_HASH_OID_SHA224 \ + ((const unsigned char *)"\x09\x60\x86\x48\x01\x65\x03\x04\x02\x04") + +/** + * \brief Encoded OID for SHA-256 (in RSA PKCS#1 signatures). + */ +#define BR_HASH_OID_SHA256 \ + ((const unsigned char *)"\x09\x60\x86\x48\x01\x65\x03\x04\x02\x01") + +/** + * \brief Encoded OID for SHA-384 (in RSA PKCS#1 signatures). + */ +#define BR_HASH_OID_SHA384 \ + ((const unsigned char *)"\x09\x60\x86\x48\x01\x65\x03\x04\x02\x02") + +/** + * \brief Encoded OID for SHA-512 (in RSA PKCS#1 signatures). + */ +#define BR_HASH_OID_SHA512 \ + ((const unsigned char *)"\x09\x60\x86\x48\x01\x65\x03\x04\x02\x03") + +/** + * \brief Type for a RSA decryption engine (OAEP). + * + * Parameters are: + * + * - A hash function, used internally with the mask generation function + * (MGF1). + * + * - A label. The `label` pointer may be `NULL` if `label_len` is zero + * (an empty label, which is the default in PKCS#1 v2.2). + * + * - The private key. + * + * - The source and destination buffer. The buffer initially contains + * the encrypted message; the buffer contents are altered, and the + * decrypted message is written at the start of that buffer + * (decrypted message is always shorter than the encrypted message). + * + * If decryption fails in any way, then `*len` is unmodified, and the + * function returns 0. Otherwise, `*len` is set to the decrypted message + * length, and 1 is returned. The implementation is responsible for + * checking that the input message length matches the key modulus length, + * and that the padding is correct. + * + * Implementations MUST use constant-time check of the validity of the + * OAEP padding, at least until the leading byte and hash value have + * been checked. Whether overall decryption worked, and the length of + * the decrypted message, may leak. + * + * \param dig hash function to use with MGF1. + * \param label label value (may be `NULL` if `label_len` is zero). + * \param label_len label length, in bytes. + * \param sk RSA private key. + * \param data input/output buffer. + * \param len encrypted/decrypted message length. + * \return 1 on success, 0 on error. + */ +typedef uint32_t (*br_rsa_oaep_decrypt)( + const br_hash_class *dig, const void *label, size_t label_len, + const br_rsa_private_key *sk, void *data, size_t *len); + +/* + * RSA "i32" engine. Integers are internally represented as arrays of + * 32-bit integers, and the core multiplication primitive is the + * 32x32->64 multiplication. + */ + +/** + * \brief RSA public key engine "i32". + * + * \see br_rsa_public + * + * \param x operand to exponentiate. + * \param xlen length of the operand (in bytes). + * \param pk RSA public key. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i32_public(unsigned char *x, size_t xlen, + const br_rsa_public_key *pk); + +/** + * \brief RSA signature verification engine "i32" (PKCS#1 v1.5 signatures). + * + * \see br_rsa_pkcs1_vrfy + * + * \param x signature buffer. + * \param xlen signature length (in bytes). + * \param hash_oid encoded hash algorithm OID (or `NULL`). + * \param hash_len expected hash value length (in bytes). + * \param pk RSA public key. + * \param hash_out output buffer for the hash value. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i32_pkcs1_vrfy(const unsigned char *x, size_t xlen, + const unsigned char *hash_oid, size_t hash_len, + const br_rsa_public_key *pk, unsigned char *hash_out); + +/** + * \brief RSA signature verification engine "i32" (PSS signatures). + * + * \see br_rsa_pss_vrfy + * + * \param x signature buffer. + * \param xlen signature length (in bytes). + * \param hf_data hash function applied on the message. + * \param hf_mgf1 hash function to use with MGF1. + * \param hash hash value of the signed message. + * \param salt_len PSS salt length (in bytes). + * \param pk RSA public key. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i32_pss_vrfy(const unsigned char *x, size_t xlen, + const br_hash_class *hf_data, const br_hash_class *hf_mgf1, + const void *hash, size_t salt_len, const br_rsa_public_key *pk); + +/** + * \brief RSA private key engine "i32". + * + * \see br_rsa_private + * + * \param x operand to exponentiate. + * \param sk RSA private key. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i32_private(unsigned char *x, + const br_rsa_private_key *sk); + +/** + * \brief RSA signature generation engine "i32" (PKCS#1 v1.5 signatures). + * + * \see br_rsa_pkcs1_sign + * + * \param hash_oid encoded hash algorithm OID (or `NULL`). + * \param hash hash value. + * \param hash_len hash value length (in bytes). + * \param sk RSA private key. + * \param x output buffer for the hash value. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i32_pkcs1_sign(const unsigned char *hash_oid, + const unsigned char *hash, size_t hash_len, + const br_rsa_private_key *sk, unsigned char *x); + +/** + * \brief RSA signature generation engine "i32" (PSS signatures). + * + * \see br_rsa_pss_sign + * + * \param rng PRNG for salt generation (`NULL` if `salt_len` is zero). + * \param hf_data hash function used to hash the signed data. + * \param hf_mgf1 hash function to use with MGF1. + * \param hash hashed message. + * \param salt_len salt length (in bytes). + * \param sk RSA private key. + * \param x output buffer for the signature value. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i32_pss_sign(const br_prng_class **rng, + const br_hash_class *hf_data, const br_hash_class *hf_mgf1, + const unsigned char *hash_value, size_t salt_len, + const br_rsa_private_key *sk, unsigned char *x); + +/* + * RSA "i31" engine. Similar to i32, but only 31 bits are used per 32-bit + * word. This uses slightly more stack space (about 4% more) and code + * space, but it quite faster. + */ + +/** + * \brief RSA public key engine "i31". + * + * \see br_rsa_public + * + * \param x operand to exponentiate. + * \param xlen length of the operand (in bytes). + * \param pk RSA public key. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i31_public(unsigned char *x, size_t xlen, + const br_rsa_public_key *pk); + +/** + * \brief RSA signature verification engine "i31" (PKCS#1 v1.5 signatures). + * + * \see br_rsa_pkcs1_vrfy + * + * \param x signature buffer. + * \param xlen signature length (in bytes). + * \param hash_oid encoded hash algorithm OID (or `NULL`). + * \param hash_len expected hash value length (in bytes). + * \param pk RSA public key. + * \param hash_out output buffer for the hash value. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i31_pkcs1_vrfy(const unsigned char *x, size_t xlen, + const unsigned char *hash_oid, size_t hash_len, + const br_rsa_public_key *pk, unsigned char *hash_out); + +/** + * \brief RSA signature verification engine "i31" (PSS signatures). + * + * \see br_rsa_pss_vrfy + * + * \param x signature buffer. + * \param xlen signature length (in bytes). + * \param hf_data hash function applied on the message. + * \param hf_mgf1 hash function to use with MGF1. + * \param hash hash value of the signed message. + * \param salt_len PSS salt length (in bytes). + * \param pk RSA public key. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i31_pss_vrfy(const unsigned char *x, size_t xlen, + const br_hash_class *hf_data, const br_hash_class *hf_mgf1, + const void *hash, size_t salt_len, const br_rsa_public_key *pk); + +/** + * \brief RSA private key engine "i31". + * + * \see br_rsa_private + * + * \param x operand to exponentiate. + * \param sk RSA private key. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i31_private(unsigned char *x, + const br_rsa_private_key *sk); + +/** + * \brief RSA signature generation engine "i31" (PKCS#1 v1.5 signatures). + * + * \see br_rsa_pkcs1_sign + * + * \param hash_oid encoded hash algorithm OID (or `NULL`). + * \param hash hash value. + * \param hash_len hash value length (in bytes). + * \param sk RSA private key. + * \param x output buffer for the hash value. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i31_pkcs1_sign(const unsigned char *hash_oid, + const unsigned char *hash, size_t hash_len, + const br_rsa_private_key *sk, unsigned char *x); + +/** + * \brief RSA signature generation engine "i31" (PSS signatures). + * + * \see br_rsa_pss_sign + * + * \param rng PRNG for salt generation (`NULL` if `salt_len` is zero). + * \param hf_data hash function used to hash the signed data. + * \param hf_mgf1 hash function to use with MGF1. + * \param hash hashed message. + * \param salt_len salt length (in bytes). + * \param sk RSA private key. + * \param x output buffer for the signature value. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i31_pss_sign(const br_prng_class **rng, + const br_hash_class *hf_data, const br_hash_class *hf_mgf1, + const unsigned char *hash_value, size_t salt_len, + const br_rsa_private_key *sk, unsigned char *x); + +/* + * RSA "i62" engine. Similar to i31, but internal multiplication use + * 64x64->128 multiplications. This is available only on architecture + * that offer such an opcode. + */ + +/** + * \brief RSA public key engine "i62". + * + * This function is defined only on architecture that offer a 64x64->128 + * opcode. Use `br_rsa_i62_public_get()` to dynamically obtain a pointer + * to that function. + * + * \see br_rsa_public + * + * \param x operand to exponentiate. + * \param xlen length of the operand (in bytes). + * \param pk RSA public key. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i62_public(unsigned char *x, size_t xlen, + const br_rsa_public_key *pk); + +/** + * \brief RSA signature verification engine "i62" (PKCS#1 v1.5 signatures). + * + * This function is defined only on architecture that offer a 64x64->128 + * opcode. Use `br_rsa_i62_pkcs1_vrfy_get()` to dynamically obtain a pointer + * to that function. + * + * \see br_rsa_pkcs1_vrfy + * + * \param x signature buffer. + * \param xlen signature length (in bytes). + * \param hash_oid encoded hash algorithm OID (or `NULL`). + * \param hash_len expected hash value length (in bytes). + * \param pk RSA public key. + * \param hash_out output buffer for the hash value. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i62_pkcs1_vrfy(const unsigned char *x, size_t xlen, + const unsigned char *hash_oid, size_t hash_len, + const br_rsa_public_key *pk, unsigned char *hash_out); + +/** + * \brief RSA signature verification engine "i62" (PSS signatures). + * + * This function is defined only on architecture that offer a 64x64->128 + * opcode. Use `br_rsa_i62_pss_vrfy_get()` to dynamically obtain a pointer + * to that function. + * + * \see br_rsa_pss_vrfy + * + * \param x signature buffer. + * \param xlen signature length (in bytes). + * \param hf_data hash function applied on the message. + * \param hf_mgf1 hash function to use with MGF1. + * \param hash hash value of the signed message. + * \param salt_len PSS salt length (in bytes). + * \param pk RSA public key. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i62_pss_vrfy(const unsigned char *x, size_t xlen, + const br_hash_class *hf_data, const br_hash_class *hf_mgf1, + const void *hash, size_t salt_len, const br_rsa_public_key *pk); + +/** + * \brief RSA private key engine "i62". + * + * This function is defined only on architecture that offer a 64x64->128 + * opcode. Use `br_rsa_i62_private_get()` to dynamically obtain a pointer + * to that function. + * + * \see br_rsa_private + * + * \param x operand to exponentiate. + * \param sk RSA private key. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i62_private(unsigned char *x, + const br_rsa_private_key *sk); + +/** + * \brief RSA signature generation engine "i62" (PKCS#1 v1.5 signatures). + * + * This function is defined only on architecture that offer a 64x64->128 + * opcode. Use `br_rsa_i62_pkcs1_sign_get()` to dynamically obtain a pointer + * to that function. + * + * \see br_rsa_pkcs1_sign + * + * \param hash_oid encoded hash algorithm OID (or `NULL`). + * \param hash hash value. + * \param hash_len hash value length (in bytes). + * \param sk RSA private key. + * \param x output buffer for the hash value. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i62_pkcs1_sign(const unsigned char *hash_oid, + const unsigned char *hash, size_t hash_len, + const br_rsa_private_key *sk, unsigned char *x); + +/** + * \brief RSA signature generation engine "i62" (PSS signatures). + * + * This function is defined only on architecture that offer a 64x64->128 + * opcode. Use `br_rsa_i62_pss_sign_get()` to dynamically obtain a pointer + * to that function. + * + * \see br_rsa_pss_sign + * + * \param rng PRNG for salt generation (`NULL` if `salt_len` is zero). + * \param hf_data hash function used to hash the signed data. + * \param hf_mgf1 hash function to use with MGF1. + * \param hash hashed message. + * \param salt_len salt length (in bytes). + * \param sk RSA private key. + * \param x output buffer for the signature value. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i62_pss_sign(const br_prng_class **rng, + const br_hash_class *hf_data, const br_hash_class *hf_mgf1, + const unsigned char *hash_value, size_t salt_len, + const br_rsa_private_key *sk, unsigned char *x); + +/** + * \brief Get the RSA "i62" implementation (public key operations), + * if available. + * + * \return the implementation, or 0. + */ +br_rsa_public br_rsa_i62_public_get(void); + +/** + * \brief Get the RSA "i62" implementation (PKCS#1 v1.5 signature verification), + * if available. + * + * \return the implementation, or 0. + */ +br_rsa_pkcs1_vrfy br_rsa_i62_pkcs1_vrfy_get(void); + +/** + * \brief Get the RSA "i62" implementation (PSS signature verification), + * if available. + * + * \return the implementation, or 0. + */ +br_rsa_pss_vrfy br_rsa_i62_pss_vrfy_get(void); + +/** + * \brief Get the RSA "i62" implementation (private key operations), + * if available. + * + * \return the implementation, or 0. + */ +br_rsa_private br_rsa_i62_private_get(void); + +/** + * \brief Get the RSA "i62" implementation (PKCS#1 v1.5 signature generation), + * if available. + * + * \return the implementation, or 0. + */ +br_rsa_pkcs1_sign br_rsa_i62_pkcs1_sign_get(void); + +/** + * \brief Get the RSA "i62" implementation (PSS signature generation), + * if available. + * + * \return the implementation, or 0. + */ +br_rsa_pss_sign br_rsa_i62_pss_sign_get(void); + +/** + * \brief Get the RSA "i62" implementation (OAEP encryption), + * if available. + * + * \return the implementation, or 0. + */ +br_rsa_oaep_encrypt br_rsa_i62_oaep_encrypt_get(void); + +/** + * \brief Get the RSA "i62" implementation (OAEP decryption), + * if available. + * + * \return the implementation, or 0. + */ +br_rsa_oaep_decrypt br_rsa_i62_oaep_decrypt_get(void); + +/* + * RSA "i15" engine. Integers are represented as 15-bit integers, so + * the code uses only 32-bit multiplication (no 64-bit result), which + * is vastly faster (and constant-time) on the ARM Cortex M0/M0+. + */ + +/** + * \brief RSA public key engine "i15". + * + * \see br_rsa_public + * + * \param x operand to exponentiate. + * \param xlen length of the operand (in bytes). + * \param pk RSA public key. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i15_public(unsigned char *x, size_t xlen, + const br_rsa_public_key *pk); + +/** + * \brief RSA signature verification engine "i15" (PKCS#1 v1.5 signatures). + * + * \see br_rsa_pkcs1_vrfy + * + * \param x signature buffer. + * \param xlen signature length (in bytes). + * \param hash_oid encoded hash algorithm OID (or `NULL`). + * \param hash_len expected hash value length (in bytes). + * \param pk RSA public key. + * \param hash_out output buffer for the hash value. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i15_pkcs1_vrfy(const unsigned char *x, size_t xlen, + const unsigned char *hash_oid, size_t hash_len, + const br_rsa_public_key *pk, unsigned char *hash_out); + +/** + * \brief RSA signature verification engine "i15" (PSS signatures). + * + * \see br_rsa_pss_vrfy + * + * \param x signature buffer. + * \param xlen signature length (in bytes). + * \param hf_data hash function applied on the message. + * \param hf_mgf1 hash function to use with MGF1. + * \param hash hash value of the signed message. + * \param salt_len PSS salt length (in bytes). + * \param pk RSA public key. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i15_pss_vrfy(const unsigned char *x, size_t xlen, + const br_hash_class *hf_data, const br_hash_class *hf_mgf1, + const void *hash, size_t salt_len, const br_rsa_public_key *pk); + +/** + * \brief RSA private key engine "i15". + * + * \see br_rsa_private + * + * \param x operand to exponentiate. + * \param sk RSA private key. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i15_private(unsigned char *x, + const br_rsa_private_key *sk); + +/** + * \brief RSA signature generation engine "i15" (PKCS#1 v1.5 signatures). + * + * \see br_rsa_pkcs1_sign + * + * \param hash_oid encoded hash algorithm OID (or `NULL`). + * \param hash hash value. + * \param hash_len hash value length (in bytes). + * \param sk RSA private key. + * \param x output buffer for the hash value. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i15_pkcs1_sign(const unsigned char *hash_oid, + const unsigned char *hash, size_t hash_len, + const br_rsa_private_key *sk, unsigned char *x); + +/** + * \brief RSA signature generation engine "i15" (PSS signatures). + * + * \see br_rsa_pss_sign + * + * \param rng PRNG for salt generation (`NULL` if `salt_len` is zero). + * \param hf_data hash function used to hash the signed data. + * \param hf_mgf1 hash function to use with MGF1. + * \param hash hashed message. + * \param salt_len salt length (in bytes). + * \param sk RSA private key. + * \param x output buffer for the signature value. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i15_pss_sign(const br_prng_class **rng, + const br_hash_class *hf_data, const br_hash_class *hf_mgf1, + const unsigned char *hash_value, size_t salt_len, + const br_rsa_private_key *sk, unsigned char *x); + +/** + * \brief Get "default" RSA implementation (public-key operations). + * + * This returns the preferred implementation of RSA (public-key operations) + * on the current system. + * + * \return the default implementation. + */ +br_rsa_public br_rsa_public_get_default(void); + +/** + * \brief Get "default" RSA implementation (private-key operations). + * + * This returns the preferred implementation of RSA (private-key operations) + * on the current system. + * + * \return the default implementation. + */ +br_rsa_private br_rsa_private_get_default(void); + +/** + * \brief Get "default" RSA implementation (PKCS#1 v1.5 signature verification). + * + * This returns the preferred implementation of RSA (signature verification) + * on the current system. + * + * \return the default implementation. + */ +br_rsa_pkcs1_vrfy br_rsa_pkcs1_vrfy_get_default(void); + +/** + * \brief Get "default" RSA implementation (PSS signature verification). + * + * This returns the preferred implementation of RSA (signature verification) + * on the current system. + * + * \return the default implementation. + */ +br_rsa_pss_vrfy br_rsa_pss_vrfy_get_default(void); + +/** + * \brief Get "default" RSA implementation (PKCS#1 v1.5 signature generation). + * + * This returns the preferred implementation of RSA (signature generation) + * on the current system. + * + * \return the default implementation. + */ +br_rsa_pkcs1_sign br_rsa_pkcs1_sign_get_default(void); + +/** + * \brief Get "default" RSA implementation (PSS signature generation). + * + * This returns the preferred implementation of RSA (signature generation) + * on the current system. + * + * \return the default implementation. + */ +br_rsa_pss_sign br_rsa_pss_sign_get_default(void); + +/** + * \brief Get "default" RSA implementation (OAEP encryption). + * + * This returns the preferred implementation of RSA (OAEP encryption) + * on the current system. + * + * \return the default implementation. + */ +br_rsa_oaep_encrypt br_rsa_oaep_encrypt_get_default(void); + +/** + * \brief Get "default" RSA implementation (OAEP decryption). + * + * This returns the preferred implementation of RSA (OAEP decryption) + * on the current system. + * + * \return the default implementation. + */ +br_rsa_oaep_decrypt br_rsa_oaep_decrypt_get_default(void); + +/** + * \brief RSA decryption helper, for SSL/TLS. + * + * This function performs the RSA decryption for a RSA-based key exchange + * in a SSL/TLS server. The provided RSA engine is used. The `data` + * parameter points to the value to decrypt, of length `len` bytes. On + * success, the 48-byte pre-master secret is copied into `data`, starting + * at the first byte of that buffer; on error, the contents of `data` + * become indeterminate. + * + * This function first checks that the provided value length (`len`) is + * not lower than 59 bytes, and matches the RSA modulus length; if neither + * of this property is met, then this function returns 0 and the buffer + * is unmodified. + * + * Otherwise, decryption and then padding verification are performed, both + * in constant-time. A decryption error, or a bad padding, or an + * incorrect decrypted value length are reported with a returned value of + * 0; on success, 1 is returned. The caller (SSL server engine) is supposed + * to proceed with a random pre-master secret in case of error. + * + * \param core RSA private key engine. + * \param sk RSA private key. + * \param data input/output buffer. + * \param len length (in bytes) of the data to decrypt. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_ssl_decrypt(br_rsa_private core, const br_rsa_private_key *sk, + unsigned char *data, size_t len); + +/** + * \brief RSA encryption (OAEP) with the "i15" engine. + * + * \see br_rsa_oaep_encrypt + * + * \param rnd source of random bytes. + * \param dig hash function to use with MGF1. + * \param label label value (may be `NULL` if `label_len` is zero). + * \param label_len label length, in bytes. + * \param pk RSA public key. + * \param dst destination buffer. + * \param dst_max_len destination buffer length (maximum encrypted data size). + * \param src message to encrypt. + * \param src_len source message length (in bytes). + * \return encrypted message length (in bytes), or 0 on error. + */ +size_t br_rsa_i15_oaep_encrypt( + const br_prng_class **rnd, const br_hash_class *dig, + const void *label, size_t label_len, + const br_rsa_public_key *pk, + void *dst, size_t dst_max_len, + const void *src, size_t src_len); + +/** + * \brief RSA decryption (OAEP) with the "i15" engine. + * + * \see br_rsa_oaep_decrypt + * + * \param dig hash function to use with MGF1. + * \param label label value (may be `NULL` if `label_len` is zero). + * \param label_len label length, in bytes. + * \param sk RSA private key. + * \param data input/output buffer. + * \param len encrypted/decrypted message length. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i15_oaep_decrypt( + const br_hash_class *dig, const void *label, size_t label_len, + const br_rsa_private_key *sk, void *data, size_t *len); + +/** + * \brief RSA encryption (OAEP) with the "i31" engine. + * + * \see br_rsa_oaep_encrypt + * + * \param rnd source of random bytes. + * \param dig hash function to use with MGF1. + * \param label label value (may be `NULL` if `label_len` is zero). + * \param label_len label length, in bytes. + * \param pk RSA public key. + * \param dst destination buffer. + * \param dst_max_len destination buffer length (maximum encrypted data size). + * \param src message to encrypt. + * \param src_len source message length (in bytes). + * \return encrypted message length (in bytes), or 0 on error. + */ +size_t br_rsa_i31_oaep_encrypt( + const br_prng_class **rnd, const br_hash_class *dig, + const void *label, size_t label_len, + const br_rsa_public_key *pk, + void *dst, size_t dst_max_len, + const void *src, size_t src_len); + +/** + * \brief RSA decryption (OAEP) with the "i31" engine. + * + * \see br_rsa_oaep_decrypt + * + * \param dig hash function to use with MGF1. + * \param label label value (may be `NULL` if `label_len` is zero). + * \param label_len label length, in bytes. + * \param sk RSA private key. + * \param data input/output buffer. + * \param len encrypted/decrypted message length. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i31_oaep_decrypt( + const br_hash_class *dig, const void *label, size_t label_len, + const br_rsa_private_key *sk, void *data, size_t *len); + +/** + * \brief RSA encryption (OAEP) with the "i32" engine. + * + * \see br_rsa_oaep_encrypt + * + * \param rnd source of random bytes. + * \param dig hash function to use with MGF1. + * \param label label value (may be `NULL` if `label_len` is zero). + * \param label_len label length, in bytes. + * \param pk RSA public key. + * \param dst destination buffer. + * \param dst_max_len destination buffer length (maximum encrypted data size). + * \param src message to encrypt. + * \param src_len source message length (in bytes). + * \return encrypted message length (in bytes), or 0 on error. + */ +size_t br_rsa_i32_oaep_encrypt( + const br_prng_class **rnd, const br_hash_class *dig, + const void *label, size_t label_len, + const br_rsa_public_key *pk, + void *dst, size_t dst_max_len, + const void *src, size_t src_len); + +/** + * \brief RSA decryption (OAEP) with the "i32" engine. + * + * \see br_rsa_oaep_decrypt + * + * \param dig hash function to use with MGF1. + * \param label label value (may be `NULL` if `label_len` is zero). + * \param label_len label length, in bytes. + * \param sk RSA private key. + * \param data input/output buffer. + * \param len encrypted/decrypted message length. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i32_oaep_decrypt( + const br_hash_class *dig, const void *label, size_t label_len, + const br_rsa_private_key *sk, void *data, size_t *len); + +/** + * \brief RSA encryption (OAEP) with the "i62" engine. + * + * This function is defined only on architecture that offer a 64x64->128 + * opcode. Use `br_rsa_i62_oaep_encrypt_get()` to dynamically obtain a pointer + * to that function. + * + * \see br_rsa_oaep_encrypt + * + * \param rnd source of random bytes. + * \param dig hash function to use with MGF1. + * \param label label value (may be `NULL` if `label_len` is zero). + * \param label_len label length, in bytes. + * \param pk RSA public key. + * \param dst destination buffer. + * \param dst_max_len destination buffer length (maximum encrypted data size). + * \param src message to encrypt. + * \param src_len source message length (in bytes). + * \return encrypted message length (in bytes), or 0 on error. + */ +size_t br_rsa_i62_oaep_encrypt( + const br_prng_class **rnd, const br_hash_class *dig, + const void *label, size_t label_len, + const br_rsa_public_key *pk, + void *dst, size_t dst_max_len, + const void *src, size_t src_len); + +/** + * \brief RSA decryption (OAEP) with the "i62" engine. + * + * This function is defined only on architecture that offer a 64x64->128 + * opcode. Use `br_rsa_i62_oaep_decrypt_get()` to dynamically obtain a pointer + * to that function. + * + * \see br_rsa_oaep_decrypt + * + * \param dig hash function to use with MGF1. + * \param label label value (may be `NULL` if `label_len` is zero). + * \param label_len label length, in bytes. + * \param sk RSA private key. + * \param data input/output buffer. + * \param len encrypted/decrypted message length. + * \return 1 on success, 0 on error. + */ +uint32_t br_rsa_i62_oaep_decrypt( + const br_hash_class *dig, const void *label, size_t label_len, + const br_rsa_private_key *sk, void *data, size_t *len); + +/** + * \brief Get buffer size to hold RSA private key elements. + * + * This macro returns the length (in bytes) of the buffer needed to + * receive the elements of a RSA private key, as generated by one of + * the `br_rsa_*_keygen()` functions. If the provided size is a constant + * expression, then the whole macro evaluates to a constant expression. + * + * \param size target key size (modulus size, in bits) + * \return the length of the private key buffer, in bytes. + */ +#define BR_RSA_KBUF_PRIV_SIZE(size) (5 * (((size) + 15) >> 4)) + +/** + * \brief Get buffer size to hold RSA public key elements. + * + * This macro returns the length (in bytes) of the buffer needed to + * receive the elements of a RSA public key, as generated by one of + * the `br_rsa_*_keygen()` functions. If the provided size is a constant + * expression, then the whole macro evaluates to a constant expression. + * + * \param size target key size (modulus size, in bits) + * \return the length of the public key buffer, in bytes. + */ +#define BR_RSA_KBUF_PUB_SIZE(size) (4 + (((size) + 7) >> 3)) + +/** + * \brief Type for RSA key pair generator implementation. + * + * This function generates a new RSA key pair whose modulus has bit + * length `size` bits. The private key elements are written in the + * `kbuf_priv` buffer, and pointer values and length fields to these + * elements are populated in the provided private key structure `sk`. + * Similarly, the public key elements are written in `kbuf_pub`, with + * pointers and lengths set in `pk`. + * + * If `pk` is `NULL`, then `kbuf_pub` may be `NULL`, and only the + * private key is set. + * + * If `pubexp` is not zero, then its value will be used as public + * exponent. Valid RSA public exponent values are odd integers + * greater than 1. If `pubexp` is zero, then the public exponent will + * have value 3. + * + * The provided PRNG (`rng_ctx`) must have already been initialized + * and seeded. + * + * Returned value is 1 on success, 0 on error. An error is reported + * if the requested range is outside of the supported key sizes, or + * if an invalid non-zero public exponent value is provided. Supported + * range starts at 512 bits, and up to an implementation-defined + * maximum (by default 4096 bits). Note that key sizes up to 768 bits + * have been broken in practice, and sizes lower than 2048 bits are + * usually considered to be weak and should not be used. + * + * \param rng_ctx source PRNG context (already initialized) + * \param sk RSA private key structure (destination) + * \param kbuf_priv buffer for private key elements + * \param pk RSA public key structure (destination), or `NULL` + * \param kbuf_pub buffer for public key elements, or `NULL` + * \param size target RSA modulus size (in bits) + * \param pubexp public exponent to use, or zero + * \return 1 on success, 0 on error (invalid parameters) + */ +typedef uint32_t (*br_rsa_keygen)( + const br_prng_class **rng_ctx, + br_rsa_private_key *sk, void *kbuf_priv, + br_rsa_public_key *pk, void *kbuf_pub, + unsigned size, uint32_t pubexp); + +/** + * \brief RSA key pair generation with the "i15" engine. + * + * \see br_rsa_keygen + * + * \param rng_ctx source PRNG context (already initialized) + * \param sk RSA private key structure (destination) + * \param kbuf_priv buffer for private key elements + * \param pk RSA public key structure (destination), or `NULL` + * \param kbuf_pub buffer for public key elements, or `NULL` + * \param size target RSA modulus size (in bits) + * \param pubexp public exponent to use, or zero + * \return 1 on success, 0 on error (invalid parameters) + */ +uint32_t br_rsa_i15_keygen( + const br_prng_class **rng_ctx, + br_rsa_private_key *sk, void *kbuf_priv, + br_rsa_public_key *pk, void *kbuf_pub, + unsigned size, uint32_t pubexp); + +/** + * \brief RSA key pair generation with the "i31" engine. + * + * \see br_rsa_keygen + * + * \param rng_ctx source PRNG context (already initialized) + * \param sk RSA private key structure (destination) + * \param kbuf_priv buffer for private key elements + * \param pk RSA public key structure (destination), or `NULL` + * \param kbuf_pub buffer for public key elements, or `NULL` + * \param size target RSA modulus size (in bits) + * \param pubexp public exponent to use, or zero + * \return 1 on success, 0 on error (invalid parameters) + */ +uint32_t br_rsa_i31_keygen( + const br_prng_class **rng_ctx, + br_rsa_private_key *sk, void *kbuf_priv, + br_rsa_public_key *pk, void *kbuf_pub, + unsigned size, uint32_t pubexp); + +/** + * \brief RSA key pair generation with the "i62" engine. + * + * This function is defined only on architecture that offer a 64x64->128 + * opcode. Use `br_rsa_i62_keygen_get()` to dynamically obtain a pointer + * to that function. + * + * \see br_rsa_keygen + * + * \param rng_ctx source PRNG context (already initialized) + * \param sk RSA private key structure (destination) + * \param kbuf_priv buffer for private key elements + * \param pk RSA public key structure (destination), or `NULL` + * \param kbuf_pub buffer for public key elements, or `NULL` + * \param size target RSA modulus size (in bits) + * \param pubexp public exponent to use, or zero + * \return 1 on success, 0 on error (invalid parameters) + */ +uint32_t br_rsa_i62_keygen( + const br_prng_class **rng_ctx, + br_rsa_private_key *sk, void *kbuf_priv, + br_rsa_public_key *pk, void *kbuf_pub, + unsigned size, uint32_t pubexp); + +/** + * \brief Get the RSA "i62" implementation (key pair generation), + * if available. + * + * \return the implementation, or 0. + */ +br_rsa_keygen br_rsa_i62_keygen_get(void); + +/** + * \brief Get "default" RSA implementation (key pair generation). + * + * This returns the preferred implementation of RSA (key pair generation) + * on the current system. + * + * \return the default implementation. + */ +br_rsa_keygen br_rsa_keygen_get_default(void); + +/** + * \brief Type for a modulus computing function. + * + * Such a function computes the public modulus from the private key. The + * encoded modulus (unsigned big-endian) is written on `n`, and the size + * (in bytes) is returned. If `n` is `NULL`, then the size is returned but + * the modulus itself is not computed. + * + * If the key size exceeds an internal limit, 0 is returned. + * + * \param n destination buffer (or `NULL`). + * \param sk RSA private key. + * \return the modulus length (in bytes), or 0. + */ +typedef size_t (*br_rsa_compute_modulus)(void *n, const br_rsa_private_key *sk); + +/** + * \brief Recompute RSA modulus ("i15" engine). + * + * \see br_rsa_compute_modulus + * + * \param n destination buffer (or `NULL`). + * \param sk RSA private key. + * \return the modulus length (in bytes), or 0. + */ +size_t br_rsa_i15_compute_modulus(void *n, const br_rsa_private_key *sk); + +/** + * \brief Recompute RSA modulus ("i31" engine). + * + * \see br_rsa_compute_modulus + * + * \param n destination buffer (or `NULL`). + * \param sk RSA private key. + * \return the modulus length (in bytes), or 0. + */ +size_t br_rsa_i31_compute_modulus(void *n, const br_rsa_private_key *sk); + +/** + * \brief Get "default" RSA implementation (recompute modulus). + * + * This returns the preferred implementation of RSA (recompute modulus) + * on the current system. + * + * \return the default implementation. + */ +br_rsa_compute_modulus br_rsa_compute_modulus_get_default(void); + +/** + * \brief Type for a public exponent computing function. + * + * Such a function recomputes the public exponent from the private key. + * 0 is returned if any of the following occurs: + * + * - Either `p` or `q` is not equal to 3 modulo 4. + * + * - The public exponent does not fit on 32 bits. + * + * - An internal limit is exceeded. + * + * - The private key is invalid in some way. + * + * For all private keys produced by the key generator functions + * (`br_rsa_keygen` type), this function succeeds and returns the true + * public exponent. The public exponent is always an odd integer greater + * than 1. + * + * \return the public exponent, or 0. + */ +typedef uint32_t (*br_rsa_compute_pubexp)(const br_rsa_private_key *sk); + +/** + * \brief Recompute RSA public exponent ("i15" engine). + * + * \see br_rsa_compute_pubexp + * + * \return the public exponent, or 0. + */ +uint32_t br_rsa_i15_compute_pubexp(const br_rsa_private_key *sk); + +/** + * \brief Recompute RSA public exponent ("i31" engine). + * + * \see br_rsa_compute_pubexp + * + * \return the public exponent, or 0. + */ +uint32_t br_rsa_i31_compute_pubexp(const br_rsa_private_key *sk); + +/** + * \brief Get "default" RSA implementation (recompute public exponent). + * + * This returns the preferred implementation of RSA (recompute public + * exponent) on the current system. + * + * \return the default implementation. + */ +br_rsa_compute_pubexp br_rsa_compute_pubexp_get_default(void); + +/** + * \brief Type for a private exponent computing function. + * + * An RSA private key (`br_rsa_private_key`) contains two reduced + * private exponents, which are sufficient to perform private key + * operations. However, standard encoding formats for RSA private keys + * require also a copy of the complete private exponent (non-reduced), + * which this function recomputes. + * + * This function suceeds if all the following conditions hold: + * + * - Both private factors `p` and `q` are equal to 3 modulo 4. + * + * - The provided public exponent `pubexp` is correct, and, in particular, + * is odd, relatively prime to `p-1` and `q-1`, and greater than 1. + * + * - No internal storage limit is exceeded. + * + * For all private keys produced by the key generator functions + * (`br_rsa_keygen` type), this function succeeds. Note that the API + * restricts the public exponent to a maximum size of 32 bits. + * + * The encoded private exponent is written in `d` (unsigned big-endian + * convention), and the length (in bytes) is returned. If `d` is `NULL`, + * then the exponent is not written anywhere, but the length is still + * returned. On error, 0 is returned. + * + * Not all error conditions are detected when `d` is `NULL`; therefore, the + * returned value shall be checked also when actually producing the value. + * + * \param d destination buffer (or `NULL`). + * \param sk RSA private key. + * \param pubexp the public exponent. + * \return the private exponent length (in bytes), or 0. + */ +typedef size_t (*br_rsa_compute_privexp)(void *d, + const br_rsa_private_key *sk, uint32_t pubexp); + +/** + * \brief Recompute RSA private exponent ("i15" engine). + * + * \see br_rsa_compute_privexp + * + * \param d destination buffer (or `NULL`). + * \param sk RSA private key. + * \param pubexp the public exponent. + * \return the private exponent length (in bytes), or 0. + */ +size_t br_rsa_i15_compute_privexp(void *d, + const br_rsa_private_key *sk, uint32_t pubexp); + +/** + * \brief Recompute RSA private exponent ("i31" engine). + * + * \see br_rsa_compute_privexp + * + * \param d destination buffer (or `NULL`). + * \param sk RSA private key. + * \param pubexp the public exponent. + * \return the private exponent length (in bytes), or 0. + */ +size_t br_rsa_i31_compute_privexp(void *d, + const br_rsa_private_key *sk, uint32_t pubexp); + +/** + * \brief Get "default" RSA implementation (recompute private exponent). + * + * This returns the preferred implementation of RSA (recompute private + * exponent) on the current system. + * + * \return the default implementation. + */ +br_rsa_compute_privexp br_rsa_compute_privexp_get_default(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/bearssl/bearssl_ssl.h b/include/bearssl/bearssl_ssl.h new file mode 100644 index 00000000..d760dff2 --- /dev/null +++ b/include/bearssl/bearssl_ssl.h @@ -0,0 +1,4308 @@ +/* + * Copyright (c) 2016 Thomas Pornin + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef BR_BEARSSL_SSL_H__ +#define BR_BEARSSL_SSL_H__ + +#include +#include + +#include "bearssl_block.h" +#include "bearssl_hash.h" +#include "bearssl_hmac.h" +#include "bearssl_prf.h" +#include "bearssl_rand.h" +#include "bearssl_x509.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** \file bearssl_ssl.h + * + * # SSL + * + * For an overview of the SSL/TLS API, see [the BearSSL Web + * site](https://www.bearssl.org/api1.html). + * + * The `BR_TLS_*` constants correspond to the standard cipher suites and + * their values in the [IANA + * registry](http://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-4). + * + * The `BR_ALERT_*` constants are for standard TLS alert messages. When + * a fatal alert message is sent of received, then the SSL engine context + * status is set to the sum of that alert value (an integer in the 0..255 + * range) and a fixed offset (`BR_ERR_SEND_FATAL_ALERT` for a sent alert, + * `BR_ERR_RECV_FATAL_ALERT` for a received alert). + */ + +/** \brief Optimal input buffer size. */ +#define BR_SSL_BUFSIZE_INPUT (16384 + 325) + +/** \brief Optimal output buffer size. */ +#define BR_SSL_BUFSIZE_OUTPUT (16384 + 85) + +/** \brief Optimal buffer size for monodirectional engine + (shared input/output buffer). */ +#define BR_SSL_BUFSIZE_MONO BR_SSL_BUFSIZE_INPUT + +/** \brief Optimal buffer size for bidirectional engine + (single buffer split into two separate input/output buffers). */ +#define BR_SSL_BUFSIZE_BIDI (BR_SSL_BUFSIZE_INPUT + BR_SSL_BUFSIZE_OUTPUT) + +/* + * Constants for known SSL/TLS protocol versions (SSL 3.0, TLS 1.0, TLS 1.1 + * and TLS 1.2). Note that though there is a constant for SSL 3.0, that + * protocol version is not actually supported. + */ + +/** \brief Protocol version: SSL 3.0 (unsupported). */ +#define BR_SSL30 0x0300 +/** \brief Protocol version: TLS 1.0. */ +#define BR_TLS10 0x0301 +/** \brief Protocol version: TLS 1.1. */ +#define BR_TLS11 0x0302 +/** \brief Protocol version: TLS 1.2. */ +#define BR_TLS12 0x0303 + +/* + * Error constants. They are used to report the reason why a context has + * been marked as failed. + * + * Implementation note: SSL-level error codes should be in the 1..31 + * range. The 32..63 range is for certificate decoding and validation + * errors. Received fatal alerts imply an error code in the 256..511 range. + */ + +/** \brief SSL status: no error so far (0). */ +#define BR_ERR_OK 0 + +/** \brief SSL status: caller-provided parameter is incorrect. */ +#define BR_ERR_BAD_PARAM 1 + +/** \brief SSL status: operation requested by the caller cannot be applied + with the current context state (e.g. reading data while outgoing data + is waiting to be sent). */ +#define BR_ERR_BAD_STATE 2 + +/** \brief SSL status: incoming protocol or record version is unsupported. */ +#define BR_ERR_UNSUPPORTED_VERSION 3 + +/** \brief SSL status: incoming record version does not match the expected + version. */ +#define BR_ERR_BAD_VERSION 4 + +/** \brief SSL status: incoming record length is invalid. */ +#define BR_ERR_BAD_LENGTH 5 + +/** \brief SSL status: incoming record is too large to be processed, or + buffer is too small for the handshake message to send. */ +#define BR_ERR_TOO_LARGE 6 + +/** \brief SSL status: decryption found an invalid padding, or the record + MAC is not correct. */ +#define BR_ERR_BAD_MAC 7 + +/** \brief SSL status: no initial entropy was provided, and none can be + obtained from the OS. */ +#define BR_ERR_NO_RANDOM 8 + +/** \brief SSL status: incoming record type is unknown. */ +#define BR_ERR_UNKNOWN_TYPE 9 + +/** \brief SSL status: incoming record or message has wrong type with + regards to the current engine state. */ +#define BR_ERR_UNEXPECTED 10 + +/** \brief SSL status: ChangeCipherSpec message from the peer has invalid + contents. */ +#define BR_ERR_BAD_CCS 12 + +/** \brief SSL status: alert message from the peer has invalid contents + (odd length). */ +#define BR_ERR_BAD_ALERT 13 + +/** \brief SSL status: incoming handshake message decoding failed. */ +#define BR_ERR_BAD_HANDSHAKE 14 + +/** \brief SSL status: ServerHello contains a session ID which is larger + than 32 bytes. */ +#define BR_ERR_OVERSIZED_ID 15 + +/** \brief SSL status: server wants to use a cipher suite that we did + not claim to support. This is also reported if we tried to advertise + a cipher suite that we do not support. */ +#define BR_ERR_BAD_CIPHER_SUITE 16 + +/** \brief SSL status: server wants to use a compression that we did not + claim to support. */ +#define BR_ERR_BAD_COMPRESSION 17 + +/** \brief SSL status: server's max fragment length does not match + client's. */ +#define BR_ERR_BAD_FRAGLEN 18 + +/** \brief SSL status: secure renegotiation failed. */ +#define BR_ERR_BAD_SECRENEG 19 + +/** \brief SSL status: server sent an extension type that we did not + announce, or used the same extension type several times in a single + ServerHello. */ +#define BR_ERR_EXTRA_EXTENSION 20 + +/** \brief SSL status: invalid Server Name Indication contents (when + used by the server, this extension shall be empty). */ +#define BR_ERR_BAD_SNI 21 + +/** \brief SSL status: invalid ServerHelloDone from the server (length + is not 0). */ +#define BR_ERR_BAD_HELLO_DONE 22 + +/** \brief SSL status: internal limit exceeded (e.g. server's public key + is too large). */ +#define BR_ERR_LIMIT_EXCEEDED 23 + +/** \brief SSL status: Finished message from peer does not match the + expected value. */ +#define BR_ERR_BAD_FINISHED 24 + +/** \brief SSL status: session resumption attempt with distinct version + or cipher suite. */ +#define BR_ERR_RESUME_MISMATCH 25 + +/** \brief SSL status: unsupported or invalid algorithm (ECDHE curve, + signature algorithm, hash function). */ +#define BR_ERR_INVALID_ALGORITHM 26 + +/** \brief SSL status: invalid signature (on ServerKeyExchange from + server, or in CertificateVerify from client). */ +#define BR_ERR_BAD_SIGNATURE 27 + +/** \brief SSL status: peer's public key does not have the proper type + or is not allowed for requested operation. */ +#define BR_ERR_WRONG_KEY_USAGE 28 + +/** \brief SSL status: client did not send a certificate upon request, + or the client certificate could not be validated. */ +#define BR_ERR_NO_CLIENT_AUTH 29 + +/** \brief SSL status: I/O error or premature close on underlying + transport stream. This error code is set only by the simplified + I/O API ("br_sslio_*"). */ +#define BR_ERR_IO 31 + +/** \brief SSL status: base value for a received fatal alert. + + When a fatal alert is received from the peer, the alert value + is added to this constant. */ +#define BR_ERR_RECV_FATAL_ALERT 256 + +/** \brief SSL status: base value for a sent fatal alert. + + When a fatal alert is sent to the peer, the alert value is added + to this constant. */ +#define BR_ERR_SEND_FATAL_ALERT 512 + +/* ===================================================================== */ + +/** + * \brief Decryption engine for SSL. + * + * When processing incoming records, the SSL engine will use a decryption + * engine that uses a specific context structure, and has a set of + * methods (a vtable) that follows this template. + * + * The decryption engine is responsible for applying decryption, verifying + * MAC, and keeping track of the record sequence number. + */ +typedef struct br_sslrec_in_class_ br_sslrec_in_class; +struct br_sslrec_in_class_ { + /** + * \brief Context size (in bytes). + */ + size_t context_size; + + /** + * \brief Test validity of the incoming record length. + * + * This function returns 1 if the announced length for an + * incoming record is valid, 0 otherwise, + * + * \param ctx decryption engine context. + * \param record_len incoming record length. + * \return 1 of a valid length, 0 otherwise. + */ + int (*check_length)(const br_sslrec_in_class *const *ctx, + size_t record_len); + + /** + * \brief Decrypt the incoming record. + * + * This function may assume that the record length is valid + * (it has been previously tested with `check_length()`). + * Decryption is done in place; `*len` is updated with the + * cleartext length, and the address of the first plaintext + * byte is returned. If the record is correct but empty, then + * `*len` is set to 0 and a non-`NULL` pointer is returned. + * + * On decryption/MAC error, `NULL` is returned. + * + * \param ctx decryption engine context. + * \param record_type record type (23 for application data, etc). + * \param version record version. + * \param payload address of encrypted payload. + * \param len pointer to payload length (updated). + * \return pointer to plaintext, or `NULL` on error. + */ + unsigned char *(*decrypt)(const br_sslrec_in_class **ctx, + int record_type, unsigned version, + void *payload, size_t *len); +}; + +/** + * \brief Encryption engine for SSL. + * + * When building outgoing records, the SSL engine will use an encryption + * engine that uses a specific context structure, and has a set of + * methods (a vtable) that follows this template. + * + * The encryption engine is responsible for applying encryption and MAC, + * and keeping track of the record sequence number. + */ +typedef struct br_sslrec_out_class_ br_sslrec_out_class; +struct br_sslrec_out_class_ { + /** + * \brief Context size (in bytes). + */ + size_t context_size; + + /** + * \brief Compute maximum plaintext sizes and offsets. + * + * When this function is called, the `*start` and `*end` + * values contain offsets designating the free area in the + * outgoing buffer for plaintext data; that free area is + * preceded by a 5-byte space which will receive the record + * header. + * + * The `max_plaintext()` function is responsible for adjusting + * both `*start` and `*end` to make room for any record-specific + * header, MAC, padding, and possible split. + * + * \param ctx encryption engine context. + * \param start pointer to start of plaintext offset (updated). + * \param end pointer to start of plaintext offset (updated). + */ + void (*max_plaintext)(const br_sslrec_out_class *const *ctx, + size_t *start, size_t *end); + + /** + * \brief Perform record encryption. + * + * This function encrypts the record. The plaintext address and + * length are provided. Returned value is the start of the + * encrypted record (or sequence of records, if a split was + * performed), _including_ the 5-byte header, and `*len` is + * adjusted to the total size of the record(s), there again + * including the header(s). + * + * \param ctx decryption engine context. + * \param record_type record type (23 for application data, etc). + * \param version record version. + * \param plaintext address of plaintext. + * \param len pointer to plaintext length (updated). + * \return pointer to start of built record. + */ + unsigned char *(*encrypt)(const br_sslrec_out_class **ctx, + int record_type, unsigned version, + void *plaintext, size_t *len); +}; + +/** + * \brief Context for a no-encryption engine. + * + * The no-encryption engine processes outgoing records during the initial + * handshake, before encryption is applied. + */ +typedef struct { + /** \brief No-encryption engine vtable. */ + const br_sslrec_out_class *vtable; +} br_sslrec_out_clear_context; + +/** \brief Static, constant vtable for the no-encryption engine. */ +extern const br_sslrec_out_class br_sslrec_out_clear_vtable; + +/* ===================================================================== */ + +/** + * \brief Record decryption engine class, for CBC mode. + * + * This class type extends the decryption engine class with an + * initialisation method that receives the parameters needed + * for CBC processing: block cipher implementation, block cipher key, + * HMAC parameters (hash function, key, MAC length), and IV. If the + * IV is `NULL`, then a per-record IV will be used (TLS 1.1+). + */ +typedef struct br_sslrec_in_cbc_class_ br_sslrec_in_cbc_class; +struct br_sslrec_in_cbc_class_ { + /** + * \brief Superclass, as first vtable field. + */ + br_sslrec_in_class inner; + + /** + * \brief Engine initialisation method. + * + * This method sets the vtable field in the context. + * + * \param ctx context to initialise. + * \param bc_impl block cipher implementation (CBC decryption). + * \param bc_key block cipher key. + * \param bc_key_len block cipher key length (in bytes). + * \param dig_impl hash function for HMAC. + * \param mac_key HMAC key. + * \param mac_key_len HMAC key length (in bytes). + * \param mac_out_len HMAC output length (in bytes). + * \param iv initial IV (or `NULL`). + */ + void (*init)(const br_sslrec_in_cbc_class **ctx, + const br_block_cbcdec_class *bc_impl, + const void *bc_key, size_t bc_key_len, + const br_hash_class *dig_impl, + const void *mac_key, size_t mac_key_len, size_t mac_out_len, + const void *iv); +}; + +/** + * \brief Record encryption engine class, for CBC mode. + * + * This class type extends the encryption engine class with an + * initialisation method that receives the parameters needed + * for CBC processing: block cipher implementation, block cipher key, + * HMAC parameters (hash function, key, MAC length), and IV. If the + * IV is `NULL`, then a per-record IV will be used (TLS 1.1+). + */ +typedef struct br_sslrec_out_cbc_class_ br_sslrec_out_cbc_class; +struct br_sslrec_out_cbc_class_ { + /** + * \brief Superclass, as first vtable field. + */ + br_sslrec_out_class inner; + + /** + * \brief Engine initialisation method. + * + * This method sets the vtable field in the context. + * + * \param ctx context to initialise. + * \param bc_impl block cipher implementation (CBC encryption). + * \param bc_key block cipher key. + * \param bc_key_len block cipher key length (in bytes). + * \param dig_impl hash function for HMAC. + * \param mac_key HMAC key. + * \param mac_key_len HMAC key length (in bytes). + * \param mac_out_len HMAC output length (in bytes). + * \param iv initial IV (or `NULL`). + */ + void (*init)(const br_sslrec_out_cbc_class **ctx, + const br_block_cbcenc_class *bc_impl, + const void *bc_key, size_t bc_key_len, + const br_hash_class *dig_impl, + const void *mac_key, size_t mac_key_len, size_t mac_out_len, + const void *iv); +}; + +/** + * \brief Context structure for decrypting incoming records with + * CBC + HMAC. + * + * The first field points to the vtable. The other fields are opaque + * and shall not be accessed directly. + */ +typedef struct { + /** \brief Pointer to vtable. */ + const br_sslrec_in_cbc_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + uint64_t seq; + union { + const br_block_cbcdec_class *vtable; + br_aes_gen_cbcdec_keys aes; + br_des_gen_cbcdec_keys des; + } bc; + br_hmac_key_context mac; + size_t mac_len; + unsigned char iv[16]; + int explicit_IV; +#endif +} br_sslrec_in_cbc_context; + +/** + * \brief Static, constant vtable for record decryption with CBC. + */ +extern const br_sslrec_in_cbc_class br_sslrec_in_cbc_vtable; + +/** + * \brief Context structure for encrypting outgoing records with + * CBC + HMAC. + * + * The first field points to the vtable. The other fields are opaque + * and shall not be accessed directly. + */ +typedef struct { + /** \brief Pointer to vtable. */ + const br_sslrec_out_cbc_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + uint64_t seq; + union { + const br_block_cbcenc_class *vtable; + br_aes_gen_cbcenc_keys aes; + br_des_gen_cbcenc_keys des; + } bc; + br_hmac_key_context mac; + size_t mac_len; + unsigned char iv[16]; + int explicit_IV; +#endif +} br_sslrec_out_cbc_context; + +/** + * \brief Static, constant vtable for record encryption with CBC. + */ +extern const br_sslrec_out_cbc_class br_sslrec_out_cbc_vtable; + +/* ===================================================================== */ + +/** + * \brief Record decryption engine class, for GCM mode. + * + * This class type extends the decryption engine class with an + * initialisation method that receives the parameters needed + * for GCM processing: block cipher implementation, block cipher key, + * GHASH implementation, and 4-byte IV. + */ +typedef struct br_sslrec_in_gcm_class_ br_sslrec_in_gcm_class; +struct br_sslrec_in_gcm_class_ { + /** + * \brief Superclass, as first vtable field. + */ + br_sslrec_in_class inner; + + /** + * \brief Engine initialisation method. + * + * This method sets the vtable field in the context. + * + * \param ctx context to initialise. + * \param bc_impl block cipher implementation (CTR). + * \param key block cipher key. + * \param key_len block cipher key length (in bytes). + * \param gh_impl GHASH implementation. + * \param iv static IV (4 bytes). + */ + void (*init)(const br_sslrec_in_gcm_class **ctx, + const br_block_ctr_class *bc_impl, + const void *key, size_t key_len, + br_ghash gh_impl, + const void *iv); +}; + +/** + * \brief Record encryption engine class, for GCM mode. + * + * This class type extends the encryption engine class with an + * initialisation method that receives the parameters needed + * for GCM processing: block cipher implementation, block cipher key, + * GHASH implementation, and 4-byte IV. + */ +typedef struct br_sslrec_out_gcm_class_ br_sslrec_out_gcm_class; +struct br_sslrec_out_gcm_class_ { + /** + * \brief Superclass, as first vtable field. + */ + br_sslrec_out_class inner; + + /** + * \brief Engine initialisation method. + * + * This method sets the vtable field in the context. + * + * \param ctx context to initialise. + * \param bc_impl block cipher implementation (CTR). + * \param key block cipher key. + * \param key_len block cipher key length (in bytes). + * \param gh_impl GHASH implementation. + * \param iv static IV (4 bytes). + */ + void (*init)(const br_sslrec_out_gcm_class **ctx, + const br_block_ctr_class *bc_impl, + const void *key, size_t key_len, + br_ghash gh_impl, + const void *iv); +}; + +/** + * \brief Context structure for processing records with GCM. + * + * The same context structure is used for encrypting and decrypting. + * + * The first field points to the vtable. The other fields are opaque + * and shall not be accessed directly. + */ +typedef struct { + /** \brief Pointer to vtable. */ + union { + const void *gen; + const br_sslrec_in_gcm_class *in; + const br_sslrec_out_gcm_class *out; + } vtable; +#ifndef BR_DOXYGEN_IGNORE + uint64_t seq; + union { + const br_block_ctr_class *vtable; + br_aes_gen_ctr_keys aes; + } bc; + br_ghash gh; + unsigned char iv[4]; + unsigned char h[16]; +#endif +} br_sslrec_gcm_context; + +/** + * \brief Static, constant vtable for record decryption with GCM. + */ +extern const br_sslrec_in_gcm_class br_sslrec_in_gcm_vtable; + +/** + * \brief Static, constant vtable for record encryption with GCM. + */ +extern const br_sslrec_out_gcm_class br_sslrec_out_gcm_vtable; + +/* ===================================================================== */ + +/** + * \brief Record decryption engine class, for ChaCha20+Poly1305. + * + * This class type extends the decryption engine class with an + * initialisation method that receives the parameters needed + * for ChaCha20+Poly1305 processing: ChaCha20 implementation, + * Poly1305 implementation, key, and 12-byte IV. + */ +typedef struct br_sslrec_in_chapol_class_ br_sslrec_in_chapol_class; +struct br_sslrec_in_chapol_class_ { + /** + * \brief Superclass, as first vtable field. + */ + br_sslrec_in_class inner; + + /** + * \brief Engine initialisation method. + * + * This method sets the vtable field in the context. + * + * \param ctx context to initialise. + * \param ichacha ChaCha20 implementation. + * \param ipoly Poly1305 implementation. + * \param key secret key (32 bytes). + * \param iv static IV (12 bytes). + */ + void (*init)(const br_sslrec_in_chapol_class **ctx, + br_chacha20_run ichacha, + br_poly1305_run ipoly, + const void *key, const void *iv); +}; + +/** + * \brief Record encryption engine class, for ChaCha20+Poly1305. + * + * This class type extends the encryption engine class with an + * initialisation method that receives the parameters needed + * for ChaCha20+Poly1305 processing: ChaCha20 implementation, + * Poly1305 implementation, key, and 12-byte IV. + */ +typedef struct br_sslrec_out_chapol_class_ br_sslrec_out_chapol_class; +struct br_sslrec_out_chapol_class_ { + /** + * \brief Superclass, as first vtable field. + */ + br_sslrec_out_class inner; + + /** + * \brief Engine initialisation method. + * + * This method sets the vtable field in the context. + * + * \param ctx context to initialise. + * \param ichacha ChaCha20 implementation. + * \param ipoly Poly1305 implementation. + * \param key secret key (32 bytes). + * \param iv static IV (12 bytes). + */ + void (*init)(const br_sslrec_out_chapol_class **ctx, + br_chacha20_run ichacha, + br_poly1305_run ipoly, + const void *key, const void *iv); +}; + +/** + * \brief Context structure for processing records with ChaCha20+Poly1305. + * + * The same context structure is used for encrypting and decrypting. + * + * The first field points to the vtable. The other fields are opaque + * and shall not be accessed directly. + */ +typedef struct { + /** \brief Pointer to vtable. */ + union { + const void *gen; + const br_sslrec_in_chapol_class *in; + const br_sslrec_out_chapol_class *out; + } vtable; +#ifndef BR_DOXYGEN_IGNORE + uint64_t seq; + unsigned char key[32]; + unsigned char iv[12]; + br_chacha20_run ichacha; + br_poly1305_run ipoly; +#endif +} br_sslrec_chapol_context; + +/** + * \brief Static, constant vtable for record decryption with ChaCha20+Poly1305. + */ +extern const br_sslrec_in_chapol_class br_sslrec_in_chapol_vtable; + +/** + * \brief Static, constant vtable for record encryption with ChaCha20+Poly1305. + */ +extern const br_sslrec_out_chapol_class br_sslrec_out_chapol_vtable; + +/* ===================================================================== */ + +/** + * \brief Record decryption engine class, for CCM mode. + * + * This class type extends the decryption engine class with an + * initialisation method that receives the parameters needed + * for CCM processing: block cipher implementation, block cipher key, + * and 4-byte IV. + */ +typedef struct br_sslrec_in_ccm_class_ br_sslrec_in_ccm_class; +struct br_sslrec_in_ccm_class_ { + /** + * \brief Superclass, as first vtable field. + */ + br_sslrec_in_class inner; + + /** + * \brief Engine initialisation method. + * + * This method sets the vtable field in the context. + * + * \param ctx context to initialise. + * \param bc_impl block cipher implementation (CTR+CBC). + * \param key block cipher key. + * \param key_len block cipher key length (in bytes). + * \param iv static IV (4 bytes). + * \param tag_len tag length (in bytes) + */ + void (*init)(const br_sslrec_in_ccm_class **ctx, + const br_block_ctrcbc_class *bc_impl, + const void *key, size_t key_len, + const void *iv, size_t tag_len); +}; + +/** + * \brief Record encryption engine class, for CCM mode. + * + * This class type extends the encryption engine class with an + * initialisation method that receives the parameters needed + * for CCM processing: block cipher implementation, block cipher key, + * and 4-byte IV. + */ +typedef struct br_sslrec_out_ccm_class_ br_sslrec_out_ccm_class; +struct br_sslrec_out_ccm_class_ { + /** + * \brief Superclass, as first vtable field. + */ + br_sslrec_out_class inner; + + /** + * \brief Engine initialisation method. + * + * This method sets the vtable field in the context. + * + * \param ctx context to initialise. + * \param bc_impl block cipher implementation (CTR+CBC). + * \param key block cipher key. + * \param key_len block cipher key length (in bytes). + * \param iv static IV (4 bytes). + * \param tag_len tag length (in bytes) + */ + void (*init)(const br_sslrec_out_ccm_class **ctx, + const br_block_ctrcbc_class *bc_impl, + const void *key, size_t key_len, + const void *iv, size_t tag_len); +}; + +/** + * \brief Context structure for processing records with CCM. + * + * The same context structure is used for encrypting and decrypting. + * + * The first field points to the vtable. The other fields are opaque + * and shall not be accessed directly. + */ +typedef struct { + /** \brief Pointer to vtable. */ + union { + const void *gen; + const br_sslrec_in_ccm_class *in; + const br_sslrec_out_ccm_class *out; + } vtable; +#ifndef BR_DOXYGEN_IGNORE + uint64_t seq; + union { + const br_block_ctrcbc_class *vtable; + br_aes_gen_ctrcbc_keys aes; + } bc; + unsigned char iv[4]; + size_t tag_len; +#endif +} br_sslrec_ccm_context; + +/** + * \brief Static, constant vtable for record decryption with CCM. + */ +extern const br_sslrec_in_ccm_class br_sslrec_in_ccm_vtable; + +/** + * \brief Static, constant vtable for record encryption with CCM. + */ +extern const br_sslrec_out_ccm_class br_sslrec_out_ccm_vtable; + +/* ===================================================================== */ + +/** + * \brief Type for session parameters, to be saved for session resumption. + */ +typedef struct { + /** \brief Session ID buffer. */ + unsigned char session_id[32]; + /** \brief Session ID length (in bytes, at most 32). */ + unsigned char session_id_len; + /** \brief Protocol version. */ + uint16_t version; + /** \brief Cipher suite. */ + uint16_t cipher_suite; + /** \brief Master secret. */ + unsigned char master_secret[48]; +} br_ssl_session_parameters; + +#ifndef BR_DOXYGEN_IGNORE +/* + * Maximum number of cipher suites supported by a client or server. + */ +#define BR_MAX_CIPHER_SUITES 48 +#endif + +/** + * \brief Context structure for SSL engine. + * + * This strucuture is common to the client and server; both the client + * context (`br_ssl_client_context`) and the server context + * (`br_ssl_server_context`) include a `br_ssl_engine_context` as their + * first field. + * + * The engine context manages records, including alerts, closures, and + * transitions to new encryption/MAC algorithms. Processing of handshake + * records is delegated to externally provided code. This structure + * should not be used directly. + * + * Structure contents are opaque and shall not be accessed directly. + */ +typedef struct { +#ifndef BR_DOXYGEN_IGNORE + /* + * The error code. When non-zero, then the state is "failed" and + * no I/O may occur until reset. + */ + int err; + + /* + * Configured I/O buffers. They are either disjoint, or identical. + */ + unsigned char *ibuf, *obuf; + size_t ibuf_len, obuf_len; + + /* + * Maximum fragment length applies to outgoing records; incoming + * records can be processed as long as they fit in the input + * buffer. It is guaranteed that incoming records at least as big + * as max_frag_len can be processed. + */ + uint16_t max_frag_len; + unsigned char log_max_frag_len; + unsigned char max_frag_len_negotiated; + unsigned char peer_log_max_frag_len; + + /* + * Buffering management registers. + */ + size_t ixa, ixb, ixc; + size_t oxa, oxb, oxc; + unsigned char iomode; + unsigned char incrypt; + + /* + * Shutdown flag: when set to non-zero, incoming record bytes + * will not be accepted anymore. This is used after a close_notify + * has been received: afterwards, the engine no longer claims that + * it could receive bytes from the transport medium. + */ + unsigned char shutdown_recv; + + /* + * 'record_type_in' is set to the incoming record type when the + * record header has been received. + * 'record_type_out' is used to make the next outgoing record + * header when it is ready to go. + */ + unsigned char record_type_in, record_type_out; + + /* + * When a record is received, its version is extracted: + * -- if 'version_in' is 0, then it is set to the received version; + * -- otherwise, if the received version is not identical to + * the 'version_in' contents, then a failure is reported. + * + * This implements the SSL requirement that all records shall + * use the negotiated protocol version, once decided (in the + * ServerHello). It is up to the handshake handler to adjust this + * field when necessary. + */ + uint16_t version_in; + + /* + * 'version_out' is used when the next outgoing record is ready + * to go. + */ + uint16_t version_out; + + /* + * Record handler contexts. + */ + union { + const br_sslrec_in_class *vtable; + br_sslrec_in_cbc_context cbc; + br_sslrec_gcm_context gcm; + br_sslrec_chapol_context chapol; + br_sslrec_ccm_context ccm; + } in; + union { + const br_sslrec_out_class *vtable; + br_sslrec_out_clear_context clear; + br_sslrec_out_cbc_context cbc; + br_sslrec_gcm_context gcm; + br_sslrec_chapol_context chapol; + br_sslrec_ccm_context ccm; + } out; + + /* + * The "application data" flag. Value: + * 0 handshake is in process, no application data acceptable + * 1 application data can be sent and received + * 2 closing, no application data can be sent, but some + * can still be received (and discarded) + */ + unsigned char application_data; + + /* + * Context RNG. + * + * rng_init_done is initially 0. It is set to 1 when the + * basic structure of the RNG is set, and 2 when some + * entropy has been pushed in. The value 2 marks the RNG + * as "properly seeded". + * + * rng_os_rand_done is initially 0. It is set to 1 when + * some seeding from the OS or hardware has been attempted. + */ + br_hmac_drbg_context rng; + int rng_init_done; + int rng_os_rand_done; + + /* + * Supported minimum and maximum versions, and cipher suites. + */ + uint16_t version_min; + uint16_t version_max; + uint16_t suites_buf[BR_MAX_CIPHER_SUITES]; + unsigned char suites_num; + + /* + * For clients, the server name to send as a SNI extension. For + * servers, the name received in the SNI extension (if any). + */ + char server_name[256]; + + /* + * "Security parameters". These are filled by the handshake + * handler, and used when switching encryption state. + */ + unsigned char client_random[32]; + unsigned char server_random[32]; + br_ssl_session_parameters session; + + /* + * ECDHE elements: curve and point from the peer. The server also + * uses that buffer for the point to send to the client. + */ + unsigned char ecdhe_curve; + unsigned char ecdhe_point[133]; + unsigned char ecdhe_point_len; + + /* + * Secure renegotiation (RFC 5746): 'reneg' can be: + * 0 first handshake (server support is not known) + * 1 peer does not support secure renegotiation + * 2 peer supports secure renegotiation + * + * The saved_finished buffer contains the client and the + * server "Finished" values from the last handshake, in + * that order (12 bytes each). + */ + unsigned char reneg; + unsigned char saved_finished[24]; + + /* + * Behavioural flags. + */ + uint32_t flags; + + /* + * Context variables for the handshake processor. The 'pad' must + * be large enough to accommodate an RSA-encrypted pre-master + * secret, or an RSA signature; since we want to support up to + * RSA-4096, this means at least 512 bytes. (Other pad usages + * require its length to be at least 256.) + */ + struct { + uint32_t *dp; + uint32_t *rp; + const unsigned char *ip; + } cpu; + uint32_t dp_stack[32]; + uint32_t rp_stack[32]; + unsigned char pad[512]; + unsigned char *hbuf_in, *hbuf_out, *saved_hbuf_out; + size_t hlen_in, hlen_out; + void (*hsrun)(void *ctx); + + /* + * The 'action' value communicates OOB information between the + * engine and the handshake processor. + * + * From the engine: + * 0 invocation triggered by I/O + * 1 invocation triggered by explicit close + * 2 invocation triggered by explicit renegotiation + */ + unsigned char action; + + /* + * State for alert messages. Value is either 0, or the value of + * the alert level byte (level is either 1 for warning, or 2 for + * fatal; we convert all other values to 'fatal'). + */ + unsigned char alert; + + /* + * Closure flags. This flag is set when a close_notify has been + * received from the peer. + */ + unsigned char close_received; + + /* + * Multi-hasher for the handshake messages. The handshake handler + * is responsible for resetting it when appropriate. + */ + br_multihash_context mhash; + + /* + * Pointer to the X.509 engine. The engine is supposed to be + * already initialized. It is used to validate the peer's + * certificate. + */ + const br_x509_class **x509ctx; + + /* + * Certificate chain to send. This is used by both client and + * server, when they send their respective Certificate messages. + * If chain_len is 0, then chain may be NULL. + */ + const br_x509_certificate *chain; + size_t chain_len; + const unsigned char *cert_cur; + size_t cert_len; + + /* + * List of supported protocol names (ALPN extension). If unset, + * (number of names is 0), then: + * - the client sends no ALPN extension; + * - the server ignores any incoming ALPN extension. + * + * Otherwise: + * - the client sends an ALPN extension with all the names; + * - the server selects the first protocol in its list that + * the client also supports, or fails (fatal alert 120) + * if the client sends an ALPN extension and there is no + * match. + * + * The 'selected_protocol' field contains 1+n if the matching + * name has index n in the list (the value is 0 if no match was + * performed, e.g. the peer did not send an ALPN extension). + */ + const char **protocol_names; + uint16_t protocol_names_num; + uint16_t selected_protocol; + + /* + * Pointers to implementations; left to NULL for unsupported + * functions. For the raw hash functions, implementations are + * referenced from the multihasher (mhash field). + */ + br_tls_prf_impl prf10; + br_tls_prf_impl prf_sha256; + br_tls_prf_impl prf_sha384; + const br_block_cbcenc_class *iaes_cbcenc; + const br_block_cbcdec_class *iaes_cbcdec; + const br_block_ctr_class *iaes_ctr; + const br_block_ctrcbc_class *iaes_ctrcbc; + const br_block_cbcenc_class *ides_cbcenc; + const br_block_cbcdec_class *ides_cbcdec; + br_ghash ighash; + br_chacha20_run ichacha; + br_poly1305_run ipoly; + const br_sslrec_in_cbc_class *icbc_in; + const br_sslrec_out_cbc_class *icbc_out; + const br_sslrec_in_gcm_class *igcm_in; + const br_sslrec_out_gcm_class *igcm_out; + const br_sslrec_in_chapol_class *ichapol_in; + const br_sslrec_out_chapol_class *ichapol_out; + const br_sslrec_in_ccm_class *iccm_in; + const br_sslrec_out_ccm_class *iccm_out; + const br_ec_impl *iec; + br_rsa_pkcs1_vrfy irsavrfy; + br_ecdsa_vrfy iecdsa; +#endif +} br_ssl_engine_context; + +/** + * \brief Get currently defined engine behavioural flags. + * + * \param cc SSL engine context. + * \return the flags. + */ +static inline uint32_t +br_ssl_engine_get_flags(br_ssl_engine_context *cc) +{ + return cc->flags; +} + +/** + * \brief Set all engine behavioural flags. + * + * \param cc SSL engine context. + * \param flags new value for all flags. + */ +static inline void +br_ssl_engine_set_all_flags(br_ssl_engine_context *cc, uint32_t flags) +{ + cc->flags = flags; +} + +/** + * \brief Set some engine behavioural flags. + * + * The flags set in the `flags` parameter are set in the context; other + * flags are untouched. + * + * \param cc SSL engine context. + * \param flags additional set flags. + */ +static inline void +br_ssl_engine_add_flags(br_ssl_engine_context *cc, uint32_t flags) +{ + cc->flags |= flags; +} + +/** + * \brief Clear some engine behavioural flags. + * + * The flags set in the `flags` parameter are cleared from the context; other + * flags are untouched. + * + * \param cc SSL engine context. + * \param flags flags to remove. + */ +static inline void +br_ssl_engine_remove_flags(br_ssl_engine_context *cc, uint32_t flags) +{ + cc->flags &= ~flags; +} + +/** + * \brief Behavioural flag: enforce server preferences. + * + * If this flag is set, then the server will enforce its own cipher suite + * preference order; otherwise, it follows the client preferences. + */ +#define BR_OPT_ENFORCE_SERVER_PREFERENCES ((uint32_t)1 << 0) + +/** + * \brief Behavioural flag: disable renegotiation. + * + * If this flag is set, then renegotiations are rejected unconditionally: + * they won't be honoured if asked for programmatically, and requests from + * the peer are rejected. + */ +#define BR_OPT_NO_RENEGOTIATION ((uint32_t)1 << 1) + +/** + * \brief Behavioural flag: tolerate lack of client authentication. + * + * If this flag is set in a server and the server requests a client + * certificate, but the authentication fails (the client does not send + * a certificate, or the client's certificate chain cannot be validated), + * then the connection keeps on. Without this flag, a failed client + * authentication terminates the connection. + * + * Notes: + * + * - If the client's certificate can be validated and its public key is + * supported, then a wrong signature value terminates the connection + * regardless of that flag. + * + * - If using full-static ECDH, then a failure to validate the client's + * certificate prevents the handshake from succeeding. + */ +#define BR_OPT_TOLERATE_NO_CLIENT_AUTH ((uint32_t)1 << 2) + +/** + * \brief Behavioural flag: fail on application protocol mismatch. + * + * The ALPN extension ([RFC 7301](https://tools.ietf.org/html/rfc7301)) + * allows the client to send a list of application protocol names, and + * the server to select one. A mismatch is one of the following occurrences: + * + * - On the client: the client sends a list of names, the server + * responds with a protocol name which is _not_ part of the list of + * names sent by the client. + * + * - On the server: the client sends a list of names, and the server + * is also configured with a list of names, but there is no common + * protocol name between the two lists. + * + * Normal behaviour in case of mismatch is to report no matching name + * (`br_ssl_engine_get_selected_protocol()` returns `NULL`) and carry on. + * If the flag is set, then a mismatch implies a protocol failure (if + * the mismatch is detected by the server, it will send a fatal alert). + * + * Note: even with this flag, `br_ssl_engine_get_selected_protocol()` + * may still return `NULL` if the client or the server does not send an + * ALPN extension at all. + */ +#define BR_OPT_FAIL_ON_ALPN_MISMATCH ((uint32_t)1 << 3) + +/** + * \brief Set the minimum and maximum supported protocol versions. + * + * The two provided versions MUST be supported by the implementation + * (i.e. TLS 1.0, 1.1 and 1.2), and `version_max` MUST NOT be lower + * than `version_min`. + * + * \param cc SSL engine context. + * \param version_min minimum supported TLS version. + * \param version_max maximum supported TLS version. + */ +static inline void +br_ssl_engine_set_versions(br_ssl_engine_context *cc, + unsigned version_min, unsigned version_max) +{ + cc->version_min = (uint16_t)version_min; + cc->version_max = (uint16_t)version_max; +} + +/** + * \brief Set the list of cipher suites advertised by this context. + * + * The provided array is copied into the context. It is the caller + * responsibility to ensure that all provided suites will be supported + * by the context. The engine context has enough room to receive _all_ + * suites supported by the implementation. The provided array MUST NOT + * contain duplicates. + * + * If the engine is for a client, the "signaling" pseudo-cipher suite + * `TLS_FALLBACK_SCSV` can be added at the end of the list, if the + * calling application is performing a voluntary downgrade (voluntary + * downgrades are not recommended, but if such a downgrade is done, then + * adding the fallback pseudo-suite is a good idea). + * + * \param cc SSL engine context. + * \param suites cipher suites. + * \param suites_num number of cipher suites. + */ +void br_ssl_engine_set_suites(br_ssl_engine_context *cc, + const uint16_t *suites, size_t suites_num); + +/** + * \brief Set the X.509 engine. + * + * The caller shall ensure that the X.509 engine is properly initialised. + * + * \param cc SSL engine context. + * \param x509ctx X.509 certificate validation context. + */ +static inline void +br_ssl_engine_set_x509(br_ssl_engine_context *cc, const br_x509_class **x509ctx) +{ + cc->x509ctx = x509ctx; +} + +/** + * \brief Set the supported protocol names. + * + * Protocol names are part of the ALPN extension ([RFC + * 7301](https://tools.ietf.org/html/rfc7301)). Each protocol name is a + * character string, containing no more than 255 characters (256 with the + * terminating zero). When names are set, then: + * + * - The client will send an ALPN extension, containing the names. If + * the server responds with an ALPN extension, the client will verify + * that the response contains one of its name, and report that name + * through `br_ssl_engine_get_selected_protocol()`. + * + * - The server will parse incoming ALPN extension (from clients), and + * try to find a common protocol; if none is found, the connection + * is aborted with a fatal alert. On match, a response ALPN extension + * is sent, and name is reported through + * `br_ssl_engine_get_selected_protocol()`. + * + * The provided array is linked in, and must remain valid while the + * connection is live. + * + * Names MUST NOT be empty. Names MUST NOT be longer than 255 characters + * (excluding the terminating 0). + * + * \param ctx SSL engine context. + * \param names list of protocol names (zero-terminated). + * \param num number of protocol names (MUST be 1 or more). + */ +static inline void +br_ssl_engine_set_protocol_names(br_ssl_engine_context *ctx, + const char **names, size_t num) +{ + ctx->protocol_names = names; + ctx->protocol_names_num = (uint16_t)num; +} + +/** + * \brief Get the selected protocol. + * + * If this context was initialised with a non-empty list of protocol + * names, and both client and server sent ALPN extensions during the + * handshake, and a common name was found, then that name is returned. + * Otherwise, `NULL` is returned. + * + * The returned pointer is one of the pointers provided to the context + * with `br_ssl_engine_set_protocol_names()`. + * + * \return the selected protocol, or `NULL`. + */ +static inline const char * +br_ssl_engine_get_selected_protocol(br_ssl_engine_context *ctx) +{ + unsigned k; + + k = ctx->selected_protocol; + return (k == 0 || k == 0xFFFF) ? NULL : ctx->protocol_names[k - 1]; +} + +/** + * \brief Set a hash function implementation (by ID). + * + * Hash functions set with this call will be used for SSL/TLS specific + * usages, not X.509 certificate validation. Only "standard" hash functions + * may be set (MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512). If `impl` + * is `NULL`, then the hash function support is removed, not added. + * + * \param ctx SSL engine context. + * \param id hash function identifier. + * \param impl hash function implementation (or `NULL`). + */ +static inline void +br_ssl_engine_set_hash(br_ssl_engine_context *ctx, + int id, const br_hash_class *impl) +{ + br_multihash_setimpl(&ctx->mhash, id, impl); +} + +/** + * \brief Get a hash function implementation (by ID). + * + * This function retrieves a hash function implementation which was + * set with `br_ssl_engine_set_hash()`. + * + * \param ctx SSL engine context. + * \param id hash function identifier. + * \return the hash function implementation (or `NULL`). + */ +static inline const br_hash_class * +br_ssl_engine_get_hash(br_ssl_engine_context *ctx, int id) +{ + return br_multihash_getimpl(&ctx->mhash, id); +} + +/** + * \brief Set the PRF implementation (for TLS 1.0 and 1.1). + * + * This function sets (or removes, if `impl` is `NULL`) the implementation + * for the PRF used in TLS 1.0 and 1.1. + * + * \param cc SSL engine context. + * \param impl PRF implementation (or `NULL`). + */ +static inline void +br_ssl_engine_set_prf10(br_ssl_engine_context *cc, br_tls_prf_impl impl) +{ + cc->prf10 = impl; +} + +/** + * \brief Set the PRF implementation with SHA-256 (for TLS 1.2). + * + * This function sets (or removes, if `impl` is `NULL`) the implementation + * for the SHA-256 variant of the PRF used in TLS 1.2. + * + * \param cc SSL engine context. + * \param impl PRF implementation (or `NULL`). + */ +static inline void +br_ssl_engine_set_prf_sha256(br_ssl_engine_context *cc, br_tls_prf_impl impl) +{ + cc->prf_sha256 = impl; +} + +/** + * \brief Set the PRF implementation with SHA-384 (for TLS 1.2). + * + * This function sets (or removes, if `impl` is `NULL`) the implementation + * for the SHA-384 variant of the PRF used in TLS 1.2. + * + * \param cc SSL engine context. + * \param impl PRF implementation (or `NULL`). + */ +static inline void +br_ssl_engine_set_prf_sha384(br_ssl_engine_context *cc, br_tls_prf_impl impl) +{ + cc->prf_sha384 = impl; +} + +/** + * \brief Set the AES/CBC implementations. + * + * \param cc SSL engine context. + * \param impl_enc AES/CBC encryption implementation (or `NULL`). + * \param impl_dec AES/CBC decryption implementation (or `NULL`). + */ +static inline void +br_ssl_engine_set_aes_cbc(br_ssl_engine_context *cc, + const br_block_cbcenc_class *impl_enc, + const br_block_cbcdec_class *impl_dec) +{ + cc->iaes_cbcenc = impl_enc; + cc->iaes_cbcdec = impl_dec; +} + +/** + * \brief Set the "default" AES/CBC implementations. + * + * This function configures in the engine the AES implementations that + * should provide best runtime performance on the local system, while + * still being safe (in particular, constant-time). It also sets the + * handlers for CBC records. + * + * \param cc SSL engine context. + */ +void br_ssl_engine_set_default_aes_cbc(br_ssl_engine_context *cc); + +/** + * \brief Set the AES/CTR implementation. + * + * \param cc SSL engine context. + * \param impl AES/CTR encryption/decryption implementation (or `NULL`). + */ +static inline void +br_ssl_engine_set_aes_ctr(br_ssl_engine_context *cc, + const br_block_ctr_class *impl) +{ + cc->iaes_ctr = impl; +} + +/** + * \brief Set the "default" implementations for AES/GCM (AES/CTR + GHASH). + * + * This function configures in the engine the AES/CTR and GHASH + * implementation that should provide best runtime performance on the local + * system, while still being safe (in particular, constant-time). It also + * sets the handlers for GCM records. + * + * \param cc SSL engine context. + */ +void br_ssl_engine_set_default_aes_gcm(br_ssl_engine_context *cc); + +/** + * \brief Set the DES/CBC implementations. + * + * \param cc SSL engine context. + * \param impl_enc DES/CBC encryption implementation (or `NULL`). + * \param impl_dec DES/CBC decryption implementation (or `NULL`). + */ +static inline void +br_ssl_engine_set_des_cbc(br_ssl_engine_context *cc, + const br_block_cbcenc_class *impl_enc, + const br_block_cbcdec_class *impl_dec) +{ + cc->ides_cbcenc = impl_enc; + cc->ides_cbcdec = impl_dec; +} + +/** + * \brief Set the "default" DES/CBC implementations. + * + * This function configures in the engine the DES implementations that + * should provide best runtime performance on the local system, while + * still being safe (in particular, constant-time). It also sets the + * handlers for CBC records. + * + * \param cc SSL engine context. + */ +void br_ssl_engine_set_default_des_cbc(br_ssl_engine_context *cc); + +/** + * \brief Set the GHASH implementation (used in GCM mode). + * + * \param cc SSL engine context. + * \param impl GHASH implementation (or `NULL`). + */ +static inline void +br_ssl_engine_set_ghash(br_ssl_engine_context *cc, br_ghash impl) +{ + cc->ighash = impl; +} + +/** + * \brief Set the ChaCha20 implementation. + * + * \param cc SSL engine context. + * \param ichacha ChaCha20 implementation (or `NULL`). + */ +static inline void +br_ssl_engine_set_chacha20(br_ssl_engine_context *cc, + br_chacha20_run ichacha) +{ + cc->ichacha = ichacha; +} + +/** + * \brief Set the Poly1305 implementation. + * + * \param cc SSL engine context. + * \param ipoly Poly1305 implementation (or `NULL`). + */ +static inline void +br_ssl_engine_set_poly1305(br_ssl_engine_context *cc, + br_poly1305_run ipoly) +{ + cc->ipoly = ipoly; +} + +/** + * \brief Set the "default" ChaCha20 and Poly1305 implementations. + * + * This function configures in the engine the ChaCha20 and Poly1305 + * implementations that should provide best runtime performance on the + * local system, while still being safe (in particular, constant-time). + * It also sets the handlers for ChaCha20+Poly1305 records. + * + * \param cc SSL engine context. + */ +void br_ssl_engine_set_default_chapol(br_ssl_engine_context *cc); + +/** + * \brief Set the AES/CTR+CBC implementation. + * + * \param cc SSL engine context. + * \param impl AES/CTR+CBC encryption/decryption implementation (or `NULL`). + */ +static inline void +br_ssl_engine_set_aes_ctrcbc(br_ssl_engine_context *cc, + const br_block_ctrcbc_class *impl) +{ + cc->iaes_ctrcbc = impl; +} + +/** + * \brief Set the "default" implementations for AES/CCM. + * + * This function configures in the engine the AES/CTR+CBC + * implementation that should provide best runtime performance on the local + * system, while still being safe (in particular, constant-time). It also + * sets the handlers for CCM records. + * + * \param cc SSL engine context. + */ +void br_ssl_engine_set_default_aes_ccm(br_ssl_engine_context *cc); + +/** + * \brief Set the record encryption and decryption engines for CBC + HMAC. + * + * \param cc SSL engine context. + * \param impl_in record CBC decryption implementation (or `NULL`). + * \param impl_out record CBC encryption implementation (or `NULL`). + */ +static inline void +br_ssl_engine_set_cbc(br_ssl_engine_context *cc, + const br_sslrec_in_cbc_class *impl_in, + const br_sslrec_out_cbc_class *impl_out) +{ + cc->icbc_in = impl_in; + cc->icbc_out = impl_out; +} + +/** + * \brief Set the record encryption and decryption engines for GCM. + * + * \param cc SSL engine context. + * \param impl_in record GCM decryption implementation (or `NULL`). + * \param impl_out record GCM encryption implementation (or `NULL`). + */ +static inline void +br_ssl_engine_set_gcm(br_ssl_engine_context *cc, + const br_sslrec_in_gcm_class *impl_in, + const br_sslrec_out_gcm_class *impl_out) +{ + cc->igcm_in = impl_in; + cc->igcm_out = impl_out; +} + +/** + * \brief Set the record encryption and decryption engines for CCM. + * + * \param cc SSL engine context. + * \param impl_in record CCM decryption implementation (or `NULL`). + * \param impl_out record CCM encryption implementation (or `NULL`). + */ +static inline void +br_ssl_engine_set_ccm(br_ssl_engine_context *cc, + const br_sslrec_in_ccm_class *impl_in, + const br_sslrec_out_ccm_class *impl_out) +{ + cc->iccm_in = impl_in; + cc->iccm_out = impl_out; +} + +/** + * \brief Set the record encryption and decryption engines for + * ChaCha20+Poly1305. + * + * \param cc SSL engine context. + * \param impl_in record ChaCha20 decryption implementation (or `NULL`). + * \param impl_out record ChaCha20 encryption implementation (or `NULL`). + */ +static inline void +br_ssl_engine_set_chapol(br_ssl_engine_context *cc, + const br_sslrec_in_chapol_class *impl_in, + const br_sslrec_out_chapol_class *impl_out) +{ + cc->ichapol_in = impl_in; + cc->ichapol_out = impl_out; +} + +/** + * \brief Set the EC implementation. + * + * The elliptic curve implementation will be used for ECDH and ECDHE + * cipher suites, and for ECDSA support. + * + * \param cc SSL engine context. + * \param iec EC implementation (or `NULL`). + */ +static inline void +br_ssl_engine_set_ec(br_ssl_engine_context *cc, const br_ec_impl *iec) +{ + cc->iec = iec; +} + +/** + * \brief Set the "default" EC implementation. + * + * This function sets the elliptic curve implementation for ECDH and + * ECDHE cipher suites, and for ECDSA support. It selects the fastest + * implementation on the current system. + * + * \param cc SSL engine context. + */ +void br_ssl_engine_set_default_ec(br_ssl_engine_context *cc); + +/** + * \brief Get the EC implementation configured in the provided engine. + * + * \param cc SSL engine context. + * \return the EC implementation. + */ +static inline const br_ec_impl * +br_ssl_engine_get_ec(br_ssl_engine_context *cc) +{ + return cc->iec; +} + +/** + * \brief Set the RSA signature verification implementation. + * + * On the client, this is used to verify the server's signature on its + * ServerKeyExchange message (for ECDHE_RSA cipher suites). On the server, + * this is used to verify the client's CertificateVerify message (if a + * client certificate is requested, and that certificate contains a RSA key). + * + * \param cc SSL engine context. + * \param irsavrfy RSA signature verification implementation. + */ +static inline void +br_ssl_engine_set_rsavrfy(br_ssl_engine_context *cc, br_rsa_pkcs1_vrfy irsavrfy) +{ + cc->irsavrfy = irsavrfy; +} + +/** + * \brief Set the "default" RSA implementation (signature verification). + * + * This function sets the RSA implementation (signature verification) + * to the fastest implementation available on the current platform. + * + * \param cc SSL engine context. + */ +void br_ssl_engine_set_default_rsavrfy(br_ssl_engine_context *cc); + +/** + * \brief Get the RSA implementation (signature verification) configured + * in the provided engine. + * + * \param cc SSL engine context. + * \return the RSA signature verification implementation. + */ +static inline br_rsa_pkcs1_vrfy +br_ssl_engine_get_rsavrfy(br_ssl_engine_context *cc) +{ + return cc->irsavrfy; +} + +/* + * \brief Set the ECDSA implementation (signature verification). + * + * On the client, this is used to verify the server's signature on its + * ServerKeyExchange message (for ECDHE_ECDSA cipher suites). On the server, + * this is used to verify the client's CertificateVerify message (if a + * client certificate is requested, that certificate contains an EC key, + * and full-static ECDH is not used). + * + * The ECDSA implementation will use the EC core implementation configured + * in the engine context. + * + * \param cc client context. + * \param iecdsa ECDSA verification implementation. + */ +static inline void +br_ssl_engine_set_ecdsa(br_ssl_engine_context *cc, br_ecdsa_vrfy iecdsa) +{ + cc->iecdsa = iecdsa; +} + +/** + * \brief Set the "default" ECDSA implementation (signature verification). + * + * This function sets the ECDSA implementation (signature verification) + * to the fastest implementation available on the current platform. This + * call also sets the elliptic curve implementation itself, there again + * to the fastest EC implementation available. + * + * \param cc SSL engine context. + */ +void br_ssl_engine_set_default_ecdsa(br_ssl_engine_context *cc); + +/** + * \brief Get the ECDSA implementation (signature verification) configured + * in the provided engine. + * + * \param cc SSL engine context. + * \return the ECDSA signature verification implementation. + */ +static inline br_ecdsa_vrfy +br_ssl_engine_get_ecdsa(br_ssl_engine_context *cc) +{ + return cc->iecdsa; +} + +/** + * \brief Set the I/O buffer for the SSL engine. + * + * Once this call has been made, `br_ssl_client_reset()` or + * `br_ssl_server_reset()` MUST be called before using the context. + * + * The provided buffer will be used as long as the engine context is + * used. The caller is responsible for keeping it available. + * + * If `bidi` is 0, then the engine will operate in half-duplex mode + * (it won't be able to send data while there is unprocessed incoming + * data in the buffer, and it won't be able to receive data while there + * is unsent data in the buffer). The optimal buffer size in half-duplex + * mode is `BR_SSL_BUFSIZE_MONO`; if the buffer is larger, then extra + * bytes are ignored. If the buffer is smaller, then this limits the + * capacity of the engine to support all allowed record sizes. + * + * If `bidi` is 1, then the engine will split the buffer into two + * parts, for separate handling of outgoing and incoming data. This + * enables full-duplex processing, but requires more RAM. The optimal + * buffer size in full-duplex mode is `BR_SSL_BUFSIZE_BIDI`; if the + * buffer is larger, then extra bytes are ignored. If the buffer is + * smaller, then the split will favour the incoming part, so that + * interoperability is maximised. + * + * \param cc SSL engine context + * \param iobuf I/O buffer. + * \param iobuf_len I/O buffer length (in bytes). + * \param bidi non-zero for full-duplex mode. + */ +void br_ssl_engine_set_buffer(br_ssl_engine_context *cc, + void *iobuf, size_t iobuf_len, int bidi); + +/** + * \brief Set the I/O buffers for the SSL engine. + * + * Once this call has been made, `br_ssl_client_reset()` or + * `br_ssl_server_reset()` MUST be called before using the context. + * + * This function is similar to `br_ssl_engine_set_buffer()`, except + * that it enforces full-duplex mode, and the two I/O buffers are + * provided as separate chunks. + * + * The macros `BR_SSL_BUFSIZE_INPUT` and `BR_SSL_BUFSIZE_OUTPUT` + * evaluate to the optimal (maximum) sizes for the input and output + * buffer, respectively. + * + * \param cc SSL engine context + * \param ibuf input buffer. + * \param ibuf_len input buffer length (in bytes). + * \param obuf output buffer. + * \param obuf_len output buffer length (in bytes). + */ +void br_ssl_engine_set_buffers_bidi(br_ssl_engine_context *cc, + void *ibuf, size_t ibuf_len, void *obuf, size_t obuf_len); + +/** + * \brief Determine if MFLN negotiation was successful + * + * \param cc SSL engine context. + */ +static inline uint8_t +br_ssl_engine_get_mfln_negotiated(br_ssl_engine_context *cc) +{ + return cc->max_frag_len_negotiated; +} + +/** + * \brief Inject some "initial entropy" in the context. + * + * This entropy will be added to what can be obtained from the + * underlying operating system, if that OS is supported. + * + * This function may be called several times; all injected entropy chunks + * are cumulatively mixed. + * + * If entropy gathering from the OS is supported and compiled in, then this + * step is optional. Otherwise, it is mandatory to inject randomness, and + * the caller MUST take care to push (as one or several successive calls) + * enough entropy to achieve cryptographic resistance (at least 80 bits, + * preferably 128 or more). The engine will report an error if no entropy + * was provided and none can be obtained from the OS. + * + * Take care that this function cannot assess the cryptographic quality of + * the provided bytes. + * + * In all generality, "entropy" must here be considered to mean "that + * which the attacker cannot predict". If your OS/architecture does not + * have a suitable source of randomness, then you can make do with the + * combination of a large enough secret value (possibly a copy of an + * asymmetric private key that you also store on the system) AND a + * non-repeating value (e.g. current time, provided that the local clock + * cannot be reset or altered by the attacker). + * + * \param cc SSL engine context. + * \param data extra entropy to inject. + * \param len length of the extra data (in bytes). + */ +void br_ssl_engine_inject_entropy(br_ssl_engine_context *cc, + const void *data, size_t len); + +/** + * \brief Get the "server name" in this engine. + * + * For clients, this is the name provided with `br_ssl_client_reset()`; + * for servers, this is the name received from the client as part of the + * ClientHello message. If there is no such name (e.g. the client did + * not send an SNI extension) then the returned string is empty + * (returned pointer points to a byte of value 0). + * + * The returned pointer refers to a buffer inside the context, which may + * be overwritten as part of normal SSL activity (even within the same + * connection, if a renegotiation occurs). + * + * \param cc SSL engine context. + * \return the server name (possibly empty). + */ +static inline const char * +br_ssl_engine_get_server_name(const br_ssl_engine_context *cc) +{ + return cc->server_name; +} + +/** + * \brief Get the protocol version. + * + * This function returns the protocol version that is used by the + * engine. That value is set after sending (for a server) or receiving + * (for a client) the ServerHello message. + * + * \param cc SSL engine context. + * \return the protocol version. + */ +static inline unsigned +br_ssl_engine_get_version(const br_ssl_engine_context *cc) +{ + return cc->session.version; +} + +/** + * \brief Get a copy of the session parameters. + * + * The session parameters are filled during the handshake, so this + * function shall not be called before completion of the handshake. + * The initial handshake is completed when the context first allows + * application data to be injected. + * + * This function copies the current session parameters into the provided + * structure. Beware that the session parameters include the master + * secret, which is sensitive data, to handle with great care. + * + * \param cc SSL engine context. + * \param pp destination structure for the session parameters. + */ +static inline void +br_ssl_engine_get_session_parameters(const br_ssl_engine_context *cc, + br_ssl_session_parameters *pp) +{ + memcpy(pp, &cc->session, sizeof *pp); +} + +/** + * \brief Set the session parameters to the provided values. + * + * This function is meant to be used in the client, before doing a new + * handshake; a session resumption will be attempted with these + * parameters. In the server, this function has no effect. + * + * \param cc SSL engine context. + * \param pp source structure for the session parameters. + */ +static inline void +br_ssl_engine_set_session_parameters(br_ssl_engine_context *cc, + const br_ssl_session_parameters *pp) +{ + memcpy(&cc->session, pp, sizeof *pp); +} + +/** + * \brief Get identifier for the curve used for key exchange. + * + * If the cipher suite uses ECDHE, then this function returns the + * identifier for the curve used for transient parameters. This is + * defined during the course of the handshake, when the ServerKeyExchange + * is sent (on the server) or received (on the client). If the + * cipher suite does not use ECDHE (e.g. static ECDH, or RSA key + * exchange), then this value is indeterminate. + * + * @param cc SSL engine context. + * @return the ECDHE curve identifier. + */ +static inline int +br_ssl_engine_get_ecdhe_curve(br_ssl_engine_context *cc) +{ + return cc->ecdhe_curve; +} + +/** + * \brief Get the current engine state. + * + * An SSL engine (client or server) has, at any time, a state which is + * the combination of zero, one or more of these flags: + * + * - `BR_SSL_CLOSED` + * + * Engine is finished, no more I/O (until next reset). + * + * - `BR_SSL_SENDREC` + * + * Engine has some bytes to send to the peer. + * + * - `BR_SSL_RECVREC` + * + * Engine expects some bytes from the peer. + * + * - `BR_SSL_SENDAPP` + * + * Engine may receive application data to send (or flush). + * + * - `BR_SSL_RECVAPP` + * + * Engine has obtained some application data from the peer, + * that should be read by the caller. + * + * If no flag at all is set (state value is 0), then the engine is not + * fully initialised yet. + * + * The `BR_SSL_CLOSED` flag is exclusive; when it is set, no other flag + * is set. To distinguish between a normal closure and an error, use + * `br_ssl_engine_last_error()`. + * + * Generally speaking, `BR_SSL_SENDREC` and `BR_SSL_SENDAPP` are mutually + * exclusive: the input buffer, at any point, either accumulates + * plaintext data, or contains an assembled record that is being sent. + * Similarly, `BR_SSL_RECVREC` and `BR_SSL_RECVAPP` are mutually exclusive. + * This may change in a future library version. + * + * \param cc SSL engine context. + * \return the current engine state. + */ +unsigned br_ssl_engine_current_state(const br_ssl_engine_context *cc); + +/** \brief SSL engine state: closed or failed. */ +#define BR_SSL_CLOSED 0x0001 +/** \brief SSL engine state: record data is ready to be sent to the peer. */ +#define BR_SSL_SENDREC 0x0002 +/** \brief SSL engine state: engine may receive records from the peer. */ +#define BR_SSL_RECVREC 0x0004 +/** \brief SSL engine state: engine may accept application data to send. */ +#define BR_SSL_SENDAPP 0x0008 +/** \brief SSL engine state: engine has received application data. */ +#define BR_SSL_RECVAPP 0x0010 + +/** + * \brief Get the engine error indicator. + * + * The error indicator is `BR_ERR_OK` (0) if no error was encountered + * since the last call to `br_ssl_client_reset()` or + * `br_ssl_server_reset()`. Other status values are "sticky": they + * remain set, and prevent all I/O activity, until cleared. Only the + * reset calls clear the error indicator. + * + * \param cc SSL engine context. + * \return 0, or a non-zero error code. + */ +static inline int +br_ssl_engine_last_error(const br_ssl_engine_context *cc) +{ + return cc->err; +} + +/* + * There are four I/O operations, each identified by a symbolic name: + * + * sendapp inject application data in the engine + * recvapp retrieving application data from the engine + * sendrec sending records on the transport medium + * recvrec receiving records from the transport medium + * + * Terminology works thus: in a layered model where the SSL engine sits + * between the application and the network, "send" designates operations + * where bytes flow from application to network, and "recv" for the + * reverse operation. Application data (the plaintext that is to be + * conveyed through SSL) is "app", while encrypted records are "rec". + * Note that from the SSL engine point of view, "sendapp" and "recvrec" + * designate bytes that enter the engine ("inject" operation), while + * "recvapp" and "sendrec" designate bytes that exit the engine + * ("extract" operation). + * + * For the operation 'xxx', two functions are defined: + * + * br_ssl_engine_xxx_buf + * Returns a pointer and length to the buffer to use for that + * operation. '*len' is set to the number of bytes that may be read + * from the buffer (extract operation) or written to the buffer + * (inject operation). If no byte may be exchanged for that operation + * at that point, then '*len' is set to zero, and NULL is returned. + * The engine state is unmodified by this call. + * + * br_ssl_engine_xxx_ack + * Informs the engine that 'len' bytes have been read from the buffer + * (extract operation) or written to the buffer (inject operation). + * The 'len' value MUST NOT be zero. The 'len' value MUST NOT exceed + * that which was obtained from a preceding br_ssl_engine_xxx_buf() + * call. + */ + +/** + * \brief Get buffer for application data to send. + * + * If the engine is ready to accept application data to send to the + * peer, then this call returns a pointer to the buffer where such + * data shall be written, and its length is written in `*len`. + * Otherwise, `*len` is set to 0 and `NULL` is returned. + * + * \param cc SSL engine context. + * \param len receives the application data output buffer length, or 0. + * \return the application data output buffer, or `NULL`. + */ +unsigned char *br_ssl_engine_sendapp_buf( + const br_ssl_engine_context *cc, size_t *len); + +/** + * \brief Inform the engine of some new application data. + * + * After writing `len` bytes in the buffer returned by + * `br_ssl_engine_sendapp_buf()`, the application shall call this + * function to trigger any relevant processing. The `len` parameter + * MUST NOT be 0, and MUST NOT exceed the value obtained in the + * `br_ssl_engine_sendapp_buf()` call. + * + * \param cc SSL engine context. + * \param len number of bytes pushed (not zero). + */ +void br_ssl_engine_sendapp_ack(br_ssl_engine_context *cc, size_t len); + +/** + * \brief Get buffer for received application data. + * + * If the engine has received application data from the peer, then this + * call returns a pointer to the buffer from where such data shall be + * read, and its length is written in `*len`. Otherwise, `*len` is set + * to 0 and `NULL` is returned. + * + * \param cc SSL engine context. + * \param len receives the application data input buffer length, or 0. + * \return the application data input buffer, or `NULL`. + */ +unsigned char *br_ssl_engine_recvapp_buf( + const br_ssl_engine_context *cc, size_t *len); + +/** + * \brief Acknowledge some received application data. + * + * After reading `len` bytes from the buffer returned by + * `br_ssl_engine_recvapp_buf()`, the application shall call this + * function to trigger any relevant processing. The `len` parameter + * MUST NOT be 0, and MUST NOT exceed the value obtained in the + * `br_ssl_engine_recvapp_buf()` call. + * + * \param cc SSL engine context. + * \param len number of bytes read (not zero). + */ +void br_ssl_engine_recvapp_ack(br_ssl_engine_context *cc, size_t len); + +/** + * \brief Get buffer for record data to send. + * + * If the engine has prepared some records to send to the peer, then this + * call returns a pointer to the buffer from where such data shall be + * read, and its length is written in `*len`. Otherwise, `*len` is set + * to 0 and `NULL` is returned. + * + * \param cc SSL engine context. + * \param len receives the record data output buffer length, or 0. + * \return the record data output buffer, or `NULL`. + */ +unsigned char *br_ssl_engine_sendrec_buf( + const br_ssl_engine_context *cc, size_t *len); + +/** + * \brief Acknowledge some sent record data. + * + * After reading `len` bytes from the buffer returned by + * `br_ssl_engine_sendrec_buf()`, the application shall call this + * function to trigger any relevant processing. The `len` parameter + * MUST NOT be 0, and MUST NOT exceed the value obtained in the + * `br_ssl_engine_sendrec_buf()` call. + * + * \param cc SSL engine context. + * \param len number of bytes read (not zero). + */ +void br_ssl_engine_sendrec_ack(br_ssl_engine_context *cc, size_t len); + +/** + * \brief Get buffer for incoming records. + * + * If the engine is ready to accept records from the peer, then this + * call returns a pointer to the buffer where such data shall be + * written, and its length is written in `*len`. Otherwise, `*len` is + * set to 0 and `NULL` is returned. + * + * \param cc SSL engine context. + * \param len receives the record data input buffer length, or 0. + * \return the record data input buffer, or `NULL`. + */ +unsigned char *br_ssl_engine_recvrec_buf( + const br_ssl_engine_context *cc, size_t *len); + +/** + * \brief Inform the engine of some new record data. + * + * After writing `len` bytes in the buffer returned by + * `br_ssl_engine_recvrec_buf()`, the application shall call this + * function to trigger any relevant processing. The `len` parameter + * MUST NOT be 0, and MUST NOT exceed the value obtained in the + * `br_ssl_engine_recvrec_buf()` call. + * + * \param cc SSL engine context. + * \param len number of bytes pushed (not zero). + */ +void br_ssl_engine_recvrec_ack(br_ssl_engine_context *cc, size_t len); + +/** + * \brief Flush buffered application data. + * + * If some application data has been buffered in the engine, then wrap + * it into a record and mark it for sending. If no application data has + * been buffered but the engine would be ready to accept some, AND the + * `force` parameter is non-zero, then an empty record is assembled and + * marked for sending. In all other cases, this function does nothing. + * + * Empty records are technically legal, but not all existing SSL/TLS + * implementations support them. Empty records can be useful as a + * transparent "keep-alive" mechanism to maintain some low-level + * network activity. + * + * \param cc SSL engine context. + * \param force non-zero to force sending an empty record. + */ +void br_ssl_engine_flush(br_ssl_engine_context *cc, int force); + +/** + * \brief Initiate a closure. + * + * If, at that point, the context is open and in ready state, then a + * `close_notify` alert is assembled and marked for sending; this + * triggers the closure protocol. Otherwise, no such alert is assembled. + * + * \param cc SSL engine context. + */ +void br_ssl_engine_close(br_ssl_engine_context *cc); + +/** + * \brief Initiate a renegotiation. + * + * If the engine is failed or closed, or if the peer is known not to + * support secure renegotiation (RFC 5746), or if renegotiations have + * been disabled with the `BR_OPT_NO_RENEGOTIATION` flag, or if there + * is buffered incoming application data, then this function returns 0 + * and nothing else happens. + * + * Otherwise, this function returns 1, and a renegotiation attempt is + * triggered (if a handshake is already ongoing at that point, then + * no new handshake is triggered). + * + * \param cc SSL engine context. + * \return 1 on success, 0 on error. + */ +int br_ssl_engine_renegotiate(br_ssl_engine_context *cc); + +/** + * \brief Export key material from a connected SSL engine (RFC 5705). + * + * This calls compute a secret key of arbitrary length from the master + * secret of a connected SSL engine. If the provided context is not + * currently in "application data" state (initial handshake is not + * finished, another handshake is ongoing, or the connection failed or + * was closed), then this function returns 0. Otherwise, a secret key of + * length `len` bytes is computed and written in the buffer pointed to + * by `dst`, and 1 is returned. + * + * The computed key follows the specification described in RFC 5705. + * That RFC includes two key computations, with and without a "context + * value". If `context` is `NULL`, then the variant without context is + * used; otherwise, the `context_len` bytes located at the address + * pointed to by `context` are used in the computation. Note that it + * is possible to have a "with context" key with a context length of + * zero bytes, by setting `context` to a non-`NULL` value but + * `context_len` to 0. + * + * When context bytes are used, the context length MUST NOT exceed + * 65535 bytes. + * + * \param cc SSL engine context. + * \param dst destination buffer for exported key. + * \param len exported key length (in bytes). + * \param label disambiguation label. + * \param context context value (or `NULL`). + * \param context_len context length (in bytes). + * \return 1 on success, 0 on error. + */ +int br_ssl_key_export(br_ssl_engine_context *cc, + void *dst, size_t len, const char *label, + const void *context, size_t context_len); + +/* + * Pre-declaration for the SSL client context. + */ +typedef struct br_ssl_client_context_ br_ssl_client_context; + +/** + * \brief Type for the client certificate, if requested by the server. + */ +typedef struct { + /** + * \brief Authentication type. + * + * This is either `BR_AUTH_RSA` (RSA signature), `BR_AUTH_ECDSA` + * (ECDSA signature), or `BR_AUTH_ECDH` (static ECDH key exchange). + */ + int auth_type; + + /** + * \brief Hash function for computing the CertificateVerify. + * + * This is the symbolic identifier for the hash function that + * will be used to produce the hash of handshake messages, to + * be signed into the CertificateVerify. For full static ECDH + * (client and server certificates are both EC in the same + * curve, and static ECDH is used), this value is set to -1. + * + * Take care that with TLS 1.0 and 1.1, that value MUST match + * the protocol requirements: value must be 0 (MD5+SHA-1) for + * a RSA signature, or 2 (SHA-1) for an ECDSA signature. Only + * TLS 1.2 allows for other hash functions. + */ + int hash_id; + + /** + * \brief Certificate chain to send to the server. + * + * This is an array of `br_x509_certificate` objects, each + * normally containing a DER-encoded certificate. The client + * code does not try to decode these elements. If there is no + * chain to send to the server, then this pointer shall be + * set to `NULL`. + */ + const br_x509_certificate *chain; + + /** + * \brief Certificate chain length (number of certificates). + * + * If there is no chain to send to the server, then this value + * shall be set to 0. + */ + size_t chain_len; + +} br_ssl_client_certificate; + +/* + * Note: the constants below for signatures match the TLS constants. + */ + +/** \brief Client authentication type: static ECDH. */ +#define BR_AUTH_ECDH 0 +/** \brief Client authentication type: RSA signature. */ +#define BR_AUTH_RSA 1 +/** \brief Client authentication type: ECDSA signature. */ +#define BR_AUTH_ECDSA 3 + +/** + * \brief Class type for a certificate handler (client side). + * + * A certificate handler selects a client certificate chain to send to + * the server, upon explicit request from that server. It receives + * the list of trust anchor DN from the server, and supported types + * of certificates and signatures, and returns the chain to use. It + * is also invoked to perform the corresponding private key operation + * (a signature, or an ECDH computation). + * + * The SSL client engine will first push the trust anchor DN with + * `start_name_list()`, `start_name()`, `append_name()`, `end_name()` + * and `end_name_list()`. Then it will call `choose()`, to select the + * actual chain (and signature/hash algorithms). Finally, it will call + * either `do_sign()` or `do_keyx()`, depending on the algorithm choices. + */ +typedef struct br_ssl_client_certificate_class_ br_ssl_client_certificate_class; +struct br_ssl_client_certificate_class_ { + /** + * \brief Context size (in bytes). + */ + size_t context_size; + + /** + * \brief Begin reception of a list of trust anchor names. This + * is called while parsing the incoming CertificateRequest. + * + * \param pctx certificate handler context. + */ + void (*start_name_list)(const br_ssl_client_certificate_class **pctx); + + /** + * \brief Begin reception of a new trust anchor name. + * + * The total encoded name length is provided; it is less than + * 65535 bytes. + * + * \param pctx certificate handler context. + * \param len encoded name length (in bytes). + */ + void (*start_name)(const br_ssl_client_certificate_class **pctx, + size_t len); + + /** + * \brief Receive some more bytes for the current trust anchor name. + * + * The provided reference (`data`) points to a transient buffer + * they may be reused as soon as this function returns. The chunk + * length (`len`) is never zero. + * + * \param pctx certificate handler context. + * \param data anchor name chunk. + * \param len anchor name chunk length (in bytes). + */ + void (*append_name)(const br_ssl_client_certificate_class **pctx, + const unsigned char *data, size_t len); + + /** + * \brief End current trust anchor name. + * + * This function is called when all the encoded anchor name data + * has been provided. + * + * \param pctx certificate handler context. + */ + void (*end_name)(const br_ssl_client_certificate_class **pctx); + + /** + * \brief End list of trust anchor names. + * + * This function is called when all the anchor names in the + * CertificateRequest message have been obtained. + * + * \param pctx certificate handler context. + */ + void (*end_name_list)(const br_ssl_client_certificate_class **pctx); + + /** + * \brief Select client certificate and algorithms. + * + * This callback function shall fill the provided `choices` + * structure with the selected algorithms and certificate chain. + * The `hash_id`, `chain` and `chain_len` fields must be set. If + * the client cannot or does not wish to send a certificate, + * then it shall set `chain` to `NULL` and `chain_len` to 0. + * + * The `auth_types` parameter describes the authentication types, + * signature algorithms and hash functions that are supported by + * both the client context and the server, and compatible with + * the current protocol version. This is a bit field with the + * following contents: + * + * - If RSA signatures with hash function x are supported, then + * bit x is set. + * + * - If ECDSA signatures with hash function x are supported, + * then bit 8+x is set. + * + * - If static ECDH is supported, with a RSA-signed certificate, + * then bit 16 is set. + * + * - If static ECDH is supported, with an ECDSA-signed certificate, + * then bit 17 is set. + * + * Notes: + * + * - When using TLS 1.0 or 1.1, the hash function for RSA + * signatures is always the special MD5+SHA-1 (id 0), and the + * hash function for ECDSA signatures is always SHA-1 (id 2). + * + * - When using TLS 1.2, the list of hash functions is trimmed + * down to include only hash functions that the client context + * can support. The actual server list can be obtained with + * `br_ssl_client_get_server_hashes()`; that list may be used + * to select the certificate chain to send to the server. + * + * \param pctx certificate handler context. + * \param cc SSL client context. + * \param auth_types supported authentication types and algorithms. + * \param choices destination structure for the policy choices. + */ + void (*choose)(const br_ssl_client_certificate_class **pctx, + const br_ssl_client_context *cc, uint32_t auth_types, + br_ssl_client_certificate *choices); + + /** + * \brief Perform key exchange (client part). + * + * This callback is invoked in case of a full static ECDH key + * exchange: + * + * - the cipher suite uses `ECDH_RSA` or `ECDH_ECDSA`; + * + * - the server requests a client certificate; + * + * - the client has, and sends, a client certificate that + * uses an EC key in the same curve as the server's key, + * and chooses static ECDH (the `hash_id` field in the choice + * structure was set to -1). + * + * In that situation, this callback is invoked to compute the + * client-side ECDH: the provided `data` (of length `*len` bytes) + * is the server's public key point (as decoded from its + * certificate), and the client shall multiply that point with + * its own private key, and write back the X coordinate of the + * resulting point in the same buffer, starting at offset 0. + * The `*len` value shall be modified to designate the actual + * length of the X coordinate. + * + * The callback must uphold the following: + * + * - If the input array does not have the proper length for + * an encoded curve point, then an error (0) shall be reported. + * + * - If the input array has the proper length, then processing + * MUST be constant-time, even if the data is not a valid + * encoded point. + * + * - This callback MUST check that the input point is valid. + * + * Returned value is 1 on success, 0 on error. + * + * \param pctx certificate handler context. + * \param data server public key point. + * \param len public key point length / X coordinate length. + * \return 1 on success, 0 on error. + */ + uint32_t (*do_keyx)(const br_ssl_client_certificate_class **pctx, + unsigned char *data, size_t *len); + + /** + * \brief Perform a signature (client authentication). + * + * This callback is invoked when a client certificate was sent, + * and static ECDH is not used. It shall compute a signature, + * using the client's private key, over the provided hash value + * (which is the hash of all previous handshake messages). + * + * On input, the hash value to sign is in `data`, of size + * `hv_len`; the involved hash function is identified by + * `hash_id`. The signature shall be computed and written + * back into `data`; the total size of that buffer is `len` + * bytes. + * + * This callback shall verify that the signature length does not + * exceed `len` bytes, and abstain from writing the signature if + * it does not fit. + * + * For RSA signatures, the `hash_id` may be 0, in which case + * this is the special header-less signature specified in TLS 1.0 + * and 1.1, with a 36-byte hash value. Otherwise, normal PKCS#1 + * v1.5 signatures shall be computed. + * + * For ECDSA signatures, the signature value shall use the ASN.1 + * based encoding. + * + * Returned value is the signature length (in bytes), or 0 on error. + * + * \param pctx certificate handler context. + * \param hash_id hash function identifier. + * \param hv_len hash value length (in bytes). + * \param data input/output buffer (hash value, then signature). + * \param len total buffer length (in bytes). + * \return signature length (in bytes) on success, or 0 on error. + */ + size_t (*do_sign)(const br_ssl_client_certificate_class **pctx, + int hash_id, size_t hv_len, unsigned char *data, size_t len); +}; + +/** + * \brief A single-chain RSA client certificate handler. + * + * This handler uses a single certificate chain, with a RSA + * signature. The list of trust anchor DN is ignored. + * + * Apart from the first field (vtable pointer), its contents are + * opaque and shall not be accessed directly. + */ +typedef struct { + /** \brief Pointer to vtable. */ + const br_ssl_client_certificate_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + const br_x509_certificate *chain; + size_t chain_len; + const br_rsa_private_key *sk; + br_rsa_pkcs1_sign irsasign; +#endif +} br_ssl_client_certificate_rsa_context; + +/** + * \brief A single-chain EC client certificate handler. + * + * This handler uses a single certificate chain, with a RSA + * signature. The list of trust anchor DN is ignored. + * + * This handler may support both static ECDH, and ECDSA signatures + * (either usage may be selectively disabled). + * + * Apart from the first field (vtable pointer), its contents are + * opaque and shall not be accessed directly. + */ +typedef struct { + /** \brief Pointer to vtable. */ + const br_ssl_client_certificate_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + const br_x509_certificate *chain; + size_t chain_len; + const br_ec_private_key *sk; + unsigned allowed_usages; + unsigned issuer_key_type; + const br_multihash_context *mhash; + const br_ec_impl *iec; + br_ecdsa_sign iecdsa; +#endif +} br_ssl_client_certificate_ec_context; + +/** + * \brief Context structure for a SSL client. + * + * The first field (called `eng`) is the SSL engine; all functions that + * work on a `br_ssl_engine_context` structure shall take as parameter + * a pointer to that field. The other structure fields are opaque and + * must not be accessed directly. + */ +struct br_ssl_client_context_ { + /** + * \brief The encapsulated engine context. + */ + br_ssl_engine_context eng; + +#ifndef BR_DOXYGEN_IGNORE + /* + * Minimum ClientHello length; padding with an extension (RFC + * 7685) is added if necessary to match at least that length. + * Such padding is nominally unnecessary, but it has been used + * to work around some server implementation bugs. + */ + uint16_t min_clienthello_len; + + /* + * Bit field for algoithms (hash + signature) supported by the + * server when requesting a client certificate. + */ + uint32_t hashes; + + /* + * Server's public key curve. + */ + int server_curve; + + /* + * Context for certificate handler. + */ + const br_ssl_client_certificate_class **client_auth_vtable; + + /* + * Client authentication type. + */ + unsigned char auth_type; + + /* + * Hash function to use for the client signature. This is 0xFF + * if static ECDH is used. + */ + unsigned char hash_id; + + /* + * For the core certificate handlers, thus avoiding (in most + * cases) the need for an externally provided policy context. + */ + union { + const br_ssl_client_certificate_class *vtable; + br_ssl_client_certificate_rsa_context single_rsa; + br_ssl_client_certificate_ec_context single_ec; + } client_auth; + + /* + * Implementations. + */ + br_rsa_public irsapub; +#endif +}; + +/** + * \brief Get the hash functions and signature algorithms supported by + * the server. + * + * This value is a bit field: + * + * - If RSA (PKCS#1 v1.5) is supported with hash function of ID `x`, + * then bit `x` is set (hash function ID is 0 for the special MD5+SHA-1, + * or 2 to 6 for the SHA family). + * + * - If ECDSA is supported with hash function of ID `x`, then bit `8+x` + * is set. + * + * - Newer algorithms are symbolic 16-bit identifiers that do not + * represent signature algorithm and hash function separately. If + * the TLS-level identifier is `0x0800+x` for a `x` in the 0..15 + * range, then bit `16+x` is set. + * + * "New algorithms" are currently defined only in draft documents, so + * this support is subject to possible change. Right now (early 2017), + * this maps ed25519 (EdDSA on Curve25519) to bit 23, and ed448 (EdDSA + * on Curve448) to bit 24. If the identifiers on the wire change in + * future document, then the decoding mechanism in BearSSL will be + * amended to keep mapping ed25519 and ed448 on bits 23 and 24, + * respectively. Mapping of other new algorithms (e.g. RSA/PSS) is not + * guaranteed yet. + * + * \param cc client context. + * \return the server-supported hash functions and signature algorithms. + */ +static inline uint32_t +br_ssl_client_get_server_hashes(const br_ssl_client_context *cc) +{ + return cc->hashes; +} + +/** + * \brief Get the server key curve. + * + * This function returns the ID for the curve used by the server's public + * key. This is set when the server's certificate chain is processed; + * this value is 0 if the server's key is not an EC key. + * + * \return the server's public key curve ID, or 0. + */ +static inline int +br_ssl_client_get_server_curve(const br_ssl_client_context *cc) +{ + return cc->server_curve; +} + +/* + * Each br_ssl_client_init_xxx() function sets the list of supported + * cipher suites and used implementations, as specified by the profile + * name 'xxx'. Defined profile names are: + * + * full all supported versions and suites; constant-time implementations + * TODO: add other profiles + */ + +/** + * \brief SSL client profile: full. + * + * This function initialises the provided SSL client context with + * all supported algorithms and cipher suites. It also initialises + * a companion X.509 validation engine with all supported algorithms, + * and the provided trust anchors; the X.509 engine will be used by + * the client context to validate the server's certificate. + * + * \param cc client context to initialise. + * \param xc X.509 validation context to initialise. + * \param trust_anchors trust anchors to use. + * \param trust_anchors_num number of trust anchors. + */ +void br_ssl_client_init_full(br_ssl_client_context *cc, + br_x509_minimal_context *xc, + const br_x509_trust_anchor *trust_anchors, size_t trust_anchors_num); + +/** + * \brief Clear the complete contents of a SSL client context. + * + * Everything is cleared, including the reference to the configured buffer, + * implementations, cipher suites and state. This is a preparatory step + * to assembling a custom profile. + * + * \param cc client context to clear. + */ +void br_ssl_client_zero(br_ssl_client_context *cc); + +/** + * \brief Set an externally provided client certificate handler context. + * + * The handler's methods are invoked when the server requests a client + * certificate. + * + * \param cc client context. + * \param pctx certificate handler context (pointer to its vtable field). + */ +static inline void +br_ssl_client_set_client_certificate(br_ssl_client_context *cc, + const br_ssl_client_certificate_class **pctx) +{ + cc->client_auth_vtable = pctx; +} + +/** + * \brief Set the RSA public-key operations implementation. + * + * This will be used to encrypt the pre-master secret with the server's + * RSA public key (RSA-encryption cipher suites only). + * + * \param cc client context. + * \param irsapub RSA public-key encryption implementation. + */ +static inline void +br_ssl_client_set_rsapub(br_ssl_client_context *cc, br_rsa_public irsapub) +{ + cc->irsapub = irsapub; +} + +/** + * \brief Set the "default" RSA implementation for public-key operations. + * + * This sets the RSA implementation in the client context (for encrypting + * the pre-master secret, in `TLS_RSA_*` cipher suites) to the fastest + * available on the current platform. + * + * \param cc client context. + */ +void br_ssl_client_set_default_rsapub(br_ssl_client_context *cc); + +/** + * \brief Set the minimum ClientHello length (RFC 7685 padding). + * + * If this value is set and the ClientHello would be shorter, then + * the Pad ClientHello extension will be added with enough padding bytes + * to reach the target size. Because of the extension header, the resulting + * size will sometimes be slightly more than `len` bytes if the target + * size cannot be exactly met. + * + * The target length relates to the _contents_ of the ClientHello, not + * counting its 4-byte header. For instance, if `len` is set to 512, + * then the padding will bring the ClientHello size to 516 bytes with its + * header, and 521 bytes when counting the 5-byte record header. + * + * \param cc client context. + * \param len minimum ClientHello length (in bytes). + */ +static inline void +br_ssl_client_set_min_clienthello_len(br_ssl_client_context *cc, uint16_t len) +{ + cc->min_clienthello_len = len; +} + +/** + * \brief Prepare or reset a client context for a new connection. + * + * The `server_name` parameter is used to fill the SNI extension; the + * X.509 "minimal" engine will also match that name against the server + * names included in the server's certificate. If the parameter is + * `NULL` then no SNI extension will be sent, and the X.509 "minimal" + * engine (if used for server certificate validation) will not check + * presence of any specific name in the received certificate. + * + * Therefore, setting the `server_name` to `NULL` shall be reserved + * to cases where alternate or additional methods are used to ascertain + * that the right server public key is used (e.g. a "known key" model). + * + * If `resume_session` is non-zero and the context was previously used + * then the session parameters may be reused (depending on whether the + * server previously sent a non-empty session ID, and accepts the session + * resumption). The session parameters for session resumption can also + * be set explicitly with `br_ssl_engine_set_session_parameters()`. + * + * On failure, the context is marked as failed, and this function + * returns 0. A possible failure condition is when no initial entropy + * was injected, and none could be obtained from the OS (either OS + * randomness gathering is not supported, or it failed). + * + * \param cc client context. + * \param server_name target server name, or `NULL`. + * \param resume_session non-zero to try session resumption. + * \return 0 on failure, 1 on success. + */ +int br_ssl_client_reset(br_ssl_client_context *cc, + const char *server_name, int resume_session); + +/** + * \brief Forget any session in the context. + * + * This means that the next handshake that uses this context will + * necessarily be a full handshake (this applies both to new connections + * and to renegotiations). + * + * \param cc client context. + */ +static inline void +br_ssl_client_forget_session(br_ssl_client_context *cc) +{ + cc->eng.session.session_id_len = 0; +} + +/** + * \brief Set client certificate chain and key (single RSA case). + * + * This function sets a client certificate chain, that the client will + * send to the server whenever a client certificate is requested. This + * certificate uses an RSA public key; the corresponding private key is + * invoked for authentication. Trust anchor names sent by the server are + * ignored. + * + * The provided chain and private key are linked in the client context; + * they must remain valid as long as they may be used, i.e. normally + * for the duration of the connection, since they might be invoked + * again upon renegotiations. + * + * \param cc SSL client context. + * \param chain client certificate chain (SSL order: EE comes first). + * \param chain_len client chain length (number of certificates). + * \param sk client private key. + * \param irsasign RSA signature implementation (PKCS#1 v1.5). + */ +void br_ssl_client_set_single_rsa(br_ssl_client_context *cc, + const br_x509_certificate *chain, size_t chain_len, + const br_rsa_private_key *sk, br_rsa_pkcs1_sign irsasign); + +/* + * \brief Set the client certificate chain and key (single EC case). + * + * This function sets a client certificate chain, that the client will + * send to the server whenever a client certificate is requested. This + * certificate uses an EC public key; the corresponding private key is + * invoked for authentication. Trust anchor names sent by the server are + * ignored. + * + * The provided chain and private key are linked in the client context; + * they must remain valid as long as they may be used, i.e. normally + * for the duration of the connection, since they might be invoked + * again upon renegotiations. + * + * The `allowed_usages` is a combination of usages, namely + * `BR_KEYTYPE_KEYX` and/or `BR_KEYTYPE_SIGN`. The `BR_KEYTYPE_KEYX` + * value allows full static ECDH, while the `BR_KEYTYPE_SIGN` value + * allows ECDSA signatures. If ECDSA signatures are used, then an ECDSA + * signature implementation must be provided; otherwise, the `iecdsa` + * parameter may be 0. + * + * The `cert_issuer_key_type` value is either `BR_KEYTYPE_RSA` or + * `BR_KEYTYPE_EC`; it is the type of the public key used the the CA + * that issued (signed) the client certificate. That value is used with + * full static ECDH: support of the certificate by the server depends + * on how the certificate was signed. (Note: when using TLS 1.2, this + * parameter is ignored; but its value matters for TLS 1.0 and 1.1.) + * + * \param cc server context. + * \param chain server certificate chain to send. + * \param chain_len chain length (number of certificates). + * \param sk server private key (EC). + * \param allowed_usages allowed private key usages. + * \param cert_issuer_key_type issuing CA's key type. + * \param iec EC core implementation. + * \param iecdsa ECDSA signature implementation ("asn1" format). + */ +void br_ssl_client_set_single_ec(br_ssl_client_context *cc, + const br_x509_certificate *chain, size_t chain_len, + const br_ec_private_key *sk, unsigned allowed_usages, + unsigned cert_issuer_key_type, + const br_ec_impl *iec, br_ecdsa_sign iecdsa); + +/** + * \brief Type for a "translated cipher suite", as an array of two + * 16-bit integers. + * + * The first element is the cipher suite identifier (as used on the wire). + * The second element is the concatenation of four 4-bit elements which + * characterise the cipher suite contents. In most to least significant + * order, these 4-bit elements are: + * + * - Bits 12 to 15: key exchange + server key type + * + * | val | symbolic constant | suite type | details | + * | :-- | :----------------------- | :---------- | :----------------------------------------------- | + * | 0 | `BR_SSLKEYX_RSA` | RSA | RSA key exchange, key is RSA (encryption) | + * | 1 | `BR_SSLKEYX_ECDHE_RSA` | ECDHE_RSA | ECDHE key exchange, key is RSA (signature) | + * | 2 | `BR_SSLKEYX_ECDHE_ECDSA` | ECDHE_ECDSA | ECDHE key exchange, key is EC (signature) | + * | 3 | `BR_SSLKEYX_ECDH_RSA` | ECDH_RSA | Key is EC (key exchange), cert signed with RSA | + * | 4 | `BR_SSLKEYX_ECDH_ECDSA` | ECDH_ECDSA | Key is EC (key exchange), cert signed with ECDSA | + * + * - Bits 8 to 11: symmetric encryption algorithm + * + * | val | symbolic constant | symmetric encryption | key strength (bits) | + * | :-- | :--------------------- | :------------------- | :------------------ | + * | 0 | `BR_SSLENC_3DES_CBC` | 3DES/CBC | 168 | + * | 1 | `BR_SSLENC_AES128_CBC` | AES-128/CBC | 128 | + * | 2 | `BR_SSLENC_AES256_CBC` | AES-256/CBC | 256 | + * | 3 | `BR_SSLENC_AES128_GCM` | AES-128/GCM | 128 | + * | 4 | `BR_SSLENC_AES256_GCM` | AES-256/GCM | 256 | + * | 5 | `BR_SSLENC_CHACHA20` | ChaCha20/Poly1305 | 256 | + * + * - Bits 4 to 7: MAC algorithm + * + * | val | symbolic constant | MAC type | details | + * | :-- | :----------------- | :----------- | :------------------------------------ | + * | 0 | `BR_SSLMAC_AEAD` | AEAD | No dedicated MAC (encryption is AEAD) | + * | 2 | `BR_SSLMAC_SHA1` | HMAC/SHA-1 | Value matches `br_sha1_ID` | + * | 4 | `BR_SSLMAC_SHA256` | HMAC/SHA-256 | Value matches `br_sha256_ID` | + * | 5 | `BR_SSLMAC_SHA384` | HMAC/SHA-384 | Value matches `br_sha384_ID` | + * + * - Bits 0 to 3: hash function for PRF when used with TLS-1.2 + * + * | val | symbolic constant | hash function | details | + * | :-- | :----------------- | :------------ | :----------------------------------- | + * | 4 | `BR_SSLPRF_SHA256` | SHA-256 | Value matches `br_sha256_ID` | + * | 5 | `BR_SSLPRF_SHA384` | SHA-384 | Value matches `br_sha384_ID` | + * + * For instance, cipher suite `TLS_RSA_WITH_AES_128_GCM_SHA256` has + * standard identifier 0x009C, and is translated to 0x0304, for, in + * that order: RSA key exchange (0), AES-128/GCM (3), AEAD integrity (0), + * SHA-256 in the TLS PRF (4). + */ +typedef uint16_t br_suite_translated[2]; + +#ifndef BR_DOXYGEN_IGNORE +/* + * Constants are already documented in the br_suite_translated type. + */ + +#define BR_SSLKEYX_RSA 0 +#define BR_SSLKEYX_ECDHE_RSA 1 +#define BR_SSLKEYX_ECDHE_ECDSA 2 +#define BR_SSLKEYX_ECDH_RSA 3 +#define BR_SSLKEYX_ECDH_ECDSA 4 + +#define BR_SSLENC_3DES_CBC 0 +#define BR_SSLENC_AES128_CBC 1 +#define BR_SSLENC_AES256_CBC 2 +#define BR_SSLENC_AES128_GCM 3 +#define BR_SSLENC_AES256_GCM 4 +#define BR_SSLENC_CHACHA20 5 + +#define BR_SSLMAC_AEAD 0 +#define BR_SSLMAC_SHA1 br_sha1_ID +#define BR_SSLMAC_SHA256 br_sha256_ID +#define BR_SSLMAC_SHA384 br_sha384_ID + +#define BR_SSLPRF_SHA256 br_sha256_ID +#define BR_SSLPRF_SHA384 br_sha384_ID + +#endif + +/* + * Pre-declaration for the SSL server context. + */ +typedef struct br_ssl_server_context_ br_ssl_server_context; + +/** + * \brief Type for the server policy choices, taken after analysis of + * the client message (ClientHello). + */ +typedef struct { + /** + * \brief Cipher suite to use with that client. + */ + uint16_t cipher_suite; + + /** + * \brief Hash function or algorithm for signing the ServerKeyExchange. + * + * This parameter is ignored for `TLS_RSA_*` and `TLS_ECDH_*` + * cipher suites; it is used only for `TLS_ECDHE_*` suites, in + * which the server _signs_ the ephemeral EC Diffie-Hellman + * parameters sent to the client. + * + * This identifier must be one of the following values: + * + * - `0xFF00 + id`, where `id` is a hash function identifier + * (0 for MD5+SHA-1, or 2 to 6 for one of the SHA functions); + * + * - a full 16-bit identifier, lower than `0xFF00`. + * + * If the first option is used, then the SSL engine will + * compute the hash of the data that is to be signed, with the + * designated hash function. The `do_sign()` method will be + * invoked with that hash value provided in the the `data` + * buffer. + * + * If the second option is used, then the SSL engine will NOT + * compute a hash on the data; instead, it will provide the + * to-be-signed data itself in `data`, i.e. the concatenation of + * the client random, server random, and encoded ECDH + * parameters. Furthermore, with TLS-1.2 and later, the 16-bit + * identifier will be used "as is" in the protocol, in the + * SignatureAndHashAlgorithm; for instance, `0x0401` stands for + * RSA PKCS#1 v1.5 signature (the `01`) with SHA-256 as hash + * function (the `04`). + * + * Take care that with TLS 1.0 and 1.1, the hash function is + * constrainted by the protocol: RSA signature must use + * MD5+SHA-1 (so use `0xFF00`), while ECDSA must use SHA-1 + * (`0xFF02`). Since TLS 1.0 and 1.1 don't include a + * SignatureAndHashAlgorithm field in their ServerKeyExchange + * messages, any value below `0xFF00` will be usable to send the + * raw ServerKeyExchange data to the `do_sign()` callback, but + * that callback must still follow the protocol requirements + * when generating the signature. + */ + unsigned algo_id; + + /** + * \brief Certificate chain to send to the client. + * + * This is an array of `br_x509_certificate` objects, each + * normally containing a DER-encoded certificate. The server + * code does not try to decode these elements. + */ + const br_x509_certificate *chain; + + /** + * \brief Certificate chain length (number of certificates). + */ + size_t chain_len; + +} br_ssl_server_choices; + +/** + * \brief Class type for a policy handler (server side). + * + * A policy handler selects the policy parameters for a connection + * (cipher suite and other algorithms, and certificate chain to send to + * the client); it also performs the server-side computations involving + * its permanent private key. + * + * The SSL server engine will invoke first `choose()`, once the + * ClientHello message has been received, then either `do_keyx()` + * `do_sign()`, depending on the cipher suite. + */ +typedef struct br_ssl_server_policy_class_ br_ssl_server_policy_class; +struct br_ssl_server_policy_class_ { + /** + * \brief Context size (in bytes). + */ + size_t context_size; + + /** + * \brief Select algorithms and certificates for this connection. + * + * This callback function shall fill the provided `choices` + * structure with the policy choices for this connection. This + * entails selecting the cipher suite, hash function for signing + * the ServerKeyExchange (applicable only to ECDHE cipher suites), + * and certificate chain to send. + * + * The callback receives a pointer to the server context that + * contains the relevant data. In particular, the functions + * `br_ssl_server_get_client_suites()`, + * `br_ssl_server_get_client_hashes()` and + * `br_ssl_server_get_client_curves()` can be used to obtain + * the cipher suites, hash functions and elliptic curves + * supported by both the client and server, respectively. The + * `br_ssl_engine_get_version()` and `br_ssl_engine_get_server_name()` + * functions yield the protocol version and requested server name + * (SNI), respectively. + * + * This function may modify its context structure (`pctx`) in + * arbitrary ways to keep track of its own choices. + * + * This function shall return 1 if appropriate policy choices + * could be made, or 0 if this connection cannot be pursued. + * + * \param pctx policy context. + * \param cc SSL server context. + * \param choices destination structure for the policy choices. + * \return 1 on success, 0 on error. + */ + int (*choose)(const br_ssl_server_policy_class **pctx, + const br_ssl_server_context *cc, + br_ssl_server_choices *choices); + + /** + * \brief Perform key exchange (server part). + * + * This callback is invoked to perform the server-side cryptographic + * operation for a key exchange that is not ECDHE. This callback + * uses the private key. + * + * **For RSA key exchange**, the provided `data` (of length `*len` + * bytes) shall be decrypted with the server's private key, and + * the 48-byte premaster secret copied back to the first 48 bytes + * of `data`. + * + * - The caller makes sure that `*len` is at least 59 bytes. + * + * - This callback MUST check that the provided length matches + * that of the key modulus; it shall report an error otherwise. + * + * - If the length matches that of the RSA key modulus, then + * processing MUST be constant-time, even if decryption fails, + * or the padding is incorrect, or the plaintext message length + * is not exactly 48 bytes. + * + * - This callback needs not check the two first bytes of the + * obtained pre-master secret (the caller will do that). + * + * - If an error is reported (0), then what the callback put + * in the first 48 bytes of `data` is unimportant (the caller + * will use random bytes instead). + * + * **For ECDH key exchange**, the provided `data` (of length `*len` + * bytes) is the elliptic curve point from the client. The + * callback shall multiply it with its private key, and store + * the resulting X coordinate in `data`, starting at offset 0, + * and set `*len` to the length of the X coordinate. + * + * - If the input array does not have the proper length for + * an encoded curve point, then an error (0) shall be reported. + * + * - If the input array has the proper length, then processing + * MUST be constant-time, even if the data is not a valid + * encoded point. + * + * - This callback MUST check that the input point is valid. + * + * Returned value is 1 on success, 0 on error. + * + * \param pctx policy context. + * \param data key exchange data from the client. + * \param len key exchange data length (in bytes). + * \return 1 on success, 0 on error. + */ + uint32_t (*do_keyx)(const br_ssl_server_policy_class **pctx, + unsigned char *data, size_t *len); + + /** + * \brief Perform a signature (for a ServerKeyExchange message). + * + * This callback function is invoked for ECDHE cipher suites. On + * input, the hash value or message to sign is in `data`, of + * size `hv_len`; the involved hash function or algorithm is + * identified by `algo_id`. The signature shall be computed and + * written back into `data`; the total size of that buffer is + * `len` bytes. + * + * This callback shall verify that the signature length does not + * exceed `len` bytes, and abstain from writing the signature if + * it does not fit. + * + * The `algo_id` value matches that which was written in the + * `choices` structures by the `choose()` callback. This will be + * one of the following: + * + * - `0xFF00 + id` for a hash function identifier `id`. In + * that case, the `data` buffer contains a hash value + * already computed over the data that is to be signed, + * of length `hv_len`. The `id` may be 0 to designate the + * special MD5+SHA-1 concatenation (old-style RSA signing). + * + * - Another value, lower than `0xFF00`. The `data` buffer + * then contains the raw, non-hashed data to be signed + * (concatenation of the client and server randoms and + * ECDH parameters). The callback is responsible to apply + * any relevant hashing as part of the signing process. + * + * Returned value is the signature length (in bytes), or 0 on error. + * + * \param pctx policy context. + * \param algo_id hash function / algorithm identifier. + * \param data input/output buffer (message/hash, then signature). + * \param hv_len hash value or message length (in bytes). + * \param len total buffer length (in bytes). + * \return signature length (in bytes) on success, or 0 on error. + */ + size_t (*do_sign)(const br_ssl_server_policy_class **pctx, + unsigned algo_id, + unsigned char *data, size_t hv_len, size_t len); +}; + +/** + * \brief A single-chain RSA policy handler. + * + * This policy context uses a single certificate chain, and a RSA + * private key. The context can be restricted to only signatures or + * only key exchange. + * + * Apart from the first field (vtable pointer), its contents are + * opaque and shall not be accessed directly. + */ +typedef struct { + /** \brief Pointer to vtable. */ + const br_ssl_server_policy_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + const br_x509_certificate *chain; + size_t chain_len; + const br_rsa_private_key *sk; + unsigned allowed_usages; + br_rsa_private irsacore; + br_rsa_pkcs1_sign irsasign; +#endif +} br_ssl_server_policy_rsa_context; + +/** + * \brief A single-chain EC policy handler. + * + * This policy context uses a single certificate chain, and an EC + * private key. The context can be restricted to only signatures or + * only key exchange. + * + * Due to how TLS is defined, this context must be made aware whether + * the server certificate was itself signed with RSA or ECDSA. The code + * does not try to decode the certificate to obtain that information. + * + * Apart from the first field (vtable pointer), its contents are + * opaque and shall not be accessed directly. + */ +typedef struct { + /** \brief Pointer to vtable. */ + const br_ssl_server_policy_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + const br_x509_certificate *chain; + size_t chain_len; + const br_ec_private_key *sk; + unsigned allowed_usages; + unsigned cert_issuer_key_type; + const br_multihash_context *mhash; + const br_ec_impl *iec; + br_ecdsa_sign iecdsa; +#endif +} br_ssl_server_policy_ec_context; + +/** + * \brief Class type for a session parameter cache. + * + * Session parameters are saved in the cache with `save()`, and + * retrieved with `load()`. The cache implementation can apply any + * storage and eviction strategy that it sees fit. The SSL server + * context that performs the request is provided, so that its + * functionalities may be used by the implementation (e.g. hash + * functions or random number generation). + */ +typedef struct br_ssl_session_cache_class_ br_ssl_session_cache_class; +struct br_ssl_session_cache_class_ { + /** + * \brief Context size (in bytes). + */ + size_t context_size; + + /** + * \brief Record a session. + * + * This callback should record the provided session parameters. + * The `params` structure is transient, so its contents shall + * be copied into the cache. The session ID has been randomly + * generated and always has length exactly 32 bytes. + * + * \param ctx session cache context. + * \param server_ctx SSL server context. + * \param params session parameters to save. + */ + void (*save)(const br_ssl_session_cache_class **ctx, + br_ssl_server_context *server_ctx, + const br_ssl_session_parameters *params); + + /** + * \brief Lookup a session in the cache. + * + * The session ID to lookup is in `params` and always has length + * exactly 32 bytes. If the session parameters are found in the + * cache, then the parameters shall be copied into the `params` + * structure. Returned value is 1 on successful lookup, 0 + * otherwise. + * + * \param ctx session cache context. + * \param server_ctx SSL server context. + * \param params destination for session parameters. + * \return 1 if found, 0 otherwise. + */ + int (*load)(const br_ssl_session_cache_class **ctx, + br_ssl_server_context *server_ctx, + br_ssl_session_parameters *params); +}; + +/** + * \brief Context for a basic cache system. + * + * The system stores session parameters in a buffer provided at + * initialisation time. Each entry uses exactly 100 bytes, and + * buffer sizes up to 4294967295 bytes are supported. + * + * Entries are evicted with a LRU (Least Recently Used) policy. A + * search tree is maintained to keep lookups fast even with large + * caches. + * + * Apart from the first field (vtable pointer), the structure + * contents are opaque and shall not be accessed directly. + */ +typedef struct { + /** \brief Pointer to vtable. */ + const br_ssl_session_cache_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + unsigned char *store; + size_t store_len, store_ptr; + unsigned char index_key[32]; + const br_hash_class *hash; + int init_done; + uint32_t head, tail, root; +#endif +} br_ssl_session_cache_lru; + +/** + * \brief Initialise a LRU session cache with the provided storage space. + * + * The provided storage space must remain valid as long as the cache + * is used. Arbitrary lengths are supported, up to 4294967295 bytes; + * each entry uses up exactly 100 bytes. + * + * \param cc session cache context. + * \param store storage space for cached entries. + * \param store_len storage space length (in bytes). + */ +void br_ssl_session_cache_lru_init(br_ssl_session_cache_lru *cc, + unsigned char *store, size_t store_len); + +/** + * \brief Forget an entry in an LRU session cache. + * + * The session cache context must have been initialised. The entry + * with the provided session ID (of exactly 32 bytes) is looked for + * in the cache; if located, it is disabled. + * + * \param cc session cache context. + * \param id session ID to forget. + */ +void br_ssl_session_cache_lru_forget( + br_ssl_session_cache_lru *cc, const unsigned char *id); + +/** + * \brief Context structure for a SSL server. + * + * The first field (called `eng`) is the SSL engine; all functions that + * work on a `br_ssl_engine_context` structure shall take as parameter + * a pointer to that field. The other structure fields are opaque and + * must not be accessed directly. + */ +struct br_ssl_server_context_ { + /** + * \brief The encapsulated engine context. + */ + br_ssl_engine_context eng; + +#ifndef BR_DOXYGEN_IGNORE + /* + * Maximum version from the client. + */ + uint16_t client_max_version; + + /* + * Session cache. + */ + const br_ssl_session_cache_class **cache_vtable; + + /* + * Translated cipher suites supported by the client. The list + * is trimmed to include only the cipher suites that the + * server also supports; they are in the same order as in the + * client message. + */ + br_suite_translated client_suites[BR_MAX_CIPHER_SUITES]; + unsigned char client_suites_num; + + /* + * Hash functions supported by the client, with ECDSA and RSA + * (bit mask). For hash function with id 'x', set bit index is + * x for RSA, x+8 for ECDSA. For newer algorithms, with ID + * 0x08**, bit 16+k is set for algorithm 0x0800+k. + */ + uint32_t hashes; + + /* + * Curves supported by the client (bit mask, for named curves). + */ + uint32_t curves; + + /* + * Context for chain handler. + */ + const br_ssl_server_policy_class **policy_vtable; + uint16_t sign_hash_id; + + /* + * For the core handlers, thus avoiding (in most cases) the + * need for an externally provided policy context. + */ + union { + const br_ssl_server_policy_class *vtable; + br_ssl_server_policy_rsa_context single_rsa; + br_ssl_server_policy_ec_context single_ec; + } chain_handler; + + /* + * Buffer for the ECDHE private key. + */ + unsigned char ecdhe_key[70]; + size_t ecdhe_key_len; + + /* + * Trust anchor names for client authentication. "ta_names" and + * "tas" cannot be both non-NULL. + */ + const br_x500_name *ta_names; + const br_x509_trust_anchor *tas; + size_t num_tas; + size_t cur_dn_index; + const unsigned char *cur_dn; + size_t cur_dn_len; + + /* + * Buffer for the hash value computed over all handshake messages + * prior to CertificateVerify, and identifier for the hash function. + */ + unsigned char hash_CV[64]; + size_t hash_CV_len; + int hash_CV_id; + + /* + * Server-specific implementations. + * (none for now) + */ +#endif +}; + +/* + * Each br_ssl_server_init_xxx() function sets the list of supported + * cipher suites and used implementations, as specified by the profile + * name 'xxx'. Defined profile names are: + * + * full_rsa all supported algorithm, server key type is RSA + * full_ec all supported algorithm, server key type is EC + * TODO: add other profiles + * + * Naming scheme for "minimal" profiles: min123 + * + * -- character 1: key exchange + * r = RSA + * e = ECDHE_RSA + * f = ECDHE_ECDSA + * u = ECDH_RSA + * v = ECDH_ECDSA + * -- character 2: version / PRF + * 0 = TLS 1.0 / 1.1 with MD5+SHA-1 + * 2 = TLS 1.2 with SHA-256 + * 3 = TLS 1.2 with SHA-384 + * -- character 3: encryption + * a = AES/CBC + * d = 3DES/CBC + * g = AES/GCM + * c = ChaCha20+Poly1305 + */ + +/** + * \brief SSL server profile: full_rsa. + * + * This function initialises the provided SSL server context with + * all supported algorithms and cipher suites that rely on a RSA + * key pair. + * + * \param cc server context to initialise. + * \param chain server certificate chain. + * \param chain_len certificate chain length (number of certificate). + * \param sk RSA private key. + */ +void br_ssl_server_init_full_rsa(br_ssl_server_context *cc, + const br_x509_certificate *chain, size_t chain_len, + const br_rsa_private_key *sk); + +/** + * \brief SSL server profile: full_ec. + * + * This function initialises the provided SSL server context with + * all supported algorithms and cipher suites that rely on an EC + * key pair. + * + * The key type of the CA that issued the server's certificate must + * be provided, since it matters for ECDH cipher suites (ECDH_RSA + * suites require a RSA-powered CA). The key type is either + * `BR_KEYTYPE_RSA` or `BR_KEYTYPE_EC`. + * + * \param cc server context to initialise. + * \param chain server certificate chain. + * \param chain_len chain length (number of certificates). + * \param cert_issuer_key_type certificate issuer's key type. + * \param sk EC private key. + */ +void br_ssl_server_init_full_ec(br_ssl_server_context *cc, + const br_x509_certificate *chain, size_t chain_len, + unsigned cert_issuer_key_type, const br_ec_private_key *sk); + +/** + * \brief SSL server profile: minr2g. + * + * This profile uses only TLS_RSA_WITH_AES_128_GCM_SHA256. Server key is + * RSA, and RSA key exchange is used (not forward secure, but uses little + * CPU in the client). + * + * \param cc server context to initialise. + * \param chain server certificate chain. + * \param chain_len certificate chain length (number of certificate). + * \param sk RSA private key. + */ +void br_ssl_server_init_minr2g(br_ssl_server_context *cc, + const br_x509_certificate *chain, size_t chain_len, + const br_rsa_private_key *sk); + +/** + * \brief SSL server profile: mine2g. + * + * This profile uses only TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256. Server key + * is RSA, and ECDHE key exchange is used. This suite provides forward + * security, with a higher CPU expense on the client, and a somewhat + * larger code footprint (compared to "minr2g"). + * + * \param cc server context to initialise. + * \param chain server certificate chain. + * \param chain_len certificate chain length (number of certificate). + * \param sk RSA private key. + */ +void br_ssl_server_init_mine2g(br_ssl_server_context *cc, + const br_x509_certificate *chain, size_t chain_len, + const br_rsa_private_key *sk); + +/** + * \brief SSL server profile: minf2g. + * + * This profile uses only TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256. + * Server key is EC, and ECDHE key exchange is used. This suite provides + * forward security, with a higher CPU expense on the client and server + * (by a factor of about 3 to 4), and a somewhat larger code footprint + * (compared to "minu2g" and "minv2g"). + * + * \param cc server context to initialise. + * \param chain server certificate chain. + * \param chain_len certificate chain length (number of certificate). + * \param sk EC private key. + */ +void br_ssl_server_init_minf2g(br_ssl_server_context *cc, + const br_x509_certificate *chain, size_t chain_len, + const br_ec_private_key *sk); + +/** + * \brief SSL server profile: minu2g. + * + * This profile uses only TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256. + * Server key is EC, and ECDH key exchange is used; the issuing CA used + * a RSA key. + * + * The "minu2g" and "minv2g" profiles do not provide forward secrecy, + * but are the lightest on the server (for CPU usage), and are rather + * inexpensive on the client as well. + * + * \param cc server context to initialise. + * \param chain server certificate chain. + * \param chain_len certificate chain length (number of certificate). + * \param sk EC private key. + */ +void br_ssl_server_init_minu2g(br_ssl_server_context *cc, + const br_x509_certificate *chain, size_t chain_len, + const br_ec_private_key *sk); + +/** + * \brief SSL server profile: minv2g. + * + * This profile uses only TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256. + * Server key is EC, and ECDH key exchange is used; the issuing CA used + * an EC key. + * + * The "minu2g" and "minv2g" profiles do not provide forward secrecy, + * but are the lightest on the server (for CPU usage), and are rather + * inexpensive on the client as well. + * + * \param cc server context to initialise. + * \param chain server certificate chain. + * \param chain_len certificate chain length (number of certificate). + * \param sk EC private key. + */ +void br_ssl_server_init_minv2g(br_ssl_server_context *cc, + const br_x509_certificate *chain, size_t chain_len, + const br_ec_private_key *sk); + +/** + * \brief SSL server profile: mine2c. + * + * This profile uses only TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256. + * Server key is RSA, and ECDHE key exchange is used. This suite + * provides forward security. + * + * \param cc server context to initialise. + * \param chain server certificate chain. + * \param chain_len certificate chain length (number of certificate). + * \param sk RSA private key. + */ +void br_ssl_server_init_mine2c(br_ssl_server_context *cc, + const br_x509_certificate *chain, size_t chain_len, + const br_rsa_private_key *sk); + +/** + * \brief SSL server profile: minf2c. + * + * This profile uses only TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256. + * Server key is EC, and ECDHE key exchange is used. This suite provides + * forward security. + * + * \param cc server context to initialise. + * \param chain server certificate chain. + * \param chain_len certificate chain length (number of certificate). + * \param sk EC private key. + */ +void br_ssl_server_init_minf2c(br_ssl_server_context *cc, + const br_x509_certificate *chain, size_t chain_len, + const br_ec_private_key *sk); + +/** + * \brief Get the supported client suites. + * + * This function shall be called only after the ClientHello has been + * processed, typically from the policy engine. The returned array + * contains the cipher suites that are supported by both the client + * and the server; these suites are in client preference order, unless + * the `BR_OPT_ENFORCE_SERVER_PREFERENCES` flag was set, in which case + * they are in server preference order. + * + * The suites are _translated_, which means that each suite is given + * as two 16-bit integers: the standard suite identifier, and its + * translated version, broken down into its individual components, + * as explained with the `br_suite_translated` type. + * + * The returned array is allocated in the context and will be rewritten + * by each handshake. + * + * \param cc server context. + * \param num receives the array size (number of suites). + * \return the translated common cipher suites, in preference order. + */ +static inline const br_suite_translated * +br_ssl_server_get_client_suites(const br_ssl_server_context *cc, size_t *num) +{ + *num = cc->client_suites_num; + return cc->client_suites; +} + +/** + * \brief Get the hash functions and signature algorithms supported by + * the client. + * + * This value is a bit field: + * + * - If RSA (PKCS#1 v1.5) is supported with hash function of ID `x`, + * then bit `x` is set (hash function ID is 0 for the special MD5+SHA-1, + * or 2 to 6 for the SHA family). + * + * - If ECDSA is supported with hash function of ID `x`, then bit `8+x` + * is set. + * + * - Newer algorithms are symbolic 16-bit identifiers that do not + * represent signature algorithm and hash function separately. If + * the TLS-level identifier is `0x0800+x` for a `x` in the 0..15 + * range, then bit `16+x` is set. + * + * "New algorithms" are currently defined only in draft documents, so + * this support is subject to possible change. Right now (early 2017), + * this maps ed25519 (EdDSA on Curve25519) to bit 23, and ed448 (EdDSA + * on Curve448) to bit 24. If the identifiers on the wire change in + * future document, then the decoding mechanism in BearSSL will be + * amended to keep mapping ed25519 and ed448 on bits 23 and 24, + * respectively. Mapping of other new algorithms (e.g. RSA/PSS) is not + * guaranteed yet. + * + * \param cc server context. + * \return the client-supported hash functions and signature algorithms. + */ +static inline uint32_t +br_ssl_server_get_client_hashes(const br_ssl_server_context *cc) +{ + return cc->hashes; +} + +/** + * \brief Get the elliptic curves supported by the client. + * + * This is a bit field (bit x is set if curve of ID x is supported). + * + * \param cc server context. + * \return the client-supported elliptic curves. + */ +static inline uint32_t +br_ssl_server_get_client_curves(const br_ssl_server_context *cc) +{ + return cc->curves; +} + +/** + * \brief Clear the complete contents of a SSL server context. + * + * Everything is cleared, including the reference to the configured buffer, + * implementations, cipher suites and state. This is a preparatory step + * to assembling a custom profile. + * + * \param cc server context to clear. + */ +void br_ssl_server_zero(br_ssl_server_context *cc); + +/** + * \brief Set an externally provided policy context. + * + * The policy context's methods are invoked to decide the cipher suite + * and certificate chain, and to perform operations involving the server's + * private key. + * + * \param cc server context. + * \param pctx policy context (pointer to its vtable field). + */ +static inline void +br_ssl_server_set_policy(br_ssl_server_context *cc, + const br_ssl_server_policy_class **pctx) +{ + cc->policy_vtable = pctx; +} + +/** + * \brief Set the server certificate chain and key (single RSA case). + * + * This function uses a policy context included in the server context. + * It configures use of a single server certificate chain with a RSA + * private key. The `allowed_usages` is a combination of usages, namely + * `BR_KEYTYPE_KEYX` and/or `BR_KEYTYPE_SIGN`; this enables or disables + * the corresponding cipher suites (i.e. `TLS_RSA_*` use the RSA key for + * key exchange, while `TLS_ECDHE_RSA_*` use the RSA key for signatures). + * + * \param cc server context. + * \param chain server certificate chain to send to the client. + * \param chain_len chain length (number of certificates). + * \param sk server private key (RSA). + * \param allowed_usages allowed private key usages. + * \param irsacore RSA core implementation. + * \param irsasign RSA signature implementation (PKCS#1 v1.5). + */ +void br_ssl_server_set_single_rsa(br_ssl_server_context *cc, + const br_x509_certificate *chain, size_t chain_len, + const br_rsa_private_key *sk, unsigned allowed_usages, + br_rsa_private irsacore, br_rsa_pkcs1_sign irsasign); + +/** + * \brief Set the server certificate chain and key (single EC case). + * + * This function uses a policy context included in the server context. + * It configures use of a single server certificate chain with an EC + * private key. The `allowed_usages` is a combination of usages, namely + * `BR_KEYTYPE_KEYX` and/or `BR_KEYTYPE_SIGN`; this enables or disables + * the corresponding cipher suites (i.e. `TLS_ECDH_*` use the EC key for + * key exchange, while `TLS_ECDHE_ECDSA_*` use the EC key for signatures). + * + * In order to support `TLS_ECDH_*` cipher suites (non-ephemeral ECDH), + * the algorithm type of the key used by the issuing CA to sign the + * server's certificate must be provided, as `cert_issuer_key_type` + * parameter (this value is either `BR_KEYTYPE_RSA` or `BR_KEYTYPE_EC`). + * + * \param cc server context. + * \param chain server certificate chain to send. + * \param chain_len chain length (number of certificates). + * \param sk server private key (EC). + * \param allowed_usages allowed private key usages. + * \param cert_issuer_key_type issuing CA's key type. + * \param iec EC core implementation. + * \param iecdsa ECDSA signature implementation ("asn1" format). + */ +void br_ssl_server_set_single_ec(br_ssl_server_context *cc, + const br_x509_certificate *chain, size_t chain_len, + const br_ec_private_key *sk, unsigned allowed_usages, + unsigned cert_issuer_key_type, + const br_ec_impl *iec, br_ecdsa_sign iecdsa); + +/** + * \brief Activate client certificate authentication. + * + * The trust anchor encoded X.500 names (DN) to send to the client are + * provided. A client certificate will be requested and validated through + * the X.509 validator configured in the SSL engine. If `num` is 0, then + * client certificate authentication is disabled. + * + * If the client does not send a certificate, or on validation failure, + * the handshake aborts. Unauthenticated clients can be tolerated by + * setting the `BR_OPT_TOLERATE_NO_CLIENT_AUTH` flag. + * + * The provided array is linked in, not copied, so that pointer must + * remain valid as long as anchor names may be used. + * + * \param cc server context. + * \param ta_names encoded trust anchor names. + * \param num number of encoded trust anchor names. + */ +static inline void +br_ssl_server_set_trust_anchor_names(br_ssl_server_context *cc, + const br_x500_name *ta_names, size_t num) +{ + cc->ta_names = ta_names; + cc->tas = NULL; + cc->num_tas = num; +} + +/** + * \brief Activate client certificate authentication. + * + * This is a variant for `br_ssl_server_set_trust_anchor_names()`: the + * trust anchor names are provided not as an array of stand-alone names + * (`br_x500_name` structures), but as an array of trust anchors + * (`br_x509_trust_anchor` structures). The server engine itself will + * only use the `dn` field of each trust anchor. This is meant to allow + * defining a single array of trust anchors, to be used here and in the + * X.509 validation engine itself. + * + * The provided array is linked in, not copied, so that pointer must + * remain valid as long as anchor names may be used. + * + * \param cc server context. + * \param tas trust anchors (only names are used). + * \param num number of trust anchors. + */ +static inline void +br_ssl_server_set_trust_anchor_names_alt(br_ssl_server_context *cc, + const br_x509_trust_anchor *tas, size_t num) +{ + cc->ta_names = NULL; + cc->tas = tas; + cc->num_tas = num; +} + +/** + * \brief Configure the cache for session parameters. + * + * The cache context is provided as a pointer to its first field (vtable + * pointer). + * + * \param cc server context. + * \param vtable session cache context. + */ +static inline void +br_ssl_server_set_cache(br_ssl_server_context *cc, + const br_ssl_session_cache_class **vtable) +{ + cc->cache_vtable = vtable; +} + +/** + * \brief Prepare or reset a server context for handling an incoming client. + * + * \param cc server context. + * \return 1 on success, 0 on error. + */ +int br_ssl_server_reset(br_ssl_server_context *cc); + +/* ===================================================================== */ + +/* + * Context for the simplified I/O context. The transport medium is accessed + * through the low_read() and low_write() callback functions, each with + * its own opaque context pointer. + * + * low_read() read some bytes, at most 'len' bytes, into data[]. The + * returned value is the number of read bytes, or -1 on error. + * The 'len' parameter is guaranteed never to exceed 20000, + * so the length always fits in an 'int' on all platforms. + * + * low_write() write up to 'len' bytes, to be read from data[]. The + * returned value is the number of written bytes, or -1 on + * error. The 'len' parameter is guaranteed never to exceed + * 20000, so the length always fits in an 'int' on all + * parameters. + * + * A socket closure (if the transport medium is a socket) should be reported + * as an error (-1). The callbacks shall endeavour to block until at least + * one byte can be read or written; a callback returning 0 at times is + * acceptable, but this normally leads to the callback being immediately + * called again, so the callback should at least always try to block for + * some time if no I/O can take place. + * + * The SSL engine naturally applies some buffering, so the callbacks need + * not apply buffers of their own. + */ +/** + * \brief Context structure for the simplified SSL I/O wrapper. + * + * This structure is initialised with `br_sslio_init()`. Its contents + * are opaque and shall not be accessed directly. + */ +typedef struct { +#ifndef BR_DOXYGEN_IGNORE + br_ssl_engine_context *engine; + int (*low_read)(void *read_context, + unsigned char *data, size_t len); + void *read_context; + int (*low_write)(void *write_context, + const unsigned char *data, size_t len); + void *write_context; +#endif +} br_sslio_context; + +/** + * \brief Initialise a simplified I/O wrapper context. + * + * The simplified I/O wrapper offers a simpler read/write API for a SSL + * engine (client or server), using the provided callback functions for + * reading data from, or writing data to, the transport medium. + * + * The callback functions have the following semantics: + * + * - Each callback receives an opaque context value (of type `void *`) + * that the callback may use arbitrarily (or possibly ignore). + * + * - `low_read()` reads at least one byte, at most `len` bytes, from + * the transport medium. Read bytes shall be written in `data`. + * + * - `low_write()` writes at least one byte, at most `len` bytes, unto + * the transport medium. The bytes to write are read from `data`. + * + * - The `len` parameter is never zero, and is always lower than 20000. + * + * - The number of processed bytes (read or written) is returned. Since + * that number is less than 20000, it always fits on an `int`. + * + * - On error, the callbacks return -1. Reaching end-of-stream is an + * error. Errors are permanent: the SSL connection is terminated. + * + * - Callbacks SHOULD NOT return 0. This is tolerated, as long as + * callbacks endeavour to block for some non-negligible amount of + * time until at least one byte can be sent or received (if a + * callback returns 0, then the wrapper invokes it again + * immediately). + * + * - Callbacks MAY return as soon as at least one byte is processed; + * they MAY also insist on reading or writing _all_ requested bytes. + * Since SSL is a self-terminated protocol (each record has a length + * header), this does not change semantics. + * + * - Callbacks need not apply any buffering (for performance) since SSL + * itself uses buffers. + * + * \param ctx wrapper context to initialise. + * \param engine SSL engine to wrap. + * \param low_read callback for reading data from the transport. + * \param read_context context pointer for `low_read()`. + * \param low_write callback for writing data on the transport. + * \param write_context context pointer for `low_write()`. + */ +void br_sslio_init(br_sslio_context *ctx, + br_ssl_engine_context *engine, + int (*low_read)(void *read_context, + unsigned char *data, size_t len), + void *read_context, + int (*low_write)(void *write_context, + const unsigned char *data, size_t len), + void *write_context); + +/** + * \brief Read some application data from a SSL connection. + * + * If `len` is zero, then this function returns 0 immediately. In + * all other cases, it never returns 0. + * + * This call returns only when at least one byte has been obtained. + * Returned value is the number of bytes read, or -1 on error. The + * number of bytes always fits on an 'int' (data from a single SSL/TLS + * record is returned). + * + * On error or SSL closure, this function returns -1. The caller should + * inspect the error status on the SSL engine to distinguish between + * normal closure and error. + * + * \param cc SSL wrapper context. + * \param dst destination buffer for application data. + * \param len maximum number of bytes to obtain. + * \return number of bytes obtained, or -1 on error. + */ +int br_sslio_read(br_sslio_context *cc, void *dst, size_t len); + +/** + * \brief Read application data from a SSL connection. + * + * This calls returns only when _all_ requested `len` bytes are read, + * or an error is reached. Returned value is 0 on success, -1 on error. + * A normal (verified) SSL closure before that many bytes are obtained + * is reported as an error by this function. + * + * \param cc SSL wrapper context. + * \param dst destination buffer for application data. + * \param len number of bytes to obtain. + * \return 0 on success, or -1 on error. + */ +int br_sslio_read_all(br_sslio_context *cc, void *dst, size_t len); + +/** + * \brief Write some application data unto a SSL connection. + * + * If `len` is zero, then this function returns 0 immediately. In + * all other cases, it never returns 0. + * + * This call returns only when at least one byte has been written. + * Returned value is the number of bytes written, or -1 on error. The + * number of bytes always fits on an 'int' (less than 20000). + * + * On error or SSL closure, this function returns -1. The caller should + * inspect the error status on the SSL engine to distinguish between + * normal closure and error. + * + * **Important:** SSL is buffered; a "written" byte is a byte that was + * injected into the wrapped SSL engine, but this does not necessarily mean + * that it has been scheduled for sending. Use `br_sslio_flush()` to + * ensure that all pending data has been sent to the transport medium. + * + * \param cc SSL wrapper context. + * \param src source buffer for application data. + * \param len maximum number of bytes to write. + * \return number of bytes written, or -1 on error. + */ +int br_sslio_write(br_sslio_context *cc, const void *src, size_t len); + +/** + * \brief Write application data unto a SSL connection. + * + * This calls returns only when _all_ requested `len` bytes have been + * written, or an error is reached. Returned value is 0 on success, -1 + * on error. A normal (verified) SSL closure before that many bytes are + * written is reported as an error by this function. + * + * **Important:** SSL is buffered; a "written" byte is a byte that was + * injected into the wrapped SSL engine, but this does not necessarily mean + * that it has been scheduled for sending. Use `br_sslio_flush()` to + * ensure that all pending data has been sent to the transport medium. + * + * \param cc SSL wrapper context. + * \param src source buffer for application data. + * \param len number of bytes to write. + * \return 0 on success, or -1 on error. + */ +int br_sslio_write_all(br_sslio_context *cc, const void *src, size_t len); + +/** + * \brief Flush pending data. + * + * This call makes sure that any buffered application data in the + * provided context (including the wrapped SSL engine) has been sent + * to the transport medium (i.e. accepted by the `low_write()` callback + * method). If there is no such pending data, then this function does + * nothing (and returns a success, i.e. 0). + * + * If the underlying transport medium has its own buffers, then it is + * up to the caller to ensure the corresponding flushing. + * + * Returned value is 0 on success, -1 on error. + * + * \param cc SSL wrapper context. + * \return 0 on success, or -1 on error. + */ +int br_sslio_flush(br_sslio_context *cc); + +/** + * \brief Close the SSL connection. + * + * This call runs the SSL closure protocol (sending a `close_notify`, + * receiving the response `close_notify`). When it returns, the SSL + * connection is finished. It is still up to the caller to manage the + * possible transport-level termination, if applicable (alternatively, + * the underlying transport stream may be reused for non-SSL messages). + * + * Returned value is 0 on success, -1 on error. A failure by the peer + * to process the complete closure protocol (i.e. sending back the + * `close_notify`) is an error. + * + * \param cc SSL wrapper context. + * \return 0 on success, or -1 on error. + */ +int br_sslio_close(br_sslio_context *cc); + +/* ===================================================================== */ + +/* + * Symbolic constants for cipher suites. + */ + +/* From RFC 5246 */ +#define BR_TLS_NULL_WITH_NULL_NULL 0x0000 +#define BR_TLS_RSA_WITH_NULL_MD5 0x0001 +#define BR_TLS_RSA_WITH_NULL_SHA 0x0002 +#define BR_TLS_RSA_WITH_NULL_SHA256 0x003B +#define BR_TLS_RSA_WITH_RC4_128_MD5 0x0004 +#define BR_TLS_RSA_WITH_RC4_128_SHA 0x0005 +#define BR_TLS_RSA_WITH_3DES_EDE_CBC_SHA 0x000A +#define BR_TLS_RSA_WITH_AES_128_CBC_SHA 0x002F +#define BR_TLS_RSA_WITH_AES_256_CBC_SHA 0x0035 +#define BR_TLS_RSA_WITH_AES_128_CBC_SHA256 0x003C +#define BR_TLS_RSA_WITH_AES_256_CBC_SHA256 0x003D +#define BR_TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA 0x000D +#define BR_TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA 0x0010 +#define BR_TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA 0x0013 +#define BR_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA 0x0016 +#define BR_TLS_DH_DSS_WITH_AES_128_CBC_SHA 0x0030 +#define BR_TLS_DH_RSA_WITH_AES_128_CBC_SHA 0x0031 +#define BR_TLS_DHE_DSS_WITH_AES_128_CBC_SHA 0x0032 +#define BR_TLS_DHE_RSA_WITH_AES_128_CBC_SHA 0x0033 +#define BR_TLS_DH_DSS_WITH_AES_256_CBC_SHA 0x0036 +#define BR_TLS_DH_RSA_WITH_AES_256_CBC_SHA 0x0037 +#define BR_TLS_DHE_DSS_WITH_AES_256_CBC_SHA 0x0038 +#define BR_TLS_DHE_RSA_WITH_AES_256_CBC_SHA 0x0039 +#define BR_TLS_DH_DSS_WITH_AES_128_CBC_SHA256 0x003E +#define BR_TLS_DH_RSA_WITH_AES_128_CBC_SHA256 0x003F +#define BR_TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 0x0040 +#define BR_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 0x0067 +#define BR_TLS_DH_DSS_WITH_AES_256_CBC_SHA256 0x0068 +#define BR_TLS_DH_RSA_WITH_AES_256_CBC_SHA256 0x0069 +#define BR_TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 0x006A +#define BR_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 0x006B +#define BR_TLS_DH_anon_WITH_RC4_128_MD5 0x0018 +#define BR_TLS_DH_anon_WITH_3DES_EDE_CBC_SHA 0x001B +#define BR_TLS_DH_anon_WITH_AES_128_CBC_SHA 0x0034 +#define BR_TLS_DH_anon_WITH_AES_256_CBC_SHA 0x003A +#define BR_TLS_DH_anon_WITH_AES_128_CBC_SHA256 0x006C +#define BR_TLS_DH_anon_WITH_AES_256_CBC_SHA256 0x006D + +/* From RFC 4492 */ +#define BR_TLS_ECDH_ECDSA_WITH_NULL_SHA 0xC001 +#define BR_TLS_ECDH_ECDSA_WITH_RC4_128_SHA 0xC002 +#define BR_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA 0xC003 +#define BR_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA 0xC004 +#define BR_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA 0xC005 +#define BR_TLS_ECDHE_ECDSA_WITH_NULL_SHA 0xC006 +#define BR_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA 0xC007 +#define BR_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA 0xC008 +#define BR_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 0xC009 +#define BR_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 0xC00A +#define BR_TLS_ECDH_RSA_WITH_NULL_SHA 0xC00B +#define BR_TLS_ECDH_RSA_WITH_RC4_128_SHA 0xC00C +#define BR_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA 0xC00D +#define BR_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA 0xC00E +#define BR_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA 0xC00F +#define BR_TLS_ECDHE_RSA_WITH_NULL_SHA 0xC010 +#define BR_TLS_ECDHE_RSA_WITH_RC4_128_SHA 0xC011 +#define BR_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA 0xC012 +#define BR_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 0xC013 +#define BR_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 0xC014 +#define BR_TLS_ECDH_anon_WITH_NULL_SHA 0xC015 +#define BR_TLS_ECDH_anon_WITH_RC4_128_SHA 0xC016 +#define BR_TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA 0xC017 +#define BR_TLS_ECDH_anon_WITH_AES_128_CBC_SHA 0xC018 +#define BR_TLS_ECDH_anon_WITH_AES_256_CBC_SHA 0xC019 + +/* From RFC 5288 */ +#define BR_TLS_RSA_WITH_AES_128_GCM_SHA256 0x009C +#define BR_TLS_RSA_WITH_AES_256_GCM_SHA384 0x009D +#define BR_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 0x009E +#define BR_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 0x009F +#define BR_TLS_DH_RSA_WITH_AES_128_GCM_SHA256 0x00A0 +#define BR_TLS_DH_RSA_WITH_AES_256_GCM_SHA384 0x00A1 +#define BR_TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 0x00A2 +#define BR_TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 0x00A3 +#define BR_TLS_DH_DSS_WITH_AES_128_GCM_SHA256 0x00A4 +#define BR_TLS_DH_DSS_WITH_AES_256_GCM_SHA384 0x00A5 +#define BR_TLS_DH_anon_WITH_AES_128_GCM_SHA256 0x00A6 +#define BR_TLS_DH_anon_WITH_AES_256_GCM_SHA384 0x00A7 + +/* From RFC 5289 */ +#define BR_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 0xC023 +#define BR_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 0xC024 +#define BR_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 0xC025 +#define BR_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 0xC026 +#define BR_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 0xC027 +#define BR_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 0xC028 +#define BR_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 0xC029 +#define BR_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 0xC02A +#define BR_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 0xC02B +#define BR_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 0xC02C +#define BR_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 0xC02D +#define BR_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 0xC02E +#define BR_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 0xC02F +#define BR_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 0xC030 +#define BR_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 0xC031 +#define BR_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 0xC032 + +/* From RFC 6655 and 7251 */ +#define BR_TLS_RSA_WITH_AES_128_CCM 0xC09C +#define BR_TLS_RSA_WITH_AES_256_CCM 0xC09D +#define BR_TLS_RSA_WITH_AES_128_CCM_8 0xC0A0 +#define BR_TLS_RSA_WITH_AES_256_CCM_8 0xC0A1 +#define BR_TLS_ECDHE_ECDSA_WITH_AES_128_CCM 0xC0AC +#define BR_TLS_ECDHE_ECDSA_WITH_AES_256_CCM 0xC0AD +#define BR_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 0xC0AE +#define BR_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 0xC0AF + +/* From RFC 7905 */ +#define BR_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 0xCCA8 +#define BR_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 0xCCA9 +#define BR_TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 0xCCAA +#define BR_TLS_PSK_WITH_CHACHA20_POLY1305_SHA256 0xCCAB +#define BR_TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 0xCCAC +#define BR_TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 0xCCAD +#define BR_TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 0xCCAE + +/* From RFC 7507 */ +#define BR_TLS_FALLBACK_SCSV 0x5600 + +/* + * Symbolic constants for alerts. + */ +#define BR_ALERT_CLOSE_NOTIFY 0 +#define BR_ALERT_UNEXPECTED_MESSAGE 10 +#define BR_ALERT_BAD_RECORD_MAC 20 +#define BR_ALERT_RECORD_OVERFLOW 22 +#define BR_ALERT_DECOMPRESSION_FAILURE 30 +#define BR_ALERT_HANDSHAKE_FAILURE 40 +#define BR_ALERT_BAD_CERTIFICATE 42 +#define BR_ALERT_UNSUPPORTED_CERTIFICATE 43 +#define BR_ALERT_CERTIFICATE_REVOKED 44 +#define BR_ALERT_CERTIFICATE_EXPIRED 45 +#define BR_ALERT_CERTIFICATE_UNKNOWN 46 +#define BR_ALERT_ILLEGAL_PARAMETER 47 +#define BR_ALERT_UNKNOWN_CA 48 +#define BR_ALERT_ACCESS_DENIED 49 +#define BR_ALERT_DECODE_ERROR 50 +#define BR_ALERT_DECRYPT_ERROR 51 +#define BR_ALERT_PROTOCOL_VERSION 70 +#define BR_ALERT_INSUFFICIENT_SECURITY 71 +#define BR_ALERT_INTERNAL_ERROR 80 +#define BR_ALERT_USER_CANCELED 90 +#define BR_ALERT_NO_RENEGOTIATION 100 +#define BR_ALERT_UNSUPPORTED_EXTENSION 110 +#define BR_ALERT_NO_APPLICATION_PROTOCOL 120 + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/bearssl/bearssl_x509.h b/include/bearssl/bearssl_x509.h new file mode 100644 index 00000000..9a1e6593 --- /dev/null +++ b/include/bearssl/bearssl_x509.h @@ -0,0 +1,1669 @@ +/* + * Copyright (c) 2016 Thomas Pornin + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef BR_BEARSSL_X509_H__ +#define BR_BEARSSL_X509_H__ + +#include +#include + +#include "bearssl_ec.h" +#include "bearssl_hash.h" +#include "bearssl_rsa.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** \file bearssl_x509.h + * + * # X.509 Certificate Chain Processing + * + * An X.509 processing engine receives an X.509 chain, chunk by chunk, + * as received from a SSL/TLS client or server (the client receives the + * server's certificate chain, and the server receives the client's + * certificate chain if it requested a client certificate). The chain + * is thus injected in the engine in SSL order (end-entity first). + * + * The engine's job is to return the public key to use for SSL/TLS. + * How exactly that key is obtained and verified is entirely up to the + * engine. + * + * **The "known key" engine** returns a public key which is already known + * from out-of-band information (e.g. the client _remembers_ the key from + * a previous connection, as in the usual SSH model). This is the simplest + * engine since it simply ignores the chain, thereby avoiding the need + * for any decoding logic. + * + * **The "minimal" engine** implements minimal X.509 decoding and chain + * validation: + * + * - The provided chain should validate "as is". There is no attempt + * at reordering, skipping or downloading extra certificates. + * + * - X.509 v1, v2 and v3 certificates are supported. + * + * - Trust anchors are a DN and a public key. Each anchor is either a + * "CA" anchor, or a non-CA. + * + * - If the end-entity certificate matches a non-CA anchor (subject DN + * is equal to the non-CA name, and public key is also identical to + * the anchor key), then this is a _direct trust_ case and the + * remaining certificates are ignored. + * + * - Unless direct trust is applied, the chain must be verifiable up to + * a certificate whose issuer DN matches the DN from a "CA" trust anchor, + * and whose signature is verifiable against that anchor's public key. + * Subsequent certificates in the chain are ignored. + * + * - The engine verifies subject/issuer DN matching, and enforces + * processing of Basic Constraints and Key Usage extensions. The + * Authority Key Identifier, Subject Key Identifier, Issuer Alt Name, + * Subject Directory Attribute, CRL Distribution Points, Freshest CRL, + * Authority Info Access and Subject Info Access extensions are + * ignored. The Subject Alt Name is decoded for the end-entity + * certificate under some conditions (see below). Other extensions + * are ignored if non-critical, or imply chain rejection if critical. + * + * - The Subject Alt Name extension is parsed for names of type `dNSName` + * when decoding the end-entity certificate, and only if there is a + * server name to match. If there is no SAN extension, then the + * Common Name from the subjectDN is used. That name matching is + * case-insensitive and honours a single starting wildcard (i.e. if + * the name in the certificate starts with "`*.`" then this matches + * any word as first element). Note: this name matching is performed + * also in the "direct trust" model. + * + * - DN matching is byte-to-byte equality (a future version might + * include some limited processing for case-insensitive matching and + * whitespace normalisation). + * + * - Successful validation produces a public key type but also a set + * of allowed usages (`BR_KEYTYPE_KEYX` and/or `BR_KEYTYPE_SIGN`). + * The caller is responsible for checking that the key type and + * usages are compatible with the expected values (e.g. with the + * selected cipher suite, when the client validates the server's + * certificate). + * + * **Important caveats:** + * + * - The "minimal" engine does not check revocation status. The relevant + * extensions are ignored, and CRL or OCSP responses are not gathered + * or checked. + * + * - The "minimal" engine does not currently support Name Constraints + * (some basic functionality to handle sub-domains may be added in a + * later version). + * + * - The decoder is not "validating" in the sense that it won't reject + * some certificates with invalid field values when these fields are + * not actually processed. + */ + +/* + * X.509 error codes are in the 32..63 range. + */ + +/** \brief X.509 status: validation was successful; this is not actually + an error. */ +#define BR_ERR_X509_OK 32 + +/** \brief X.509 status: invalid value in an ASN.1 structure. */ +#define BR_ERR_X509_INVALID_VALUE 33 + +/** \brief X.509 status: truncated certificate. */ +#define BR_ERR_X509_TRUNCATED 34 + +/** \brief X.509 status: empty certificate chain (no certificate at all). */ +#define BR_ERR_X509_EMPTY_CHAIN 35 + +/** \brief X.509 status: decoding error: inner element extends beyond + outer element size. */ +#define BR_ERR_X509_INNER_TRUNC 36 + +/** \brief X.509 status: decoding error: unsupported tag class (application + or private). */ +#define BR_ERR_X509_BAD_TAG_CLASS 37 + +/** \brief X.509 status: decoding error: unsupported tag value. */ +#define BR_ERR_X509_BAD_TAG_VALUE 38 + +/** \brief X.509 status: decoding error: indefinite length. */ +#define BR_ERR_X509_INDEFINITE_LENGTH 39 + +/** \brief X.509 status: decoding error: extraneous element. */ +#define BR_ERR_X509_EXTRA_ELEMENT 40 + +/** \brief X.509 status: decoding error: unexpected element. */ +#define BR_ERR_X509_UNEXPECTED 41 + +/** \brief X.509 status: decoding error: expected constructed element, but + is primitive. */ +#define BR_ERR_X509_NOT_CONSTRUCTED 42 + +/** \brief X.509 status: decoding error: expected primitive element, but + is constructed. */ +#define BR_ERR_X509_NOT_PRIMITIVE 43 + +/** \brief X.509 status: decoding error: BIT STRING length is not multiple + of 8. */ +#define BR_ERR_X509_PARTIAL_BYTE 44 + +/** \brief X.509 status: decoding error: BOOLEAN value has invalid length. */ +#define BR_ERR_X509_BAD_BOOLEAN 45 + +/** \brief X.509 status: decoding error: value is off-limits. */ +#define BR_ERR_X509_OVERFLOW 46 + +/** \brief X.509 status: invalid distinguished name. */ +#define BR_ERR_X509_BAD_DN 47 + +/** \brief X.509 status: invalid date/time representation. */ +#define BR_ERR_X509_BAD_TIME 48 + +/** \brief X.509 status: certificate contains unsupported features that + cannot be ignored. */ +#define BR_ERR_X509_UNSUPPORTED 49 + +/** \brief X.509 status: key or signature size exceeds internal limits. */ +#define BR_ERR_X509_LIMIT_EXCEEDED 50 + +/** \brief X.509 status: key type does not match that which was expected. */ +#define BR_ERR_X509_WRONG_KEY_TYPE 51 + +/** \brief X.509 status: signature is invalid. */ +#define BR_ERR_X509_BAD_SIGNATURE 52 + +/** \brief X.509 status: validation time is unknown. */ +#define BR_ERR_X509_TIME_UNKNOWN 53 + +/** \brief X.509 status: certificate is expired or not yet valid. */ +#define BR_ERR_X509_EXPIRED 54 + +/** \brief X.509 status: issuer/subject DN mismatch in the chain. */ +#define BR_ERR_X509_DN_MISMATCH 55 + +/** \brief X.509 status: expected server name was not found in the chain. */ +#define BR_ERR_X509_BAD_SERVER_NAME 56 + +/** \brief X.509 status: unknown critical extension in certificate. */ +#define BR_ERR_X509_CRITICAL_EXTENSION 57 + +/** \brief X.509 status: not a CA, or path length constraint violation */ +#define BR_ERR_X509_NOT_CA 58 + +/** \brief X.509 status: Key Usage extension prohibits intended usage. */ +#define BR_ERR_X509_FORBIDDEN_KEY_USAGE 59 + +/** \brief X.509 status: public key found in certificate is too small. */ +#define BR_ERR_X509_WEAK_PUBLIC_KEY 60 + +/** \brief X.509 status: chain could not be linked to a trust anchor. */ +#define BR_ERR_X509_NOT_TRUSTED 62 + +/** + * \brief Aggregate structure for public keys. + */ +typedef struct { + /** \brief Key type: `BR_KEYTYPE_RSA` or `BR_KEYTYPE_EC` */ + unsigned char key_type; + /** \brief Actual public key. */ + union { + /** \brief RSA public key. */ + br_rsa_public_key rsa; + /** \brief EC public key. */ + br_ec_public_key ec; + } key; +} br_x509_pkey; + +/** + * \brief Distinguished Name (X.500) structure. + * + * The DN is DER-encoded. + */ +typedef struct { + /** \brief Encoded DN data. */ + unsigned char *data; + /** \brief Encoded DN length (in bytes). */ + size_t len; +} br_x500_name; + +/** + * \brief Trust anchor structure. + */ +typedef struct { + /** \brief Encoded DN (X.500 name). */ + br_x500_name dn; + /** \brief Anchor flags (e.g. `BR_X509_TA_CA`). */ + unsigned flags; + /** \brief Anchor public key. */ + br_x509_pkey pkey; +} br_x509_trust_anchor; + +/** + * \brief Trust anchor flag: CA. + * + * A "CA" anchor is deemed fit to verify signatures on certificates. + * A "non-CA" anchor is accepted only for direct trust (server's + * certificate name and key match the anchor). + */ +#define BR_X509_TA_CA 0x0001 + +/* + * Key type: combination of a basic key type (low 4 bits) and some + * optional flags. + * + * For a public key, the basic key type only is set. + * + * For an expected key type, the flags indicate the intended purpose(s) + * for the key; the basic key type may be set to 0 to indicate that any + * key type compatible with the indicated purpose is acceptable. + */ +/** \brief Key type: algorithm is RSA. */ +#define BR_KEYTYPE_RSA 1 +/** \brief Key type: algorithm is EC. */ +#define BR_KEYTYPE_EC 2 + +/** + * \brief Key type: usage is "key exchange". + * + * This value is combined (with bitwise OR) with the algorithm + * (`BR_KEYTYPE_RSA` or `BR_KEYTYPE_EC`) when informing the X.509 + * validation engine that it should find a public key of that type, + * fit for key exchanges (e.g. `TLS_RSA_*` and `TLS_ECDH_*` cipher + * suites). + */ +#define BR_KEYTYPE_KEYX 0x10 + +/** + * \brief Key type: usage is "signature". + * + * This value is combined (with bitwise OR) with the algorithm + * (`BR_KEYTYPE_RSA` or `BR_KEYTYPE_EC`) when informing the X.509 + * validation engine that it should find a public key of that type, + * fit for signatures (e.g. `TLS_ECDHE_*` cipher suites). + */ +#define BR_KEYTYPE_SIGN 0x20 + +/* + * start_chain Called when a new chain is started. If 'server_name' + * is not NULL and non-empty, then it is a name that + * should be looked for in the EE certificate (in the + * SAN extension as dNSName, or in the subjectDN's CN + * if there is no SAN extension). + * The caller ensures that the provided 'server_name' + * pointer remains valid throughout validation. + * + * start_cert Begins a new certificate in the chain. The provided + * length is in bytes; this is the total certificate length. + * + * append Get some additional bytes for the current certificate. + * + * end_cert Ends the current certificate. + * + * end_chain Called at the end of the chain. Returned value is + * 0 on success, or a non-zero error code. + * + * get_pkey Returns the EE certificate public key. + * + * For a complete chain, start_chain() and end_chain() are always + * called. For each certificate, start_cert(), some append() calls, then + * end_cert() are called, in that order. There may be no append() call + * at all if the certificate is empty (which is not valid but may happen + * if the peer sends exactly that). + * + * get_pkey() shall return a pointer to a structure that is valid as + * long as a new chain is not started. This may be a sub-structure + * within the context for the engine. This function MAY return a valid + * pointer to a public key even in some cases of validation failure, + * depending on the validation engine. + */ + +/** + * \brief Class type for an X.509 engine. + * + * A certificate chain validation uses a caller-allocated context, which + * contains the running state for that validation. Methods are called + * in due order: + * + * - `start_chain()` is called at the start of the validation. + * - Certificates are processed one by one, in SSL order (end-entity + * comes first). For each certificate, the following methods are + * called: + * + * - `start_cert()` at the beginning of the certificate. + * - `append()` is called zero, one or more times, to provide + * the certificate (possibly in chunks). + * - `end_cert()` at the end of the certificate. + * + * - `end_chain()` is called when the last certificate in the chain + * was processed. + * - `get_pkey()` is called after chain processing, if the chain + * validation was successful. + * + * A context structure may be reused; the `start_chain()` method shall + * ensure (re)initialisation. + */ +typedef struct br_x509_class_ br_x509_class; +struct br_x509_class_ { + /** + * \brief X.509 context size, in bytes. + */ + size_t context_size; + + /** + * \brief Start a new chain. + * + * This method shall set the vtable (first field) of the context + * structure. + * + * The `server_name`, if not `NULL`, will be considered as a + * fully qualified domain name, to be matched against the `dNSName` + * elements of the end-entity certificate's SAN extension (if there + * is no SAN, then the Common Name from the subjectDN will be used). + * If `server_name` is `NULL` then no such matching is performed. + * + * \param ctx validation context. + * \param server_name server name to match (or `NULL`). + */ + void (*start_chain)(const br_x509_class **ctx, + const char *server_name); + + /** + * \brief Start a new certificate. + * + * \param ctx validation context. + * \param length new certificate length (in bytes). + */ + void (*start_cert)(const br_x509_class **ctx, uint32_t length); + + /** + * \brief Receive some bytes for the current certificate. + * + * This function may be called several times in succession for + * a given certificate. The caller guarantees that for each + * call, `len` is not zero, and the sum of all chunk lengths + * for a certificate matches the total certificate length which + * was provided in the previous `start_cert()` call. + * + * If the new certificate is empty (no byte at all) then this + * function won't be called at all. + * + * \param ctx validation context. + * \param buf certificate data chunk. + * \param len certificate data chunk length (in bytes). + */ + void (*append)(const br_x509_class **ctx, + const unsigned char *buf, size_t len); + + /** + * \brief Finish the current certificate. + * + * This function is called when the end of the current certificate + * is reached. + * + * \param ctx validation context. + */ + void (*end_cert)(const br_x509_class **ctx); + + /** + * \brief Finish the chain. + * + * This function is called at the end of the chain. It shall + * return either 0 if the validation was successful, or a + * non-zero error code. The `BR_ERR_X509_*` constants are + * error codes, though other values may be possible. + * + * \param ctx validation context. + * \return 0 on success, or a non-zero error code. + */ + unsigned (*end_chain)(const br_x509_class **ctx); + + /** + * \brief Get the resulting end-entity public key. + * + * The decoded public key is returned. The returned pointer + * may be valid only as long as the context structure is + * unmodified, i.e. it may cease to be valid if the context + * is released or reused. + * + * This function _may_ return `NULL` if the validation failed. + * However, returning a public key does not mean that the + * validation was wholly successful; some engines may return + * a decoded public key even if the chain did not end on a + * trusted anchor. + * + * If validation succeeded and `usage` is not `NULL`, then + * `*usage` is filled with a combination of `BR_KEYTYPE_SIGN` + * and/or `BR_KEYTYPE_KEYX` that specifies the validated key + * usage types. It is the caller's responsibility to check + * that value against the intended use of the public key. + * + * \param ctx validation context. + * \return the end-entity public key, or `NULL`. + */ + const br_x509_pkey *(*get_pkey)( + const br_x509_class *const *ctx, unsigned *usages); +}; + +/** + * \brief The "known key" X.509 engine structure. + * + * The structure contents are opaque (they shall not be accessed directly), + * except for the first field (the vtable). + * + * The "known key" engine returns an externally configured public key, + * and totally ignores the certificate contents. + */ +typedef struct { + /** \brief Reference to the context vtable. */ + const br_x509_class *vtable; +#ifndef BR_DOXYGEN_IGNORE + br_x509_pkey pkey; + unsigned usages; +#endif +} br_x509_knownkey_context; + +/** + * \brief Class instance for the "known key" X.509 engine. + */ +extern const br_x509_class br_x509_knownkey_vtable; + +/** + * \brief Initialize a "known key" X.509 engine with a known RSA public key. + * + * The `usages` parameter indicates the allowed key usages for that key + * (`BR_KEYTYPE_KEYX` and/or `BR_KEYTYPE_SIGN`). + * + * The provided pointers are linked in, not copied, so they must remain + * valid while the public key may be in usage. + * + * \param ctx context to initialise. + * \param pk known public key. + * \param usages allowed key usages. + */ +void br_x509_knownkey_init_rsa(br_x509_knownkey_context *ctx, + const br_rsa_public_key *pk, unsigned usages); + +/** + * \brief Initialize a "known key" X.509 engine with a known EC public key. + * + * The `usages` parameter indicates the allowed key usages for that key + * (`BR_KEYTYPE_KEYX` and/or `BR_KEYTYPE_SIGN`). + * + * The provided pointers are linked in, not copied, so they must remain + * valid while the public key may be in usage. + * + * \param ctx context to initialise. + * \param pk known public key. + * \param usages allowed key usages. + */ +void br_x509_knownkey_init_ec(br_x509_knownkey_context *ctx, + const br_ec_public_key *pk, unsigned usages); + +#ifndef BR_DOXYGEN_IGNORE +/* + * The minimal X.509 engine has some state buffers which must be large + * enough to simultaneously accommodate: + * -- the public key extracted from the current certificate; + * -- the signature on the current certificate or on the previous + * certificate; + * -- the public key extracted from the EE certificate. + * + * We store public key elements in their raw unsigned big-endian + * encoding. We want to support up to RSA-4096 with a short (up to 64 + * bits) public exponent, thus a buffer for a public key must have + * length at least 520 bytes. Similarly, a RSA-4096 signature has length + * 512 bytes. + * + * Though RSA public exponents can formally be as large as the modulus + * (mathematically, even larger exponents would work, but PKCS#1 forbids + * them), exponents that do not fit on 32 bits are extremely rare, + * notably because some widespread implementations (e.g. Microsoft's + * CryptoAPI) don't support them. Moreover, large public exponent do not + * seem to imply any tangible security benefit, and they increase the + * cost of public key operations. The X.509 "minimal" engine will tolerate + * public exponents of arbitrary size as long as the modulus and the + * exponent can fit together in the dedicated buffer. + * + * EC public keys are shorter than RSA public keys; even with curve + * NIST P-521 (the largest curve we care to support), a public key is + * encoded over 133 bytes only. + */ +#define BR_X509_BUFSIZE_KEY 520 +#define BR_X509_BUFSIZE_SIG 512 +#endif + +/** + * \brief Type for receiving a name element. + * + * An array of such structures can be provided to the X.509 decoding + * engines. If the specified elements are found in the certificate + * subject DN or the SAN extension, then the name contents are copied + * as zero-terminated strings into the buffer. + * + * The decoder converts TeletexString and BMPString to UTF8String, and + * ensures that the resulting string is zero-terminated. If the string + * does not fit in the provided buffer, then the copy is aborted and an + * error is reported. + */ +typedef struct { + /** + * \brief Element OID. + * + * For X.500 name elements (to be extracted from the subject DN), + * this is the encoded OID for the requested name element; the + * first byte shall contain the length of the DER-encoded OID + * value, followed by the OID value (for instance, OID 2.5.4.3, + * for id-at-commonName, will be `03 55 04 03`). This is + * equivalent to full DER encoding with the length but without + * the tag. + * + * For SAN name elements, the first byte (`oid[0]`) has value 0, + * followed by another byte that matches the expected GeneralName + * tag. Allowed second byte values are then: + * + * - 1: `rfc822Name` + * + * - 2: `dNSName` + * + * - 6: `uniformResourceIdentifier` + * + * - 0: `otherName` + * + * If first and second byte are 0, then this is a SAN element of + * type `otherName`; the `oid[]` array should then contain, right + * after the two bytes of value 0, an encoded OID (with the same + * conventions as for X.500 name elements). If a match is found + * for that OID, then the corresponding name element will be + * extracted, as long as it is a supported string type. + */ + const unsigned char *oid; + + /** + * \brief Destination buffer. + */ + char *buf; + + /** + * \brief Length (in bytes) of the destination buffer. + * + * The buffer MUST NOT be smaller than 1 byte. + */ + size_t len; + + /** + * \brief Decoding status. + * + * Status is 0 if the name element was not found, 1 if it was + * found and decoded, or -1 on error. Error conditions include + * an unrecognised encoding, an invalid encoding, or a string + * too large for the destination buffer. + */ + int status; + +} br_name_element; + +/** + * \brief Callback for validity date checks. + * + * The function receives as parameter an arbitrary user-provided context, + * and the notBefore and notAfter dates specified in an X.509 certificate, + * both expressed as a number of days and a number of seconds: + * + * - Days are counted in a proleptic Gregorian calendar since + * January 1st, 0 AD. Year "0 AD" is the one that preceded "1 AD"; + * it is also traditionally known as "1 BC". + * + * - Seconds are counted since midnight, from 0 to 86400 (a count of + * 86400 is possible only if a leap second happened). + * + * Each date and time is understood in the UTC time zone. The "Unix + * Epoch" (January 1st, 1970, 00:00 UTC) corresponds to days=719528 and + * seconds=0; the "Windows Epoch" (January 1st, 1601, 00:00 UTC) is + * days=584754, seconds=0. + * + * This function must return -1 if the current date is strictly before + * the "notBefore" time, or +1 if the current date is strictly after the + * "notAfter" time. If neither condition holds, then the function returns + * 0, which means that the current date falls within the validity range of + * the certificate. If the function returns a value distinct from -1, 0 + * and +1, then this is interpreted as an unavailability of the current + * time, which normally ends the validation process with a + * `BR_ERR_X509_TIME_UNKNOWN` error. + * + * During path validation, this callback will be invoked for each + * considered X.509 certificate. Validation fails if any of the calls + * returns a non-zero value. + * + * The context value is an abritrary pointer set by the caller when + * configuring this callback. + * + * \param tctx context pointer. + * \param not_before_days notBefore date (days since Jan 1st, 0 AD). + * \param not_before_seconds notBefore time (seconds, at most 86400). + * \param not_after_days notAfter date (days since Jan 1st, 0 AD). + * \param not_after_seconds notAfter time (seconds, at most 86400). + * \return -1, 0 or +1. + */ +typedef int (*br_x509_time_check)(void *tctx, + uint32_t not_before_days, uint32_t not_before_seconds, + uint32_t not_after_days, uint32_t not_after_seconds); + +/** + * \brief The "minimal" X.509 engine structure. + * + * The structure contents are opaque (they shall not be accessed directly), + * except for the first field (the vtable). + * + * The "minimal" engine performs a rudimentary but serviceable X.509 path + * validation. + */ +typedef struct { + const br_x509_class *vtable; + +#ifndef BR_DOXYGEN_IGNORE + /* Structure for returning the EE public key. */ + br_x509_pkey pkey; + + /* CPU for the T0 virtual machine. */ + struct { + uint32_t *dp; + uint32_t *rp; + const unsigned char *ip; + } cpu; + uint32_t dp_stack[31]; + uint32_t rp_stack[31]; + int err; + + /* Server name to match with the SAN / CN of the EE certificate. */ + const char *server_name; + + /* Validated key usages. */ + unsigned char key_usages; + + /* Explicitly set date and time. */ + uint32_t days, seconds; + + /* Current certificate length (in bytes). Set to 0 when the + certificate has been fully processed. */ + uint32_t cert_length; + + /* Number of certificates processed so far in the current chain. + It is incremented at the end of the processing of a certificate, + so it is 0 for the EE. */ + uint32_t num_certs; + + /* Certificate data chunk. */ + const unsigned char *hbuf; + size_t hlen; + + /* The pad serves as destination for various operations. */ + unsigned char pad[256]; + + /* Buffer for EE public key data. */ + unsigned char ee_pkey_data[BR_X509_BUFSIZE_KEY]; + + /* Buffer for currently decoded public key. */ + unsigned char pkey_data[BR_X509_BUFSIZE_KEY]; + + /* Signature type: signer key type, offset to the hash + function OID (in the T0 data block) and hash function + output length (TBS hash length). */ + unsigned char cert_signer_key_type; + uint16_t cert_sig_hash_oid; + unsigned char cert_sig_hash_len; + + /* Current/last certificate signature. */ + unsigned char cert_sig[BR_X509_BUFSIZE_SIG]; + uint16_t cert_sig_len; + + /* Minimum RSA key length (difference in bytes from 128). */ + int16_t min_rsa_size; + + /* Configured trust anchors. */ + const br_x509_trust_anchor *trust_anchors; + size_t trust_anchors_num; + + /* private context for dynamic callbacks */ + void *trust_anchor_dynamic_ctx; + /* Dynamic trust anchor, for on-the-fly loading of TAs */ + const br_x509_trust_anchor* (*trust_anchor_dynamic)(void *ctx, void *hashed_dn, size_t hashed_dn_len); + /* And a chance to free any dynamically allocated TA returned from above */ + void (*trust_anchor_dynamic_free)(void *ctx, const br_x509_trust_anchor *ta); + + /* + * Multi-hasher for the TBS. + */ + unsigned char do_mhash; + br_multihash_context mhash; + unsigned char tbs_hash[64]; + + /* + * Simple hasher for the subject/issuer DN. + */ + unsigned char do_dn_hash; + const br_hash_class *dn_hash_impl; + br_hash_compat_context dn_hash; + unsigned char current_dn_hash[64]; + unsigned char next_dn_hash[64]; + unsigned char saved_dn_hash[64]; + + /* + * Name elements to gather. + */ + br_name_element *name_elts; + size_t num_name_elts; + + /* + * Callback function (and context) to get the current date. + */ + void *itime_ctx; + br_x509_time_check itime; + + /* + * Public key cryptography implementations (signature verification). + */ + br_rsa_pkcs1_vrfy irsa; + br_ecdsa_vrfy iecdsa; + const br_ec_impl *iec; +#endif + +} br_x509_minimal_context; + +/** + * \brief Class instance for the "minimal" X.509 engine. + */ +extern const br_x509_class br_x509_minimal_vtable; + +/** + * \brief Initialise a "minimal" X.509 engine. + * + * The `dn_hash_impl` parameter shall be a hash function internally used + * to match X.500 names (subject/issuer DN, and anchor names). Any standard + * hash function may be used, but a collision-resistant hash function is + * advised. + * + * After initialization, some implementations for signature verification + * (hash functions and signature algorithms) MUST be added. + * + * \param ctx context to initialise. + * \param dn_hash_impl hash function for DN comparisons. + * \param trust_anchors trust anchors. + * \param trust_anchors_num number of trust anchors. + */ +void br_x509_minimal_init(br_x509_minimal_context *ctx, + const br_hash_class *dn_hash_impl, + const br_x509_trust_anchor *trust_anchors, size_t trust_anchors_num); + +/** + * \brief Set the optional dynamic trust anchor lookup callbacks + * + * The dynamic trust anchor lookup callbacks allow an application to implement + * a non-memory resident trust anchor store. This can be useful on embedded + * systems where RAM is at a premium, but there is an external stable store, + * such as embedded flash or SD card, to keep many CA certificates. Set or + * leave these functions as NULL to not use such a feature. + * + * The dynamic routine will be passed in the hashed DN in question using the + * dn_hash_impl, and should compare this DN to its set of hashed known DNs. + * Of course, the same dn_hash_impl needs to be used in the dynamic routine. + * After the trust_anchor* is used, the dynamic_free callback is given a + * chance to deallocate its memory, if needed. + * + * \param ctx context to initialise. + * \param dynamic_ctx private context for the dynamic callback + * \param trust_anchor_dynamic provides a trust_anchor* for a hashed_dn + * \param trust_anchor_dynamic_free allows deallocation of returned TA + */ +static inline void +br_x509_minimal_set_dynamic(br_x509_minimal_context *ctx, void *dynamic_ctx, + const br_x509_trust_anchor* (*dynamic)(void *ctx, void *hashed_dn, size_t hashed_dn_len), + void (*dynamic_free)(void *ctx, const br_x509_trust_anchor *ta)) +{ + ctx->trust_anchor_dynamic_ctx = dynamic_ctx; + ctx->trust_anchor_dynamic = dynamic; + ctx->trust_anchor_dynamic_free = dynamic_free; +} + +/** + * \brief Set a supported hash function in an X.509 "minimal" engine. + * + * Hash functions are used with signature verification algorithms. + * Once initialised (with `br_x509_minimal_init()`), the context must + * be configured with the hash functions it shall support for that + * purpose. The hash function identifier MUST be one of the standard + * hash function identifiers (1 to 6, for MD5, SHA-1, SHA-224, SHA-256, + * SHA-384 and SHA-512). + * + * If `impl` is `NULL`, this _removes_ support for the designated + * hash function. + * + * \param ctx validation context. + * \param id hash function identifier (from 1 to 6). + * \param impl hash function implementation (or `NULL`). + */ +static inline void +br_x509_minimal_set_hash(br_x509_minimal_context *ctx, + int id, const br_hash_class *impl) +{ + br_multihash_setimpl(&ctx->mhash, id, impl); +} + +/** + * \brief Set a RSA signature verification implementation in the X.509 + * "minimal" engine. + * + * Once initialised (with `br_x509_minimal_init()`), the context must + * be configured with the signature verification implementations that + * it is supposed to support. If `irsa` is `0`, then the RSA support + * is disabled. + * + * \param ctx validation context. + * \param irsa RSA signature verification implementation (or `0`). + */ +static inline void +br_x509_minimal_set_rsa(br_x509_minimal_context *ctx, + br_rsa_pkcs1_vrfy irsa) +{ + ctx->irsa = irsa; +} + +/** + * \brief Set a ECDSA signature verification implementation in the X.509 + * "minimal" engine. + * + * Once initialised (with `br_x509_minimal_init()`), the context must + * be configured with the signature verification implementations that + * it is supposed to support. + * + * If `iecdsa` is `0`, then this call disables ECDSA support; in that + * case, `iec` may be `NULL`. Otherwise, `iecdsa` MUST point to a function + * that verifies ECDSA signatures with format "asn1", and it will use + * `iec` as underlying elliptic curve support. + * + * \param ctx validation context. + * \param iec elliptic curve implementation (or `NULL`). + * \param iecdsa ECDSA implementation (or `0`). + */ +static inline void +br_x509_minimal_set_ecdsa(br_x509_minimal_context *ctx, + const br_ec_impl *iec, br_ecdsa_vrfy iecdsa) +{ + ctx->iecdsa = iecdsa; + ctx->iec = iec; +} + +/** + * \brief Initialise a "minimal" X.509 engine with default algorithms. + * + * This function performs the same job as `br_x509_minimal_init()`, but + * also sets implementations for RSA, ECDSA, and the standard hash + * functions. + * + * \param ctx context to initialise. + * \param trust_anchors trust anchors. + * \param trust_anchors_num number of trust anchors. + */ +void br_x509_minimal_init_full(br_x509_minimal_context *ctx, + const br_x509_trust_anchor *trust_anchors, size_t trust_anchors_num); + +/** + * \brief Set the validation time for the X.509 "minimal" engine. + * + * The validation time is set as two 32-bit integers, for days and + * seconds since a fixed epoch: + * + * - Days are counted in a proleptic Gregorian calendar since + * January 1st, 0 AD. Year "0 AD" is the one that preceded "1 AD"; + * it is also traditionally known as "1 BC". + * + * - Seconds are counted since midnight, from 0 to 86400 (a count of + * 86400 is possible only if a leap second happened). + * + * The validation date and time is understood in the UTC time zone. The + * "Unix Epoch" (January 1st, 1970, 00:00 UTC) corresponds to days=719528 + * and seconds=0; the "Windows Epoch" (January 1st, 1601, 00:00 UTC) is + * days=584754, seconds=0. + * + * If the validation date and time are not explicitly set, but BearSSL + * was compiled with support for the system clock on the underlying + * platform, then the current time will automatically be used. Otherwise, + * not setting the validation date and time implies a validation + * failure (except in case of direct trust of the EE key). + * + * \param ctx validation context. + * \param days days since January 1st, 0 AD (Gregorian calendar). + * \param seconds seconds since midnight (0 to 86400). + */ +static inline void +br_x509_minimal_set_time(br_x509_minimal_context *ctx, + uint32_t days, uint32_t seconds) +{ + ctx->days = days; + ctx->seconds = seconds; + ctx->itime = 0; +} + +/** + * \brief Set the validity range callback function for the X.509 + * "minimal" engine. + * + * The provided function will be invoked to check whether the validation + * date is within the validity range for a given X.509 certificate; a + * call will be issued for each considered certificate. The provided + * context pointer (itime_ctx) will be passed as first parameter to the + * callback. + * + * \param tctx context for callback invocation. + * \param cb callback function. + */ +static inline void +br_x509_minimal_set_time_callback(br_x509_minimal_context *ctx, + void *itime_ctx, br_x509_time_check itime) +{ + ctx->itime_ctx = itime_ctx; + ctx->itime = itime; +} + +/** + * \brief Set the minimal acceptable length for RSA keys (X.509 "minimal" + * engine). + * + * The RSA key length is expressed in bytes. The default minimum key + * length is 128 bytes, corresponding to 1017 bits. RSA keys shorter + * than the configured length will be rejected, implying validation + * failure. This setting applies to keys extracted from certificates + * (both end-entity, and intermediate CA) but not to "CA" trust anchors. + * + * \param ctx validation context. + * \param byte_length minimum RSA key length, **in bytes** (not bits). + */ +static inline void +br_x509_minimal_set_minrsa(br_x509_minimal_context *ctx, int byte_length) +{ + ctx->min_rsa_size = (int16_t)(byte_length - 128); +} + +/** + * \brief Set the name elements to gather. + * + * The provided array is linked in the context. The elements are + * gathered from the EE certificate. If the same element type is + * requested several times, then the relevant structures will be filled + * in the order the matching values are encountered in the certificate. + * + * \param ctx validation context. + * \param elts array of name element structures to fill. + * \param num_elts number of name element structures to fill. + */ +static inline void +br_x509_minimal_set_name_elements(br_x509_minimal_context *ctx, + br_name_element *elts, size_t num_elts) +{ + ctx->name_elts = elts; + ctx->num_name_elts = num_elts; +} + +/** + * \brief X.509 decoder context. + * + * This structure is _not_ for X.509 validation, but for extracting + * names and public keys from encoded certificates. Intended usage is + * to use (self-signed) certificates as trust anchors. + * + * Contents are opaque and shall not be accessed directly. + */ +typedef struct { + +#ifndef BR_DOXYGEN_IGNORE + /* Structure for returning the public key. */ + br_x509_pkey pkey; + + /* CPU for the T0 virtual machine. */ + struct { + uint32_t *dp; + uint32_t *rp; + const unsigned char *ip; + } cpu; + uint32_t dp_stack[32]; + uint32_t rp_stack[32]; + int err; + + /* The pad serves as destination for various operations. */ + unsigned char pad[256]; + + /* Flag set when decoding succeeds. */ + unsigned char decoded; + + /* Validity dates. */ + uint32_t notbefore_days, notbefore_seconds; + uint32_t notafter_days, notafter_seconds; + + /* The "CA" flag. This is set to true if the certificate contains + a Basic Constraints extension that asserts CA status. */ + unsigned char isCA; + + /* DN processing: the subject DN is extracted and pushed to the + provided callback. */ + unsigned char copy_dn; + void *append_dn_ctx; + void (*append_dn)(void *ctx, const void *buf, size_t len); + + /* DN processing: the issuer DN is extracted and pushed to the + provided callback. */ + unsigned char copy_in; + void *append_in_ctx; + void (*append_in)(void *ctx, const void *buf, size_t len); + + /* Certificate data chunk. */ + const unsigned char *hbuf; + size_t hlen; + + /* Buffer for decoded public key. */ + unsigned char pkey_data[BR_X509_BUFSIZE_KEY]; + + /* Type of key and hash function used in the certificate signature. */ + unsigned char signer_key_type; + unsigned char signer_hash_id; +#endif + +} br_x509_decoder_context; + +/** + * \brief Initialise an X.509 decoder context for processing a new + * certificate. + * + * The `append_dn()` callback (with opaque context `append_dn_ctx`) + * will be invoked to receive, chunk by chunk, the certificate's + * subject DN. If `append_dn` is `0` then the subject DN will be + * ignored. + * + * \param ctx X.509 decoder context to initialise. + * \param append_dn DN receiver callback (or `0`). + * \param append_dn_ctx context for the DN receiver callback. + * \param append_in issuer DN receiver callback (or `0`). + * \param append_in_ctx context for the issuer DN receiver callback. + */ +void br_x509_decoder_init(br_x509_decoder_context *ctx, + void (*append_dn)(void *ctx, const void *buf, size_t len), + void *append_dn_ctx, + void (*append_in)(void *ctx, const void *buf, size_t len), + void *append_in_ctx); + +/** + * \brief Push some certificate bytes into a decoder context. + * + * If `len` is non-zero, then that many bytes are pushed, from address + * `data`, into the provided decoder context. + * + * \param ctx X.509 decoder context. + * \param data certificate data chunk. + * \param len certificate data chunk length (in bytes). + */ +void br_x509_decoder_push(br_x509_decoder_context *ctx, + const void *data, size_t len); + +/** + * \brief Obtain the decoded public key. + * + * Returned value is a pointer to a structure internal to the decoder + * context; releasing or reusing the decoder context invalidates that + * structure. + * + * If decoding was not finished, or failed, then `NULL` is returned. + * + * \param ctx X.509 decoder context. + * \return the public key, or `NULL` on unfinished/error. + */ +static inline br_x509_pkey * +br_x509_decoder_get_pkey(br_x509_decoder_context *ctx) +{ + if (ctx->decoded && ctx->err == 0) { + return &ctx->pkey; + } else { + return NULL; + } +} + +/** + * \brief Get decoder error status. + * + * If no error was reported yet but the certificate decoding is not + * finished, then the error code is `BR_ERR_X509_TRUNCATED`. If decoding + * was successful, then 0 is returned. + * + * \param ctx X.509 decoder context. + * \return 0 on successful decoding, or a non-zero error code. + */ +static inline int +br_x509_decoder_last_error(br_x509_decoder_context *ctx) +{ + if (ctx->err != 0) { + return ctx->err; + } + if (!ctx->decoded) { + return BR_ERR_X509_TRUNCATED; + } + return 0; +} + +/** + * \brief Get the "isCA" flag from an X.509 decoder context. + * + * This flag is set if the decoded certificate claims to be a CA through + * a Basic Constraints extension. This flag should not be read before + * decoding completed successfully. + * + * \param ctx X.509 decoder context. + * \return the "isCA" flag. + */ +static inline int +br_x509_decoder_isCA(br_x509_decoder_context *ctx) +{ + return ctx->isCA; +} + +/** + * \brief Get the issuing CA key type (type of algorithm used to sign the + * decoded certificate). + * + * This is `BR_KEYTYPE_RSA` or `BR_KEYTYPE_EC`. The value 0 is returned + * if the signature type was not recognised. + * + * \param ctx X.509 decoder context. + * \return the issuing CA key type. + */ +static inline int +br_x509_decoder_get_signer_key_type(br_x509_decoder_context *ctx) +{ + return ctx->signer_key_type; +} + +/** + * \brief Get the identifier for the hash function used to sign the decoded + * certificate. + * + * This is 0 if the hash function was not recognised. + * + * \param ctx X.509 decoder context. + * \return the signature hash function identifier. + */ +static inline int +br_x509_decoder_get_signer_hash_id(br_x509_decoder_context *ctx) +{ + return ctx->signer_hash_id; +} + +/** + * \brief Type for an X.509 certificate (DER-encoded). + */ +typedef struct { + /** \brief The DER-encoded certificate data. */ + unsigned char *data; + /** \brief The DER-encoded certificate length (in bytes). */ + size_t data_len; +} br_x509_certificate; + +/** + * \brief Private key decoder context. + * + * The private key decoder recognises RSA and EC private keys, either in + * their raw, DER-encoded format, or wrapped in an unencrypted PKCS#8 + * archive (again DER-encoded). + * + * Structure contents are opaque and shall not be accessed directly. + */ +typedef struct { +#ifndef BR_DOXYGEN_IGNORE + /* Structure for returning the private key. */ + union { + br_rsa_private_key rsa; + br_ec_private_key ec; + } key; + + /* CPU for the T0 virtual machine. */ + struct { + uint32_t *dp; + uint32_t *rp; + const unsigned char *ip; + } cpu; + uint32_t dp_stack[32]; + uint32_t rp_stack[32]; + int err; + + /* Private key data chunk. */ + const unsigned char *hbuf; + size_t hlen; + + /* The pad serves as destination for various operations. */ + unsigned char pad[256]; + + /* Decoded key type; 0 until decoding is complete. */ + unsigned char key_type; + + /* Buffer for the private key elements. It shall be large enough + to accommodate all elements for a RSA-4096 private key (roughly + five 2048-bit integers, possibly a bit more). */ + unsigned char key_data[3 * BR_X509_BUFSIZE_SIG]; +#endif +} br_skey_decoder_context; + +/** + * \brief Initialise a private key decoder context. + * + * \param ctx key decoder context to initialise. + */ +void br_skey_decoder_init(br_skey_decoder_context *ctx); + +/** + * \brief Push some data bytes into a private key decoder context. + * + * If `len` is non-zero, then that many data bytes, starting at address + * `data`, are pushed into the decoder. + * + * \param ctx key decoder context. + * \param data private key data chunk. + * \param len private key data chunk length (in bytes). + */ +void br_skey_decoder_push(br_skey_decoder_context *ctx, + const void *data, size_t len); + +/** + * \brief Get the decoding status for a private key. + * + * Decoding status is 0 on success, or a non-zero error code. If the + * decoding is unfinished when this function is called, then the + * status code `BR_ERR_X509_TRUNCATED` is returned. + * + * \param ctx key decoder context. + * \return 0 on successful decoding, or a non-zero error code. + */ +static inline int +br_skey_decoder_last_error(const br_skey_decoder_context *ctx) +{ + if (ctx->err != 0) { + return ctx->err; + } + if (ctx->key_type == 0) { + return BR_ERR_X509_TRUNCATED; + } + return 0; +} + +/** + * \brief Get the decoded private key type. + * + * Private key type is `BR_KEYTYPE_RSA` or `BR_KEYTYPE_EC`. If decoding is + * not finished or failed, then 0 is returned. + * + * \param ctx key decoder context. + * \return decoded private key type, or 0. + */ +static inline int +br_skey_decoder_key_type(const br_skey_decoder_context *ctx) +{ + if (ctx->err == 0) { + return ctx->key_type; + } else { + return 0; + } +} + +/** + * \brief Get the decoded RSA private key. + * + * This function returns `NULL` if the decoding failed, or is not + * finished, or the key is not RSA. The returned pointer references + * structures within the context that can become invalid if the context + * is reused or released. + * + * \param ctx key decoder context. + * \return decoded RSA private key, or `NULL`. + */ +static inline const br_rsa_private_key * +br_skey_decoder_get_rsa(const br_skey_decoder_context *ctx) +{ + if (ctx->err == 0 && ctx->key_type == BR_KEYTYPE_RSA) { + return &ctx->key.rsa; + } else { + return NULL; + } +} + +/** + * \brief Get the decoded EC private key. + * + * This function returns `NULL` if the decoding failed, or is not + * finished, or the key is not EC. The returned pointer references + * structures within the context that can become invalid if the context + * is reused or released. + * + * \param ctx key decoder context. + * \return decoded EC private key, or `NULL`. + */ +static inline const br_ec_private_key * +br_skey_decoder_get_ec(const br_skey_decoder_context *ctx) +{ + if (ctx->err == 0 && ctx->key_type == BR_KEYTYPE_EC) { + return &ctx->key.ec; + } else { + return NULL; + } +} + +/** + * \brief Public key decoder context. + * + * The public key decoder recognises RSA and EC private keys, either in + * their raw, DER-encoded format, or wrapped in an unencrypted PKCS#8 + * archive (again DER-encoded). + * + * Structure contents are opaque and shall not be accessed directly. + */ +typedef struct { +#ifndef BR_DOXYGEN_IGNORE + /* Structure for returning the private key. */ + union { + br_rsa_public_key rsa; + br_ec_public_key ec; + } key; + + /* CPU for the T0 virtual machine. */ + struct { + uint32_t *dp; + uint32_t *rp; + const unsigned char *ip; + } cpu; + uint32_t dp_stack[32]; + uint32_t rp_stack[32]; + int err; + + /* Private key data chunk. */ + const unsigned char *hbuf; + size_t hlen; + + /* The pad serves as destination for various operations. */ + unsigned char pad[256]; + + /* Decoded key type; 0 until decoding is complete. */ + unsigned char key_type; + + /* Buffer for the private key elements. It shall be large enough + to accommodate all elements for a RSA-4096 private key (roughly + five 2048-bit integers, possibly a bit more). */ + unsigned char key_data[3 * BR_X509_BUFSIZE_SIG]; +#endif +} br_pkey_decoder_context; + + +/** + * \brief Initialise a public key decoder context. + * + * \param ctx key decoder context to initialise. + */ +void br_pkey_decoder_init(br_pkey_decoder_context *ctx); + +/** + * \brief Push some data bytes into a public key decoder context. + * + * If `len` is non-zero, then that many data bytes, starting at address + * `data`, are pushed into the decoder. + * + * \param ctx key decoder context. + * \param data private key data chunk. + * \param len private key data chunk length (in bytes). + */ +void br_pkey_decoder_push(br_pkey_decoder_context *ctx, + const void *data, size_t len); + +/** + * \brief Get the decoding status for a public key. + * + * Decoding status is 0 on success, or a non-zero error code. If the + * decoding is unfinished when this function is called, then the + * status code `BR_ERR_X509_TRUNCATED` is returned. + * + * \param ctx key decoder context. + * \return 0 on successful decoding, or a non-zero error code. + */ +static inline int +br_pkey_decoder_last_error(const br_pkey_decoder_context *ctx) +{ + if (ctx->err != 0) { + return ctx->err; + } + if (ctx->key_type == 0) { + return BR_ERR_X509_TRUNCATED; + } + return 0; +} + +/** + * \brief Get the decoded public key type. + * + * Public key type is `BR_KEYTYPE_RSA` or `BR_KEYTYPE_EC`. If decoding is + * not finished or failed, then 0 is returned. + * + * \param ctx key decoder context. + * \return decoded private key type, or 0. + */ +static inline int +br_pkey_decoder_key_type(const br_pkey_decoder_context *ctx) +{ + if (ctx->err == 0) { + return ctx->key_type; + } else { + return 0; + } +} + +/** + * \brief Get the decoded RSA public key. + * + * This function returns `NULL` if the decoding failed, or is not + * finished, or the key is not RSA. The returned pointer references + * structures within the context that can become invalid if the context + * is reused or released. + * + * \param ctx key decoder context. + * \return decoded RSA public key, or `NULL`. + */ +static inline const br_rsa_public_key * +br_pkey_decoder_get_rsa(const br_pkey_decoder_context *ctx) +{ + if (ctx->err == 0 && ctx->key_type == BR_KEYTYPE_RSA) { + return &ctx->key.rsa; + } else { + return NULL; + } +} + +/** + * \brief Get the decoded EC private key. + * + * This function returns `NULL` if the decoding failed, or is not + * finished, or the key is not EC. The returned pointer references + * structures within the context that can become invalid if the context + * is reused or released. + * + * \param ctx key decoder context. + * \return decoded EC private key, or `NULL`. + */ +static inline const br_ec_public_key * +br_pkey_decoder_get_ec(const br_pkey_decoder_context *ctx) +{ + if (ctx->err == 0 && ctx->key_type == BR_KEYTYPE_EC) { + return &ctx->key.ec; + } else { + return NULL; + } +} + +/** + * \brief Encode an RSA private key (raw DER format). + * + * This function encodes the provided key into the "raw" format specified + * in PKCS#1 (RFC 8017, Appendix C, type `RSAPrivateKey`), with DER + * encoding rules. + * + * The key elements are: + * + * - `sk`: the private key (`p`, `q`, `dp`, `dq` and `iq`) + * + * - `pk`: the public key (`n` and `e`) + * + * - `d` (size: `dlen` bytes): the private exponent + * + * The public key elements, and the private exponent `d`, can be + * recomputed from the private key (see `br_rsa_compute_modulus()`, + * `br_rsa_compute_pubexp()` and `br_rsa_compute_privexp()`). + * + * If `dest` is not `NULL`, then the encoded key is written at that + * address, and the encoded length (in bytes) is returned. If `dest` is + * `NULL`, then nothing is written, but the encoded length is still + * computed and returned. + * + * \param dest the destination buffer (or `NULL`). + * \param sk the RSA private key. + * \param pk the RSA public key. + * \param d the RSA private exponent. + * \param dlen the RSA private exponent length (in bytes). + * \return the encoded key length (in bytes). + */ +size_t br_encode_rsa_raw_der(void *dest, const br_rsa_private_key *sk, + const br_rsa_public_key *pk, const void *d, size_t dlen); + +/** + * \brief Encode an RSA private key (PKCS#8 DER format). + * + * This function encodes the provided key into the PKCS#8 format + * (RFC 5958, type `OneAsymmetricKey`). It wraps around the "raw DER" + * format for the RSA key, as implemented by `br_encode_rsa_raw_der()`. + * + * The key elements are: + * + * - `sk`: the private key (`p`, `q`, `dp`, `dq` and `iq`) + * + * - `pk`: the public key (`n` and `e`) + * + * - `d` (size: `dlen` bytes): the private exponent + * + * The public key elements, and the private exponent `d`, can be + * recomputed from the private key (see `br_rsa_compute_modulus()`, + * `br_rsa_compute_pubexp()` and `br_rsa_compute_privexp()`). + * + * If `dest` is not `NULL`, then the encoded key is written at that + * address, and the encoded length (in bytes) is returned. If `dest` is + * `NULL`, then nothing is written, but the encoded length is still + * computed and returned. + * + * \param dest the destination buffer (or `NULL`). + * \param sk the RSA private key. + * \param pk the RSA public key. + * \param d the RSA private exponent. + * \param dlen the RSA private exponent length (in bytes). + * \return the encoded key length (in bytes). + */ +size_t br_encode_rsa_pkcs8_der(void *dest, const br_rsa_private_key *sk, + const br_rsa_public_key *pk, const void *d, size_t dlen); + +/** + * \brief Encode an EC private key (raw DER format). + * + * This function encodes the provided key into the "raw" format specified + * in RFC 5915 (type `ECPrivateKey`), with DER encoding rules. + * + * The private key is provided in `sk`, the public key being `pk`. If + * `pk` is `NULL`, then the encoded key will not include the public key + * in its `publicKey` field (which is nominally optional). + * + * If `dest` is not `NULL`, then the encoded key is written at that + * address, and the encoded length (in bytes) is returned. If `dest` is + * `NULL`, then nothing is written, but the encoded length is still + * computed and returned. + * + * If the key cannot be encoded (e.g. because there is no known OBJECT + * IDENTIFIER for the used curve), then 0 is returned. + * + * \param dest the destination buffer (or `NULL`). + * \param sk the EC private key. + * \param pk the EC public key (or `NULL`). + * \return the encoded key length (in bytes), or 0. + */ +size_t br_encode_ec_raw_der(void *dest, + const br_ec_private_key *sk, const br_ec_public_key *pk); + +/** + * \brief Encode an EC private key (PKCS#8 DER format). + * + * This function encodes the provided key into the PKCS#8 format + * (RFC 5958, type `OneAsymmetricKey`). The curve is identified + * by an OID provided as parameters to the `privateKeyAlgorithm` + * field. The private key value (contents of the `privateKey` field) + * contains the DER encoding of the `ECPrivateKey` type defined in + * RFC 5915, without the `parameters` field (since they would be + * redundant with the information in `privateKeyAlgorithm`). + * + * The private key is provided in `sk`, the public key being `pk`. If + * `pk` is not `NULL`, then the encoded public key is included in the + * `publicKey` field of the private key value (but not in the `publicKey` + * field of the PKCS#8 `OneAsymmetricKey` wrapper). + * + * If `dest` is not `NULL`, then the encoded key is written at that + * address, and the encoded length (in bytes) is returned. If `dest` is + * `NULL`, then nothing is written, but the encoded length is still + * computed and returned. + * + * If the key cannot be encoded (e.g. because there is no known OBJECT + * IDENTIFIER for the used curve), then 0 is returned. + * + * \param dest the destination buffer (or `NULL`). + * \param sk the EC private key. + * \param pk the EC public key (or `NULL`). + * \return the encoded key length (in bytes), or 0. + */ +size_t br_encode_ec_pkcs8_der(void *dest, + const br_ec_private_key *sk, const br_ec_public_key *pk); + +/** + * \brief PEM banner for RSA private key (raw). + */ +#define BR_ENCODE_PEM_RSA_RAW "RSA PRIVATE KEY" + +/** + * \brief PEM banner for EC private key (raw). + */ +#define BR_ENCODE_PEM_EC_RAW "EC PRIVATE KEY" + +/** + * \brief PEM banner for an RSA or EC private key in PKCS#8 format. + */ +#define BR_ENCODE_PEM_PKCS8 "PRIVATE KEY" + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/lwipopts.h b/include/lwipopts.h new file mode 100644 index 00000000..be3a0af3 --- /dev/null +++ b/include/lwipopts.h @@ -0,0 +1,103 @@ +#ifndef _LWIPOPTS_EXAMPLE_COMMONH_H +#define _LWIPOPTS_EXAMPLE_COMMONH_H + +#ifdef __cplusplus +extern "C" { +#endif // __cplusplus + + +// Critical section protection +extern void noInterrupts(); +extern void interrupts(); +#define SYS_ARCH_DECL_PROTECT int +#define SYS_ARCH_PROTECT(lev) noInterrupts +#define SYS_ARCH_UNPROTECT(lev) interrupts + +// Common settings used in most of the pico_w examples +// (see https://www.nongnu.org/lwip/2_1_x/group__lwip__opts.html for details) + +#define NO_SYS 1 +#define LWIP_SOCKET 0 +#define MEM_LIBC_MALLOC 0 + +#define MEM_ALIGNMENT 4 +#define MEM_SIZE 4000 +#define MEMP_NUM_TCP_SEG 32 +#define MEMP_NUM_ARP_QUEUE 10 +#define PBUF_POOL_SIZE 24 +#define LWIP_ARP 1 +#define LWIP_ETHERNET 1 +#define LWIP_ICMP 1 +#define LWIP_RAW 1 +#define TCP_WND (8 * TCP_MSS) +#define TCP_MSS 1460 +#define TCP_SND_BUF (8 * TCP_MSS) +#define TCP_SND_QUEUELEN ((4 * (TCP_SND_BUF) + (TCP_MSS - 1)) / (TCP_MSS)) +#define LWIP_NETIF_STATUS_CALLBACK 1 +#define LWIP_NETIF_LINK_CALLBACK 1 +#define LWIP_NETIF_HOSTNAME 1 +#define LWIP_NETCONN 0 +#define MEM_STATS 0 +#define SYS_STATS 0 +#define MEMP_STATS 0 +#define LINK_STATS 0 +// #define ETH_PAD_SIZE 2 +#define LWIP_CHKSUM_ALGORITHM 3 +#define LWIP_DHCP 1 +#define LWIP_IPV4 1 +#define LWIP_TCP 1 +#define LWIP_UDP 1 +#define LWIP_DNS 1 +#define LWIP_TCP_KEEPALIVE 1 +#define LWIP_NETIF_TX_SINGLE_PBUF 1 +#define DHCP_DOES_ARP_CHECK 0 +#define LWIP_DHCP_DOES_ACD_CHECK 0 + +// NTP +extern void __setSystemTime(unsigned long long sec, unsigned long us); +#define SNTP_SET_SYSTEM_TIME_US(sec, us) __setSystemTime(sec, us) +#define SNTP_MAX_SERVERS 1 +//#define SNTP_SERVER_ADDRESS "pool.ntp.org" +#define SNTP_SERVER_DNS 1 + +#ifndef NDEBUG +#define LWIP_DEBUG 1 +#define LWIP_STATS 1 +#define LWIP_STATS_DISPLAY 1 +#endif + +#define ETHARP_DEBUG LWIP_DBG_OFF +#define NETIF_DEBUG LWIP_DBG_OFF +#define PBUF_DEBUG LWIP_DBG_OFF +#define API_LIB_DEBUG LWIP_DBG_OFF +#define API_MSG_DEBUG LWIP_DBG_OFF +#define SOCKETS_DEBUG LWIP_DBG_OFF +#define ICMP_DEBUG LWIP_DBG_OFF +#define INET_DEBUG LWIP_DBG_OFF +#define IP_DEBUG LWIP_DBG_OFF +#define IP_REASS_DEBUG LWIP_DBG_OFF +#define RAW_DEBUG LWIP_DBG_OFF +#define MEM_DEBUG LWIP_DBG_OFF +#define MEMP_DEBUG LWIP_DBG_OFF +#define SYS_DEBUG LWIP_DBG_OFF +#define TCP_DEBUG LWIP_DBG_OFF +#define TCP_INPUT_DEBUG LWIP_DBG_OFF +#define TCP_OUTPUT_DEBUG LWIP_DBG_OFF +#define TCP_RTO_DEBUG LWIP_DBG_OFF +#define TCP_CWND_DEBUG LWIP_DBG_OFF +#define TCP_WND_DEBUG LWIP_DBG_OFF +#define TCP_FR_DEBUG LWIP_DBG_OFF +#define TCP_QLEN_DEBUG LWIP_DBG_OFF +#define TCP_RST_DEBUG LWIP_DBG_OFF +#define UDP_DEBUG LWIP_DBG_OFF +#define TCPIP_DEBUG LWIP_DBG_OFF +#define PPP_DEBUG LWIP_DBG_OFF +#define SLIP_DEBUG LWIP_DBG_OFF +#define DHCP_DEBUG LWIP_DBG_OFF + +#ifdef __cplusplus +} +#endif // __cplusplus + + +#endif /* __LWIPOPTS_H__ */ diff --git a/lib/pico_base/pico/config_autogen.h b/include/pico_base/pico/config_autogen.h similarity index 100% rename from lib/pico_base/pico/config_autogen.h rename to include/pico_base/pico/config_autogen.h diff --git a/lib/pico_base/pico/version.h b/include/pico_base/pico/version.h similarity index 100% rename from lib/pico_base/pico/version.h rename to include/pico_base/pico/version.h diff --git a/include/tusb_config.h b/include/tusb_config.h new file mode 100644 index 00000000..5e3b624e --- /dev/null +++ b/include/tusb_config.h @@ -0,0 +1,92 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2019 Ha Thach (tinyusb.org) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + */ + +#ifndef _TUSB_CONFIG_H_ +#define _TUSB_CONFIG_H_ + +#ifdef __cplusplus + extern "C" { +#endif + +//-------------------------------------------------------------------- +// COMMON CONFIGURATION +//-------------------------------------------------------------------- + +#ifndef CFG_TUSB_MCU + #define CFG_TUSB_MCU OPT_MCU_RP2040 +#endif + +#define CFG_TUSB_RHPORT0_MODE OPT_MODE_DEVICE +#define CFG_TUSB_OS OPT_OS_PICO + +// CFG_TUSB_DEBUG is defined by compiler in DEBUG build +#ifndef CFG_TUSB_DEBUG +#define CFG_TUSB_DEBUG 0 +#endif + +/* USB DMA on some MCUs can only access a specific SRAM region with restriction on alignment. + * Tinyusb use follows macros to declare transferring memory so that they can be put + * into those specific section. + * e.g + * - CFG_TUSB_MEM SECTION : __attribute__ (( section(".usb_ram") )) + * - CFG_TUSB_MEM_ALIGN : __attribute__ ((aligned(4))) + */ +#ifndef CFG_TUSB_MEM_SECTION +#define CFG_TUSB_MEM_SECTION +#endif + +#ifndef CFG_TUSB_MEM_ALIGN +#define CFG_TUSB_MEM_ALIGN __attribute__ ((aligned(4))) +#endif + +//-------------------------------------------------------------------- +// DEVICE CONFIGURATION +//-------------------------------------------------------------------- + +#ifndef CFG_TUD_ENDPOINT0_SIZE +#define CFG_TUD_ENDPOINT0_SIZE 64 +#endif + +//------------- CLASS -------------// +#define CFG_TUD_HID (2) +#define CFG_TUD_CDC (1) +#define CFG_TUD_MSC (0) +#define CFG_TUD_MIDI (0) +#define CFG_TUD_VENDOR (0) + +#define CFG_TUD_CDC_RX_BUFSIZE (256) +#define CFG_TUD_CDC_TX_BUFSIZE (256) + +#define CFG_TUD_MIDI_RX_BUFSIZE (64) +#define CFG_TUD_MIDI_TX_BUFSIZE (64) + +// HID buffer size Should be sufficient to hold ID (if any) + Data +#define CFG_TUD_HID_EP_BUFSIZE (64) + +#ifdef __cplusplus + } +#endif + +#endif /* _TUSB_CONFIG_H_ */ diff --git a/lib/libpico.a b/lib/libpico.a index 8d4ac949e62b13cac71bd3965cefb4a413c1b989..9dee6f1a5a0323cb58a4d5791e2f1a53d2bfc035 100644 GIT binary patch delta 2583 zcmZ8hZA?>V6b?`d6tJay^g}Fdxy81qld=(KoRG;JTZE|5#UYDOQCKvqPSi{=c8-bj zW2*?>5p|PD0*NjnYLCPz%&800X-&Y0qSPURk;G2;MPcskIk%}z$Dh_W*0W*k|Us5p13q&FdqA^zn)lj_`wZL`wRcFxu4kWKxsYI6(!iyzm0 ziXOaseuM&~^FkgSMhu>tArmdau_E+*1bN9ei6?$tunH&S5S{a#KPs0^(b2PN) z6&5;UGpXV7v#}pg%!Tgzr^_~C?mGHNFUKa1c2$b%0AWc%1aTigKF8HMSRqT z*8a766?Fd?8Tl@icHfOmF2|#De$@SJs^z0M`c>3sqQ_&cT?eCj)tEwBtx-WmOH@-K zQSnrSD&g%gNs}-f#A6c4X#p1xPgBCLa>=lQ{C!&0beJX3VUEs!5C7H3%A-M69#i!l zLU8;O(;X9(-TrTkL&&CeCMjW-IM#Sk$kr@YfbB}`$}}Ij`dyqFo;;0>{(usBOw%@A zp(CR)LJTe}m2z1W&014}BTE`dGP1!W)wC5zp{+ocHj`W&E>>`Ct89rtpmj^K5{h=p z++xa`Q!R_kBvStf+sE~lp=6%Y_H38IfF+SRCnZ+}bJeiET` zU83j-8GI|7vN&ndh7j1~hUKV2ikD5v(3Mn1k^+->Zv^Sn$CdMME#`8-+ocwT!XFQk z21OL!+Mh%_U_o6AhmxRhNHLDWS@6QyqLuAkK4%M$lgRB+9(yrG#oMWBC?GQm)GAdM zlK>c0>-JGoUW-~NcK%dTr&(5YJ}oE z?#@7o#-v9($f`BxR|j0JV0LTFD6oZIF58gi>;bgnL>E+~aPK2TVwKJm6%NY6yBuZ} zoHb~(HwQ+p3hDH7k9`uQ4!7wlXvJ}4F* z8)pkDH11>5?Aw(`0z0;)R#>=_n*HAl-VK}~Scm;vxFB7uFs+gk zS|tCYyWjLr-xu)rk>Z&>2SyKZPXs1dB)cIv$O?a+@FxXNv!5B*&v5?fG5#tr09P4I zExIF63MKyj2IrU9-N#xpkH=en(rAdqSJT3?`=W$f*@kOH zK|65jm|?Ik7-yvI{Dv?it%TeQX=5KE##dPCHQ)FwjDF&({l3h&te$YI&GZvLF=C8_D?`Qyf)j1-3*#ny{Dcdf?J*ASn92++ z^G31*OJWyXG1T+5DK7--wwh)M37NyLBL&6=-m}}32iy*mHn>vpPE*DI!r#F5J%LIr e{m2|70q%Cw$UQvPuqT6k>Fk>YF30SvRsR9FMs_0r delta 2566 zcmZ8jYfO`86b_}dP{5V~?bnK>Enl%M=xlICi4!s}V~a2~x;S*s*sdGj~ z6Y-Kkce!MU@@?*DmL$^{p84ZHCE07KBR0C!C~cq&fRJ17q!9MJ?y7VusG8%Y^utyP zdy9;u#1G-&i_iw|{qO`k9^L5?4>RzD3`f3-*hU$0SZ(j&h+Zwtp{Ud`PQ&;-{% zQQc8N*`5DJxrA(bw~B#ONwoR0kgZvw2FLa2byTW)C#!+yFQOxt(@Z|gjMD4$NO%lW z3YS*N*#$J5G{=Bzfjpc_NqSdRwdTm7HAj&=o4U9>q~hof#Y%xe%k~5YHttb)B{Xkl zr6N3yx?-!vpg2eCU^Z))0<2vz_vr25yjRGO<9sohA{v6X$MGg6EQ#89(T>C`v!iKt zuTlBLM32PPlSsWtAr1U&SKbjcMa}D+%I<86lUG4*^F8HFIkgF{hN5T6o_Rs|T6t{s z3AFL@Pn?ZSSRdq`CXSo5p?xepf`OF_;wCbMXkL-xU2)=%XtbwM1N(oC+jSaE_ojI9 za|-bHHgSb&(t#$B*$pZ2$mz$)oJ^gn5-KVXk-ru6^*&)sxOY~tnK0g|6^r2aN2&oa zP0-S(a!EtUwyEuER9EE=svvhzJ(k3O!%Y>(GvJ71u5_ZA$1Aj~hdJ?jn#y>GrXdH> zBmE)`w8*vjw10fFDd)5&=`P^eHN$u|I~BrtzSM=o?wi^NlmfSPBM)_I2P6R=V;(Jx zd1lIVn7S`r%0S}ZGY?k^oVO>8E<@iuvSHdUCxq;n_Io^MR_{)#2oAohY1S3N#*v+# zsjFW?aV*@QtD}Xv_ADg>{RKLUk%w(SUS->cfM+3Cy*evO#UUZbpzcC7)}2}up@GF^ ziR}9UQswSM4UWjhd0bWvTrlY~N)hE{meuG%R%2MfV)zk{$_`iE1_MsZ2HtB1Iyf7h z>Hb>=I#V0??h?o!R0@OLhFLU-_bdU&6Tc0v{vb~~4xbx$8xo-Jwc!>%Gt6EHvJrz( zC_Hb>@DLxdjh{&&d|@+Mh4i>c+ZGzlxJU`dB4g8{K({}gG;Z34wCJehNxeq{U~FU3 z=Xt2;B`3RVxu3lq$b}SI4&08Xcm=rgeX1f@vW}fA5F>1=>Cs)x(zS&YOJIBpYZ54; z0*AJ(`0+ZvOgJGw)jfrMjC+y|%4 zrf6J|HV%Kb?q-;7ZbTSofA)lFpf1R?CGYvhPnc|vOUa`j@Fs4XHIvD(W^%St%YRe< zv0MXAwfWS$cvtY>4wt#basX~*n_q@br~GZTd38PYAwSJOaudVmaJW8beiS+#2yL&; zTgB5c89wvC?jV@tEye9)1Cql@k603XUt6+5pl*jHRmevi_8!YIH*mgvmMma*TlB$& s^7mNE{uln1?K}{uMBdQwTqFVHCu{ft9;?WDAfFWSNd=E<&W(!y02~K%-~a#s diff --git a/lib/platform_inc.txt b/lib/platform_inc.txt index c1998f67..c4863439 100644 --- a/lib/platform_inc.txt +++ b/lib/platform_inc.txt @@ -1,5 +1,5 @@ -iwithprefixbefore/cores/rp2040/api/deprecated-avr-comp/ --iwithprefixbefore/lib/pico_base/ +-iwithprefixbefore/include/pico_base/ -iwithprefixbefore/pico-sdk/lib/tinyusb/src/ -iwithprefixbefore/pico-sdk/src/boards/include -iwithprefixbefore/pico-sdk/src/common/pico_base/include diff --git a/platform.txt b/platform.txt index 26db603c..0d2a2402 100644 --- a/platform.txt +++ b/platform.txt @@ -43,7 +43,7 @@ compiler.warning_flags.all=-Wall -Wextra -Werror=return-type -Wno-ignored-qualif compiler.netdefines=-DPICO_CYW43_ARCH_THREADSAFE_BACKGROUND=1 -DCYW43_LWIP=0 -DLWIP_IPV6=1 -DLWIP_IPV4=1 -DLWIP_IGMP=1 -DLWIP_CHECKSUM_CTRL_PER_NETIF=1 compiler.defines={build.led} {build.usbstack_flags} -DCFG_TUSB_MCU=OPT_MCU_RP2040 -DUSB_VID={build.vid} -DUSB_PID={build.pid} '-DUSB_MANUFACTURER={build.usb_manufacturer}' '-DUSB_PRODUCT={build.usb_product}' {compiler.netdefines} -compiler.includes="-iprefix{runtime.platform.path}/" "@{runtime.platform.path}/lib/platform_inc.txt" "-I{runtime.platform.path}/tools/libpico" "-I{runtime.platform.path}/include" +compiler.includes="-iprefix{runtime.platform.path}/" "@{runtime.platform.path}/lib/platform_inc.txt" "-I{runtime.platform.path}/include" compiler.flags=-march=armv6-m -mcpu=cortex-m0plus -mthumb -ffunction-sections -fdata-sections {build.flags.exceptions} {build.flags.stackprotect} compiler.wrap="@{runtime.platform.path}/lib/platform_wrap.txt" compiler.libpico="{runtime.platform.path}/lib/libpico.a" diff --git a/tools/libpico/make-libpico.sh b/tools/libpico/make-libpico.sh index 080a57cf..721fea26 100755 --- a/tools/libpico/make-libpico.sh +++ b/tools/libpico/make-libpico.sh @@ -10,8 +10,12 @@ mkdir build cd build cmake .. make -j + +# Put everything in its place mv libpico.a ../../../lib/. -mv generated/pico_base/pico/version.h ../../../lib/pico_base/pico/. +mv generated/pico_base/pico/version.h ../../../include/pico_base/pico/. +cp ../lwipopts.h ../../../include/. +cp ../tusb_config.h ../../../include/. rm -rf boot mkdir boot diff --git a/tools/platformio-build.py b/tools/platformio-build.py index 60780485..2273ffcc 100755 --- a/tools/platformio-build.py +++ b/tools/platformio-build.py @@ -147,7 +147,8 @@ env.Append( # link lib/libpico.a by full path, ignore libstdc++ LIBS=[ - File(os.path.join(FRAMEWORK_DIR, "lib", "libpico.a")), + File(os.path.join(FRAMEWORK_DIR, "lib", "libpico.a")), + File(os.path.join(FRAMEWORK_DIR, "lib", "libbearssl.a")), "m", "c", stdcpp_lib, "c"] ) @@ -247,7 +248,7 @@ if not "USE_TINYUSB" in cpp_defines: configure_usb_flags(cpp_defines) # ensure LWIP headers are in path after any TINYUSB distributed versions, also PicoSDK USB path headers -env.Append(CPPPATH=[os.path.join(FRAMEWORK_DIR, "tools", "libpico")]) +env.Append(CPPPATH=[os.path.join(FRAMEWORK_DIR, "include")]) # info about the filesystem is already parsed by the platform's main.py # script. We can just use the info here -- 2.54.0 From c44f2017911614fb3e727617158a1eaf83f7c4e0 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Sun, 17 Jul 2022 12:42:15 -0700 Subject: [PATCH 05/15] Actually check in the NTP code, d'oh --- libraries/WiFi/src/StackThunk.h | 4 +++ libraries/WiFi/src/WiFiNTP.cpp | 22 ++++++++++++++ libraries/WiFi/src/WiFiNTP.h | 51 +++++++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 libraries/WiFi/src/StackThunk.h create mode 100644 libraries/WiFi/src/WiFiNTP.cpp create mode 100644 libraries/WiFi/src/WiFiNTP.h diff --git a/libraries/WiFi/src/StackThunk.h b/libraries/WiFi/src/StackThunk.h new file mode 100644 index 00000000..9a68b9f4 --- /dev/null +++ b/libraries/WiFi/src/StackThunk.h @@ -0,0 +1,4 @@ +#pragma once + +extern "C" void stack_thunk_add_ref(); +extern "C" void stack_thunk_del_ref(); diff --git a/libraries/WiFi/src/WiFiNTP.cpp b/libraries/WiFi/src/WiFiNTP.cpp new file mode 100644 index 00000000..577aacce --- /dev/null +++ b/libraries/WiFi/src/WiFiNTP.cpp @@ -0,0 +1,22 @@ +/* + WiFiNTP.h - Simple NTP wrapper for LWIP + Copyright (c) 2022 Earle F. Philhower, III. All rights reserved. + + 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "WiFi.h" + +NTPClass NTP; diff --git a/libraries/WiFi/src/WiFiNTP.h b/libraries/WiFi/src/WiFiNTP.h new file mode 100644 index 00000000..bd775e9e --- /dev/null +++ b/libraries/WiFi/src/WiFiNTP.h @@ -0,0 +1,51 @@ +/* + WiFiNTP.h - Simple NTP wrapper for LWIP + Copyright (c) 2022 Earle F. Philhower, III. All rights reserved. + + 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include +#include + +class NTPClass { +public: + NTPClass() { } + + ~NTPClass() { + sntp_stop(); + } + + void begin(IPAddress server, int timeout = 3600) { + (void) timeout; + sntp_stop(); + if (server.isSet()) { + sntp_setserver(0, server); + sntp_setoperatingmode(SNTP_OPMODE_POLL); + sntp_init(); + } + } + + void begin(const char *server, int timeout = 3600) { + IPAddress addr; + if (WiFi.hostByName(server, addr)) { + begin(addr, timeout); + } + } +}; + +extern NTPClass NTP; -- 2.54.0 From 4b5ed2fd7a100aa78e32f6f51c3240968f5f98bb Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Sun, 17 Jul 2022 14:09:28 -0700 Subject: [PATCH 06/15] Allow 2 NTP servers, add ESP8266 compat define --- include/lwipopts.h | 2 +- lib/libpico.a | Bin 3018130 -> 3019686 bytes libraries/WiFi/src/WiFiNTP.h | 27 +++++++++++++++++++++++++++ tools/libpico/lwipopts.h | 2 +- 4 files changed, 29 insertions(+), 2 deletions(-) diff --git a/include/lwipopts.h b/include/lwipopts.h index be3a0af3..19bec187 100644 --- a/include/lwipopts.h +++ b/include/lwipopts.h @@ -56,7 +56,7 @@ extern void interrupts(); // NTP extern void __setSystemTime(unsigned long long sec, unsigned long us); #define SNTP_SET_SYSTEM_TIME_US(sec, us) __setSystemTime(sec, us) -#define SNTP_MAX_SERVERS 1 +#define SNTP_MAX_SERVERS 2 //#define SNTP_SERVER_ADDRESS "pool.ntp.org" #define SNTP_SERVER_DNS 1 diff --git a/lib/libpico.a b/lib/libpico.a index 9dee6f1a5a0323cb58a4d5791e2f1a53d2bfc035..8933569266ffd4358c02a768351eb9b95bd48c26 100644 GIT binary patch delta 19937 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 N=^Ht{{=5g5{V$CsTQ&dy diff --git a/libraries/WiFi/src/WiFiNTP.h b/libraries/WiFi/src/WiFiNTP.h index bd775e9e..753f1aba 100644 --- a/libraries/WiFi/src/WiFiNTP.h +++ b/libraries/WiFi/src/WiFiNTP.h @@ -40,12 +40,39 @@ public: } } + void begin(IPAddress s1, IPAddress s2, int timeout = 3600) { + (void) timeout; + sntp_stop(); + if (s1.isSet()) { + sntp_setserver(0, s1); + } + if (s2.isSet()) { + sntp_setserver(1, s2); + } + sntp_setoperatingmode(SNTP_OPMODE_POLL); + sntp_init(); + } + + void begin(const char *server, int timeout = 3600) { IPAddress addr; if (WiFi.hostByName(server, addr)) { begin(addr, timeout); } } + void begin(const char *s1, const char *s2, int timeout = 3600) { + IPAddress a1, a2; + if (WiFi.hostByName(s1, a1)) { + if (WiFi.hostByName(s2, a2)) { + begin(a1, a2, timeout); + } else { + begin(a1, timeout); + } + } + } }; +// ESP8266 compat +#define configTime(timeout, tzoffsec, server1, server2) NTP.begin(server1, server2, timeout) + extern NTPClass NTP; diff --git a/tools/libpico/lwipopts.h b/tools/libpico/lwipopts.h index be3a0af3..19bec187 100644 --- a/tools/libpico/lwipopts.h +++ b/tools/libpico/lwipopts.h @@ -56,7 +56,7 @@ extern void interrupts(); // NTP extern void __setSystemTime(unsigned long long sec, unsigned long us); #define SNTP_SET_SYSTEM_TIME_US(sec, us) __setSystemTime(sec, us) -#define SNTP_MAX_SERVERS 1 +#define SNTP_MAX_SERVERS 2 //#define SNTP_SERVER_ADDRESS "pool.ntp.org" #define SNTP_SERVER_DNS 1 -- 2.54.0 From 63f7cd32af8ff4f721aeaf1168fee521358a6140 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Sun, 17 Jul 2022 15:08:14 -0700 Subject: [PATCH 07/15] Add MFLN SSL example, free/used/total heap getters --- cores/rp2040/PolledTimeout.h | 290 ++++++++++++++++++ cores/rp2040/RP2040Support.h | 18 +- .../BearSSL_MaxFragmentLength.ino | 141 +++++++++ 3 files changed, 448 insertions(+), 1 deletion(-) create mode 100644 cores/rp2040/PolledTimeout.h create mode 100644 libraries/WiFi/examples/BearSSL_MaxFragmentLength/BearSSL_MaxFragmentLength.ino diff --git a/cores/rp2040/PolledTimeout.h b/cores/rp2040/PolledTimeout.h new file mode 100644 index 00000000..32494d87 --- /dev/null +++ b/cores/rp2040/PolledTimeout.h @@ -0,0 +1,290 @@ +/* + PolledTimeout.h - Encapsulation of a polled Timeout + + Copyright (c) 2018 Daniel Salazar. All rights reserved. + This file is part of the esp8266 core for Arduino environment. + + 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include // std::numeric_limits +#include // std::is_unsigned + +#define IRAM_ATTR + +namespace esp8266 { + + +namespace polledTimeout { + +namespace YieldPolicy { + +struct DoNothing { + static void execute() {} +}; + +struct YieldOrSkip { + static void execute() {} //{esp_yield();} +}; + +template +struct YieldAndDelayMs { + static void execute() { + delay(delayMs); + } +}; + +} //YieldPolicy + +namespace TimePolicy { + +struct TimeSourceMillis { + // time policy in milli-seconds based on millis() + + using timeType = decltype(millis()); + static timeType time() { + return millis(); + } + static constexpr timeType ticksPerSecond = 1000; + static constexpr timeType ticksPerSecondMax = 1000; +}; + +struct TimeSourceCycles { + // time policy based on esp_get_cycle_count() + // this particular time measurement is intended to be called very often + // (every loop, every yield) + + using timeType = decltype(rp2040.getCycleCount()); + static timeType time() { + return rp2040.getCycleCount(); + } + static constexpr timeType ticksPerSecond = F_CPU; + static constexpr timeType ticksPerSecondMax = F_CPU; +}; + +template +// "second_th" units of timeType for one second +struct TimeUnit { + using timeType = typename TimeSourceType::timeType; + +#if __GNUC__ < 5 + // gcc-4.8 cannot compile the constexpr-only version of this function + // using #defines instead luckily works + static constexpr timeType computeRangeCompensation() { +#define number_of_secondTh_in_one_tick ((1.0 * second_th) / ticksPerSecond) +#define fractional (number_of_secondTh_in_one_tick - (long)number_of_secondTh_in_one_tick) + + return ({ + fractional == 0 ? + 1 : // no need for compensation + (number_of_secondTh_in_one_tick / fractional) + 0.5; // scalar multiplier allowing exact division + }); + +#undef number_of_secondTh_in_one_tick +#undef fractional + } +#else + static constexpr timeType computeRangeCompensation() { + return ({ + constexpr double number_of_secondTh_in_one_tick = (1.0 * second_th) / ticksPerSecond; + constexpr double fractional = number_of_secondTh_in_one_tick - (long)number_of_secondTh_in_one_tick; + fractional == 0 ? + 1 : // no need for compensation + (number_of_secondTh_in_one_tick / fractional) + 0.5; // scalar multiplier allowing exact division + }); + } +#endif + + static constexpr timeType ticksPerSecond = TimeSourceType::ticksPerSecond; + static constexpr timeType ticksPerSecondMax = TimeSourceType::ticksPerSecondMax; + static constexpr timeType rangeCompensate = computeRangeCompensation(); + static constexpr timeType user2UnitMultiplierMax = (ticksPerSecondMax * rangeCompensate) / second_th; + static constexpr timeType user2UnitMultiplier = (ticksPerSecond * rangeCompensate) / second_th; + static constexpr timeType user2UnitDivider = rangeCompensate; + // std::numeric_limits::max() is reserved + static constexpr timeType timeMax = (std::numeric_limits::max() - 1) / user2UnitMultiplierMax; + + static timeType toTimeTypeUnit(const timeType userUnit) { + return (userUnit * user2UnitMultiplier) / user2UnitDivider; + } + static timeType toUserUnit(const timeType internalUnit) { + return (internalUnit * user2UnitDivider) / user2UnitMultiplier; + } + static timeType time() { + return TimeSourceType::time(); + } +}; + +using TimeMillis = TimeUnit< TimeSourceMillis, 1000 >; +using TimeFastMillis = TimeUnit< TimeSourceCycles, 1000 >; +using TimeFastMicros = TimeUnit< TimeSourceCycles, 1000000 >; +using TimeFastNanos = TimeUnit< TimeSourceCycles, 1000000000 >; + +} //TimePolicy + +template +class timeoutTemplate { +public: + using timeType = typename TimePolicyT::timeType; + static_assert(std::is_unsigned::value == true, "timeType must be unsigned"); + + static constexpr timeType alwaysExpired = 0; + static constexpr timeType neverExpires = std::numeric_limits::max(); + static constexpr timeType rangeCompensate = TimePolicyT::rangeCompensate; //debug + + timeoutTemplate(const timeType userTimeout) { + reset(userTimeout); + } + + IRAM_ATTR // fast + bool expired() { + YieldPolicyT::execute(); //in case of DoNothing: gets optimized away + if (PeriodicT) { //in case of false: gets optimized away + return expiredRetrigger(); + } + return expiredOneShot(); + } + + IRAM_ATTR // fast + operator bool() { + return expired(); + } + + bool canExpire() const { + return !_neverExpires; + } + + bool canWait() const { + return _timeout != alwaysExpired; + } + + // Resets, will trigger after this new timeout. + IRAM_ATTR // called from ISR + void reset(const timeType newUserTimeout) { + reset(); + _timeout = TimePolicyT::toTimeTypeUnit(newUserTimeout); + _neverExpires = (newUserTimeout < 0) || (newUserTimeout > timeMax()); + } + + // Resets, will trigger after the timeout previously set. + IRAM_ATTR // called from ISR + void reset() { + _start = TimePolicyT::time(); + } + + // Resets to just expired so that on next poll the check will immediately trigger for the user, + // also change timeout (after next immediate trigger). + IRAM_ATTR // called from ISR + void resetAndSetExpired(const timeType newUserTimeout) { + reset(newUserTimeout); + _start -= _timeout; + } + + // Resets to just expired so that on next poll the check will immediately trigger for the user. + IRAM_ATTR // called from ISR + void resetAndSetExpired() { + reset(); + _start -= _timeout; + } + + void resetToNeverExpires() { + _timeout = alwaysExpired + 1; // because canWait() has precedence + _neverExpires = true; + } + + timeType getTimeout() const { + return TimePolicyT::toUserUnit(_timeout); + } + + static constexpr timeType timeMax() { + return TimePolicyT::timeMax; + } + +private: + + IRAM_ATTR // fast + bool checkExpired(const timeType internalUnit) const { + // canWait() is not checked here + // returns "can expire" and "time expired" + return (!_neverExpires) && ((internalUnit - _start) >= _timeout); + } + +protected: + + IRAM_ATTR // fast + bool expiredRetrigger() { + if (!canWait()) { + return true; + } + + timeType current = TimePolicyT::time(); + if (checkExpired(current)) { + unsigned long n = (current - _start) / _timeout; //how many _timeouts periods have elapsed, will usually be 1 (current - _start >= _timeout) + _start += n * _timeout; + return true; + } + return false; + } + + IRAM_ATTR // fast + bool expiredOneShot() const { + // returns "always expired" or "has expired" + return !canWait() || checkExpired(TimePolicyT::time()); + } + + timeType _timeout; + timeType _start; + bool _neverExpires; +}; + +// legacy type names, deprecated (unit is milliseconds) + +using oneShot = polledTimeout::timeoutTemplate /*__attribute__((deprecated("use oneShotMs")))*/; +using periodic = polledTimeout::timeoutTemplate /*__attribute__((deprecated("use periodicMs")))*/; + +// standard versions (based on millis()) +// timeMax() is 49.7 days ((2^32)-2 ms) + +using oneShotMs = polledTimeout::timeoutTemplate; +using periodicMs = polledTimeout::timeoutTemplate; + +// Time policy based on esp_get_cycle_count(), and intended to be called very often: +// "Fast" versions sacrifices time range for improved precision and reduced execution time (by 86%) +// (cpu cycles for ::expired(): 372 (millis()) vs 52 (esp_get_cycle_count())) +// timeMax() values: +// Ms: max is 26843 ms (26.8 s) +// Us: max is 26843545 us (26.8 s) +// Ns: max is 1073741823 ns ( 1.07 s) +// (time policy based on esp_get_cycle_count() is intended to be called very often) + +using oneShotFastMs = polledTimeout::timeoutTemplate; +using periodicFastMs = polledTimeout::timeoutTemplate; +using oneShotFastUs = polledTimeout::timeoutTemplate; +using periodicFastUs = polledTimeout::timeoutTemplate; +using oneShotFastNs = polledTimeout::timeoutTemplate; +using periodicFastNs = polledTimeout::timeoutTemplate; + +} //polledTimeout + + +/* A 1-shot timeout that auto-yields when in CONT can be built as follows: + using oneShotYieldMs = esp8266::polledTimeout::timeoutTemplate; + + Other policies can be implemented by the user, e.g.: simple yield that panics in SYS, and the polledTimeout types built as needed as shown above, without modifying this file. +*/ + +}//esp8266 diff --git a/cores/rp2040/RP2040Support.h b/cores/rp2040/RP2040Support.h index 2245bef2..99ed1bd0 100644 --- a/cores/rp2040/RP2040Support.h +++ b/cores/rp2040/RP2040Support.h @@ -28,7 +28,7 @@ #include #include "CoreMutex.h" #include "ccount.pio.h" - +#include extern "C" volatile bool __otherCoreIdled; @@ -142,6 +142,9 @@ extern RP2040 rp2040; extern "C" void main1(); class PIOProgram; +extern "C" char __StackLimit; +extern "C" char __bss_end__; + // Wrapper class for PIO programs, abstracting common operations out // TODO - Add unload/destructor class PIOProgram { @@ -258,6 +261,19 @@ public: } } + inline int getFreeHeap() { + return getTotalHeap() - getUsedHeap(); + } + + inline int getUsedHeap() { + struct mallinfo m = mallinfo(); + return m.uordblks; + } + + inline int getTotalHeap() { + return &__StackLimit - &__bss_end__; + } + void idleOtherCore() { fifo.idleOtherCore(); } diff --git a/libraries/WiFi/examples/BearSSL_MaxFragmentLength/BearSSL_MaxFragmentLength.ino b/libraries/WiFi/examples/BearSSL_MaxFragmentLength/BearSSL_MaxFragmentLength.ino new file mode 100644 index 00000000..b5219e98 --- /dev/null +++ b/libraries/WiFi/examples/BearSSL_MaxFragmentLength/BearSSL_MaxFragmentLength.ino @@ -0,0 +1,141 @@ +// Shows how to use the Maximum Fragment Length option in +// BearSSL to reduce SSL memory needs. +// +// Mar 2018, Jul 2022 by Earle F. Philhower, III +// Released to the public domain + +#include +#include + +#ifndef STASSID +#define STASSID "your-ssid" +#define STAPSK "your-password" +#endif + +const char *ssid = STASSID; +const char *pass = STAPSK; + +const char *site = "docs.oracle.com"; + +void fetch(BearSSL::WiFiClientSecure *client) { + client->write("GET / HTTP/1.0\r\nHost: "); + client->write(site); + client->write("\r\nUser-Agent: Raspberry Pi Pico W\r\n\r\n"); + client->flush(); + using oneShot = esp8266::polledTimeout::oneShot; + oneShot timeout(5000); + do { + char tmp[32]; + int rlen = client->read((uint8_t *)tmp, sizeof(tmp) - 1); + yield(); + if (rlen < 0) { + break; + } + if (rlen == 0) { + delay(10); // Give background processes some time + continue; + } + tmp[rlen] = '\0'; + Serial.print(tmp); + } while (!timeout); + client->stop(); + Serial.printf("\n-------\n"); +} + +int fetchNoMaxFragmentLength() { + int ret = rp2040.getFreeHeap(); + + Serial.printf("\nConnecting to https://%s\n", site); + Serial.printf("No MFLN attempted\n"); + + BearSSL::WiFiClientSecure client; + client.setInsecure(); + client.connect(site, 443); + if (client.connected()) { + Serial.printf("Memory used: %d\n", ret - rp2040.getFreeHeap()); + ret -= rp2040.getFreeHeap(); + fetch(&client); + } else { + Serial.printf("Unable to connect\n"); + } + return ret; +} + +int fetchMaxFragmentLength() { + int ret = rp2040.getFreeHeap(); + + // Servers which implement RFC6066's Maximum Fragment Length Negotiation + // can be configured to limit the size of TLS fragments they transmit. + // This lets small clients, like the Pico, use a smaller memory buffer + // on the receive end (all the way down to under 1KB). Unfortunately, + // as of March 2018, there are not many public HTTPS servers which + // implement this option. You can deploy your own HTTPS or MQTT server + // with MFLN enabled, of course. + // + // To determine if MFLN is supported by a server use the + // ::probeMaxFragmentLength() method before connecting, and if it + // returns true then you can use the ::setBufferSizes(rx, tx) to shrink + // the needed BearSSL memory while staying within protocol limits. + // + // If MFLN is not supported, you may still be able to minimize the buffer + // sizes assuming you can ensure the server never transmits fragments larger + // than the size (i.e. by using HTTP GET RANGE methods, etc.). + + BearSSL::WiFiClientSecure client; + client.setInsecure(); + bool mfln = client.probeMaxFragmentLength(site, 443, 512); + Serial.printf("\nConnecting to https://%s\n", site); + Serial.printf("MFLN supported: %s\n", mfln ? "yes" : "no"); + if (mfln) { + client.setBufferSizes(512, 512); + } + client.connect(site, 443); + if (client.connected()) { + Serial.printf("MFLN status: %s\n", client.getMFLNStatus() ? "true" : "false"); + Serial.printf("Memory used: %d\n", ret - rp2040.getFreeHeap()); + ret -= rp2040.getFreeHeap(); + fetch(&client); + } else { + Serial.printf("Unable to connect\n"); + } + return ret; +} + +void setup() { + Serial.begin(115200); + + delay(5000); + Serial.println(); + Serial.println(); + + // We start by connecting to a WiFi network + Serial.print("Connecting to "); + Serial.print(ssid); + + WiFi.mode(WIFI_STA); + WiFi.begin(ssid, pass); + + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(""); + + Serial.println("WiFi connected"); + Serial.println("IP address: "); + Serial.println(WiFi.localIP()); + +} + +void loop() { + Serial.printf("\n\n\n\n\nFREE MEM: %d TOTAL HEAP:%d\n", rp2040.getFreeHeap(), rp2040.getTotalHeap()); + + int a = fetchNoMaxFragmentLength(); + int b = fetchMaxFragmentLength(); + + Serial.printf("\n\n"); + Serial.printf("Default SSL: %d bytes used\n", a); + Serial.printf("512 byte MFLN SSL: %d bytes used\n", b); + + delay(10000); +} -- 2.54.0 From ced1961f9038ff6b84858da8ae6d60111457460f Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Sun, 17 Jul 2022 16:23:33 -0700 Subject: [PATCH 08/15] Enable stack thunking --- libraries/WiFi/src/BearSSLHelpers.cpp | 24 +++-- libraries/WiFi/src/BearSSLHelpers.h | 22 +++-- libraries/WiFi/src/StackThunk.cpp | 89 +++++++++++++++++++ libraries/WiFi/src/StackThunk.h | 48 +++++++++- .../WiFi/src/WiFiClientSecureBearSSL.cpp | 5 +- 5 files changed, 157 insertions(+), 31 deletions(-) create mode 100644 libraries/WiFi/src/StackThunk.cpp diff --git a/libraries/WiFi/src/BearSSLHelpers.cpp b/libraries/WiFi/src/BearSSLHelpers.cpp index 595cea73..a7040c87 100644 --- a/libraries/WiFi/src/BearSSLHelpers.cpp +++ b/libraries/WiFi/src/BearSSLHelpers.cpp @@ -969,21 +969,9 @@ bool SigningVerifier::verify(UpdaterHashClass *hash, const void *signature, uint #endif } -#if !CORE_MOCK - -// Second stack thunked helpers -make_stack_thunk(br_ssl_engine_recvapp_ack); -make_stack_thunk(br_ssl_engine_recvapp_buf); -make_stack_thunk(br_ssl_engine_recvrec_ack); -make_stack_thunk(br_ssl_engine_recvrec_buf); -make_stack_thunk(br_ssl_engine_sendapp_ack); -make_stack_thunk(br_ssl_engine_sendapp_buf); -make_stack_thunk(br_ssl_engine_sendrec_ack); -make_stack_thunk(br_ssl_engine_sendrec_buf); #endif -#endif }; #if ARDUINO_SIGNING @@ -999,4 +987,14 @@ UpdaterVerifyClass& updaterSigningVerifier = __signingVerifier; }; #endif - +#pragma GCC push_options +#pragma GCC optimize("O0") +make_stack_thunk_void(br_ssl_engine_recvapp_ack, (br_ssl_engine_context *cc, size_t len), (cc, len)); +make_stack_thunk_unsigned_char_ptr(br_ssl_engine_recvapp_buf, (const br_ssl_engine_context *cc, size_t *len), (cc, len)); +make_stack_thunk_void(br_ssl_engine_recvrec_ack, (br_ssl_engine_context *cc, size_t len), (cc, len)); +make_stack_thunk_unsigned_char_ptr(br_ssl_engine_recvrec_buf, (const br_ssl_engine_context *cc, size_t *len), (cc, len)); +make_stack_thunk_void(br_ssl_engine_sendapp_ack, (br_ssl_engine_context *cc, size_t len), (cc, len)); +make_stack_thunk_unsigned_char_ptr(br_ssl_engine_sendapp_buf, (const br_ssl_engine_context *cc, size_t *len), (cc, len)); +make_stack_thunk_void(br_ssl_engine_sendrec_ack, (br_ssl_engine_context *cc, size_t len), (cc, len)); +make_stack_thunk_unsigned_char_ptr(br_ssl_engine_sendrec_buf, (const br_ssl_engine_context *cc, size_t *len), (cc, len)); +#pragma GCC pop_options diff --git a/libraries/WiFi/src/BearSSLHelpers.h b/libraries/WiFi/src/BearSSLHelpers.h index 9d104e83..86fb89b3 100644 --- a/libraries/WiFi/src/BearSSLHelpers.h +++ b/libraries/WiFi/src/BearSSLHelpers.h @@ -230,18 +230,16 @@ private: PublicKey *_pubKey; }; -// Stack thunked versions of calls -extern "C" { - extern unsigned char *thunk_br_ssl_engine_recvapp_buf(const br_ssl_engine_context *cc, size_t *len); - extern void thunk_br_ssl_engine_recvapp_ack(br_ssl_engine_context *cc, size_t len); - extern unsigned char *thunk_br_ssl_engine_recvrec_buf(const br_ssl_engine_context *cc, size_t *len); - extern void thunk_br_ssl_engine_recvrec_ack(br_ssl_engine_context *cc, size_t len); - extern unsigned char *thunk_br_ssl_engine_sendapp_buf(const br_ssl_engine_context *cc, size_t *len); - extern void thunk_br_ssl_engine_sendapp_ack(br_ssl_engine_context *cc, size_t len); - extern unsigned char *thunk_br_ssl_engine_sendrec_buf(const br_ssl_engine_context *cc, size_t *len); - extern void thunk_br_ssl_engine_sendrec_ack(br_ssl_engine_context *cc, size_t len); -}; - #endif }; + +// Stack thunked versions of calls +extern "C" unsigned char *thunk_br_ssl_engine_recvapp_buf(const br_ssl_engine_context *cc, size_t *len); +extern "C" void thunk_br_ssl_engine_recvapp_ack(br_ssl_engine_context *cc, size_t len); +extern "C" unsigned char *thunk_br_ssl_engine_recvrec_buf(const br_ssl_engine_context *cc, size_t *len); +extern "C" void thunk_br_ssl_engine_recvrec_ack(br_ssl_engine_context *cc, size_t len); +extern "C" unsigned char *thunk_br_ssl_engine_sendapp_buf(const br_ssl_engine_context *cc, size_t *len); +extern "C" void thunk_br_ssl_engine_sendapp_ack(br_ssl_engine_context *cc, size_t len); +extern "C" unsigned char *thunk_br_ssl_engine_sendrec_buf(const br_ssl_engine_context *cc, size_t *len); +extern "C" void thunk_br_ssl_engine_sendrec_ack(br_ssl_engine_context *cc, size_t len); diff --git a/libraries/WiFi/src/StackThunk.cpp b/libraries/WiFi/src/StackThunk.cpp new file mode 100644 index 00000000..a0c5adf5 --- /dev/null +++ b/libraries/WiFi/src/StackThunk.cpp @@ -0,0 +1,89 @@ +#include +#include +#include +#include "StackThunk.h" + +extern "C" { + + uint32_t *stack_thunk_ptr = NULL; + uint32_t *stack_thunk_top = NULL; + uint32_t *stack_thunk_save = NULL; /* Saved A1 while in BearSSL */ + uint32_t stack_thunk_refcnt = 0; + + /* Largest stack usage seen in the wild at 6120 */ +#define _stackSize (6400/4) +#define _stackPaint 0xdeadbeef + + /* Add a reference, and allocate the stack if necessary */ + void stack_thunk_add_ref() { + stack_thunk_refcnt++; + if (stack_thunk_refcnt == 1) { + // The stack must be in DRAM, or an Soft WDT will follow. Not sure why, + // maybe too much time is consumed with the non32-bit exception handler. + // Also, interrupt handling on an IRAM stack would be very slow. + // Strings on the stack would be very slow to access as well. + stack_thunk_ptr = (uint32_t *)malloc(_stackSize * sizeof(uint32_t)); + if (!stack_thunk_ptr) { + // This is a fatal error, stop the sketch + abort(); + } + stack_thunk_top = stack_thunk_ptr + _stackSize - 1; + stack_thunk_save = NULL; + stack_thunk_repaint(); + } + } + + /* Drop a reference, and free stack if no more in use */ + void stack_thunk_del_ref() { + if (stack_thunk_refcnt == 0) { + /* Error! */ + return; + } + stack_thunk_refcnt--; + if (!stack_thunk_refcnt) { + free(stack_thunk_ptr); + stack_thunk_ptr = NULL; + stack_thunk_top = NULL; + stack_thunk_save = NULL; + } + } + + void stack_thunk_repaint() { + for (int i = 0; i < _stackSize; i++) { + stack_thunk_ptr[i] = _stackPaint; + } + } + + /* Simple accessor functions used by postmortem */ + uint32_t stack_thunk_get_refcnt() { + return stack_thunk_refcnt; + } + + uint32_t stack_thunk_get_stack_top() { + return (uint32_t)stack_thunk_top; + } + + uint32_t stack_thunk_get_stack_bot() { + return (uint32_t)stack_thunk_ptr; + } + + uint32_t stack_thunk_get_cont_sp() { + return (uint32_t)stack_thunk_save; + } + + /* Return the number of bytes ever used since the stack was created */ + uint32_t stack_thunk_get_max_usage() { + uint32_t cnt = 0; + + /* No stack == no usage by definition! */ + if (!stack_thunk_ptr) { + return 0; + } + + for (cnt = 0; (cnt < _stackSize) && (stack_thunk_ptr[cnt] == _stackPaint); cnt++) { + /* Noop, all work done in for() */ + } + return 4 * (_stackSize - cnt); + } + +}; diff --git a/libraries/WiFi/src/StackThunk.h b/libraries/WiFi/src/StackThunk.h index 9a68b9f4..1a320c6f 100644 --- a/libraries/WiFi/src/StackThunk.h +++ b/libraries/WiFi/src/StackThunk.h @@ -1,4 +1,48 @@ #pragma once -extern "C" void stack_thunk_add_ref(); -extern "C" void stack_thunk_del_ref(); +#include + +#ifdef __cplusplus +extern "C" { +#endif + +extern void stack_thunk_add_ref(); +extern void stack_thunk_del_ref(); +extern void stack_thunk_repaint(); + +extern uint32_t stack_thunk_get_refcnt(); +extern uint32_t stack_thunk_get_stack_top(); +extern uint32_t stack_thunk_get_stack_bot(); +extern uint32_t stack_thunk_get_cont_sp(); +extern uint32_t stack_thunk_get_max_usage(); +extern void stack_thunk_dump_stack(); +extern void stack_thunk_fatal_overflow(); + +// Globals required for thunking operation +extern uint32_t *stack_thunk_ptr; +extern uint32_t *stack_thunk_top; +extern uint32_t *stack_thunk_save; +extern uint32_t stack_thunk_refcnt; + +#define make_stack_thunk_void(fcnToThunk, proto, params) \ +extern "C" void thunk_##fcnToThunk proto { \ + register uint32_t* sp asm("sp"); \ + stack_thunk_save = sp; \ + sp = stack_thunk_top; \ + fcnToThunk params; \ + sp = stack_thunk_save; \ +} + +#define make_stack_thunk_unsigned_char_ptr(fcnToThunk, proto, params) \ +extern "C" unsigned char * thunk_##fcnToThunk proto { \ + register uint32_t* sp asm("sp"); \ + stack_thunk_save = sp; \ + sp = stack_thunk_top; \ + auto x = fcnToThunk params; \ + sp = stack_thunk_save; \ + return x; \ +} + +#ifdef __cplusplus +} +#endif diff --git a/libraries/WiFi/src/WiFiClientSecureBearSSL.cpp b/libraries/WiFi/src/WiFiClientSecureBearSSL.cpp index b82cdd89..3d45e24f 100644 --- a/libraries/WiFi/src/WiFiClientSecureBearSSL.cpp +++ b/libraries/WiFi/src/WiFiClientSecureBearSSL.cpp @@ -43,7 +43,7 @@ //#include //#include //#include -#if 0 +#if 1 #if !CORE_MOCK // The BearSSL thunks in use for now @@ -69,9 +69,6 @@ extern "C" uint32_t __picoRand() { return rp2040.hwrand32(); } -extern "C" void stack_thunk_add_ref() {} -extern "C" void stack_thunk_del_ref() {} - namespace BearSSL { void WiFiClientSecureCtx::_clear() { -- 2.54.0 From 2845dddabb373947a3a2e2f562f362c5699fec53 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Mon, 18 Jul 2022 07:52:20 -0700 Subject: [PATCH 09/15] Add tested SSL examples --- .github/workflows/pull-request.yml | 2 +- .../BearSSL_CertStore/BearSSL_CertStore.ino | 172 +++++++++++++ .../BearSSL_CertStore/certs-from-mozilla.py | 81 ++++++ .../BearSSL_Server/BearSSL_Server.ino | 237 ++++++++++++++++++ .../DO-NOT-USE-THESE-CERTS-IN-YOUR-OWN-APPS | 0 .../WiFi/examples/BearSSL_Server/cert.pem | 20 ++ .../WiFi/examples/BearSSL_Server/key.pem | 28 +++ .../BearSSL_Sessions/BearSSL_Sessions.ino | 143 +++++++++++ .../WiFi/examples/BearSSL_Sessions/certs.h | 34 +++ 9 files changed, 716 insertions(+), 1 deletion(-) create mode 100644 libraries/WiFi/examples/BearSSL_CertStore/BearSSL_CertStore.ino create mode 100755 libraries/WiFi/examples/BearSSL_CertStore/certs-from-mozilla.py create mode 100644 libraries/WiFi/examples/BearSSL_Server/BearSSL_Server.ino create mode 100644 libraries/WiFi/examples/BearSSL_Server/DO-NOT-USE-THESE-CERTS-IN-YOUR-OWN-APPS create mode 100644 libraries/WiFi/examples/BearSSL_Server/cert.pem create mode 100644 libraries/WiFi/examples/BearSSL_Server/key.pem create mode 100644 libraries/WiFi/examples/BearSSL_Sessions/BearSSL_Sessions.ino create mode 100644 libraries/WiFi/examples/BearSSL_Sessions/certs.h diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index d6490290..83fc6d4b 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -20,7 +20,7 @@ jobs: - name: Run codespell uses: codespell-project/actions-codespell@master with: - skip: ./ArduinoCore-API,./libraries/ESP8266SdFat,./libraries/Adafruit_TinyUSB_Arduino,./libraries/LittleFS/lib,./tools/pyserial,./pico-sdk,./.github,./docs/i2s.rst,./cores/rp2040/api,./libraries/FreeRTOS,./tools/libbearssl/bearssl,./include + skip: ./ArduinoCore-API,./libraries/ESP8266SdFat,./libraries/Adafruit_TinyUSB_Arduino,./libraries/LittleFS/lib,./tools/pyserial,./pico-sdk,./.github,./docs/i2s.rst,./cores/rp2040/api,./libraries/FreeRTOS,./tools/libbearssl/bearssl,./include,./libraries/WiFi/examples/BearSSL_Server ignore_words_list: ser,dout # Consistent style diff --git a/libraries/WiFi/examples/BearSSL_CertStore/BearSSL_CertStore.ino b/libraries/WiFi/examples/BearSSL_CertStore/BearSSL_CertStore.ino new file mode 100644 index 00000000..7b40adff --- /dev/null +++ b/libraries/WiFi/examples/BearSSL_CertStore/BearSSL_CertStore.ino @@ -0,0 +1,172 @@ +// Demonstrate the CertStore object with WiFiClientBearSSL +// +// Before running, you must download the set of certs using +// the script "certs-from-mozilla.py" (no parameters) +// and then uploading the generated .AR file to LittleFS or SD. +// +// You do not need to generate the ".IDX" file listed below, +// it is generated automatically when the CertStore object +// is created and written to SD or LittleFS by the ESP8266. +// +// Why would you need a CertStore? +// +// If you know the exact server being connected to, or you +// are generating your own self-signed certificates and aren't +// allowing connections to HTTPS/TLS servers out of your +// control, then you do NOT want a CertStore. Hardcode the +// self-signing CA or the site's x.509 certificate directly. +// +// However, if you don't know what specific sites the system +// will be required to connect to and verify, a +// CertStore can allow you to select from among +// 10s or 100s of CAs against which you can check the +// target's X.509, without taking any more RAM than a single +// certificate. This is the same way that standard browsers +// and operating systems verify SSL connections. +// +// About the chosen certs: +// The certificates are scraped from the Mozilla.org current +// list, but please don't take this as an endorsement or a +// requirement: it is up to YOU, the USER, to specify the +// certificate authorities you will use as trust bases. +// +// Mar 2018 by Earle F. Philhower, III +// Released to the public domain + +#include +#include +#include +#include +#include + +#ifndef STASSID +#define STASSID "your-ssid" +#define STAPSK "your-password" +#endif + +const char *ssid = STASSID; +const char *pass = STAPSK; + +// A single, global CertStore which can be used by all +// connections. Needs to stay live the entire time any of +// the WiFiClientBearSSLs are present. +BearSSL::CertStore certStore; + +// Set time via NTP, as required for x.509 validation +void setClock() { + NTP.begin("pool.ntp.org", "time.nist.gov"); + + Serial.print("Waiting for NTP time sync: "); + time_t now = time(nullptr); + while (now < 8 * 3600 * 2) { + delay(500); + Serial.print("."); + now = time(nullptr); + } + Serial.println(""); + struct tm timeinfo; + gmtime_r(&now, &timeinfo); + Serial.print("Current time: "); + Serial.print(asctime(&timeinfo)); +} + +// Try and connect using a WiFiClientBearSSL to specified host:port and dump URL +void fetchURL(BearSSL::WiFiClientSecure *client, const char *host, const uint16_t port, const char *path) { + if (!path) { + path = "/"; + } + + Serial.printf("Trying: %s:443...", host); + client->connect(host, port); + if (!client->connected()) { + Serial.printf("*** Can't connect. ***\n-------\n"); + return; + } + Serial.printf("Connected!\n-------\n"); + client->write("GET "); + client->write(path); + client->write(" HTTP/1.0\r\nHost: "); + client->write(host); + client->write("\r\nUser-Agent: Raspberry Pi Pico W\r\n"); + client->write("\r\n"); + uint32_t to = millis() + 5000; + if (client->connected()) { + do { + char tmp[32]; + memset(tmp, 0, 32); + int rlen = client->read((uint8_t *)tmp, sizeof(tmp) - 1); + yield(); + if (rlen < 0) { + break; + } + // Only print out first line up to \r, then abort connection + char *nl = strchr(tmp, '\r'); + if (nl) { + *nl = 0; + Serial.print(tmp); + break; + } + Serial.print(tmp); + } while (millis() < to); + } + client->stop(); + Serial.printf("\n-------\n"); +} + +void setup() { + Serial.begin(115200); + Serial.println(); + Serial.println(); + + LittleFS.begin(); + + // We start by connecting to a WiFi network + Serial.print("Connecting to "); + Serial.println(ssid); + WiFi.mode(WIFI_STA); + WiFi.begin(ssid, pass); + + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(""); + + Serial.println("WiFi connected"); + Serial.println("IP address: "); + Serial.println(WiFi.localIP()); + + setClock(); // Required for X.509 validation + + int numCerts = certStore.initCertStore(LittleFS, PSTR("/certs.idx"), PSTR("/certs.ar")); + Serial.printf("Number of CA certs read: %d\n", numCerts); + if (numCerts == 0) { + Serial.printf("No certs found. Did you run certs-from-mozilla.py and upload the LittleFS directory before running?\n"); + return; // Can't connect to anything w/o certs! + } + + BearSSL::WiFiClientSecure *bear = new BearSSL::WiFiClientSecure(); + // Integrate the cert store with this connection + bear->setCertStore(&certStore); + Serial.printf("Attempting to fetch https://github.com/...\n"); + fetchURL(bear, "github.com", 443, "/"); + delete bear; +} + +void loop() { + Serial.printf("\nPlease enter a website address (www.blah.com) to connect to: "); + String site; + do { + site = Serial.readString(); + } while (site == ""); + // Strip newline if present + site.replace(String("\r"), ""); + site.replace(String("\n"), ""); + Serial.printf("https://%s/\n", site.c_str()); + + BearSSL::WiFiClientSecure *bear = new BearSSL::WiFiClientSecure(); + // Integrate the cert store with this connection + bear->setCertStore(&certStore); + fetchURL(bear, site.c_str(), 443, "/"); + delete bear; +} diff --git a/libraries/WiFi/examples/BearSSL_CertStore/certs-from-mozilla.py b/libraries/WiFi/examples/BearSSL_CertStore/certs-from-mozilla.py new file mode 100755 index 00000000..1f35a998 --- /dev/null +++ b/libraries/WiFi/examples/BearSSL_CertStore/certs-from-mozilla.py @@ -0,0 +1,81 @@ +#!/usr/bin/env python3 + +# This script pulls the list of Mozilla trusted certificate authorities +# from the web at the "mozurl" below, parses the file to grab the PEM +# for each cert, and then generates DER files in a new ./data directory +# Upload these to an on-chip filesystem and use the CertManager to parse +# and use them for your outgoing SSL connections. +# +# Script by Earle F. Philhower, III. Released to the public domain. +from __future__ import print_function +import csv +import os +import sys +from shutil import which + +from subprocess import Popen, PIPE, call +try: + from urllib.request import urlopen +except Exception: + from urllib2 import urlopen +try: + from StringIO import StringIO +except Exception: + from io import StringIO + +# check if ar and openssl are available +if which('ar') is None and not os.path.isfile('./ar') and not os.path.isfile('./ar.exe'): + raise Exception("You need the program 'ar' from xtensa-lx106-elf found here: (esp8266-arduino-core)/hardware/esp8266com/esp8266/tools/xtensa-lx106-elf/xtensa-lx106-elf/bin/ar") +if which('openssl') is None and not os.path.isfile('./openssl') and not os.path.isfile('./openssl.exe'): + raise Exception("You need to have openssl in PATH, installable from https://www.openssl.org/") + +# Mozilla's URL for the CSV file with included PEM certs +mozurl = "https://ccadb-public.secure.force.com/mozilla/IncludedCACertificateReportPEMCSV" + +# Load the names[] and pems[] array from the URL +names = [] +pems = [] +response = urlopen(mozurl) +csvData = response.read() +if sys.version_info[0] > 2: + csvData = csvData.decode('utf-8') +csvFile = StringIO(csvData) +csvReader = csv.reader(csvFile) +for row in csvReader: + names.append(row[0]+":"+row[1]+":"+row[2]) + for item in row: + if item.startswith("'-----BEGIN CERTIFICATE-----"): + pems.append(item) +del names[0] # Remove headers +del pems[0] # Remove headers + +# Try and make ./data, skip if present +try: + os.mkdir("data") +except Exception: + pass + +derFiles = [] +idx = 0 +# Process the text PEM using openssl into DER files +for i in range(0, len(pems)): + certName = "data/ca_%03d.der" % (idx); + thisPem = pems[i].replace("'", "") + print(names[i] + " -> " + certName) + ssl = Popen(['openssl','x509','-inform','PEM','-outform','DER','-out', certName], shell = False, stdin = PIPE) + pipe = ssl.stdin + pipe.write(thisPem.encode('utf-8')) + pipe.close() + ssl.wait() + if os.path.exists(certName): + derFiles.append(certName) + idx = idx + 1 + +if os.path.exists("data/certs.ar"): + os.unlink("data/certs.ar"); + +arCmd = ['ar', 'q', 'data/certs.ar'] + derFiles; +call( arCmd ) + +for der in derFiles: + os.unlink(der) diff --git a/libraries/WiFi/examples/BearSSL_Server/BearSSL_Server.ino b/libraries/WiFi/examples/BearSSL_Server/BearSSL_Server.ino new file mode 100644 index 00000000..819c4dfe --- /dev/null +++ b/libraries/WiFi/examples/BearSSL_Server/BearSSL_Server.ino @@ -0,0 +1,237 @@ +/* + Demonstrate the usage of WiFiServerBearSSL. + By Earle F. Philhower, III + + A simple HTTPS server is implemented with a self-signed + certificate for the Pico W. + + This is NOT the best way to implement a HTTPS website on the + Pico W. Please see the ESP8266WebServerBearSSL example for + a much better way of doing this! + + IMPORTANT NOTES ABOUT SSL CERTIFICATES + + 1. USE/GENERATE YOUR OWN CERTIFICATES + While a sample, self-signed certificate is included in this example, + it is ABSOLUTELY VITAL that you use your own SSL certificate in any + real-world deployment. Anyone with the certificate and key may be + able to decrypt your traffic, so your own keys should be kept in a + safe manner, not accessible on any public network. + + 2. HOW TO GENERATE YOUR OWN CERTIFICATE/KEY PAIR + It is easy to use OpenSSL to generate a self-signed certificate + openssl req -x509 -nodes -newkey rsa:2048 -keyout key.pem -out cert.pem -days 4096 + + You may also, of course, use a commercial, trusted SSL provider to + generate your certificate. + + Included with this example are *SAMPLE* certs and keys. They are NOT + SECURE, since they're shared with all copies of the repo, so + DO NOT USE THE SAMPLE CERTS, KEYS, OR CAS IN YOUR OWN PROJECT!!! + + Run this example and then try connecting to the server https://IP. + + This example is released into the public domain. +*/ + +#include +#include + +#ifndef STASSID +#define STASSID "your-ssid" +#define STAPSK "your-password" +#endif + +const char *ssid = STASSID; +const char *pass = STAPSK; + +// The HTTPS server +BearSSL::WiFiServerSecure server(443); + +//#define USE_EC // Enable Elliptic Curve signed cert + +#ifndef USE_EC + +// The server's private key which must be kept secret +const char server_private_key[] PROGMEM = R"EOF( +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDJblrg47vF3qlE +NMRM7uG8QwE6v/AKpxOL+CLb/32s+dW9Psgf+oZKJgzGkYUoJdWpLitTmTZeykAs +Sq7Iax5Rq/mGqyAc7oJAUUAupfNRU0KwkD1XqtpQWEFoiqoIqZbOZ4CRX5q8z/MN +BH1aPVBMKaL33uwknkgJBzxwZJ2+uGKxRJt8+koj1CXgUCk5lEAEEG5kqE326MjN +O/c4gBqulBV8AIoq6/trY3apTS7FEOiN47qh1PVzoBm/oGVwXvoZAZOj7+gGGo91 +sBC5oHJy5Y2BOcNB3opTNXQTiK3Z80b5wc3iQS+h83qAfHwhs6tfAW22WkAf+jtt +x8KdRWFNAgMBAAECggEAPd+jFL9/d1lc/zGCNuuN9YlTgFti/bKyo2UWOCOz1AVu +LVJyoLgQtggYFoqur1Vn2y7uaiB+/gD8U16hb7jPuGCuJjq8g4aUBfOvVmTtZ8a+ +joPQA/TcWJ+zf8xQTJbjVwWeDYmje2oZC5+cbbK1zp9fiuoz+U+RawyI+TE+700i +ESCmsKFIHy2Ifruva8HgcPYIPpZ9zLxJj0Dii+WDs7zM9h2dzO4HfImSG/DPmgoV +ydo9IcrUE7KoMLa8Uo7u1b2h6BnTn7GfYiMSUsYcYR3CnpDBknBWjZMwrV0uqv9q +TbVc4QXt+c1q89HDg7BIJaOAzbCvJfgAfXUqZyqwQQKBgQD5ENFjicUzCqPw7fOy +Q5Z8GeUbIJ5urT1MheAq7SPd2kK8TsO3hUjNC0LLNSyKPs6gsYaIiObO3wDGeZZk +xeHBhrUVaz2nIjI7TrnCUpMDOrdxcPr4bc+ifV5YT4W3OFBWQ9chQEx3Nm3DbiX4 +fpno34AiFrJF791JkTPFj9OIUQKBgQDPCgcae1pQr77q+GL5Q2tku3RrE4cWtExf +m8DzAb4Vxe3EhPz8bVr+71rqr/KqNfG1uKE3sT0fhB6VMTkHTOQU13jDrvpPUS3W +Vg8cVr5/+iiyF0xb+W8LQ+GVdR5xnMPSZHUtXyURvtzT4nnTAlAtN7lEytX9BzbX +xhltOOwGPQKBgA/Y/BnDSGLpCGlqGpl7J3YaB7PkLXCJYV8fHZZdpGyXWKu2r0lc +F7fEQanAZmcde/RJl2/UlisPkXMPhXxAAw9XTOph+nhJ+rw/VB6DNot8DvQO5kks +Y4vJQlmIJc/0q1fx1RxuhO8I7Y8D0TKwi4Z/wh1pKEq+6mul649kiWchAoGAWn8B +l9uvIHGRO9eSO23ytTcSrfL9Kzln4KqN7iom0hGP2kRe6F9MVP5+ePKrWSb3Hf0z +ysoX83ymeYPob352e32rda04EA9lv7giJrrrzbikrSNt5w3iMcRcCB4HTpW9Kmtq +pIhgBZ+tmpf1s/vg28LtoloeqtjKagpW9tzYnekCgYAZFZ84EGqS9SHw5LELgGY4 +mQLMwbYZ6wBMA2PlqYi/17hoAVWz37mLDjtWDB4ir78QMoGbesQVtK9W/4vzmez4 +ZLKlffdL5tCtA08Gq9aond1z83Xdnh1UjtwHIJvJPc/AoCFW1r5skv/G6acAk6I2 +Zs0aiirNGTEymRX4rw26Qg== +-----END PRIVATE KEY----- +)EOF"; + +// The server's public certificate which must be shared +const char server_cert[] PROGMEM = R"EOF( +-----BEGIN CERTIFICATE----- +MIIDUTCCAjmgAwIBAgIJAOcfK7c3JQtnMA0GCSqGSIb3DQEBCwUAMD8xCzAJBgNV +BAYTAkFVMQ0wCwYDVQQIDAROb25lMQ0wCwYDVQQKDAROb25lMRIwEAYDVQQDDAlF +U1BTZXJ2ZXIwHhcNMTgwMzE0MTg1NTQ1WhcNMjkwNTMxMTg1NTQ1WjA/MQswCQYD +VQQGEwJBVTENMAsGA1UECAwETm9uZTENMAsGA1UECgwETm9uZTESMBAGA1UEAwwJ +RVNQU2VydmVyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyW5a4OO7 +xd6pRDTETO7hvEMBOr/wCqcTi/gi2/99rPnVvT7IH/qGSiYMxpGFKCXVqS4rU5k2 +XspALEquyGseUav5hqsgHO6CQFFALqXzUVNCsJA9V6raUFhBaIqqCKmWzmeAkV+a +vM/zDQR9Wj1QTCmi997sJJ5ICQc8cGSdvrhisUSbfPpKI9Ql4FApOZRABBBuZKhN +9ujIzTv3OIAarpQVfACKKuv7a2N2qU0uxRDojeO6odT1c6AZv6BlcF76GQGTo+/o +BhqPdbAQuaBycuWNgTnDQd6KUzV0E4it2fNG+cHN4kEvofN6gHx8IbOrXwFttlpA +H/o7bcfCnUVhTQIDAQABo1AwTjAdBgNVHQ4EFgQUBEk8LqgV+sMjdl/gpP1OlcNW +14EwHwYDVR0jBBgwFoAUBEk8LqgV+sMjdl/gpP1OlcNW14EwDAYDVR0TBAUwAwEB +/zANBgkqhkiG9w0BAQsFAAOCAQEAO1IrqW21KfzrxKmtuDSHdH5YrC3iOhiF/kaK +xXbigdtw6KHW/pIhGiA3BY5u+d5eVuHTR5YSwIbbRvOjuoNBATAw/8f5mt5Wa+C3 +PDpLNxDys561VbCW45RMQ0x5kybvDYi0D1R/grqZ18veuFSfE6QMJ/mzvr575fje +8r5Ou0IZOYYF8cyqG5rA4U7BYXEnH44VgwlpkF8pitPsnyUWaAYqE0KnZ0qw0Py4 +HCkfGJNlNOOamnr6KakVlocwKY0SdxcLoXSs5ogTQvTSrAOjwcm1RA0hOCXr8f/f +UsQIIGpPVh1plR1vYNndDeBpRJSFkoJTkgAIrlFzSMwNebU0pg== +-----END CERTIFICATE----- +)EOF"; + +#else +const char server_cert[] PROGMEM = R"EOF( +-----BEGIN CERTIFICATE----- +MIIB0zCCAXqgAwIBAgIJALANi2eTiGD/MAoGCCqGSM49BAMCMEUxCzAJBgNVBAYT +AkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRn +aXRzIFB0eSBMdGQwHhcNMTkwNjExMjIyOTU2WhcNMjAwNjEwMjIyOTU2WjBFMQsw +CQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJu +ZXQgV2lkZ2l0cyBQdHkgTHRkMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAExIkZ +w7zjk6TGcScff1PAehuEGmKZTf8VfnkjyJH0IbBgZibZ+qwYGBEnkz4KpKv7TkHo +W+j7F5EMcLcSrUIpy6NTMFEwHQYDVR0OBBYEFI6A0f+g0HyxUT6xrbVmRU79urbj +MB8GA1UdIwQYMBaAFI6A0f+g0HyxUT6xrbVmRU79urbjMA8GA1UdEwEB/wQFMAMB +Af8wCgYIKoZIzj0EAwIDRwAwRAIgWvy7ofQTGZMNqxUfe4gjtkU+C9AkQtaOMW2U +5xFFSvcCICvcGrQpoi7tRTq8xsXFmr8MYWgQTpVAtj6opXMQct/l +-----END CERTIFICATE----- +)EOF"; + +// The server's private key which must be kept secret +const char server_private_key[] PROGMEM = R"EOF( +-----BEGIN EC PARAMETERS----- +BggqhkjOPQMBBw== +-----END EC PARAMETERS----- +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIKyLR9/NT7ZdWM+2rklehveuk+jyIHJ+P8ZUQ392HOYvoAoGCCqGSM49 +AwEHoUQDQgAExIkZw7zjk6TGcScff1PAehuEGmKZTf8VfnkjyJH0IbBgZibZ+qwY +GBEnkz4KpKv7TkHoW+j7F5EMcLcSrUIpyw== +-----END EC PRIVATE KEY----- +)EOF"; + +#endif + +#define CACHE_SIZE 5 // Number of sessions to cache. +#define USE_CACHE // Enable SSL session caching. + // Caching SSL sessions shortens the length of the SSL handshake. + // You can see the performance improvement by looking at the + // Network tab of the developer tools of your browser. +//#define DYNAMIC_CACHE // Whether to dynamically allocate the cache. + +#if defined(USE_CACHE) && defined(DYNAMIC_CACHE) +// Dynamically allocated cache. +BearSSL::ServerSessions serverCache(CACHE_SIZE); +#elif defined(USE_CACHE) +// Statically allocated cache. +ServerSession store[CACHE_SIZE]; +BearSSL::ServerSessions serverCache(store, CACHE_SIZE); +#endif + +void setup() { + Serial.begin(115200); + Serial.println(); + Serial.println(); + + // We start by connecting to a WiFi network + Serial.print("Connecting to "); + Serial.println(ssid); + WiFi.mode(WIFI_STA); + WiFi.begin(ssid, pass); + + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(""); + + Serial.println("WiFi connected"); + Serial.println("IP address: "); + Serial.println(WiFi.localIP()); + + // Attach the server private cert/key combo + BearSSL::X509List *serverCertList = new BearSSL::X509List(server_cert); + BearSSL::PrivateKey *serverPrivKey = new BearSSL::PrivateKey(server_private_key); +#ifndef USE_EC + server.setRSACert(serverCertList, serverPrivKey); +#else + server.setECCert(serverCertList, BR_KEYTYPE_KEYX | BR_KEYTYPE_SIGN, serverPrivKey); +#endif + + // Set the server's cache +#if defined(USE_CACHE) + server.setCache(&serverCache); +#endif + + // Actually start accepting connections + server.begin(); +} + +static const char *HTTP_RES = "HTTP/1.0 200 OK\r\n" + "Connection: close\r\n" + "Content-Length: 62\r\n" + "Content-Type: text/html; charset=iso-8859-1\r\n" + "\r\n" + "\r\n" + "\r\n" + "

Hello from the Raspberry Pi Pico W!

\r\n" + "\r\n" + "\r\n"; + +void loop() { + static int cnt; + BearSSL::WiFiClientSecure incoming = server.accept(); + if (!incoming) { return; } + Serial.printf("Incoming connection...%d\n", cnt++); + + // Ugly way to wait for \r\n (i.e. end of HTTP request which we don't actually parse here) + uint32_t timeout = millis() + 1000; + int lcwn = 0; + for (;;) { + unsigned char x = 0; + if ((millis() > timeout) || (incoming.available() && incoming.read(&x, 1) < 0)) { + incoming.stop(); + Serial.printf("Connection error, closed\n"); + return; + } else if (!x) { + yield(); + continue; + } else if (x == 0x0D) { + continue; + } else if (x == 0x0A) { + if (lcwn) { break; } + lcwn = 1; + } else + lcwn = 0; + } + incoming.write((uint8_t *)HTTP_RES, strlen(HTTP_RES)); + incoming.flush(); + incoming.stop(); + Serial.printf("Connection closed.\n"); +} diff --git a/libraries/WiFi/examples/BearSSL_Server/DO-NOT-USE-THESE-CERTS-IN-YOUR-OWN-APPS b/libraries/WiFi/examples/BearSSL_Server/DO-NOT-USE-THESE-CERTS-IN-YOUR-OWN-APPS new file mode 100644 index 00000000..e69de29b diff --git a/libraries/WiFi/examples/BearSSL_Server/cert.pem b/libraries/WiFi/examples/BearSSL_Server/cert.pem new file mode 100644 index 00000000..47238368 --- /dev/null +++ b/libraries/WiFi/examples/BearSSL_Server/cert.pem @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDUTCCAjmgAwIBAgIJAOcfK7c3JQtnMA0GCSqGSIb3DQEBCwUAMD8xCzAJBgNV +BAYTAkFVMQ0wCwYDVQQIDAROb25lMQ0wCwYDVQQKDAROb25lMRIwEAYDVQQDDAlF +U1BTZXJ2ZXIwHhcNMTgwMzE0MTg1NTQ1WhcNMjkwNTMxMTg1NTQ1WjA/MQswCQYD +VQQGEwJBVTENMAsGA1UECAwETm9uZTENMAsGA1UECgwETm9uZTESMBAGA1UEAwwJ +RVNQU2VydmVyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyW5a4OO7 +xd6pRDTETO7hvEMBOr/wCqcTi/gi2/99rPnVvT7IH/qGSiYMxpGFKCXVqS4rU5k2 +XspALEquyGseUav5hqsgHO6CQFFALqXzUVNCsJA9V6raUFhBaIqqCKmWzmeAkV+a +vM/zDQR9Wj1QTCmi997sJJ5ICQc8cGSdvrhisUSbfPpKI9Ql4FApOZRABBBuZKhN +9ujIzTv3OIAarpQVfACKKuv7a2N2qU0uxRDojeO6odT1c6AZv6BlcF76GQGTo+/o +BhqPdbAQuaBycuWNgTnDQd6KUzV0E4it2fNG+cHN4kEvofN6gHx8IbOrXwFttlpA +H/o7bcfCnUVhTQIDAQABo1AwTjAdBgNVHQ4EFgQUBEk8LqgV+sMjdl/gpP1OlcNW +14EwHwYDVR0jBBgwFoAUBEk8LqgV+sMjdl/gpP1OlcNW14EwDAYDVR0TBAUwAwEB +/zANBgkqhkiG9w0BAQsFAAOCAQEAO1IrqW21KfzrxKmtuDSHdH5YrC3iOhiF/kaK +xXbigdtw6KHW/pIhGiA3BY5u+d5eVuHTR5YSwIbbRvOjuoNBATAw/8f5mt5Wa+C3 +PDpLNxDys561VbCW45RMQ0x5kybvDYi0D1R/grqZ18veuFSfE6QMJ/mzvr575fje +8r5Ou0IZOYYF8cyqG5rA4U7BYXEnH44VgwlpkF8pitPsnyUWaAYqE0KnZ0qw0Py4 +HCkfGJNlNOOamnr6KakVlocwKY0SdxcLoXSs5ogTQvTSrAOjwcm1RA0hOCXr8f/f +UsQIIGpPVh1plR1vYNndDeBpRJSFkoJTkgAIrlFzSMwNebU0pg== +-----END CERTIFICATE----- diff --git a/libraries/WiFi/examples/BearSSL_Server/key.pem b/libraries/WiFi/examples/BearSSL_Server/key.pem new file mode 100644 index 00000000..4d270b18 --- /dev/null +++ b/libraries/WiFi/examples/BearSSL_Server/key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDJblrg47vF3qlE +NMRM7uG8QwE6v/AKpxOL+CLb/32s+dW9Psgf+oZKJgzGkYUoJdWpLitTmTZeykAs +Sq7Iax5Rq/mGqyAc7oJAUUAupfNRU0KwkD1XqtpQWEFoiqoIqZbOZ4CRX5q8z/MN +BH1aPVBMKaL33uwknkgJBzxwZJ2+uGKxRJt8+koj1CXgUCk5lEAEEG5kqE326MjN +O/c4gBqulBV8AIoq6/trY3apTS7FEOiN47qh1PVzoBm/oGVwXvoZAZOj7+gGGo91 +sBC5oHJy5Y2BOcNB3opTNXQTiK3Z80b5wc3iQS+h83qAfHwhs6tfAW22WkAf+jtt +x8KdRWFNAgMBAAECggEAPd+jFL9/d1lc/zGCNuuN9YlTgFti/bKyo2UWOCOz1AVu +LVJyoLgQtggYFoqur1Vn2y7uaiB+/gD8U16hb7jPuGCuJjq8g4aUBfOvVmTtZ8a+ +joPQA/TcWJ+zf8xQTJbjVwWeDYmje2oZC5+cbbK1zp9fiuoz+U+RawyI+TE+700i +ESCmsKFIHy2Ifruva8HgcPYIPpZ9zLxJj0Dii+WDs7zM9h2dzO4HfImSG/DPmgoV +ydo9IcrUE7KoMLa8Uo7u1b2h6BnTn7GfYiMSUsYcYR3CnpDBknBWjZMwrV0uqv9q +TbVc4QXt+c1q89HDg7BIJaOAzbCvJfgAfXUqZyqwQQKBgQD5ENFjicUzCqPw7fOy +Q5Z8GeUbIJ5urT1MheAq7SPd2kK8TsO3hUjNC0LLNSyKPs6gsYaIiObO3wDGeZZk +xeHBhrUVaz2nIjI7TrnCUpMDOrdxcPr4bc+ifV5YT4W3OFBWQ9chQEx3Nm3DbiX4 +fpno34AiFrJF791JkTPFj9OIUQKBgQDPCgcae1pQr77q+GL5Q2tku3RrE4cWtExf +m8DzAb4Vxe3EhPz8bVr+71rqr/KqNfG1uKE3sT0fhB6VMTkHTOQU13jDrvpPUS3W +Vg8cVr5/+iiyF0xb+W8LQ+GVdR5xnMPSZHUtXyURvtzT4nnTAlAtN7lEytX9BzbX +xhltOOwGPQKBgA/Y/BnDSGLpCGlqGpl7J3YaB7PkLXCJYV8fHZZdpGyXWKu2r0lc +F7fEQanAZmcde/RJl2/UlisPkXMPhXxAAw9XTOph+nhJ+rw/VB6DNot8DvQO5kks +Y4vJQlmIJc/0q1fx1RxuhO8I7Y8D0TKwi4Z/wh1pKEq+6mul649kiWchAoGAWn8B +l9uvIHGRO9eSO23ytTcSrfL9Kzln4KqN7iom0hGP2kRe6F9MVP5+ePKrWSb3Hf0z +ysoX83ymeYPob352e32rda04EA9lv7giJrrrzbikrSNt5w3iMcRcCB4HTpW9Kmtq +pIhgBZ+tmpf1s/vg28LtoloeqtjKagpW9tzYnekCgYAZFZ84EGqS9SHw5LELgGY4 +mQLMwbYZ6wBMA2PlqYi/17hoAVWz37mLDjtWDB4ir78QMoGbesQVtK9W/4vzmez4 +ZLKlffdL5tCtA08Gq9aond1z83Xdnh1UjtwHIJvJPc/AoCFW1r5skv/G6acAk6I2 +Zs0aiirNGTEymRX4rw26Qg== +-----END PRIVATE KEY----- diff --git a/libraries/WiFi/examples/BearSSL_Sessions/BearSSL_Sessions.ino b/libraries/WiFi/examples/BearSSL_Sessions/BearSSL_Sessions.ino new file mode 100644 index 00000000..ad5628ac --- /dev/null +++ b/libraries/WiFi/examples/BearSSL_Sessions/BearSSL_Sessions.ino @@ -0,0 +1,143 @@ +// Example of using SSL sessions to speed up SSL connection initiation +// +// Note that sessions are a function of individual HTTPS servers, so if you +// are connecting to a service through a load abalncer (i.e. Azure, AWS, GitHub) +// two connections to the same IP address will generally connect to two +// different web servers, meaning that sessions won't work. If you are +// connecting to a single server not behind a load balancer/etc., however, +// there should be a significant speedup. +// +// September 2018 by Earle F. Philhower, III +// Released to the public domain + +#include +#include +#include "certs.h" + +#ifndef STASSID +#define STASSID "your-ssid" +#define STAPSK "your-password" +#endif + +const char *ssid = STASSID; +const char *pass = STAPSK; + +const char *path = "/"; + +void setup() { + Serial.begin(115200); + Serial.println(); + Serial.println(); + + Serial.printf("Connecting to %s\n", ssid); + WiFi.mode(WIFI_STA); + WiFi.begin(ssid, pass); + + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println("\nConnected"); + Serial.println("IP Address: "); + Serial.println(WiFi.localIP()); + + // Set up time to allow for certificate validation + NTP.begin("pool.ntp.org", "time.nist.gov"); + + Serial.print("Waiting for NTP time sync: "); + time_t now = time(nullptr); + while (now < 8 * 3600 * 2) { + delay(500); + Serial.print("."); + now = time(nullptr); + } + Serial.println(""); + struct tm timeinfo; + gmtime_r(&now, &timeinfo); + Serial.print("Current time: "); + Serial.print(asctime(&timeinfo)); +} + +// Try and connect using a WiFiClientBearSSL to specified host:port and dump HTTP response +void fetchURL(BearSSL::WiFiClientSecure *client, const char *host, const uint16_t port, const char *path) { + if (!path) { + path = "/"; + } + + Serial.printf("Trying: %s:443...", host); + client->connect(host, port); + if (!client->connected()) { + Serial.printf("*** Can't connect. ***\n-------\n"); + return; + } + Serial.printf("Connected!\n-------\n"); + client->write("GET "); + client->write(path); + client->write(" HTTP/1.0\r\nHost: "); + client->write(host); + client->write("\r\nUser-Agent: Raspberry Pi Pico W\r\n"); + client->write("\r\n"); + uint32_t to = millis() + 5000; + if (client->connected()) { + do { + char tmp[32]; + memset(tmp, 0, 32); + int rlen = client->read((uint8_t *)tmp, sizeof(tmp) - 1); + yield(); + if (rlen < 0) { + break; + } + // Only print out first line up to \r, then abort connection + char *nl = strchr(tmp, '\r'); + if (nl) { + *nl = 0; + Serial.print(tmp); + break; + } + Serial.print(tmp); + } while (millis() < to); + } + client->stop(); + Serial.printf("\n-------\n\n"); +} + + +void loop() { + uint32_t start, finish; + BearSSL::WiFiClientSecure client; + BearSSL::X509List cert(certForum); + const char *host = "esp8266.com"; + const int port = 443; + + Serial.printf("Connecting without sessions..."); + start = millis(); + client.setTrustAnchors(&cert); + fetchURL(&client, host, port, path); + finish = millis(); + Serial.printf("Total time: %dms\n", finish - start); + + BearSSL::Session session; + client.setSession(&session); + Serial.printf("Connecting with an uninitialized session..."); + start = millis(); + client.setTrustAnchors(&cert); + fetchURL(&client, host, port, path); + finish = millis(); + Serial.printf("Total time: %dms\n", finish - start); + + Serial.printf("Connecting with the just initialized session..."); + start = millis(); + client.setTrustAnchors(&cert); + fetchURL(&client, host, port, path); + finish = millis(); + Serial.printf("Total time: %dms\n", finish - start); + + Serial.printf("Connecting again with the initialized session..."); + start = millis(); + client.setTrustAnchors(&cert); + fetchURL(&client, host, port, path); + finish = millis(); + Serial.printf("Total time: %dms\n", finish - start); + + delay(10000); // Avoid DDOSing github +} diff --git a/libraries/WiFi/examples/BearSSL_Sessions/certs.h b/libraries/WiFi/examples/BearSSL_Sessions/certs.h new file mode 100644 index 00000000..2d21efdf --- /dev/null +++ b/libraries/WiFi/examples/BearSSL_Sessions/certs.h @@ -0,0 +1,34 @@ +const char certForum [] PROGMEM = R"EOF( +-----BEGIN CERTIFICATE----- +MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw +TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh +cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4 +WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu +ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY +MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc +h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+ +0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U +A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW +T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH +B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC +B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv +KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn +OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn +jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw +qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI +rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq +hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL +ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ +3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK +NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5 +ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur +TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC +jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc +oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq +4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA +mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d +emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc= +-----END CERTIFICATE----- +)EOF"; + -- 2.54.0 From c77e01a97dd82f2959d1f946c673298ca5d01b99 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Mon, 18 Jul 2022 12:10:25 -0700 Subject: [PATCH 10/15] Add BSSL_validation demo --- .../BearSSL_Validation/BearSSL_Validation.ino | 197 ++++++++++++++++++ .../WiFi/examples/BearSSL_Validation/certs.h | 47 +++++ 2 files changed, 244 insertions(+) create mode 100644 libraries/WiFi/examples/BearSSL_Validation/BearSSL_Validation.ino create mode 100644 libraries/WiFi/examples/BearSSL_Validation/certs.h diff --git a/libraries/WiFi/examples/BearSSL_Validation/BearSSL_Validation.ino b/libraries/WiFi/examples/BearSSL_Validation/BearSSL_Validation.ino new file mode 100644 index 00000000..5dae6d60 --- /dev/null +++ b/libraries/WiFi/examples/BearSSL_Validation/BearSSL_Validation.ino @@ -0,0 +1,197 @@ +// Example of the different modes of the X.509 validation options +// in the WiFiClientBearSSL object +// +// Mar 2018 by Earle F. Philhower, III +// Released to the public domain + +#include +#include +#include +#include +#include "certs.h" + +#ifndef STASSID +#define STASSID "your-ssid" +#define STAPSK "your-password" +#endif + +const char *ssid = STASSID; +const char *pass = STAPSK; + +const char *path = "/"; + +// Set time via NTP, as required for x.509 validation +void setClock() { + configTime(3 * 3600, 0, "pool.ntp.org", "time.nist.gov"); + + Serial.print("Waiting for NTP time sync: "); + time_t now = time(nullptr); + while (now < 8 * 3600 * 2) { + delay(500); + Serial.print("."); + now = time(nullptr); + } + Serial.println(""); + struct tm timeinfo; + gmtime_r(&now, &timeinfo); + Serial.print("Current time: "); + Serial.print(asctime(&timeinfo)); +} + +// Try and connect using a WiFiClientBearSSL to specified host:port and dump HTTP response +void fetchURL(BearSSL::WiFiClientSecure *client, const char *host, const uint16_t port, const char *path) { + if (!path) { + path = "/"; + } + + Serial.printf("Trying: %s:443...", host); + client->connect(host, port); + if (!client->connected()) { + Serial.printf("*** Can't connect. ***\n-------\n"); + return; + } + Serial.printf("Connected!\n-------\n"); + client->write("GET "); + client->write(path); + client->write(" HTTP/1.0\r\nHost: "); + client->write(host); + client->write("\r\nUser-Agent: Raspberry Pi Pico W\r\n"); + client->write("\r\n"); + uint32_t to = millis() + 5000; + if (client->connected()) { + do { + char tmp[32]; + memset(tmp, 0, 32); + int rlen = client->read((uint8_t *)tmp, sizeof(tmp) - 1); + yield(); + if (rlen < 0) { + break; + } + // Only print out first line up to \r, then abort connection + char *nl = strchr(tmp, '\r'); + if (nl) { + *nl = 0; + Serial.print(tmp); + break; + } + Serial.print(tmp); + } while (millis() < to); + } + client->stop(); + Serial.printf("BSSL stack used: %d\n-------\n\n", stack_thunk_get_max_usage()); +} + +void fetchNoConfig() { + Serial.printf(R"EOF( +If there are no CAs or insecure options specified, BearSSL will not connect. +Expect the following call to fail as none have been configured. +)EOF"); + BearSSL::WiFiClientSecure client; + fetchURL(&client, ssl_host, ssl_port, path); +} + +void fetchInsecure() { + Serial.printf(R"EOF( +This is absolutely *insecure*, but you can tell BearSSL not to check the +certificate of the server. In this mode it will accept ANY certificate, +which is subject to man-in-the-middle (MITM) attacks. +)EOF"); + BearSSL::WiFiClientSecure client; + client.setInsecure(); + fetchURL(&client, ssl_host, ssl_port, path); +} + +void fetchFingerprint() { + Serial.printf(R"EOF( +The SHA-1 fingerprint of an X.509 certificate can be used to validate it +instead of the while certificate. This is not nearly as secure as real +X.509 validation, but is better than nothing. Also be aware that these +fingerprints will change if anything changes in the certificate chain +(i.e. re-generating the certificate for a new end date, any updates to +the root authorities, etc.). +)EOF"); + BearSSL::WiFiClientSecure client; + client.setFingerprint(fingerprint_ssl); + fetchURL(&client, ssl_host, ssl_port, path); +} + +void fetchSelfSigned() { + Serial.printf(R"EOF( +It is also possible to accept *any* self-signed certificate. This is +absolutely insecure as anyone can make a self-signed certificate. +)EOF"); + BearSSL::WiFiClientSecure client; + Serial.printf("First, try and connect to a badssl.com self-signed website (will fail):\n"); + fetchURL(&client, "self-signed.badssl.com", 443, "/"); + Serial.printf("Now we'll enable self-signed certs (will pass)\n"); + client.allowSelfSignedCerts(); + fetchURL(&client, "self-signed.badssl.com", 443, "/"); +} + +void fetchKnownKey() { + Serial.printf(R"EOF( +The server certificate can be completely ignored and its public key +hardcoded in your application. This should be secure as the public key +needs to be paired with the private key of the site, which is obviously +private and not shared. A MITM without the private key would not be +able to establish communications. +)EOF"); + BearSSL::WiFiClientSecure client; + BearSSL::PublicKey key(pubkey_ssl); + client.setKnownKey(&key); + fetchURL(&client, ssl_host, ssl_port, path); +} + +void fetchCertAuthority() { + Serial.printf(R"EOF( +A specific certification authority can be passed in and used to validate +a chain of certificates from a given server. These will be validated +using BearSSL's rules, which do NOT include certificate revocation lists. +A specific server's certificate, or your own self-signed root certificate +can also be used. Pico W time needs to be valid for checks to pass as +BearSSL does verify the notValidBefore/After fields. +)EOF"); + + BearSSL::WiFiClientSecure client; + BearSSL::X509List cert(cert_CA); + client.setTrustAnchors(&cert); + Serial.printf("Try validating without setting the time (should fail)\n"); + fetchURL(&client, ssl_host, ssl_port, path); + + Serial.printf("Try again after setting NTP time (should pass)\n"); + setClock(); + fetchURL(&client, ssl_host, ssl_port, path); +} + +void setup() { + Serial.begin(115200); + Serial.println(); + Serial.println(); + + // We start by connecting to a WiFi network + Serial.print("Connecting to "); + Serial.println(ssid); + WiFi.mode(WIFI_STA); + WiFi.begin(ssid, pass); + + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(""); + + Serial.println("WiFi connected"); + Serial.println("IP address: "); + Serial.println(WiFi.localIP()); + + fetchNoConfig(); + fetchInsecure(); + fetchFingerprint(); + fetchSelfSigned(); + fetchKnownKey(); + fetchCertAuthority(); +} + +void loop() { + // Nothing to do here +} diff --git a/libraries/WiFi/examples/BearSSL_Validation/certs.h b/libraries/WiFi/examples/BearSSL_Validation/certs.h new file mode 100644 index 00000000..9b31d2d7 --- /dev/null +++ b/libraries/WiFi/examples/BearSSL_Validation/certs.h @@ -0,0 +1,47 @@ +#pragma once + +//////////////////////////////////////////////////////////// +// certificate chain for www.akamai.com:443 + +const char* ssl_host = "www.akamai.com"; +const uint16_t ssl_port = 443; + + +const char fingerprint_ssl [] PROGMEM = "48:EF:70:29:41:CE:64:C9:DF:57:A2:46:E8:34:E1:50:0B:70:AE:17"; +const char pubkey_ssl [] PROGMEM = R"PUBKEY( +-----BEGIN PUBLIC KEY----- +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEiuc+zlu43bv55+s0Fj6RiBW+olZm +c/AkoTP48CFCIGP1DET7Oufx6oe63GIuBzdVfR5D6R2z818b5gY1o2lBxg== +-----END PUBLIC KEY----- +)PUBKEY"; + +const char cert_CA [] PROGMEM = R"CERT( +-----BEGIN CERTIFICATE----- +MIIEvjCCA6agAwIBAgIQBtjZBNVYQ0b2ii+nVCJ+xDANBgkqhkiG9w0BAQsFADBh +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD +QTAeFw0yMTA0MTQwMDAwMDBaFw0zMTA0MTMyMzU5NTlaME8xCzAJBgNVBAYTAlVT +MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxKTAnBgNVBAMTIERpZ2lDZXJ0IFRMUyBS +U0EgU0hBMjU2IDIwMjAgQ0ExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAwUuzZUdwvN1PWNvsnO3DZuUfMRNUrUpmRh8sCuxkB+Uu3Ny5CiDt3+PE0J6a +qXodgojlEVbbHp9YwlHnLDQNLtKS4VbL8Xlfs7uHyiUDe5pSQWYQYE9XE0nw6Ddn +g9/n00tnTCJRpt8OmRDtV1F0JuJ9x8piLhMbfyOIJVNvwTRYAIuE//i+p1hJInuW +raKImxW8oHzf6VGo1bDtN+I2tIJLYrVJmuzHZ9bjPvXj1hJeRPG/cUJ9WIQDgLGB +Afr5yjK7tI4nhyfFK3TUqNaX3sNk+crOU6JWvHgXjkkDKa77SU+kFbnO8lwZV21r +eacroicgE7XQPUDTITAHk+qZ9QIDAQABo4IBgjCCAX4wEgYDVR0TAQH/BAgwBgEB +/wIBADAdBgNVHQ4EFgQUt2ui6qiqhIx56rTaD5iyxZV2ufQwHwYDVR0jBBgwFoAU +A95QNVbRTLtm8KPiGxvDl7I90VUwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQG +CCsGAQUFBwMBBggrBgEFBQcDAjB2BggrBgEFBQcBAQRqMGgwJAYIKwYBBQUHMAGG +GGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0aHR0cDovL2Nh +Y2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0R2xvYmFsUm9vdENBLmNydDBCBgNV +HR8EOzA5MDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRH +bG9iYWxSb290Q0EuY3JsMD0GA1UdIAQ2MDQwCwYJYIZIAYb9bAIBMAcGBWeBDAEB +MAgGBmeBDAECATAIBgZngQwBAgIwCAYGZ4EMAQIDMA0GCSqGSIb3DQEBCwUAA4IB +AQCAMs5eC91uWg0Kr+HWhMvAjvqFcO3aXbMM9yt1QP6FCvrzMXi3cEsaiVi6gL3z +ax3pfs8LulicWdSQ0/1s/dCYbbdxglvPbQtaCdB73sRD2Cqk3p5BJl+7j5nL3a7h +qG+fh/50tx8bIKuxT8b1Z11dmzzp/2n3YWzW2fP9NsarA4h20ksudYbj/NhVfSbC +EXffPgK2fPOre3qGNm+499iTcc+G33Mw+nur7SpZyEKEOxEXGlLzyQ4UfaJbcme6 +ce1XR2bFuAJKZTRei9AqPCCcUZlM51Ke92sRKw2Sfh3oius2FkOH6ipjv3U/697E +A7sKPPcw7+uvTPyLNhBzPvOk +-----END CERTIFICATE----- +)CERT"; -- 2.54.0 From 6bf188c91cf1410c6d7aa2c2992b25196d704f71 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Mon, 18 Jul 2022 12:28:32 -0700 Subject: [PATCH 11/15] Add Client Certificate example --- .../BearSSL_ServerClientCert.ino | 256 ++++++++++++++++++ .../DO-NOT-USE-THESE-CERTS-IN-YOUR-OWN-APPS | 0 .../examples/BearSSL_ServerClientCert/ca.conf | 12 + .../BearSSL_ServerClientCert/ca_cer.pem | 18 ++ .../BearSSL_ServerClientCert/ca_cer.srl | 1 + .../BearSSL_ServerClientCert/ca_key.pem | 27 ++ .../BearSSL_ServerClientCert/client.conf | 8 + .../BearSSL_ServerClientCert/client1_cer.pem | 17 ++ .../BearSSL_ServerClientCert/client1_key.pem | 27 ++ .../BearSSL_ServerClientCert/client1_req.csr | 16 ++ .../BearSSL_ServerClientCert/server.conf | 8 + .../BearSSL_ServerClientCert/server_cer.pem | 20 ++ .../BearSSL_ServerClientCert/server_key.pem | 27 ++ 13 files changed, 437 insertions(+) create mode 100644 libraries/WiFi/examples/BearSSL_ServerClientCert/BearSSL_ServerClientCert.ino create mode 100644 libraries/WiFi/examples/BearSSL_ServerClientCert/DO-NOT-USE-THESE-CERTS-IN-YOUR-OWN-APPS create mode 100644 libraries/WiFi/examples/BearSSL_ServerClientCert/ca.conf create mode 100644 libraries/WiFi/examples/BearSSL_ServerClientCert/ca_cer.pem create mode 100644 libraries/WiFi/examples/BearSSL_ServerClientCert/ca_cer.srl create mode 100644 libraries/WiFi/examples/BearSSL_ServerClientCert/ca_key.pem create mode 100644 libraries/WiFi/examples/BearSSL_ServerClientCert/client.conf create mode 100644 libraries/WiFi/examples/BearSSL_ServerClientCert/client1_cer.pem create mode 100644 libraries/WiFi/examples/BearSSL_ServerClientCert/client1_key.pem create mode 100644 libraries/WiFi/examples/BearSSL_ServerClientCert/client1_req.csr create mode 100644 libraries/WiFi/examples/BearSSL_ServerClientCert/server.conf create mode 100644 libraries/WiFi/examples/BearSSL_ServerClientCert/server_cer.pem create mode 100644 libraries/WiFi/examples/BearSSL_ServerClientCert/server_key.pem diff --git a/libraries/WiFi/examples/BearSSL_ServerClientCert/BearSSL_ServerClientCert.ino b/libraries/WiFi/examples/BearSSL_ServerClientCert/BearSSL_ServerClientCert.ino new file mode 100644 index 00000000..1a17534d --- /dev/null +++ b/libraries/WiFi/examples/BearSSL_ServerClientCert/BearSSL_ServerClientCert.ino @@ -0,0 +1,256 @@ +/* + Demonstrate the usage of client certificate validation + for WiFiServerBearSSL. + By Earle F. Philhower, III + + TLS servers can require that a client present it with an X.509 + certificate signed by a trusted authority. Clients which try + and connect without a x.509 key, or with an x.509 key not signed + by the trusted authority (which could be a self-signing CA) + can not connect. + + This example uses a predefined CA and any number of client + certificates. Clients will need both their X.509 cert and their + private key, both of which are generated in the signing process. + + To run this example: + 1. Generate a private certificate-authority certificate and key: + openssl genrsa -out ca_key.pem 2048 + openssl req -x509 -new -nodes -key ca_key.pem -days 4096 -config ca.conf -out ca_cer.pem + + KEEP ca_key.pem ABSOLUTELY SECURE, WITH IT ANYONE CAN MAKE CERTS + SIGNED BY YOU! + + DO NOT UPLOAD ca_key.pem TO THE PICO, IT'S NOT NEEDED (SEE BELOW)! + + ca_cer.pem is the Public X.509 certificate for your signing authority + and can(must) be shared and included in the server as the trust root. + + 2. Generate a private server certificate and key pair (using the + self-signed CA or any other CA you'd like) + openssl genrsa -out server_key.pem 2048 + openssl req -out server_req.csr -key server_key.pem -new -config server.conf + openssl x509 -req -in server_req.csr -out server_cer.pem -sha256 -CAcreateserial -days 4000 -CA ca_cer.pem -CAkey ca_key.pem + + KEEP server_key.pem SECURE, IT IS YOUR SERVER'S PRIVATE KEY. + THIS WILL BE STORED IN THE SERVER ALONE. CLIENTS DO NOT NEED IT! + + server_cer.pem *CAN* BE SHARED WITH CLIENTS, OR THE CLIENTS CAN SIMPLY + USE YOUR SELF-SIGNED CA_CER.PEM + + 3. Generate any number of private client certificate/key pairs (using the + private CA above) + openssl genrsa -out client1_key.pem 2048 + openssl req -out client1_req.csr -key client1_key.pem -new -config client.conf + openssl x509 -req -in client1_req.csr -out client1_cer.pem -sha256 -CAcreateserial -days 4000 -CA ca_cer.pem -CAkey ca_key.pem + + Every client should have its own unique certificate generated and + a copy of that specific client's private key. + + DO NOT SHARE THE PRIVATE KEY GENERATED ABOVE! + + Included with this example are *SAMPLE* certs and keys. They are NOT + SECURE, since they're shared with all copies of the repo, so + DO NOT USE THE SAMPLE CERTS, KEYS, OR CAS IN YOUR OWN PROJECT!!! + + Run this example and then try connecting to the server IP:4433. + If you don't specify the client cert and key on the WGET command + line, you will not get connected. + + ex: wget --quiet -O - --no-check-certificate --certificate=client1_cer.pem --private-key=client1_key.pem https://pico.ip.is.here < /dev/null + + This example is released into the public domain. +*/ + +#include +#include + +#ifndef STASSID +#define STASSID "your-ssid" +#define STAPSK "your-password" +#endif + +const char *ssid = STASSID; +const char *pass = STAPSK; + +// The server which will require a client cert signed by the trusted CA +BearSSL::WiFiServerSecure server(443); + +// The hardcoded certificate authority for this example. +// Don't use it on your own apps!!!!! +const char ca_cert[] PROGMEM = R"EOF( +-----BEGIN CERTIFICATE----- +MIIC1TCCAb2gAwIBAgIJAMPt1Ms37+hLMA0GCSqGSIb3DQEBCwUAMCExCzAJBgNV +BAYTAlVTMRIwEAYDVQQDDAkxMjcuMC4wLjMwHhcNMTgwMzE0MDQyMTU0WhcNMjkw +NTMxMDQyMTU0WjAhMQswCQYDVQQGEwJVUzESMBAGA1UEAwwJMTI3LjAuMC4zMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxsa4qU/tlzN4YTcnn/I/ffsi +jOPc8QRcwClKzasIZNFEye4uThl+LGZWFIFb8X8Dc+xmmBaWlPJbqtphgFKStpar +DdduHSW1ud6Y1FVKxljo3UwCMrYm76Q/jNzXJvGs6Z1MDNsVZzGJaoqit2H2Hkvk +y+7kk3YbEDlcyVsLOw0zCKL4cd2DSNDyhIZxWo2a8Qn5IdjWAYtsTnW6MvLk/ya4 +abNeRfSZwi+r37rqi9CIs++NpL5ynqkKKEMrbeLactWgHbWrZeaMyLpuUEL2GF+w +MRaAwaj7ERwT5gFJRqYwj6bbfIdx5PC7h7ucbyp272MbrDa6WNBCMwQO222t4wID +AQABoxAwDjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQCmXfrC42nW +IpL3JDkB8YlB2QUvD9JdMp98xxo33+xE69Gov0e6984F1Gluao0p6sS7KF+q3YLS +4hjnzuGzF9GJMimIB7NMQ20yXKfKpmKJ7YugMaKTDWDhHn5679mKVbLSQxHCUMEe +tEnMT93/UaDbWBjV6zu876q5vjPMYgDHODqO295ySaA71UkijaCn6UwKUT49286T +V9ZtzgabNGHXfklHgUPWoShyze+G3g29I1BR0qABoJI63zaNu8ua42v5g1RldxsW +X8yKI14mFOGxuvcygG8L2xxysW7Zq+9g+O7gW0Pm6RDYnUQmIwY83h1KFCtYCJdS +2PgozwkkUNyP +-----END CERTIFICATE----- +)EOF"; + +// The server's private key which must be kept secret +const char server_private_key[] PROGMEM = R"EOF( +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAsRNVTvqP++YUh8NrbXwE83xVsDqcB3F76xcXNKFDERfVd2P/ +LvyDovCcoQtT0UCRgPcxRp894EuPH/Ru6Z2Lu85sV//i7ce27tc2WRFSfuhlRxHP +LJWHxTl1CEfXp/owkECQ4MB3pw6Ekc16iTEPiezTG+T+mQ/BkiIwcIK6CMlpR9DI +eYUTqv0f9NrUfAjdBrqlEO2gpgFvLFrkDEU2ntAIc4aPOP7yDOym/xzfy6TiG8Wo +7nlh6M97xTZGfbEPCH9rZDjo5istym1HzF5P+COq+OTSPscjFGXoi978o6hZwa7i +zxorg4h5a5lGnshRu2Gl+Ybfa14OwnIrv/yCswIDAQABAoIBAHxwgbsHCriTcEoY +Yx6F0VTrQ6ydA5mXfuYvS/eIfIE+pp1IgMScYEXZobjrJPQg1CA1l0NyFSHS97oV +JPy34sMQxcLx6KABgeVHCMJ/EeJtnv7a3SUP0GIhhsVS95Lsl8RIG4hWub+EzFVK +eZqAB9N9wr4Pp3wZPodbz37B38rb1QPyMFmQOLlHjKTOmoxsXhL2ot+R3+aLYSur +oPO1kQo7/d0UAZoy8h9OQN4a2EXvawh4O2EvFGbc5X/yXwAdEQ4NPp9VZhkNIRkV ++XZ3FcIqEVOploKtRF/tVBTz3g61/lFz21L9PMmV5y8tvSafr2SpJugGVmp2rrVQ +VNyGlIECgYEA10JSI5gmeCU3zK6kvOfBp54hY/5dDrSUpjKkMxpmm7WZQ6Il/k7A +hMcLeMzHiriT7WhRIXF8AOr2MoEkHkH3DhVNN4ccieVZx2SE5P5mVkItZGLrrpfU +dysR/ARAI1HYegGUiKacZtf9SrRavU0m7fOVOiYwbFRhjyX+MyuteYkCgYEA0pbz +4ZosetScP68uZx1sGlTfkcqLl7i15DHk3gnj6jKlfhvC2MjeLMhNDtKeUAuY7rLQ +guZ0CCghWAv0Glh5eYdfIiPhgqFfX4P5F3Om4zQHVPYj8xHfHG4ZP7dKQTndrO1Q +fLdGDTQLVXabAUSp2YGrijC8J9idSW1pYClvF1sCgYEAjkDn41nzYkbGP1/Swnwu +AEWCL4Czoro32jVxScxSrugt5wJLNWp508VukWBTJhugtq3Pn9hNaJXeKbYqVkyl +pgrxwpZph7+nuxt0r5hnrO2C7eppcjIoWLB/7BorAKxf8REGReBFT7nBTBMwPBW2 +el4U6h6+tXh2GJG1Eb/1nnECgYAydVb0THOx7rWNkNUGggc/++why61M6kYy6j2T +cj05BW+f2tkCBoctpcTI83BZb53yO8g4RS2yMqNirGKN2XspwmTqEjzbhv0KLt4F +X4GyWOoU0nFksXiLIFpOaQWSwWG7KJWrfGJ9kWXR0Xxsfl5QLoDCuNCsn3t4d43T +K7phlwKBgHDzF+50+/Wez3YHCy2a/HgSbHCpLQjkknvgwkOh1z7YitYBUm72HP8Z +Ge6b4wEfNuBdlZll/y9BQQOZJLFvJTE5t51X9klrkGrOb+Ftwr7eI/H5xgcadI52 +tPYglR5fjuRF/wnt3oX9JlQ2RtSbs+3naXH8JoherHaqNn8UpH0t +-----END RSA PRIVATE KEY----- +)EOF"; + +// The server's public certificate which must be shared +const char server_cert[] PROGMEM = R"EOF( +-----BEGIN CERTIFICATE----- +MIIDTzCCAjcCCQDPXvMRYOpeuDANBgkqhkiG9w0BAQsFADCBpjESMBAGA1UEAwwJ +MTI3LjAuMC4xMQswCQYDVQQGEwJVUzElMCMGA1UECgwcTXkgT3duIENlcnRpZmlj +YXRlIEF1dGhvcml0eTEUMBIGA1UECAwLQXJkdWlub0xhbmQxFTATBgNVBAcMDEFy +ZHVpbm9WaWxsZTEVMBMGA1UECgwMRVNQODI2NlVzZXJzMRgwFgYDVQQLDA9FU1A4 +MjY2LUFyZHVpbm8wHhcNMTgwMzE0MDQwMDAwWhcNMjkwMjI0MDQwMDAwWjAsMRYw +FAYDVQQKDA1NeSBTZXJ2ZXIgT3JnMRIwEAYDVQQDDAkxMjcuMC4wLjMwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCxE1VO+o/75hSHw2ttfATzfFWwOpwH +cXvrFxc0oUMRF9V3Y/8u/IOi8JyhC1PRQJGA9zFGnz3gS48f9G7pnYu7zmxX/+Lt +x7bu1zZZEVJ+6GVHEc8slYfFOXUIR9en+jCQQJDgwHenDoSRzXqJMQ+J7NMb5P6Z +D8GSIjBwgroIyWlH0Mh5hROq/R/02tR8CN0GuqUQ7aCmAW8sWuQMRTae0Ahzho84 +/vIM7Kb/HN/LpOIbxajueWHoz3vFNkZ9sQ8If2tkOOjmKy3KbUfMXk/4I6r45NI+ +xyMUZeiL3vyjqFnBruLPGiuDiHlrmUaeyFG7YaX5ht9rXg7Cciu//IKzAgMBAAEw +DQYJKoZIhvcNAQELBQADggEBAEnG+FNyNCOkBvzHiUpHHpScxZqM2f+XDcewJgeS +L6HkYEDIZZDNnd5gduSvkHpdJtWgsvJ7dJZL40w7Ba5sxpZHPIgKJGl9hzMkG+aA +z5GMkjys9h2xpQZx9KL3q7G6A+C0bll7ODZlwBtY07CFMykT4Mp2oMRrQKRucMSV +AB1mKujLAnMRKJ3NM89RQJH4GYiRps9y/HvM5lh7EIK/J0/nEZeJxY5hJngskPKb +oPPdmkR97kaQnll4KNsC3owVlHVU2fMftgYkgQLzyeWgzcNa39AF3B6JlcOzNyQY +seoK24dHmt6tWmn/sbxX7Aa6TL/4mVlFoOgcaTJyVaY/BrY= +-----END CERTIFICATE----- +)EOF"; + +// Note there are no client certificates required here in the server. +// That is because all clients will send a certificate that can be +// proven to be signed by the public CA certificate included at the +// head of the app. + +// Set time via NTP, as required for x.509 validation +void setClock() { + NTP.begin("pool.ntp.org", "time.nist.gov"); + + Serial.print("Waiting for NTP time sync: "); + time_t now = time(nullptr); + while (now < 8 * 3600 * 2) { + delay(500); + Serial.print("."); + now = time(nullptr); + } + Serial.println(""); + struct tm timeinfo; + gmtime_r(&now, &timeinfo); + Serial.print("Current time: "); + Serial.print(asctime(&timeinfo)); +} + +void setup() { + Serial.begin(115200); + Serial.println(); + Serial.println(); + + // We start by connecting to a WiFi network + Serial.print("Connecting to "); + Serial.println(ssid); + WiFi.mode(WIFI_STA); + WiFi.begin(ssid, pass); + + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(""); + + Serial.println("WiFi connected"); + Serial.println("IP address: "); + Serial.println(WiFi.localIP()); + + setClock(); // Required for X.509 validation + + // Attach the server private cert/key combo + BearSSL::X509List *serverCertList = new BearSSL::X509List(server_cert); + BearSSL::PrivateKey *serverPrivKey = new BearSSL::PrivateKey(server_private_key); + server.setRSACert(serverCertList, serverPrivKey); + + // Require a certificate validated by the trusted CA + BearSSL::X509List *serverTrustedCA = new BearSSL::X509List(ca_cert); + server.setClientTrustAnchor(serverTrustedCA); + + // Actually start accepting connections + server.begin(); +} + +static const char *HTTP_RES = "HTTP/1.0 200 OK\r\n" + "Connection: close\r\n" + "Content-Length: 59\r\n" + "Content-Type: text/html; charset=iso-8859-1\r\n" + "\r\n" + "\r\n" + "\r\n" + "

Hello my friend!

\r\n" + "\r\n" + "\r\n"; + +void loop() { + BearSSL::WiFiClientSecure incoming = server.accept(); + if (!incoming) { return; } + Serial.println("Incoming connection...\n"); + + // Ugly way to wait for \r\n (i.e. end of HTTP request which we don't actually parse here) + uint32_t timeout = millis() + 1000; + int lcwn = 0; + for (;;) { + unsigned char x = 0; + if ((millis() > timeout) || (incoming.available() && incoming.read(&x, 1) < 0)) { + incoming.stop(); + Serial.printf("Connection error, closed\n"); + return; + } else if (!x) { + yield(); + continue; + } else if (x == 0x0D) { + continue; + } else if (x == 0x0A) { + if (lcwn) { break; } + lcwn = 1; + } else + lcwn = 0; + } + incoming.write((uint8_t *)HTTP_RES, strlen(HTTP_RES)); + incoming.flush(); + incoming.stop(); + Serial.printf("Connection closed.\n"); +} diff --git a/libraries/WiFi/examples/BearSSL_ServerClientCert/DO-NOT-USE-THESE-CERTS-IN-YOUR-OWN-APPS b/libraries/WiFi/examples/BearSSL_ServerClientCert/DO-NOT-USE-THESE-CERTS-IN-YOUR-OWN-APPS new file mode 100644 index 00000000..e69de29b diff --git a/libraries/WiFi/examples/BearSSL_ServerClientCert/ca.conf b/libraries/WiFi/examples/BearSSL_ServerClientCert/ca.conf new file mode 100644 index 00000000..028b10e3 --- /dev/null +++ b/libraries/WiFi/examples/BearSSL_ServerClientCert/ca.conf @@ -0,0 +1,12 @@ +[ req ] +prompt = no +default_bits = 2048 +distinguished_name = req_dn +x509_extensions = v3_req + +[ req_dn ] +C = US +CN = 127.0.0.3 + +[v3_req] +basicConstraints=CA:TRUE diff --git a/libraries/WiFi/examples/BearSSL_ServerClientCert/ca_cer.pem b/libraries/WiFi/examples/BearSSL_ServerClientCert/ca_cer.pem new file mode 100644 index 00000000..416c9bef --- /dev/null +++ b/libraries/WiFi/examples/BearSSL_ServerClientCert/ca_cer.pem @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE----- +MIIC1TCCAb2gAwIBAgIJAMPt1Ms37+hLMA0GCSqGSIb3DQEBCwUAMCExCzAJBgNV +BAYTAlVTMRIwEAYDVQQDDAkxMjcuMC4wLjMwHhcNMTgwMzE0MDQyMTU0WhcNMjkw +NTMxMDQyMTU0WjAhMQswCQYDVQQGEwJVUzESMBAGA1UEAwwJMTI3LjAuMC4zMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxsa4qU/tlzN4YTcnn/I/ffsi +jOPc8QRcwClKzasIZNFEye4uThl+LGZWFIFb8X8Dc+xmmBaWlPJbqtphgFKStpar +DdduHSW1ud6Y1FVKxljo3UwCMrYm76Q/jNzXJvGs6Z1MDNsVZzGJaoqit2H2Hkvk +y+7kk3YbEDlcyVsLOw0zCKL4cd2DSNDyhIZxWo2a8Qn5IdjWAYtsTnW6MvLk/ya4 +abNeRfSZwi+r37rqi9CIs++NpL5ynqkKKEMrbeLactWgHbWrZeaMyLpuUEL2GF+w +MRaAwaj7ERwT5gFJRqYwj6bbfIdx5PC7h7ucbyp272MbrDa6WNBCMwQO222t4wID +AQABoxAwDjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQCmXfrC42nW +IpL3JDkB8YlB2QUvD9JdMp98xxo33+xE69Gov0e6984F1Gluao0p6sS7KF+q3YLS +4hjnzuGzF9GJMimIB7NMQ20yXKfKpmKJ7YugMaKTDWDhHn5679mKVbLSQxHCUMEe +tEnMT93/UaDbWBjV6zu876q5vjPMYgDHODqO295ySaA71UkijaCn6UwKUT49286T +V9ZtzgabNGHXfklHgUPWoShyze+G3g29I1BR0qABoJI63zaNu8ua42v5g1RldxsW +X8yKI14mFOGxuvcygG8L2xxysW7Zq+9g+O7gW0Pm6RDYnUQmIwY83h1KFCtYCJdS +2PgozwkkUNyP +-----END CERTIFICATE----- diff --git a/libraries/WiFi/examples/BearSSL_ServerClientCert/ca_cer.srl b/libraries/WiFi/examples/BearSSL_ServerClientCert/ca_cer.srl new file mode 100644 index 00000000..bec2d5b2 --- /dev/null +++ b/libraries/WiFi/examples/BearSSL_ServerClientCert/ca_cer.srl @@ -0,0 +1 @@ +A25EB184B01D7FBB diff --git a/libraries/WiFi/examples/BearSSL_ServerClientCert/ca_key.pem b/libraries/WiFi/examples/BearSSL_ServerClientCert/ca_key.pem new file mode 100644 index 00000000..43027f18 --- /dev/null +++ b/libraries/WiFi/examples/BearSSL_ServerClientCert/ca_key.pem @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAxsa4qU/tlzN4YTcnn/I/ffsijOPc8QRcwClKzasIZNFEye4u +Thl+LGZWFIFb8X8Dc+xmmBaWlPJbqtphgFKStparDdduHSW1ud6Y1FVKxljo3UwC +MrYm76Q/jNzXJvGs6Z1MDNsVZzGJaoqit2H2Hkvky+7kk3YbEDlcyVsLOw0zCKL4 +cd2DSNDyhIZxWo2a8Qn5IdjWAYtsTnW6MvLk/ya4abNeRfSZwi+r37rqi9CIs++N +pL5ynqkKKEMrbeLactWgHbWrZeaMyLpuUEL2GF+wMRaAwaj7ERwT5gFJRqYwj6bb +fIdx5PC7h7ucbyp272MbrDa6WNBCMwQO222t4wIDAQABAoIBABP6hzblRLEMyE2l +GIN3+q+z3R4iDOPgl13tCIqxZQ+VBP/yw46v+0GFK6O1+MLGDFfLa+hfZNUlotcC +Sgh2xC476IdknrmpP6Gl4OB+jhxvdUBA0nu8WR9+97A1xh4w7jswxyMHphgQH4qo +0n/yBaW35RAmO60iksfHrC7EytUtahZkWq13xZsN8VNEn3dS/M54XEEQp+BLXZEh +WTd4sm5ddK58NZwLvkn0zaMyH38tllF7sezxZxWz+q4yCOB1/Xw0BC3e7dqBLtaC +PHrxWedph9sF+HXyDoXXp6S6IfSlXnCwMl0e3xBppIY9BYDnVwZpGxfUAMg26RyH +w5UEmPECgYEA51v0bxjZ/3boOH44glEFfmcJCLacoeQud+DZEMWFxmkApEVn9211 +t1G+N8rnHBiAhi9bDhi3Qs9fvOxXBhqaLw1xV8KGNY8bKiKoUu8y1aeHWPbgmzYp +sfrX70mhgHUgJt4i6xzW5esTmXl3ZAqPWxzECavmoLbHnssouPb5YckCgYEA2/Jj +LPlP4XN8b4NpOhYlHmMEIwD7utIct5/7ydjtucUQAHqJ+EQ20R4MCHc9zTvjeyZ9 +H/Rdxo+L0pwpbqSr0JTxOqQ1GzqstT9jVYNs+tRIQoeskd+Ags34sDJwPIbGUPfz +rBOfcHLwGfAMMBQzk5zT8frAZQV/8H7ejpCxyEsCgYBIptOnX4J1en2J3/kW0yKK +gwiPN+kP3XvKIU2Iur47hBWzgCgZxsHEg2LcWlcgt4EEojJRxukljcFerkjVndz1 +EZ+aE3fZscqx/JgnEv4/oZAbG8uEcgm93iuY9OJGWIF0MyV79150bNGGzGH1hGto +DSxybQzLQxqEfv+WtdeyIQKBgQDPc8GjS8vSQ9EchQAdL4H3NUFTmrvULBW2BInC +in8+9uXu7aVwqzZg60xCN+XszA31vAnMt/ozLHWfQne5ykvcQn985iDI/ACmO5F/ +uKRzuQIm7j0QoZRey9NCrXA7RouLFzOYHDIIKADbFhUIzCURl5w44l/RaOyRc7iL +E2L8HQKBgQC8WK5nT2QYtimzuwQrvSWkWyVu8/z/U8AKTusCV71uL9A6OBiUzJO3 +/3Befn+qt9Nm1ZHqTsJWXIE8LPblhCkvYraq9cJ+KIymWtFVMeR99DN/yTofdyxX +Uw58Z3i5HDK4AzJhBzvk14REw5xOZZLsWAqoMHTCM/T+hVqhD+cjAw== +-----END RSA PRIVATE KEY----- diff --git a/libraries/WiFi/examples/BearSSL_ServerClientCert/client.conf b/libraries/WiFi/examples/BearSSL_ServerClientCert/client.conf new file mode 100644 index 00000000..a443fc36 --- /dev/null +++ b/libraries/WiFi/examples/BearSSL_ServerClientCert/client.conf @@ -0,0 +1,8 @@ +[ req ] +prompt = no +default_bits = 2048 +distinguished_name = req_dn + +[ req_dn ] +O = My Client Org +CN = 127.0.0.2 diff --git a/libraries/WiFi/examples/BearSSL_ServerClientCert/client1_cer.pem b/libraries/WiFi/examples/BearSSL_ServerClientCert/client1_cer.pem new file mode 100644 index 00000000..e98e95f0 --- /dev/null +++ b/libraries/WiFi/examples/BearSSL_ServerClientCert/client1_cer.pem @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICyTCCAbECCQCiXrGEsB1/uzANBgkqhkiG9w0BAQsFADAhMQswCQYDVQQGEwJV +UzESMBAGA1UEAwwJMTI3LjAuMC4zMB4XDTE4MDMxNDA0MjIwNloXDTI5MDIyNDA0 +MjIwNlowLDEWMBQGA1UECgwNTXkgQ2xpZW50IE9yZzESMBAGA1UEAwwJMTI3LjAu +MC4yMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5MW88nCi2tUrf/Tq +5w+5IvuqTAusaN4eelwS69sd9yXfM/DEgipw7o4t340oGdLVA4b7h1Qwxttw62ki +Z5VecXosg7xbJSjbB4LLLcmvC0pYvCactMWI+k4Na6VA1cS+hMsgnd37Shzo3Gyz +2AxrpMrcANsIaLD+o9Ji/00XmbvA/dKW/sG6vK5rWjNV0JE9WVjAW+eek8doIjh5 +mOKVR7zVeR1cr8wTp48e6LX9oJsv9nfACyIyMGCFp8qa+zQEBNKevohEl9OOi9Vh +H50UU6UEo0ZGAzWF8fp+T4ltTFxr/T0PXn5J2Kk2Wl5Zt5XLt0cDBlrMDpz24ZAQ +go/CDwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQA/6HqENDo5gsxWQIyC+fRFEUIy +cJ2lOlGxrf83oc1I5V10A8r6aOcwNoYlMq1Upcu2oAk2Kf5X9pq6EbM7BXuBESm4 +TYYPawv3lHeiX8uX3iUReasDLBTbj4WycteSjI4JUVPvZv8ILznKkKLr2tGV19ha +UfFu/cc3iazMt0jMORd6gznWxkbgY9Qr3V4VNReD0ZUa0s9ANOjnKRIXymRicCRy +HNwSXsj/sQR1lbnI1pkyGlTZaigADlqIsH+XJjYuVxdUge5Cz1+D9kcjF9PjF4V1 +u/lw6sR50qc2k5rC1WK4QLlgoknd5+ZrRiHlZXrJdcj9KnWdh4aGa3jwJpOW +-----END CERTIFICATE----- diff --git a/libraries/WiFi/examples/BearSSL_ServerClientCert/client1_key.pem b/libraries/WiFi/examples/BearSSL_ServerClientCert/client1_key.pem new file mode 100644 index 00000000..94e0880d --- /dev/null +++ b/libraries/WiFi/examples/BearSSL_ServerClientCert/client1_key.pem @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEogIBAAKCAQEA5MW88nCi2tUrf/Tq5w+5IvuqTAusaN4eelwS69sd9yXfM/DE +gipw7o4t340oGdLVA4b7h1Qwxttw62kiZ5VecXosg7xbJSjbB4LLLcmvC0pYvCac +tMWI+k4Na6VA1cS+hMsgnd37Shzo3Gyz2AxrpMrcANsIaLD+o9Ji/00XmbvA/dKW +/sG6vK5rWjNV0JE9WVjAW+eek8doIjh5mOKVR7zVeR1cr8wTp48e6LX9oJsv9nfA +CyIyMGCFp8qa+zQEBNKevohEl9OOi9VhH50UU6UEo0ZGAzWF8fp+T4ltTFxr/T0P +Xn5J2Kk2Wl5Zt5XLt0cDBlrMDpz24ZAQgo/CDwIDAQABAoIBAAb5eE8z2+MsCI14 +HAk7U3ubjI+Q84qm6ur0D6edIIa+YtWki3kkbhj3wLJGDWjsIo5e+SAhEvOdEQ48 +QE5EIYL4JI9HmMfDPRo3hJY6xdlkRNxHmRNxykFHS+VyPk3GF8DYqH/nmpeh1f+S +WNFHX6jAfoCQLOt0Ke84pMf/w65uGixdVcXgHRA/n4gKbS84a7nZEl5NqT02wrrA +BRY6pRvcsvFHaf4VEPKXpRE5UxXGMJwtyYfl9Mukszepi6g/Hk2WI499tdgDzM55 +hWLRlW7ZzMILz4aP1LYt7iolKPAEst2rZdSgumIwznZUymIevlo95iYjazX9TWFv +K9LKoeECgYEA9Mj569wGYATBSD1SQzPRMQybDpBgoz+T2tfeqaas2aHcUIUK2v8c +iR5xe3soFOPTaaQBtUgo3S016SR2OLo9xY0ag71mrJZj+zuY+bPO1YMi+qh0/s5E +ZRGMzhAzTmX/5jYQmu6W5ZIAETELMZ4E8p9hW/yG+1oT4Z0csXfP4BkCgYEA70D0 +Ef7e2os/76X7T2PpcLfA/4VPLS/QIbm57eVuc1GX5U7/YXdnqE4Z1pFhR+yJdId0 +iqx9NxTpqxK8QTkswZSeltLXnvWxlZWjsW+GdhwzrLjjA8OAuZqk/uiNVVTavl0M +vjxTJWAiRU3PF9bLeFvF059HuflnFOqwtiyEWGcCgYBOWMUlKJchxGPYq0fZGoyq +Fk7KqotDtOWt9cneoupP/e52Fx8SWPTZLlVEIHcDuKfB+CxTyXTK1d2bcYAlR/bd +c/w4jjZ+puP5VWnxAgwBaqeXcrN/mqVpc+SNT8IcJalyFXvbGuJROBmtZvUePGV5 +Amo29ux9JqeWXqMAakiugQKBgB50MB0SSh+bVfoVMJX8a7xzR1e/CkMAMQf58ha7 ++4EmQ6Vmls87ObCMsHFFdBKJoz13+HemWRHn0Y57BgdvVakWV9Fu6Q9Mytv1fi6Z +uY3TLSixKARUoE//xTzFMShJcsaEZZjZaOP7BqG3s8KfDqs1U0sKnUCo5FwfO3sU +04vFAoGALjVG6v0IpvPFZcJBN8wUuu9cLduyCnUiFsMYgfglXDSkynRS51/7Fxqf +q0ROTeHrKem3iiJ62j7U3tNni2awczWCgTlUjSQzBQo6Cu1UA52M3/XyqVNmfx/g +04dVpDrqFscdIasQcL1UddiwcT2a63RjriBaTETvjegoNVu1XR4= +-----END RSA PRIVATE KEY----- diff --git a/libraries/WiFi/examples/BearSSL_ServerClientCert/client1_req.csr b/libraries/WiFi/examples/BearSSL_ServerClientCert/client1_req.csr new file mode 100644 index 00000000..6862a65b --- /dev/null +++ b/libraries/WiFi/examples/BearSSL_ServerClientCert/client1_req.csr @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICcTCCAVkCAQAwLDEWMBQGA1UECgwNTXkgQ2xpZW50IE9yZzESMBAGA1UEAwwJ +MTI3LjAuMC4yMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5MW88nCi +2tUrf/Tq5w+5IvuqTAusaN4eelwS69sd9yXfM/DEgipw7o4t340oGdLVA4b7h1Qw +xttw62kiZ5VecXosg7xbJSjbB4LLLcmvC0pYvCactMWI+k4Na6VA1cS+hMsgnd37 +Shzo3Gyz2AxrpMrcANsIaLD+o9Ji/00XmbvA/dKW/sG6vK5rWjNV0JE9WVjAW+ee +k8doIjh5mOKVR7zVeR1cr8wTp48e6LX9oJsv9nfACyIyMGCFp8qa+zQEBNKevohE +l9OOi9VhH50UU6UEo0ZGAzWF8fp+T4ltTFxr/T0PXn5J2Kk2Wl5Zt5XLt0cDBlrM +Dpz24ZAQgo/CDwIDAQABoAAwDQYJKoZIhvcNAQELBQADggEBAFLPF8/g9IMgQZvk +ZXvgPPPUAvANX3e0mcivjZD1BoqQ7CHeBqDpaaqH6i0qZrRQI6oli69IeQczkrXh +onhzLvCVoWmS1FH9JyWozRO6LeePEtV0jzxBDxHAd3pmlqTwLEpm0LfpBMkMe0Cb +r+3bOvAqW4ILkdSJ5FiAqlubu4+ezSLQTS/EJ+BzLkhuVuERqXFo/tW5KqviYbTL +XbvoLRVydNOUVZ+ts9YAtYLsqGoB6Rax6IzoLz5BXe5edw3FAEuotAJaLgWkBh/A +283zzb0pIUiZdF+8n61Fg4qFMZYYps4Fll4FXTn4mIzsfbJpkPXYGGuKvla46svH +tpAv/so= +-----END CERTIFICATE REQUEST----- diff --git a/libraries/WiFi/examples/BearSSL_ServerClientCert/server.conf b/libraries/WiFi/examples/BearSSL_ServerClientCert/server.conf new file mode 100644 index 00000000..d7ca2ead --- /dev/null +++ b/libraries/WiFi/examples/BearSSL_ServerClientCert/server.conf @@ -0,0 +1,8 @@ +[ req ] +prompt = no +default_bits = 2048 +distinguished_name = req_dn + +[ req_dn ] +O = My Server Org +CN = 127.0.0.3 diff --git a/libraries/WiFi/examples/BearSSL_ServerClientCert/server_cer.pem b/libraries/WiFi/examples/BearSSL_ServerClientCert/server_cer.pem new file mode 100644 index 00000000..c87cec72 --- /dev/null +++ b/libraries/WiFi/examples/BearSSL_ServerClientCert/server_cer.pem @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDTzCCAjcCCQDPXvMRYOpeuDANBgkqhkiG9w0BAQsFADCBpjESMBAGA1UEAwwJ +MTI3LjAuMC4xMQswCQYDVQQGEwJVUzElMCMGA1UECgwcTXkgT3duIENlcnRpZmlj +YXRlIEF1dGhvcml0eTEUMBIGA1UECAwLQXJkdWlub0xhbmQxFTATBgNVBAcMDEFy +ZHVpbm9WaWxsZTEVMBMGA1UECgwMRVNQODI2NlVzZXJzMRgwFgYDVQQLDA9FU1A4 +MjY2LUFyZHVpbm8wHhcNMTgwMzE0MDQwMDAwWhcNMjkwMjI0MDQwMDAwWjAsMRYw +FAYDVQQKDA1NeSBTZXJ2ZXIgT3JnMRIwEAYDVQQDDAkxMjcuMC4wLjMwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCxE1VO+o/75hSHw2ttfATzfFWwOpwH +cXvrFxc0oUMRF9V3Y/8u/IOi8JyhC1PRQJGA9zFGnz3gS48f9G7pnYu7zmxX/+Lt +x7bu1zZZEVJ+6GVHEc8slYfFOXUIR9en+jCQQJDgwHenDoSRzXqJMQ+J7NMb5P6Z +D8GSIjBwgroIyWlH0Mh5hROq/R/02tR8CN0GuqUQ7aCmAW8sWuQMRTae0Ahzho84 +/vIM7Kb/HN/LpOIbxajueWHoz3vFNkZ9sQ8If2tkOOjmKy3KbUfMXk/4I6r45NI+ +xyMUZeiL3vyjqFnBruLPGiuDiHlrmUaeyFG7YaX5ht9rXg7Cciu//IKzAgMBAAEw +DQYJKoZIhvcNAQELBQADggEBAEnG+FNyNCOkBvzHiUpHHpScxZqM2f+XDcewJgeS +L6HkYEDIZZDNnd5gduSvkHpdJtWgsvJ7dJZL40w7Ba5sxpZHPIgKJGl9hzMkG+aA +z5GMkjys9h2xpQZx9KL3q7G6A+C0bll7ODZlwBtY07CFMykT4Mp2oMRrQKRucMSV +AB1mKujLAnMRKJ3NM89RQJH4GYiRps9y/HvM5lh7EIK/J0/nEZeJxY5hJngskPKb +oPPdmkR97kaQnll4KNsC3owVlHVU2fMftgYkgQLzyeWgzcNa39AF3B6JlcOzNyQY +seoK24dHmt6tWmn/sbxX7Aa6TL/4mVlFoOgcaTJyVaY/BrY= +-----END CERTIFICATE----- diff --git a/libraries/WiFi/examples/BearSSL_ServerClientCert/server_key.pem b/libraries/WiFi/examples/BearSSL_ServerClientCert/server_key.pem new file mode 100644 index 00000000..a984995c --- /dev/null +++ b/libraries/WiFi/examples/BearSSL_ServerClientCert/server_key.pem @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAsRNVTvqP++YUh8NrbXwE83xVsDqcB3F76xcXNKFDERfVd2P/ +LvyDovCcoQtT0UCRgPcxRp894EuPH/Ru6Z2Lu85sV//i7ce27tc2WRFSfuhlRxHP +LJWHxTl1CEfXp/owkECQ4MB3pw6Ekc16iTEPiezTG+T+mQ/BkiIwcIK6CMlpR9DI +eYUTqv0f9NrUfAjdBrqlEO2gpgFvLFrkDEU2ntAIc4aPOP7yDOym/xzfy6TiG8Wo +7nlh6M97xTZGfbEPCH9rZDjo5istym1HzF5P+COq+OTSPscjFGXoi978o6hZwa7i +zxorg4h5a5lGnshRu2Gl+Ybfa14OwnIrv/yCswIDAQABAoIBAHxwgbsHCriTcEoY +Yx6F0VTrQ6ydA5mXfuYvS/eIfIE+pp1IgMScYEXZobjrJPQg1CA1l0NyFSHS97oV +JPy34sMQxcLx6KABgeVHCMJ/EeJtnv7a3SUP0GIhhsVS95Lsl8RIG4hWub+EzFVK +eZqAB9N9wr4Pp3wZPodbz37B38rb1QPyMFmQOLlHjKTOmoxsXhL2ot+R3+aLYSur +oPO1kQo7/d0UAZoy8h9OQN4a2EXvawh4O2EvFGbc5X/yXwAdEQ4NPp9VZhkNIRkV ++XZ3FcIqEVOploKtRF/tVBTz3g61/lFz21L9PMmV5y8tvSafr2SpJugGVmp2rrVQ +VNyGlIECgYEA10JSI5gmeCU3zK6kvOfBp54hY/5dDrSUpjKkMxpmm7WZQ6Il/k7A +hMcLeMzHiriT7WhRIXF8AOr2MoEkHkH3DhVNN4ccieVZx2SE5P5mVkItZGLrrpfU +dysR/ARAI1HYegGUiKacZtf9SrRavU0m7fOVOiYwbFRhjyX+MyuteYkCgYEA0pbz +4ZosetScP68uZx1sGlTfkcqLl7i15DHk3gnj6jKlfhvC2MjeLMhNDtKeUAuY7rLQ +guZ0CCghWAv0Glh5eYdfIiPhgqFfX4P5F3Om4zQHVPYj8xHfHG4ZP7dKQTndrO1Q +fLdGDTQLVXabAUSp2YGrijC8J9idSW1pYClvF1sCgYEAjkDn41nzYkbGP1/Swnwu +AEWCL4Czoro32jVxScxSrugt5wJLNWp508VukWBTJhugtq3Pn9hNaJXeKbYqVkyl +pgrxwpZph7+nuxt0r5hnrO2C7eppcjIoWLB/7BorAKxf8REGReBFT7nBTBMwPBW2 +el4U6h6+tXh2GJG1Eb/1nnECgYAydVb0THOx7rWNkNUGggc/++why61M6kYy6j2T +cj05BW+f2tkCBoctpcTI83BZb53yO8g4RS2yMqNirGKN2XspwmTqEjzbhv0KLt4F +X4GyWOoU0nFksXiLIFpOaQWSwWG7KJWrfGJ9kWXR0Xxsfl5QLoDCuNCsn3t4d43T +K7phlwKBgHDzF+50+/Wez3YHCy2a/HgSbHCpLQjkknvgwkOh1z7YitYBUm72HP8Z +Ge6b4wEfNuBdlZll/y9BQQOZJLFvJTE5t51X9klrkGrOb+Ftwr7eI/H5xgcadI52 +tPYglR5fjuRF/wnt3oX9JlQ2RtSbs+3naXH8JoherHaqNn8UpH0t +-----END RSA PRIVATE KEY----- -- 2.54.0 From 8c05662f2cb1f649b414788015252b3c1084f977 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Mon, 18 Jul 2022 12:49:31 -0700 Subject: [PATCH 12/15] Add RP2040 helper docs --- docs/index.rst | 2 ++ docs/rp2040.rst | 72 +++++++++++++++++++++++++++++++++++++++++++++++++ docs/wifi.rst | 8 +++--- 3 files changed, 78 insertions(+), 4 deletions(-) create mode 100644 docs/rp2040.rst diff --git a/docs/index.rst b/docs/index.rst index ab5c4df0..e2254eac 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -24,6 +24,8 @@ For the latest version, always check https://github.com/earlephilhower/arduino-p Pin (Re)Assignment + RP2040 Helper + Analog I/O Digital I/O EEPROM diff --git a/docs/rp2040.rst b/docs/rp2040.rst new file mode 100644 index 00000000..1f60df22 --- /dev/null +++ b/docs/rp2040.rst @@ -0,0 +1,72 @@ +RP2040 Helper Class +=================== + +Some of the core functionality of the RP2040 chip powering the Raspberry Pi +Pico is exposed in the RP2040 class variable ``rp2040``. + +Core Internals +-------------- + +int rp2040.f_cpu() +~~~~~~~~~~~~~~~~~~ +Returns the current frequency of the core clock. This is read at runtime, +versus the constant ``F_CPU`` macro that is also available. This is useful +in cases where your code changes the core clock (i.e. low power modes, etc.) + +uint32_t rp2040.getCycleCount() +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Returns a 32-bit cycle count from then the core started running. Because it +is only 32-bits, and the Pico runs at 133MHz, this value can loop around +in a matter of seconds. + +uint64_t rp2040.getCycleCount64() +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Returns a 64-bit cycle count from then the core started running. This value +should never loop around in normal mode (at 133MHz it would take over 4,000 +years to overflow). + +uint32_t rp2040.hwrand32() +~~~~~~~~~~~~~~~~~~~~~~~~~~ +Returns a 32-bit value derived from the CPU cycle counter and the ROSC +oscillator. Because the ROSC bit is not a true random number generator, the +values returned may not meet the most stringent random tests. **If your +application needs absolute bulletproof random numbers, consider using +dedicated external hardware.** + +Memory Information +------------------ + +int rp2040.getFreeHeap() +~~~~~~~~~~~~~~~~~~~~~~~~ +Returns the number of bytes free for heap allocation (i.e. malloc, new). Note +that because there is some overhead, and there may be heap fragmentation, +this number is an *upper bound* and you generally will only be able to allocate +less than this returned number. + +int rp2040.getUsedHeap +~~~~~~~~~~~~~~~~~~~~~~ +Returns the number of bytes allocated out of the heap. + +int rp2040.getTotalHeap() +~~~~~~~~~~~~~~~~~~~~~~~~~ +Returns the total heap that was available to this program at compile time (i.e. +the Pico RAM size minus things like the ``.data`` and ``.bss`` sections and other +overhead). + + +Multicore Operations +-------------------- + +void rp2040.idleOtherCore() +~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Causes the other core to freeze in a tight RAM loop. Required if flash memory is +being written. In the case where the other core was not used, this is a no-op. + +void rp2040.resumeOtherCore() +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Restart a frozen core, opposite of ``idleOtherCore``. + +void rp2040.restartCore1() +~~~~~~~~~~~~~~~~~~~~~~~~~~ +Restart operation of CORE 1 (i.e. the second core). The user is required to use +the standard Pico SDK calls to start it up again. diff --git a/docs/wifi.rst b/docs/wifi.rst index 4a64d7d9..4548a46c 100644 --- a/docs/wifi.rst +++ b/docs/wifi.rst @@ -13,13 +13,13 @@ Supported Features * Access Point Mode (AP, creates its own wireless network) with 4 clients * WiFi Scanning and Reporting * See the ``ScanNetworks.ino`` example to better understand the process. -* `WiFiClient (TCP/IP client) `_ +* `WiFiClient (TCP/IP client) `_ * See the ``WiFiClient.ino`` example which connects the Pico W to a remote internet service and retrieves some data -* `WiFiServer (TCP/IP server) `_ +* `WiFiServer (TCP/IP server) `_ * See the ``WiFiServer.ino`` example which implements a frientdy TCP/IP server -* `WiFiUDP (UDP packet input/output) `_ +* `WiFiUDP (UDP packet input/output) `_ * See the ``UDP.ino`` example for a simple send/receive UDP application -* `NTP (Netwok Time Protocol) `_ +* `NTP (Netwok Time Protocol) `_ * Use ``NTP.begin(server)`` where ``server`` can be a host name or an IP address In the near future TLS (SSL/https) encryption is planned, but is not yet implemented. -- 2.54.0 From 1cf0c71d87089b10c0e7790d17cbc33179933680 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Mon, 18 Jul 2022 13:37:01 -0700 Subject: [PATCH 13/15] Clean up doc errors, missing doc version info --- docs/conf.py | 4 ++-- docs/eeprom.rst | 2 +- docs/i2s.rst | 8 ++++---- docs/index.rst | 6 +++++- docs/install.rst | 2 +- docs/multicore.rst | 4 ++-- docs/rp2040.rst | 18 ----------------- docs/serial.rst | 2 ++ docs/wifi.rst | 47 +++++++++++++++++++++++++++++---------------- docs/wificlient.rst | 6 +++--- docs/wifintp.rst | 3 +++ tools/makever.py | 11 +++++++++++ 12 files changed, 64 insertions(+), 49 deletions(-) create mode 100644 docs/wifintp.rst diff --git a/docs/conf.py b/docs/conf.py index 12f065d7..cc5e343c 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -54,9 +54,9 @@ author = u'Earle F. Philhower, III' # built documents. # # The short X.Y version. -version = u'1.0.0' +version = u'2.3.0' # The full version, including alpha/beta/rc tags. -release = u'1.0.0' +release = u'2.3.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/docs/eeprom.rst b/docs/eeprom.rst index 79b4ba3e..39069ac1 100644 --- a/docs/eeprom.rst +++ b/docs/eeprom.rst @@ -55,4 +55,4 @@ Returns the length of the EEPROM (i.e. the value specified in EEPROM Examples --------------- -Three EEPROM `examples`_ are included. +Three EEPROM `examples `_ are included. diff --git a/docs/i2s.rst b/docs/i2s.rst index 4533bfd2..cb784cf3 100644 --- a/docs/i2s.rst +++ b/docs/i2s.rst @@ -53,7 +53,7 @@ the word to fill when no data is available to send to the I2S hardware. Call before ``I2S::begin()``. bool setFrequency(long sampleRate) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Sets the word clock frequency, but does not start the I2S device if not already running. May be called after ``I2S::begin()`` to change the sample rate on-the-fly. @@ -158,17 +158,17 @@ Reads a left and right 8-bit sample and returns ``true`` on success. Will block until data is available. bool read16(int16_t \*l, int16_t \*r) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Reads a left and right 16-bit sample and returns ``true`` on success. Will block until data is available. bool read24(int32_t \*l, int32_t \*r) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Reads a left and right 24-bit sample and returns ``true`` on success. See note below about 24-bit mode. Will block until data is available. bool read32(int32_t \*l, int32_t \*r) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Reads a left and right 32-bit sample and returns ``true`` on success. Will block until data is available. diff --git a/docs/index.rst b/docs/index.rst index e2254eac..4ddb8556 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -41,7 +41,11 @@ For the latest version, always check https://github.com/earlephilhower/arduino-p FreeRTOS SMP (multicore) - WiFi (Raspberry Pi Pico-W Support) + WiFi (Pico-W Support) + WiFiClient + WiFiServer + WiFiUDP + NTP client Ported/Optimized Libraries Using Pico-SDK diff --git a/docs/install.rst b/docs/install.rst index 2c3c8e4d..6aea6f37 100644 --- a/docs/install.rst +++ b/docs/install.rst @@ -85,7 +85,7 @@ When running MalwareBytes antivirus (or others) the scanner may lock the compile Symptoms include: -*Access denied during update in the boards manager - affects the .exe files, because MalwareBytes has locked them. +* Access denied during update in the boards manager - affects the .exe files, because MalwareBytes has locked them. * Access denied during compilation, to one of the .exe files - same reason. * Can't delete the .exe files - they're locked by MalwareBytes. diff --git a/docs/multicore.rst b/docs/multicore.rst index 6bd330d7..4a84be7e 100644 --- a/docs/multicore.rst +++ b/docs/multicore.rst @@ -71,8 +71,8 @@ uint32_t rp2040.fifo.pop() Reads a value from this core's FIFO. Blocks until one is available. -bool rp2040.fifo.pop_nb(uint32_t *dest) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +bool rp2040.fifo.pop_nb(uint32_t \*dest) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Reads a value from this core's FIFO and places it in dest. Will return ``true`` if successful, or ``false`` if the pop would block. diff --git a/docs/rp2040.rst b/docs/rp2040.rst index 1f60df22..dcf7ae1a 100644 --- a/docs/rp2040.rst +++ b/docs/rp2040.rst @@ -52,21 +52,3 @@ int rp2040.getTotalHeap() Returns the total heap that was available to this program at compile time (i.e. the Pico RAM size minus things like the ``.data`` and ``.bss`` sections and other overhead). - - -Multicore Operations --------------------- - -void rp2040.idleOtherCore() -~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Causes the other core to freeze in a tight RAM loop. Required if flash memory is -being written. In the case where the other core was not used, this is a no-op. - -void rp2040.resumeOtherCore() -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Restart a frozen core, opposite of ``idleOtherCore``. - -void rp2040.restartCore1() -~~~~~~~~~~~~~~~~~~~~~~~~~~ -Restart operation of CORE 1 (i.e. the second core). The user is required to use -the standard Pico SDK calls to start it up again. diff --git a/docs/serial.rst b/docs/serial.rst index 4af24c3b..77bb8c1b 100644 --- a/docs/serial.rst +++ b/docs/serial.rst @@ -28,6 +28,7 @@ The size of the receive FIFO may also be adjusted from the default 32 bytes by using the ``setFIFOSize`` call prior to calling ``begin()`` .. code:: cpp + Serial1.setFIFOSize(128); Serial1.begin(baud); @@ -38,6 +39,7 @@ For applications where an IRQ driven serial port is not appropriate, use ``setPollingMode(true)`` before calling ``begin()`` .. code:: cpp + Serial1.setPollingMode(true); Serial1.begin(300) diff --git a/docs/wifi.rst b/docs/wifi.rst index 4548a46c..07b6880b 100644 --- a/docs/wifi.rst +++ b/docs/wifi.rst @@ -7,35 +7,43 @@ Enable WiFi support by selecting the `Raspberry Pi Pico W` board in the IDE and Supported Features ------------------ -* WiFi connection (Open, WPA/WPA2) - * Static IP or dynamic DHCP supported - * Station Mode (STA, connects to an existing network) - * Access Point Mode (AP, creates its own wireless network) with 4 clients -* WiFi Scanning and Reporting - * See the ``ScanNetworks.ino`` example to better understand the process. -* `WiFiClient (TCP/IP client) `_ - * See the ``WiFiClient.ino`` example which connects the Pico W to a remote internet service and retrieves some data -* `WiFiServer (TCP/IP server) `_ - * See the ``WiFiServer.ino`` example which implements a frientdy TCP/IP server -* `WiFiUDP (UDP packet input/output) `_ - * See the ``UDP.ino`` example for a simple send/receive UDP application -* `NTP (Netwok Time Protocol) `_ - * Use ``NTP.begin(server)`` where ``server`` can be a host name or an IP address -In the near future TLS (SSL/https) encryption is planned, but is not yet implemented. +* WiFi connection (Open, WPA/WPA2) + + * Static IP or dynamic DHCP supported + + * Station Mode (STA, connects to an existing network) + + * Access Point Mode (AP, creates its own wireless network) with 4 clients + +* WiFi Scanning and Reporting + + * See the ``ScanNetworks.ino`` example to better understand the process. + Important Information --------------------- + Please note that WiFi on the Pico W is a work-in-progress and there are some important caveats: -* Adding WiFi increases flash usage by > 220KB. - * There is a binary firmware blob for the WiFi chip (CYW43-series) which the Pico W uses. It's 220KB of code that needs to be included in any Pico W sketch, even one that simply flashes the onboard LED. There are hopes to reduce this via compression (see `this issue `__ ) + +* Adding WiFi increases flash usage by over 220KB + + * There is a 220KB binary firmware blob for the WiFi chip (CYW43-series) which the Pico W uses, even to control the onboard LED. + * Adding WiFi increases RAM usage by ~40KB. + * LWIP, the TCP/IP driver, requires preallocated buffers to allow it to run in non-polling mode (i.e. packets can be sent and received in the background without the application needing to explicitly do anything). + * The WiFi driver is a little limited as of now, but fully functional for sending and receiving data + * Extensible Authentication Protocol (EAP) is not supported + * Combined STA/AP mode is not supported + * Certain WiFi status values (RSSI, BSSID, etc.) are not available. + * Multicore is supported, but only one core may run ``WiFi`` code. + * FreeRTOS is not yet supported due to the requirement for a very different LWIP implementation. PRs always appreciated! The WiFi library borrows much work from the `ESP8266 Arduino Core `__ , especially the ``WiFiClient`` and ``WiFiServer`` classes. @@ -44,6 +52,11 @@ Special Thanks -------------- Special thanks to: + * @todbot for donating one of his Pico W boards to the effort + * @d-a-v for much patient explanation about LWIP internals + * The whole ESP8266 Arduino team for their network classes + +* Adafruit Industries for their kind donation diff --git a/docs/wificlient.rst b/docs/wificlient.rst index 11e41218..f31054da 100644 --- a/docs/wificlient.rst +++ b/docs/wificlient.rst @@ -1,7 +1,7 @@ -:orphan: +.. _HeaderTag: -Client Class ------------- +WiFiClient +========== Methods documented for `Client `__ in `Arduino `__ diff --git a/docs/wifintp.rst b/docs/wifintp.rst new file mode 100644 index 00000000..5cda1245 --- /dev/null +++ b/docs/wifintp.rst @@ -0,0 +1,3 @@ +Network Time Protocol (NTP) +=========================== + diff --git a/tools/makever.py b/tools/makever.py index a4de2606..c0dde421 100755 --- a/tools/makever.py +++ b/tools/makever.py @@ -47,4 +47,15 @@ def main(): fout.write("#define ARDUINO_PICO_REVISION " + str(sub) + "\n") fout.write('#define ARDUINO_PICO_VERSION_STR "' + str(args.version) + '"' + "\n") + # docs/conf.py + with open("docs/conf.py", "r") as fin: + with open("docs/conf.py.new", "w") as fout: + for l in fin: + if l.startswith("version = "): + l = "version = u'" + str(args.version) + "'\n" + if l.startswith("release = "): + l = "release = u'" + str(args.version) + "'\n" + fout.write(l); + shutil.move("docs/conf.py.new", "docs/conf.py") + main() -- 2.54.0 From 292ae3ddda509a5d0f3e94e8fcaa3e8b4cc16022 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Mon, 18 Jul 2022 14:39:47 -0700 Subject: [PATCH 14/15] Add WiFiClientSecure documentation --- docs/bearssl-client-secure-class.rst | 119 +++++++++++++++++++++++++++ docs/bearssl-server-secure-class.rst | 64 ++++++++++++++ docs/bearssl.rst | 113 +++++++++++++++++++++++++ docs/index.rst | 3 + 4 files changed, 299 insertions(+) create mode 100644 docs/bearssl-client-secure-class.rst create mode 100644 docs/bearssl-server-secure-class.rst create mode 100644 docs/bearssl.rst diff --git a/docs/bearssl-client-secure-class.rst b/docs/bearssl-client-secure-class.rst new file mode 100644 index 00000000..6bca9ff4 --- /dev/null +++ b/docs/bearssl-client-secure-class.rst @@ -0,0 +1,119 @@ +:orphan: + +WiFiClientSecure Class +---------------------- + +`BearSSL::WiFiClientSecure` is the object which actually handles TLS encrypted WiFi connections to a remote server or client. It extends `WiFiClient` and so can be used with minimal changes to code that does unsecured communications. + +Validating X509 Certificates (Am I talking to the server I think I'm talking to?) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Prior to connecting to a server, the `BearSSL::WiFiClientSecure` needs to be told how to verify the identity of the other machine. **By default BearSSL will not validate any connections and will refuse to connect to any server.** + +There are multiple modes to tell BearSSL how to verify the identity of the remote server. See the `BearSSL_Validation` example for real uses of the following methods: + +setInsecure() +^^^^^^^^^^^^^ + +Don't verify any X509 certificates. There is no guarantee that the server connected to is the one you think it is in this case. + +setKnownKey(const BearSSL::PublicKey \*pk) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Assume the server is using the specific public key. This does not verify the identity of the server or the X509 certificate it sends, it simply assumes that its public key is the one given. If the server updates its public key at a later point then connections will fail. + +setFingerprint(const uint8_t fp[20]) / setFingerprint(const char \*fpStr) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Verify the SHA1 fingerprint of the certificate returned matches this one. If the server certificate changes, it will fail. If an array of 20 bytes are sent in, it is assumed they are the binary SHA1 values. If a `char*` string is passed in, it is parsed as a series of human-readable hex values separated by spaces or colons (e.g. `setFingerprint("00:01:02:03:...:1f");`) + +This fingerprint is calculated on the raw X509 certificate served by the server. In very rare cases, these certificates have certain encodings which should be normalized before taking a fingerprint (but in order to preserve memory BearSSL does not do this normalization since it would need RAM for an entire copy of the cert), and the fingerprint BearSSL calculates will not match the fingerprint OpenSSL calculates. In this case, you can enable SSL debugging and get a dump of BearSSL's calculated fingerprint and use that one in your code, or use full certificate validation. See the `original issue and debug here `__. + +setTrustAnchors(BearSSL::X509List \*ta) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Use the passed-in certificate(s) as a trust anchor, accepting remote certificates signed by any of these. If you have many trust anchors it may make sense to use a `BearSSL::CertStore` because it will only require RAM for a single trust anchor (while the `setTrustAnchors` call requires memory for all certificates in the list). + +setX509Time(time_t now) +^^^^^^^^^^^^^^^^^^^^^^^ + +For `setTrustAnchors` and `CertStore` , the current time (set via SNTP) is used to verify the certificate against the list, so SNTP must be enabled and functioning before the connection is attempted. If you cannot use SNTP for some reason, you can manually set the "present time" that BearSSL will use to validate a certificate with this call where `now` is standard UNIX time. + +Client Certificates (Proving I'm who I say I am to the server) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +TLS servers can request that a client identify themselves with an X509 certificate signed by a trust anchor it honors (i.e. a global TA or a private CA). This is commonly done for applications like MQTT. By default the client doesn't send a certificate, and in cases where a certificate is required the server will disconnect and no connection will be possible. + +setClientRSACert / setClientECCert +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Sets a client certificate to send to a TLS server that requests one. It should be called before `connect()` to add a certificate to the client in case the server requests it. Note that certificates include both a certificate and a private key. Both should be provided to you by your certificate generator. Elliptic Curve (EC) keys require additional information, as shown in the prototype. + +MFLN or Maximum Fragment Length Negotiation (Saving RAM) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Because TLS was developed on systems with many megabytes of memory, they require by default a 16KB buffer for receive and transmit. That's enormous for the ESP8266, which has only around 40KB total heap available. + +We can (and do) minimize the transmission buffer down to slightly more than 512 bytes to save memory, since BearSSL can internally ensure transmissions larger than that are broken up into smaller chunks that do fit. But that still leaves the 16KB receive buffer requirement since we cannot in general guarantee the TLS peer will send in smaller chunks. + +TLS 1.2 added MFLN, which lets a client negotiate smaller buffers with a server and reduce the memory requirements on the ESP8266. Unfortunately, BearSSL needs to know the buffer sizes before it begins connection, so applications that want to use smaller buffers need to check the remote server's support before `connect()` . + +probeMaxFragmentLength(host, port, len) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Use one of these calls **before** connection to determine if a specific fragment length is supported (len must be a power of two from 512 to 4096, per the specification). This does **not** initiate a SSL connection, it simply opens a TCP port and performs a trial handshake to check support. + +setBufferSizes(int recv, int xmit) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Once you have verified (or know beforehand) that MFLN is supported you can use this call to set the size of memory buffers allocated by the connection object. This must be called **before** `connect()` or it will be ignored. + +In certain applications where the TLS server does not support MFLN (not many do as of this writing as it is relatively new to OpenSSL), but you control both the ESP8266 and the server to which it is communicating, you may still be able to `setBufferSizes()` smaller if you guarantee no chunk of data will overflow those buffers. + +bool getMFLNStatus() +^^^^^^^^^^^^^^^^^^^^ + +After a successful connection, this method returns whether or not MFLN negotiation succeeded or not. If it did not succeed, and you reduced the receive buffer with `setBufferSizes` then you may experience reception errors if the server attempts to send messages larger than your receive buffer. + +Sessions (Resuming connections fast) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +setSession(BearSSL::Session &sess) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +If you are connecting to a server repeatedly in a fixed time period (usually 30 or 60 minutes, but normally configurable at the server), a TLS session can be used to cache crypto settings and speed up connections significantly. + +Errors +~~~~~~ + +BearSSL can fail in many more unique and interesting ways. Use these calls to get more information when something fails. + +getLastSSLError(char \*dest = NULL, size_t len = 0) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Returns the last BearSSL error code encountered and optionally set a user-allocated buffer to a human-readable form of the error. To only get the last error integer code, just call without any parameters (`int errCode = getLastSSLError();`). + +Limiting Ciphers (New connections faster) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +There is very rarely reason to use these calls, but they are available. + +setCiphers() +^^^^^^^^^^^^ + +Takes an array (in PROGMEM is valid) or a std::vector of 16-bit BearSSL cipher identifiers and restricts BearSSL to only use them. If the server requires a different cipher, then connection will fail. Generally this is not useful except in cases where you want to connect to servers using a specific cipher. See the BearSSL headers for more information on the supported ciphers. + +setCiphersLessSecure() +^^^^^^^^^^^^^^^^^^^^^^ + +Helper function which essentially limits BearSSL to less secure ciphers than it would natively choose, but they may be helpful and faster if your server depended on specific crypto options. + +Limiting TLS(SSL) Versions +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +By default, BearSSL will connect with TLS 1.0, TLS 1.1, or TLS 1.2 protocols (depending on the request of the remote side). If you want to limit to a subset, use the following call: + +setSSLVersion(uint32_t min, uint32_t max) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Valid values for min and max are `BR_TLS10`, `BR_TLS11`, `BR_TLS12`. Min and max may be set to the same value if only a single TLS version is desired. diff --git a/docs/bearssl-server-secure-class.rst b/docs/bearssl-server-secure-class.rst new file mode 100644 index 00000000..0eb9cb7c --- /dev/null +++ b/docs/bearssl-server-secure-class.rst @@ -0,0 +1,64 @@ +:orphan: + +WiFiServerSecure Class +---------------------- + +Implements a TLS encrypted server with optional client certificate validation. See `Server Class `__ for general information and `BearSSL Secure Client Class `__ for basic server and BearSSL concepts. + +setBufferSizes(int recv, int xmit) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Similar to the `BearSSL::WiFiClientSecure` method, sets the receive and transmit buffer sizes. Note that servers cannot request a buffer size from the client, so if these are shrunk and the client tries to send a chunk larger than the receive buffer, it will always fail. Needs to be called before `begin()` + +Setting Server Certificates +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +TLS servers require a certificate identifying itself and containing its public key, and a private key they will use to encrypt information with. The application author is responsible for generating this certificate and key, either using a self-signed generator or using a commercial certification authority. **Do not re-use the certificates included in the examples provided.** + +This example command will generate a RSA 2048-bit key and certificate: + +.. code:: bash + + openssl req -x509 -nodes -newkey rsa:2048 -keyout key.pem -out cert.pem -days 4096 + +Again, it is up to the application author to generate this certificate and key and keep the private key safe and **private.** + +setRSACert(const BearSSL::X509List \*chain, const BearSSL::PrivateKey \*sk) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Sets a RSA certificate and key to be used by the server when connections are received. Needs to be called before `begin()` + +setECCert(const BearSSL::X509List \*chain, unsigned cert_issuer_key_type, const BearSSL::PrivateKey \*sk) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Sets an elliptic curve certificate and key for the server. Needs to be called before `begin()`. + +Client sessions (Resuming connections fast) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The TLS handshake process takes a long time because of all the back and forth between the client and the server. You can shorten it by caching the clients' sessions which will skip a few steps in the TLS handshake. In order for this to work, your client also needs to cache the session. `BearSSL::WiFiClientSecure `__ can do that as well as modern web browsers. + +Here are the kind of performance improvements that you'll be able to see for TLS handshakes with an ESP8266 with it's clock set at 160MHz on a network with fairly low latency: + +* With an EC key of 256 bits, a request taking ~360ms without caching takes ~60ms with caching. +* With an RSA key of 2048 bits, a request taking ~1850ms without caching takes ~70ms with caching. + +setCache(BearSSL::ServerSessions \*cache) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Sets the cache for the server's sessions. When choosing the size of the cache, remember that each client session takes 100 bytes. If you setup a cache for 10 sessions, it will take 1000 bytes. Needs to be called before `begin()` + +When creating the cache, you can use any of the 2 available constructors: + +* `BearSSL::ServerSessions(ServerSession *sessions, uint32_t size)`: Creates a cache with the given buffer and number of sessions. +* `BearSSL::ServerSessions(uint32_t size)`: Dynamically allocates a cache for the given number of sessions. + +Requiring Client Certificates +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +TLS servers can request the client to identify itself by transmitting a certificate during handshake. If the client cannot transmit the certificate, the connection will be dropped by the server. + +setClientTrustAnchor(const BearSSL::X509List \*client_CA_ta) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Sets the trust anchor (normally a self-signing CA) that all received certificates will be verified against. Needs to be called before `begin()`. diff --git a/docs/bearssl.rst b/docs/bearssl.rst new file mode 100644 index 00000000..e83b0e4b --- /dev/null +++ b/docs/bearssl.rst @@ -0,0 +1,113 @@ +:orphan: + +BearSSL WiFi Classes +-------------------- + +Methods and properties described in this section are specific to the Raspberry Pi Pico W and the ESP8266. They are not covered in `Arduino WiFi library `__ documentation. Before they are fully documented please refer to information below. + +The `BearSSL `__ library (with modifications for ESP8266 compatibility and to use ROM tables whenever possible) is used to perform all cryptography and TLS operations. The main ported repo is available `on GitHub `__. + +CPU Requirements +~~~~~~~~~~~~~~~~ + +SSL operations take significant CPU cycles to run, so it will connect significantly slower than unprotected connections on the Pico, but the actual data transfer rates once connected are similar. + +See the section on `sessions <#sessions-resuming-connections-fast>`__ and `limiting cryptographic negotiation <#limiting-ciphers-new-connections-faster>`__ for ways of ensuring faster modes are used. + +Memory Requirements +~~~~~~~~~~~~~~~~~~~ +BearSSL doesn't perform memory allocations at runtime, but it does require allocation of memory at the beginning of a connection. There are two memory chunks required: +. A per-application secondary stack +. A per-connection TLS receive/transmit buffer plus overhead + +The per-application secondary stack is approximately 7KB in size and is used for temporary variables during BearSSL processing. Only one stack is required, and it will be allocated whenever any `BearSSL::WiFiClientSecure` or `BearSSL::WiFiServerSecure` are instantiated. So, in the case of a global client or server, the memory will be allocated before `setup()` is called. + +The per-connection buffers are approximately 22KB in size, but in certain circumstances it can be reduced dramatically by using MFLN or limiting message sizes. See the `MLFN section <#mfln-or-maximum-fragment-length-negotiation-saving-ram>`__ below for more information. + +Object Lifetimes +~~~~~~~~~~~~~~~~ + +There are many configuration options that require passing in a pointer to an object (i.e. a pointer to a private key, or a certificate list). In order to preserve memory, BearSSL does NOT copy the objects passed in via these pointers and as such any pointer passed in to BearSSL needs to be preserved for the life of the client object. For example, the following code is **in error**: + +.. code:: cpp + + BearSSL::WiFiClientSecure client; + const char x509CA PROGMEM = "......."; + void setup() { + BearSSL::X509List x509(x509CA); + client.setTrustAnchor(&x509); + } + void loop() { + client.connect("192.168.1.1", 443); + } + +Because the pointer to the local object `x509` no longer is valid after setup(), expect to crash in the main `loop()` where it is accessed by the `client` object. + +As a rule, either keep your objects global, use `new` to create them, or ensure that all objects needed live inside the same scope as the client. + +TLS and HTTPS Basics +~~~~~~~~~~~~~~~~~~~~ + +The following discussion is only intended to give a rough idea of TLS/HTTPS(which is just HTTP over a TLS connection) and the components an application needs to manage to make a TLS connection. For more detailed information, please check the relevant `RFC 5246 `__ and others. + +TLS can be broken into two stages: verifying the identities of server (and potentially client), and then encrypting blocks of data bidirectionally. Verifying the identity of the other partner is handled via keys encoded in X509 certificates, optionally signed by a series of other entities. + + +Public and Private Keys +~~~~~~~~~~~~~~~~~~~~~~~ + +Cryptographic keys are required for many of the BearSSL functions. Both public and private keys are supported, with either Elliptic Curve or RSA key support. + +To generate a public or private key from an existing PEM (ASCII format) or DER (binary format), the simplest method is to use the constructor: + +.. code:: cpp + + BearSSL::PublicKey(const char *pemString) + ... or ... + BearSSL::PublicKey(const uint8_t *derArray, size_t derLen) + +Note that `PROGMEM` strings and arrays are natively supported by these constructors and no special `*_P` modes are required. There are additional functions to identify the key type and access the underlying BearSSL proprietary types, but they are not needed by user applications. + +TLS Sessions +~~~~~~~~~~~~ + +TLS supports the notion of a session (completely independent and different from HTTP sessions) which allow clients to reconnect to a server without having to renegotiate encryption settings or validate X509 certificates. This can save significant time (3-4 seconds in the case of EC keys) and can help save power by allowing the ESP8266 to sleep for a long time, reconnect and transmit some samples using the SSL session, and then jump back to sleep quicker. + +`BearSSL::Session` is an opaque class. Use the `BearSSL::WiFiClientSecure.setSession(&BearSSLSession)` method to apply it before the first `BearSSL::WiFiClientSecure.connect()` and it will be updated with session parameters during the operation of the connection. After the connection has had `.close()` called on it, serialize the `BearSSL::Session` object to stable storage (EEPROM, RTC RAM, etc.) and restore it before trying to reconnect. See the `BearSSL_Sessions` example for a detailed example. + +`Sessions <#sessions-resuming-connections-fast>`__ contains additional information on the sessions API. + +X.509 Certificate(s) +~~~~~~~~~~~~~~~~~~~~ + +X509 certificates are used to identify peers in TLS connections. Normally only the server identifies itself, but the client can also supply an X509 certificate if desired (this is often done in MQTT applications). The certificate contains many fields, but the most interesting in our applications are the name, the public key, and potentially a chain of signing that leads back to a trusted authority (like a global internet CA or a company-wide private certificate authority). + +Any call that takes an X509 certificate can also take a list of X509 certificates, so there is no special `X509` class, simply `BearSSL::X509List` (which may only contain a single certificate). + +Generating a certificate to be used to validate using the constructor + +.. code:: cpp + + BearSSL::X509List(const char *pemX509); + ...or... + BearSSL::X509List(const uint8_t *derCert, size_t derLen); + +If you need to add additional certificates (unlikely in normal operation), the `::append()` operation can be used. + + +Certificate Stores +~~~~~~~~~~~~~~~~~~ + +The web browser you're using to read this document keeps a list of 100s of certification authorities (CAs) worldwide that it trusts to attest to the identity of websites. + +In many cases your application will know the specific CA it needs to validate web or MQTT servers against (often just a single, self-signing CA private to your institution). Simply load your private CA in a `BearSSL::X509List` and use that as your trust anchor. + +However, there are cases where you will not know beforehand which CA you will need (i.e. a user enters a website through a keypad), and you need to keep the list of CAs just like your web browser. In those cases, you need to generate a certificate bundle on the PC while compiling your application, upload the `certs.ar` bundle to LittleFS or SD when uploading your application binary, and pass it to a `BearSSL::CertStore()` in order to validate TLS peers. + +See the `BearSSL_CertStore` example for full details. + +Supported Crypto +~~~~~~~~~~~~~~~~ + +Please see the `BearSSL website `__ for detailed cryptographic information. In general, TLS 1.2, TLS 1.1, and TLS 1.0 are supported with RSA and Elliptic Curve keys and a very rich set of hashing and symmetric encryption codes. Please note that Elliptic Curve (EC) key operations take a significant amount of time. + diff --git a/docs/index.rst b/docs/index.rst index 4ddb8556..e98a4026 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -46,6 +46,9 @@ For the latest version, always check https://github.com/earlephilhower/arduino-p WiFiServer WiFiUDP NTP client + BearSSL Encrypted TLS + WiFiClientSecure (TLS/SSL/HTTPS) + WiFiServerSecure (TLS/SSL/HTTPS) Ported/Optimized Libraries Using Pico-SDK -- 2.54.0 From 41ebcbe4c510c9c681b4677fb091f4370ea5512a Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Mon, 18 Jul 2022 19:41:40 -0700 Subject: [PATCH 15/15] Add NTP docs --- docs/wifintp.rst | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/docs/wifintp.rst b/docs/wifintp.rst index 5cda1245..e4970ddf 100644 --- a/docs/wifintp.rst +++ b/docs/wifintp.rst @@ -1,3 +1,41 @@ Network Time Protocol (NTP) =========================== +NTP allows the Pico to set its internal clock using the internet, and is +required for secure connections because the certificates used have valid +date stamps. + +After ``WiFi.begin()`` use ``NTP.begin(s1)`` or ``NTP,begin(s1, s2)`` to +use one or two NTP servers (common ones are ``pool.ntp.org`` and +``time.nist.gov``) . + +.. code :: cpp + + WiFi.begin("ssid", "pass"); + NTP.begin("pool.ntp.org", "time.nist.gov"); + +Either names or ``IPAddress`` may be used to identify the NTP server to +use. + +It may take seconds to minutes for the system time to be updated by NTP, +depending on the server. It is often useful to check that ``time(NULL)`` +returns a sane value before continuing a sketch: + +.. code :: cpp + + void setClock() { + NTP.begin("pool.ntp.org", "time.nist.gov"); + + Serial.print("Waiting for NTP time sync: "); + time_t now = time(nullptr); + while (now < 8 * 3600 * 2) { + delay(500); + Serial.print("."); + now = time(nullptr); + } + Serial.println(""); + struct tm timeinfo; + gmtime_r(&now, &timeinfo); + Serial.print("Current time: "); + Serial.print(asctime(&timeinfo)); + } -- 2.54.0

bYzNc#8g2nJ%R7+HcsE$#cp*lyk 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