From c423636d770808b8a1a20203932272aac65efd96 Mon Sep 17 00:00:00 2001 From: David Garske Date: Mon, 17 Jul 2017 20:20:32 -0700 Subject: [PATCH 1/5] First pass at a BTLE example for ECC encrypt scheme. --- .gitignore | 2 + README.md | 7 ++ btle/BTLESecureMessageExchange.pdf | Bin 0 -> 243070 bytes btle/Makefile | 39 +++++++++++ btle/README.md | 27 ++++++++ btle/btle-sim.c | 74 ++++++++++++++++++++ btle/btle-sim.h | 28 ++++++++ btle/ecc-client.c | 106 +++++++++++++++++++++++++++++ btle/ecc-server.c | 99 +++++++++++++++++++++++++++ 9 files changed, 382 insertions(+) create mode 100644 btle/BTLESecureMessageExchange.pdf create mode 100644 btle/Makefile create mode 100644 btle/README.md create mode 100644 btle/btle-sim.c create mode 100644 btle/btle-sim.h create mode 100644 btle/ecc-client.c create mode 100644 btle/ecc-server.c diff --git a/.gitignore b/.gitignore index bb6621b4..9c6c7a97 100644 --- a/.gitignore +++ b/.gitignore @@ -93,3 +93,5 @@ certgen/newCert* certgen/run_certgen_example +btle/ecc-client +btle/ecc-server diff --git a/README.md b/README.md index f4b2c297..ca3b2f51 100644 --- a/README.md +++ b/README.md @@ -111,6 +111,13 @@ cd ./tls make ``` +#### BTLE + +This directory contains examples for securing a Bluetooth Low Energy Link (BTLE). +BTLE packets are small and throughput is low, so these examples demonstrate a way +to exchange data securley without BTLE pariing. + + ## Notes When necessary, examples will use the example certificates and keys located diff --git a/btle/BTLESecureMessageExchange.pdf b/btle/BTLESecureMessageExchange.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2a13e26f8d990a5127eaf8893b44879c6862f06d GIT binary patch literal 243070 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 z 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%0AfhQJy8WnQ7a_-WI_8zwI7AGqHJHP~W#OZv%h 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ÛNH!Z8 zR3?&Mz`#;`zlFfBgiM$7cl%~+P)qm`&H+AEm!XL`x~jXbwLi`Mh72hQ7e+B+A4_ z$6up=x;oz?W)o9$htQB2RC9AA3!b9X7lp5o=k8bctG_2vF0tV2U)!BKdCp+^&bFL& ziZWtB?y;fTGk@~N(Ms{P}{iiCy=FYD)>Lc<1TyrT47ua^Vx^-Ax zZLAyvmtgJ!4M~2kJd2hYVT$@R?w<`L`LZ%>#9*~ zFzODW_^4cX(O2!vjond?%G#UxlFZ|Zk0Z=ak*^|^1oqVNF%RaE|G%~mh!W~S57@%7ufl9EMF=9>O%HLDu4hwwj4hyj`LrS1}xC$9evX{raM z)L4;)DcFYQMUBaN+-&!Un-OqDj=7W-;v{N`st7}JGD~UWz$x*S!jThvLY2c%-uuPf^NUcE_Ys#}dj%JO9O67={~@Qg69AAPifv zi?J^kK<5cHyc2xj7+A$Q2q|Y2^Hja}@~obR2c4|@z@~mNky~yUPA>rrBz=aSbxe_K zW-kzv%yPb*_liK|P|pua`Vwnl#?+Y2v*8n^C$JQyp?8KTxtW~ zHf3XOf1ruk?l(fV2MIbW^&A7wG=K)stR4CZw zGOxb+EhFE@PDo*!p#b z>sUI&RFKto_4!gA$sTX)lbCft zqHaw1S|seU#Y4EegDg)*iDf{%)zQ5i__5VZhhbpw%DWodJ{__{UB6L`oXF_8wd$np z{@G8z095U22=VsjpIW2VO{q>pYm3c&n;x70Qr$LfU^e(wRW&ho61q=QQrk-xt3xt? z7@Ps66R`Y2`{eGsR|kzbv6vBM1qjg65Pq|L@5*I~rkwJoge7x>hO%15?8ow`?OnW% z$N*B**UI*ECo$XOdV}M~{R7^6h;k^^ z&dZC?lY~D~p-uyC-6$IM%cld{^6WH^yHw?v}jU} z1UY7c2WmLMPl(*w2;Kp5MIwC_m`E_HZsxl%?ud|f*~$V79eaqr43FX8RI_Jw$no>U zKE57v*}_YMdOEAJH-teUaPfjVhj0>o(>*STXSltdV&*{PDq0!|EmT7+57I zA{R@6Xow5MVQI$91+zfD3@%WToKMZ)INA^%hvnSSA6?zHzf&GH?!4J@l082+y=diPSwQ8#L1odYISoVT!PtdXx%Vb_-w*ko_Dc8>KX*M#r{r1m**IrXZ;Kub z$051qtnA&CfH!zS*L_iuUI$lUu0=$=KL+P=l#A3ROxxME=&hHuIV>D@qTOn z+Z8r3m+M^ynU%ytit*Sa-IU)l@PtpWz_DBs!q+>vAUe&{2$W{pWJfaI97!-nt1p;k zN*~LX{hfz?Ec|SCh!a*rm=al<<11V@P8e^Jb-6Y>(iW+`85W8`hRZhavk!CQSPv!) zMBidU$h^jqPeGy)TDlsb`5$hEy~v(=VSKf%f$_jszX|Y;tF@xK;$xkst9k5B; z5K%YSZi zyLg&Xp6ksAVb?dW(F5A0sWK$*aOb4s0_-;A?}S1RVH z;ZTD>m5R&k1l~DswCgtqGW$lgW19i%&)+K4eZJS zT5qxCRnrkvNEGj_Wx1t=%aOsk==ZOK{&zt?Ih4+y%m2HGcJCqwF}J&|?&f3Tl}j$F zq90|M{7P_KTO;I7gRXSWa(aF|c2)lN`d3#kEsqes;5k6~Re}yCeml;ed7V5&d*dit z)GM2c0+bfv?Um;tqQ(3Z^=aKn;Q?(&$*61O`~4Oduh@9LWkuz+kKG*~SR=-99pZ~UV8IyjkUIB*2C*-KS8Yjzt>;0mEI9pvHqcX;xyV|h7FyW z9A;Sd5KY&5rCNUOxaZ!l*u?(67Pz#vA)Dh}tw0INbNtY=)A-hQ-J@*u>HlHxE2G-@ z;wWoCf#Sujg+Ep(S{wp};!vzWad&qorMN?J4aMEHNN{&|iUfBE5R#CkyZe3j^PW9# zX3m>4b4Kp_-H|uHx%bwO#L%l$y&ibZ57fJ{hJbQ3ePNZ|q*YC4tTxpjsrT)`sx!j> zK*)eJ3M0!JtBD})LhF;K$Dcai-ugnK^uGDRn3env(^ksCZWM+`H}~#BArq@#MGg(_ zXDT{x20v;%(A^Z`R)MQ{sc(lxEBdb$Q$G0LETcHQy}|F0BaP>9R0edv+6&%^?|T%mv$ zghc%sMH%KQBW6xvb^ev5vvA*|x7mt!uJC^t3P=GLkcUYtZ7Af2zY3}H8S1_}*%=Qr zSu5onvCIdx#T33{A`UAq^lJ6P(W^%&dv&7ad(mswsm`xEMC~t& z)e(gjkEiVCX+k!e8+Z3=2XB+lU3E?&L@|5;&6(i2x#G!^4qv~2h&~bm9=~3uZp?0z zr>Fl(X?`@ga$_EhcB^=5L-jsVEngG)(?+d~)674UE1vDWr@~XrsPCDpp1G<4ZTn2; zQ}3zmp2B&~+K=w`E)q3X)^V?vm9KkOjM?ak!bY4Z_*oyS9psYAXW0IW`g=9VxpHa8 z<#Q(B@FlAKuv8kg;rO7|Hd$>`R3o_g;c)yPTaM>^0!}Ibo8I*x{>s$N=Dy_}nI}Sp z-_Cnd$MQaLSEu-Pdw%>aBqr(8!V~$dv;6@6OltN1ZL4dYU(cI;=l%e`mUbL-Oc04_ z&%AFuKUtSG-tX+QQ0!=q1trD50%6&S8$h?QBm(pEfg;48E% zC%mJP!Lr>CU_PAxcSKv)E$TD>vnB@rxq4@oxk_4^ql_$A@qKjPHQcvtgS~m8c&F8) zTH7VV2FHBqoFA=Z+blAc18r}17>d8|s)5)KUWwx1g(;j4WCjr5E4Yhf?)!5%>j;Ro z=2+gvuJ{@lRD@A7WIO)Di4QvdYwur>t)HI?-=Q^BpOMPUZy=cwj>KYVs=k*IU6MzS z!d18Dm)S{{)5Y0ysiDGp2D7xD;4OvhueBSUvcR>hm1>Up>o@E+){`<;MI1lsktll*k1TBQG(~@2nCO#%VRXiKUVf^aFFe6tRNU>r`2O?G1 zCYir@&cK`GI^X-zQFzBZ&);1%N6mK;-iUi=*-%}D;<2gri{L)?v%hsbei4le<#O@Cu0bG5-;`K%{N+vd{w9B#cyv;+iY?pV#CN<>H)0 zKxLsY9637?bZ+KN`UFYw>YYW{sPCaxg@5tN)9l?UBkiB{d$puRIpj$zU-N#{LTU!w zp6M3+^+-XfQ>_j96n=~2m%g>*JDyGdPNkvtK{w;6C6M1MFKZ{uJ1(2W+9zl69*IkO zQx8XPteiQwCxFyukf9}H}UMH9ru3saYC@poUg|UV601L>XXST z43bH`KbcQk6hKmS-UP4MD)Yk@m7jpxE+-GQ91g(fTmOh3%jrlSP%REkpRzXYc0J>{ra#Q)}V%MX~B*#5C-v$7neV!?4Bs^ ziGkCtSN$HI((3h!&iXema~i9>mzQ`2K)2>Jo_n+Hu?z0zwPP5mmV(7~V{r(0x5oA1 zA`)(J*zL$x^d#7S>?5>^yqfUKF!a>FhW7+r+xuSdU*|kjMXlQSGf53CrC(7Ba-o)q zeOHu8;1*kV!+w@ZH>2$pCmGG4HX6D1Gu!LK%agc!GpfP9;+SKC$ey*WB;gqIoTcJ>&qqiSz zJ7E!fzgl~h$&=K5Ej{OBz+rjwi{o-3ix+OagQ=YM_}Ji6hw&E=DIR4>H*t)P4gZ3q zZgLhSay+8}XCj9IFzcNO*J%(_9Xpd4q|*w|Qpj0za@_B6Hb5r*o`tOb(swR#Qu%mN z=nPsBrA+C0t2FU!DRpNVq4Y)+jJNM-(rw#W{{Tzdd0IAbO**b@LUzb%@)$p_C#E$5 zsTV}q0)GK2bKKYVZw`;M_amqU=v|A%&i7f6e!#~(XRwxN>v_Km?V7lNFPM#^wilcE!=t422k;<2HnEl40?-)&VA>vD*zoi_g~KDL3b3MPP<^{fY%mYr3f19 zx$9KwJKvMcsHUxU*aEam^7=3kLlbauQHO#BV$dK~@j~V9nrZLb^ikX0)nZ=AZZYo* z3_K(>Ea2{UMA+kmB=GL{Ch!1{=0OGzIUDx4EQuPFMD0rgucpL+2Pl6pNH1!-7f$=g zLHl^t3q)L?ZZA;K3$WMyB$)dq8FkNU+39l2iaKE3gpGKDuZj&}_X){yh&}ppT3C79 zNq`w50eCf(E%SItkGi7=K54a>>!$kqF6Wqon@{HI#J=B#jaG5AHJ+53Z))GJ)t$4$ zcg(BV;Tv_HDIMUG;!#??PCwXU3hMR>T-WXk1Go7dUjc#M=U0J{O@mG#ED(Z%U8#>w zegqi=1i+w><`mQpWK;Wb`zkdR{09Lve4I>0Ek}lFR_I+e5`#Oot1Au+YTf${b-8M` zS6Krr`!{ti+gJk}`%8(z;B7oD#B`(r>z*c}msm?{?fa!z)%`>y%DkVp+RMHFPSda9 z>UT1$R)9UkvHHZI)!lq^Brti?K(OJ;Q;WvH+Xg~gf#^+M)Oy@W-qePzCj;BB=95u& z5Kx7mBLpP+FqO|ri(JVEBM%m2P%HT_;{xE*o8C8`w4&`t)m0Cf<&PU>D3f_$bab_CXiZdN}`l%cHWJ++Y49>+_Bk0lrXB<)asrY18LM_qcN&Rk;aY*hDRiJ9gYHf$x?!eNU88r>Ol)3>uVh z9BSGTx!{QNxB#kxQ&Hn!Kd;kX+tf<^wp%d-YL%bpzNGB>9ORlh%$;aPNGQu4 zuSh8IBk;dhvSeS<-(xFaeIZf$ruYK$KQ_5{nBi91Z&g*qKbLR+j3ntd=MLig!Dhc+ zR%kN+;8;#lq5Gb>u~LH3Y-3Z5=b|?_CJ3#9Jk7`glVAWmO@(Nz%AFtRut<&UvD245DAT zxhS~+Y)SUI_Q-_AeQwYv0C2Snw7;3=6Z5mb_xZA#a$&zU8SL9@_y#D5fL=74HTXO1 zS*%l;pPACwOmOXI45l+>M2%~uSM#K1?q@EhFJ|&*o^y%)u=4Fg1ba8byssz6!p5r8 zH@`Ia8*h=U6Iw^qzG;kZ(lchMQ>-0p`u2TKcR_nWmrwVsR>ahM+GXe}1EMqv4{zE@ znWRs8ElS5t$7o{JM@%3^ppI`(OmI!_y?Z~@7~X`#z0xEDz=x$pH(AnwqD1h$Urpai z@750C<$s^sEh$vhC9uc)()e!0LnrS2%6B*Ko3sB?8hFwf2ANh9nHW;ZrZscg8DWLH zi@$)W2-Pe8;mwuwb(=})2Hs`QmAJy1q;wWtb@Du=&kePKRe{8ZZ2tT2_?WqZEYrBz z$R+XZX9?^J$&<-PdCn%ShAqPRJa1nv$Hh#^M3dF>hC!BGKe%Y_Qw-sKBY}WdG>?~_du)Myg{`qv1 zNY~5cK*LuXZxDPJVO^J9se!TL?=CEpsIb;ZzEj^j=Q47BOw155)*Y z3w?!-!TloW#bMyRI9PmBT(67pHC{0K%@2yd*^VBa(=eZX+w3r5Ja?Lt8xO#ux8eS2 z_OYP1hzRn;}FLQ^#vRT*QM&tYw*euKo+J3<2< z(FbH3TotBPGCDHygFkR}WlUrwWc*~nu`RJnxVAE8VJpAyk&o3#Lzpsr6;X^}LIN*= zhp07FI!YbI^yrBMU(()yPd3jTp{Oy`FJSfNF|Zqzg_1*=K4w3LAuOA%<;1N zx*CdF0*?TLfFa=N&A-)mlXr%vpcBw8=ye;hN#!5Jj`5%fun1TpMpNEWEjB^>WQz`? zM-l|6`{s7kcXS{}Z#h=P98nd>+1s5{+GgO~qXE2nb<=9nmUfwDnP%F-0nZW7UTei$ zSeR5`(fi4*9;F9wt>5nyzB_FNgW!8>wXTjJ-<>tq{Q&PX(tTWzu-h$o;&JaJ)6!5F zeqGPe+%dOj@7r{m-n4G7+<0o^n|FHIG`Ql?Bsz2Jv?^(j*CaZ1o7eXTV6+45rMqK9Iz#YCpBkC(eiiHXWzMYP@OF3h^+ z?&KDSS-)C(gbph}L1=F=`0nGM*-Kcr`lk zlxzoyrQzka{NkaxcVQg+TN2&!jXZ5yN`{H@SBk04lr;R!YDYagP@0wPH?!b=DjE_B zlNnx(EjzNfyT1KY684+_cD1}BXRu}}Jd~#!c+~4f*alL5k=WCwYw)d=K&Gi_7K)dM zbk$aR^h`%Y7zg_`ioECCj`>-vMCL6xZmbUP6Zs13p1Pr=t>rVIo=s=_=2km$V;o9y zwcbf?i1cWgd!E7>14wO3u1G%#Tl$GHL*dVbE+$izp@D*=_t~mPaz}qYvbH7tf|FrW z9csG%SEjf_S@}^46NW}Zvf2{~xU3OSJscz3Gu{yiqE_jR%sPoO_x3vBr`Z_n-6@jT z!p6WKkBw^$M#Cy6DI(UK@5#|179|lSYOsv-&-dSno;gSul248jb=1>dF~OZw9<9ce zd7g+?!LSxhSkEj@iu1Ak0E?YRUUh4UBqT(-%Zp25U7}ke&Q=|b+ZwHgBIoANdxk>5 z#qwO{&G;V||DUb7gf!}%O#hVxcP#9b-P9=ErWnicZ7kcEyRuTHlr@x%9LtN^Fnnm> zQ_bAllm@nUKO9mm7Rk3+j<1Du50$sqvp%Tv>4-{g7Ig_<;OUHnhO(4@Ai+u| z)r_ny_kyShPlJ$-K&@g(y{wwmE(-z3D$sPf?IS9(Le8U3*xRZG(a zYuzd7exBLL>NnD#m9*5jSX=y(9VYY3R1I%^K5clsh2=HmMaED@&74S4vhry*p)ZUn z)$7jkHN7Quv}3NQ8Fimj?F1%{tGijI59+A)4)zSwZA4nUo_xD(`yr^U@4g|4t10QA zu4<4$>}Kh^$!m|`_U|T?mG&y5KP!hUI0)hLtbDIB2Zf|7RG7Ki-YOX7ywOTGvL5@g z&sQruS9jC1k{)W0A1+-Hj&m-b|2DgzARJO(I^VyyJy5?lGV`}1d%V#*optnivqm_R z%%7aTaT4VPH_<}}g9LQ`e$q*VV^6Cmvt#tvs9NFrfgg_7_F!wY(Hw6i^lmvtzdViQ|&bJ08F`ZtCuJgP5UjayIv{{p7*7L5(3DM<-D^ zI1|v{|2S+?NduVZg-5!CBELBt*?_scme!{XT55a3Ik}#cs3>Nx$@vmfCcl5y9+BeV z#|zaNC1BetxFgpd zUeEbhw`ZydM{~V|c9Lbz&W|j%S%iiPqTJdY!H?%1ac1*M{`QdaBdtn7NQYkk0&!Xfgq4A-~3w3?rf2I5^5K(=Tc$q&7@ ziPb*iTyyonn8Da3YAXeC@T^9lBmG{Ud?qJ4cFWzi@*r1HX~o+q`tDXCQ02muX5z%( zm1HJwL84y3GGZ1&WkO-&Vx(hT6jvj?q>v{%K#0|f`!ia{TY9}Lq* zs2&zW?f44}QE%v%bfJ@e{`M2Y7&nu-rTTbYa0UUqBg-3Q^GfhB2;J8Ih&t!g?T$D7 zX2&J;cYM!__wjk#-m-6sJzs$^Vvj-hYzb+<1J+Vg2$HyvSr(qZ0)DMyz2(zKg(tt1 z5-V&zEKZj~si0(0Y1-dY9^dagcs^(&siLM(Wx#wC&J}}ywU%f5_F4Y9`T6q@oO#c> zz=wLfx6ISD=ES+r)6x_+_oEctR@Sy2g6!HKU$2&*8>604j4sgL^fSD(yV2heAyq8& zz3~m1cwmU20`nG+5dP

{o>aQ8XkllLstq$oQD^*=#w~`e3W+r4@7DjnDay&&=6*%Ka^u zmH2|?S!Y~6*#?tzP;`HmD3cabydT93I2Y}*y3WNlnelvE4n(^_($v&X?i@cVf}S5O zi7eA$wVM5Xmikd9reZ1#J-oFZf_t>rpeo_*JILuZ{9T<*g z84*s^Q0bA?ii4>Xj$N9lOKQ|QNu4{DX^V@E*Sk_A{pCEEDj*lj>RE}n$3a_v-am*R zM!pdh{mwFIt1Ocr*pj-HcIIlpNR@EbSS(nZC4Ioc7FKw$yzcVK&k9fy_hVi9U6vZe z$^4AKhoT%U5}-FZS8oLRPgJ{EQV3f6V4gN9>z@RmxW-%zlZ11gzG+j13$MNgEcPxn zi(BS9YrUpkKdQy&6 zPjE$XTWeRW1-P(6V}I_zjgbBC#d~T6;5GQ7YPN~B6vndH1>aMDhkhbg3wukMO;J(o zPtCTt(lBXU1342||1f`OR3Dh9+c@cbKE*3L{Wb6{R5=e2l#V{U?>ThyxnS~{6ukU4 z=9b@L8ZiA>;U5{FQQ_Y+@*^*MQK<1*)Kur}gw1~NWkd6_!b){Ip+FUKMVM3Hj(F&X z*2s)av)H%f_V=w!t-dXA&LHs$Z$(%wAh&}V;@C*?JNq{Fz2RcJiw8!dRv{vt(St4Q z7Ci_1v|}Y|Lq(>g4SZ`DZHq#qmQZ={Jtcs_q$d>ym)+!EWvYoBznRP3``rNh)H@B8vHZBnSQe(ALbcB#| zA-`;sGQE8zyF|37>4!`=_Fqmf$~2Yz_ep?P>Ns;W7R^8JeozP$t)F8@xfw(i-R0j0 z9Jq=Jzx-seKx4-DLrJ+Uu2me(>Y442s`c^^uPAksb?X(96s)ozkr57`kssMsnYGau zepDJUUHsrww4hvl`Sv!ci8^$(tk5TnF>`%*MU?EChU}KcgM8`v?Xy|5LX01wzl2p> zFdkYoSHl5()(IQWhk;_b>nscD9;wxv&n#c*HIwu5=kHlGtdBXMXa2y{>|7_M*)cm~ zKJ}=jw4wa|JPoZWNI9@dwDR;8SJA;~(5g+0%=MqvZ{%WK zEUiYT?F0w(aN{^E2Lof5Y(i7Uy=LB^#0o3pAAvLRIl10PjA!Aj3c>L1<;<3HtJmV{iW zgj0oFqWTS=P#(@LF3on|LfR|K;+~%2_~CeuA-18nL()TTL%-v#<0ao=eAao#^Dbl% z9fM&`8M=LXotqNL$^5yS;Nt=r9TkJgYn}qKo)_sj7;|e@ z<2xB#@k(T-cR=&|eKZvTd5@n*hz5{@p?-$`1}FDNzM+1r@$h*=Sy-MkD&rwC3I6jg zaOdcHBMmSSbaZ_%^dB|=8tW0M{yKf`jTzvZ7*q-xs4*vY&&~82mQoEYs~@4R3P86P zGmU&Gdr zkN33<)Ia!kxDE^;ShrXzDo8BHO|RuMEDp{7&*l}s!V0%lvgBzdMo%;uCR2C%n%i|w z738tx$G*weFQ@yfkoSCewxI;G+^Dg#WJQhL{XBAN?Y(EBbGzp&fY50Kyl2`dJGl#y z5z5D9-p=ePJb{`Fz+cGRI~hv+;u)nL53A?>EAaYR%yNQH7kMrnr0Vk;@n7O>Vc|G; znsbraQcF;^02qo$xTZKBIx9I?TKVm+NS0+X;8tzHSA%_mmciYdDkjpu6{~6y{)7mf zl;5ip4aV(&6z)XcKv8jxqR2ANu5X6lqU)E|mD4{M$Rx4IVvHPN#OJ(-bSYG0-d0Y> zEtT_pizP$-%_UiNCL=#twWf$XfEq1C+IUx$%=@i0MZX)w#hhwm6oHZCTr(rfFep4_ z>}vTzkZdPhQRe+ebR{F4i)Y!VpIksM#JU(`=Wxr!gV-)v>8CoetcjMezwN1&zcJJ# z@2t4$Nv%9;?3BbxQdC73AAY{gtiJvEMf+Pk!ta=7m}Y2C<>gZmfD5DE?ud+_#spA2 zVp}nC0XNUY0yFpTuf1f}UBWjxcAl~5`GYy;qMegpc5;@72m5mq>gbyiU{yJ)J(--e zYB|>^w;a3MMqdx>XPAx?AtLn4OviT+mxFGDrgUwI=fOs86>T3pcu!{5TIGvp*hSrF z2%|I(f4s$>a2)c0L?>mBEV^9As=G@0L%C(0#YhMzHHzO4iuaV;|4698Sme8K8=)$cF#7=saSl8XGtiu+UY4NAWz^RNcKlH|mA+RGUHg%Z+)VKEV0-pI+*T^KDxKIotpyLwd-m-^-1@ zQM?PB@O&JEh1>Ul@F>!#OFAj4k2fpme_tj{KFM{YUs42QPo*gD?_7wc`Nc=|A8m(N z0b4!&zt$~TuwUcKx})=O)pGL;2>({GxcbB03NX_POHQ3~dOeBHvmNA(-r(GL^~P{Q z_A)h-e52r-ohNyf*Q?|5YUbEx&i>Ob_sJ>a3E!sD*o7{F&2^2&uPmc`uOM^F5|1Yi zcV_$Rt36WGT6;~?trPZlE`xi%?t_we2e^x|&xgM*zLfRI-F<#R+8~UmaMDXhxj*3vQPu}Ot*ax*~?uT$&E?}qBEfq zKhuf?@CQpyT`DTec9wf|WsT0BJOaENH5wvOW@U*;xPGYL3&Q95A`U~@p?-5EsPL<_ z*LpYiY5bFiZcL?uN1Uw)X>qLVy7wXM+M#2gcAaDiB5@^gHNqm6Pq4E-GwM*GE^U5R zEGsL$&Kbb$?E9~HJ65%K4&ORLMOL-fOm>}laSornXyjujbjztq?c>DegQPt1>I)HZ z4c2xHf=U~2m9Y!zw?MgWv8y5+5)39(Hphnv!3$0lbtW1B?E_FoZZH-wwQeXkm?uBT zt&pnVm@6Wp=Db!sqCObwy2SptLUt(b#Hs?LO@0gW)Ivxaw)9(j=)&5z-L_@4iB*

v&taNDZrOpU%vFQOm}hf_2I5*hT3m|5w29DC+ds3er};S$7YElC+HR@bf3QZhs!PA4ASu7(nk0itdU1 zsLBbecl;{uWEfmR zc?sR+Nkh?hv9yk6S*hgYb~N2%7i{#V%Dmh?zvy=+BLM z67>&e%K+~m`mdQT0xn*C{qYL$qvQQa@U)AxLcd*SmdL(laJ~Q!S#!4rUwig4z9-)j z;*HuCRc13vJU_rqq;p`9jQ0|A82)Y%sX=@71GA$K9%_cE)$i*%ASc?>!N4HRSo}=aqs39OrS~Xy+t`JM zuJIbbAgmSBntRdMd%TUJjYmtb|5zgo6@27%er6A~=MSZ0$=!$=3%@`S%!RHpiK<=?X7hlA z_^MF%AfD{w1)JDL6(gK`t`_nZ&B?5%4;lszgBO(ec+FLdRL$Z3wxU06#(f+{qoO8b zqA00Jc|Ne)m}N0AvD~8L3wK zduK%*1bt-Wr`XMI{<=Vy2)i4olGC5HUKN$+PtWOHFWmxgz$sE!+I~&b$1G(y)7eE2mHtalheZwPCayl$@|3 z!hHzeI+4wO$jLH^cf}+kydgLw^J7uGN>te)$w^SkL*QDD51WQ_VM+mwoM?^@qXwxx zdf~PrRe^dFVOfIRJTt0m zWh<6mE>!(FQ@?B#bOko`Le=72d|5q=<2-!JUl1e$#~TYPMLvrdIQCMqS>|jaCtqhi{K~OpH>u z%bT!YMSB)&pGMWz_)y{;SI+9q6jqE<0fzv#;>K;zhSS@9xEh9#<7ybal+{b&W!1Oz z;GyddkG9z@<~H$a>EA!5N~RB*rw>$dE@LK$#wGlMLSLEd<+%<5vUXi^nvAm3Iw$VT zwG*eE14_q5WvTOuMp9$CL&sERA>{l+@rTmh8SgPDxclQhBpJ&~KenghjQp{%(+Gpr zNefg~#;4ULr4_|*OmP;MSgcO+g?r`{<&f{Ec1BM&5B8x4-{p5}f4vOYtuK^gc`U`q z6yaX5TK-(0mS4ip_ML-exnyzhu%#~ki6#{u?Jv{@ z12+IJZoC}U?tGailes$5v_tJey2QH4BK3gfrM$7MN@Phw#o=SBq$GyVJYe3J5N%5! zAUc1ofLEse4d#!-TjZ0dRsc}%h#fN;2&+C^#myb?-}e3DVdNUdMbs(OVpmG`aqFj% z0?dbwyB72FDl}~{yb3YXTZ5#5rE>ZfVBFrT6+-UZv;*R5+J_pv;44|(WX;3AhItK0 zn$0QW&*V4#G`*yv6ZnjPphl>^Un*%I5lH) zYQ=MRWa{8Al$LS2Hj2UBC|4oTFTrxOTPZ%%(8aRVncv5CjU}-;FMbrKC_-@e zZDz1btpCbWG3grX2}w4wJ7E4J31RGYQzC1dcK)2pf4dM$iB{+1I#nb(S!mq9qy+y2 z_KLVB0RT36)WPvhW;H&{g!4PTiA6{i}<$OZom;pI6>YveaNYITv?j!@xE#p?!i zfMwfvw5Zp5q)X)Ylt6vw+o~d7o0yY7UF^549%;y*jddL-nfgekplaLf*0}G$w7VTYkoqRRN z%RbQ!A>-%llusYwa?~BZ9o<`abkv24_TkkTvQE}{K*%+V6)lB-&fhSweb%0o*xKwk zakw@0AeHU}6=F=(AX{j=1BTK6^6VIhtj9Q4nW&qcB^c$P5=8rYv<*{+%3k2rW_39( zeS)pVf=Ef;HUX)?^LCAY)LAsNSf%ziwPv?Kl`Zc8~slsd45qEWd7`~c5 z-h64)dc=Mzv<7CQmgIzqnGN|UFY2T}u5ZGtv*65uwW z!DhF?&qYItZ=$%m>tUOP)kG(z9>qeSi`kt=)Y+V zhaV^4+!(&ii)5aXi^+jRfz=n7girqr;>)?8XiULUL%MI;O3Ppp&RL6No&In#U+R4o2#uMqA28FhqQ}rs#=D)qS z-Ubd<^VzdH+O;cPcjdI!GRbHnEha8Y0^dupYTvatU1N*@7VzrnD#hT~x>cQM*a$3u z{)B7ct$W=D`jQKV@0FT)=vu@YwjHfzuWHjaq4}uxdpHK(j`#W%^R_cv0Cn1(72;8S zv2sbj%4BxgJ(Z2MC-SucjvdW*+1;2yitiR*62mC_{H>a~ z@HbGC+-kuCKC$F7r5#J2G5U!oX@J2amTN87ipGits!rdbulmViFS9>Q4sAde!&mY1 zaL8hof|aXtL`&I}$9vYT`S4RAMh|=EJkc>eTiSZEGtt+YdlVFC-PJReeUwxk|rhn@C0Na82xKD>gZ>riN706^UH%$ z&1m-0Zx4yYj-^rh`*j4l$AK@@p(S@i4nV1MDh;emo!J9=LC`n)#;P$z`h}pwY&bMS zy+g{i9}L3X8?O;?wlK%;CE}4u;j=S@sNFys&dSFg%uh0y>gl(xjW{c(Nf`k{cl9xB zzYgu%ZB)eu9-HDm&T;H`)^DcYUZYv@#}rmir2Y^Wmw_|n~t4yUmKP<~X_c)cbi{zGTeNMooz#>J3knSVV?9TZ+OhjlM zee>?54omp3LjdQ@IQwE+`ToTzz16tar`r_`vP0c(`hoL{5syKO(3(CSZwh-8@_6i8 zj%XRUPZl0%o77J|okhpc>o7mY`8;Sqy{3Hag-t>m4Sbao%J4n)(&emYx&Os_f<-i( z45)TENC9)W)%|jhbHTu4EfDbqSo=NZ<>j6rWk!Dcd(@} zt=|yobg_~*^M)jRMq&_TjSM-Tifht;rqNsnzQX)l>wh(^=EK)7X`r-Z<|MlLY==40 z&p+e8`acf{;FsiX3K9fL*ASf+<$8a0o-Z<#_9ubM{)Op-|Nq4X{%>~j|JV6{7J)vL zBy$!QNsnT5DL!ASV6bi0p-tL=L?tb4KWz%{mDR#D!7|G<%k-hFz=!7Q>2yQcP{ns$ zzml7ilpa(YL6BFb@)$h6)Ap>W&=^`#9TDa3>&Axw5tJSP@3QU{FfKGMGg|A<9{ZCRd$--y8=rGuAGyqy>5WHQ7;) z6BDJ&+`oy5;w>!1r4aqlto-%tKs9JaP06{|A67B0EY<<5T35DD54Am-D;*IY)X|Bh zw!Q51511F)`H9Yk=2NMGTl;vTWN7tT>lQ8cVpc3l&M7bW&Jj{tn=C(XZ_4`y7OZ6nYp4O|+RQm*#fjb=ix8pGp5!CN0 z%!XC2k|H8Uj1srsd`ohj>Rm9 z0O|wdQ?AJDXAaXyh)Ev5xv>kb0U#`SGJV!J_CoXuDG_|`i_v{X-pqy^o^1wPtaYzP zIYa>e3)pa9JZI11vPT5hS^GIav#(P{E=G&-9y=R8In0bq6!x2Di~X75{qu~Ai@`~v zR7NqlepSy{Y}RmbORq}YSgXJxa^8K7YrUX0K6UHNDInC^$&OB5Lc+^hR%r<5eVe3? z7DJguu!aZX#85WT zvk@nuLyCi;Lz#x;3FCWCH%Td!iK*N|Ql;SQP{8Wgv8G#<#!T|VdiJ2f%CKwG`n%hh zt&3Tk`%+p3Q|%L+MdCyg1yf>k4?A}|*OP}OUsHGYUyXB-gtm>1%YQa}sx`C}ByA-e zUu!5dQkvmo|RwEQk0-R4+YogZp~i``^z< zMYH~n1`bcq>ENFbMs8bU%OONXPfqv#)vOiz^+inwe_8_S*+IO(faN7}q$^LDz~GySkz>CW zC&jbApY5YqY3+5%bOS-!O&~7%$#i1R?)IP5a3%U`Zc5+5A={E!i``m`8eDqEo}aII zuio3yoZIfcJdx}q6m`0Pj;mrZ+8*1kQJUnP$Y%KA`h6Y3A{{Ro)@BBHGs4S)N9jFr zqSKI|^}T?vXQ-S_i_&qIcg~vcN+@dajQ5Ih!O(YND6D3&!H^uLl9KPpb!B|Qirkk5 zWci!>bPr`}JIJQuk}Tj~RVBo60?9KRcj=cA-^0ejqP+VzK3-dJr7juiMzP@?;j>)B z%{D&l5yH#H?g)gx+0~%FYwz=<$0Z^W8hh}_D*^Uv%shL&;IY*&*#enkc=7H(AO0Kl z%NfH=iybH@}@@FR?G{sQoiypt1bT8l<&Z zy8GF%ty=1Raz>VTrM4a?ejZkHX17G%6#M?byBwvuv=~3`P7ra&b%TIgBX7~ zh&+7F#;qZ@skYRIe6FmrezM$P;TvXajkmVFsm7^@DwsSt2wUZ-a=t`r%#Tv^PtkMN%M4i#(C6;~HIdr92mS%}`i&jN+Ws2X?Tqj>bLe=_ zl@jze89IL3%6h8A%UR+t2mRGL_3h0juN!*C!XmFbFEQ394J~$ZThO!q<6wodQ7=;h2{__5&O0I?eYUcCXN6Eb> zT3YM|dVD(tAL z53L(}%@;FYZ*GTKZWfi0IjVW}T63JFPUx0&>e`Oc_Gg8uhHPr>2k7TUDbW%dbodvXY=2|#SS(^R=apj2}jgO5H>$KWj+2_)191ED;>)qFTeUAT8PPlw;LM*3K zHtvn4s86dMOb0LE94y9aN|d9gYmQugiBVj(;R?7l$p19bW;0|n1W~ItQc{%}JN90i zAMr71U|hB&KKht&truM9V`XAlKV=97|BlP96pzvwYe)BqetqYm53Z!b3J0fn- zthD1*PI+C9c1~JnQEE$n6u$B2!Ld)o$HLgMUR9IzRL}fCFmXJ7=hIGW+UOlGZ9pIc z`}!d84)LM%>D{dt<|IR!+Jzs38oKhJBP>Yc!NMd zdEwwnc}I$;KA+UsxvgSdLyW9k0<5##q$(Y@RBH1^!Bc9n|I&XthshG?+`eyAM7P)P zFdM8ouw5vKjf^s6TtPE68dII@0TipYbx2nr_6riioF4IQ2}rkHhYv2Tb4xjqn%dc7#|c@uE;#)& zV*BQpBaunm$-NTsInGchbcvw6e2lCTeKK{_$7I~2-^^*O2xyWnEoed{qR-+> zdYr#7WtYB2WMkgCWKS{*8&6%(b&>O(r@SU4DLXAY!H*U;k%HZQf-Q7VymvxSP`v(5ja|F1s&*Ub)WfYx~fBF!X8Rz(ml*lwM8u#N}dAk%6QskoBBvXmj`N5eG zPtfhTchGTUi$edDSf;A7pJIwDs&hX$L<*&#YVZ+$mZ9Xdh?g_&P6{(3Z@c%eF5j2- z_K0i-eIOBmrsf;)emYvlcqBgegp%qdnpCp$w@=p({CR+P(grOY2{!Ky1Hj-|->+5J z_M)iGnWn*!Or-_)ru>t>!kD~XP z3^~D7iMNJ=#%(#~`UTe^#btkG2AY+rXIf{9y1(0}ST{BV z)N?gkyNs_{iP(P1D<7D03%EP{xH6XHY@6!na~%Vqh!Oodc4H$rE4@Qi`WQD+Td>-R zg=rew9Qi@h)Kw|k$eiCbb zw4XCanqPgfIRU&pl^)X^O}wx%#nBu+&qNjAl*i~7S~`~hD(51jZX}hGNsNw_U#{+e zEB!uRFV_TApT-WJujbCwNLFTX~b;AOC@SHG?&MgNc2fhoIU%8h!ZuwPc54 zq9f&YrP7#zpEi49Tj|tx*s7k;$<&IYuqwR5nwoulMy{4K9YC=dNmAVp_iXqwGD7 zpI&SycQN|S4?SIJ-Tt9hc^Ah_4R3=R#mm!0b0R;x*XS@R`u|KV zUcC39rbh3QI}M9YSa@m7v+!y>_hgogb`>y^q&(KcJ z{8!%c?Z1AVvFdxwU!|7xJ2UO%_g6QpY>r9QM1;Qn#pq&FD~1_%6-B9OTm}lp7F-5! zpkQWdYHX^IrT`JMFtRi-Pyov+L^cBDtlcC^0i9wFp#r1ZP&I qg0g~sP=0=if)OxK6oP;y23K)OVo?b=rx=+S8JQS!sj9mAy8!^1;j^It literal 0 HcmV?d00001 diff --git a/btle/Makefile b/btle/Makefile new file mode 100644 index 00000000..431e5a5a --- /dev/null +++ b/btle/Makefile @@ -0,0 +1,39 @@ +# BTLE Examples Makefile +CC = gcc +LIB_PATH = /usr/local +CFLAGS = -Wall -I$(LIB_PATH)/include +LIBS = -L$(LIB_PATH)/lib + +# option variables +DYN_LIB = -lwolfssl +STATIC_LIB = $(LIB_PATH)/lib/libwolfssl.a +DEBUG_FLAGS = -g -DDEBUG +OPTIMIZE = -Os + +# Options +CFLAGS+=$(DEBUG_FLAGS) +#CFLAGS+=$(OPTIMIZE) + +#LIBS+=$(DYN_LIB) -lm + + +.PHONY: clean all + +all: ecc-client ecc-server + +debug: CFLAGS+=$(DEBUG_FLAGS) +debug: all + + +# build template +%.o: %.c + gcc -c $< -o $@ $(CFLAGS) + +ecc-server: ecc-server.o btle-sim.o $(STATIC_LIB) + $(CC) $^ -o $@ $(LIBS) + +ecc-client: ecc-client.o btle-sim.o $(STATIC_LIB) + $(CC) $^ -o $@ $(LIBS) + +clean: + rm *.o diff --git a/btle/README.md b/btle/README.md new file mode 100644 index 00000000..8b677545 --- /dev/null +++ b/btle/README.md @@ -0,0 +1,27 @@ +# BTLE Examples + +Bluetooth Low Energy (BTLE or BLE) is a leightweight / low power wireless protocol. Its supported by Apple iPhone 4s and later and most Android phones. It operates in the 2.4GHz spectrum and has 3 advertising channels and 37 data channels. + +These examples demonstrate leightweight methods for exchanging data securley over anytype of publically visible link. + +The first phase is key establishment, which is done through some type of shared secret mechanism such as ECDH and a HKDF. ECC was choosen for these examples because its leightweight and widely used. + +The second phase is encrypted data communication and data integrity. + +## ECC Encrypt/Decrypt Example + +See `BTLESecureMessageExchange.pdf` for details. + +### Building + +The wolfSSL library must be built and installed using './configure --enable-ecc --enable-eccencrypt && make && sudo make install' or by defining `#define HAVE_ECC` and `#defineHAVE_ECC_ENCRYPT`. + +### Usage + +Use two consoles and STDIN to exchange data between the client and server. + +``` +./ecc-server +./ecc-client +``` + diff --git a/btle/btle-sim.c b/btle/btle-sim.c new file mode 100644 index 00000000..cd72b941 --- /dev/null +++ b/btle/btle-sim.c @@ -0,0 +1,74 @@ +/* btle-sim.c + * + * Copyright (C) 2006-2017 wolfSSL Inc. + * + * This file is part of wolfSSL. (formerly known as CyaSSL) + * + * wolfSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * wolfSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + + +#include +#include +#include +#include + +typedef struct { + int fd; +} BtleDev_t; + +static BtleDev_t gBtleDev; +static const char* myfifo = "/tmp/myfifo"; + +int btle_open(void** dev) +{ + int fd; + + mkfifo(myfifo, 0666); + + fd = open(myfifo, O_WRONLY); + if (fd < 0) { + unlink(myfifo); + return -1; + } + gBtleDev.fd = fd; + + if (dev) + *dev = &gBtleDev; + + return 0; +} + +int btle_send(const unsigned char* buf, int len, void* context) +{ + BtleDev_t* dev = (BtleDev_t*)context; + write(dev->fd, buf, len); + + return len; +} + +int btle_recv(unsigned char* buf, int len, void* context) +{ + BtleDev_t* dev = (BtleDev_t*)context; + return read(dev->fd, buf, len); +} + +void btle_close(void* context) +{ + BtleDev_t* dev = (BtleDev_t*)context; + + close(dev->fd); + unlink(myfifo); +} diff --git a/btle/btle-sim.h b/btle/btle-sim.h new file mode 100644 index 00000000..15b92e11 --- /dev/null +++ b/btle/btle-sim.h @@ -0,0 +1,28 @@ +/* btle-sim.h + * + * Copyright (C) 2006-2017 wolfSSL Inc. + * + * This file is part of wolfSSL. (formerly known as CyaSSL) + * + * wolfSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * wolfSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + + +#define MAX_BTLE_MSG_SIZE 128 + +int btle_open(void** dev); +int btle_send(const unsigned char* buf, int len, void* context); +int btle_recv(unsigned char* buf, int len, void* context); +void btle_close(void* context); diff --git a/btle/ecc-client.c b/btle/ecc-client.c new file mode 100644 index 00000000..0738d69f --- /dev/null +++ b/btle/ecc-client.c @@ -0,0 +1,106 @@ +/* ecc-server.c + * + * Copyright (C) 2006-2017 wolfSSL Inc. + * + * This file is part of wolfSSL. (formerly known as CyaSSL) + * + * wolfSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * wolfSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + + +#include +#include +#include +#include +#include "btle-sim.h" + +int main(int argc, char** argv) +{ + int ret; + WC_RNG rng; + ecEncCtx* cliCtx = NULL; + const byte* mySalt; + void* devCtx = NULL; + byte peerSalt[EXCHANGE_SALT_SZ]; + byte buffer[MAX_BTLE_MSG_SIZE]; + size_t bufLen; + + wolfSSL_Init(); + +#ifdef DEBUG_WOLFSSL + wolfSSL_Debugging_ON(); +#endif + + /* open BTLE */ + ret = btle_open(&devCtx); + if (ret != 0) { + goto cleanup; + } + + ret = wc_InitRng(&rng); + if (ret != 0) { + printf("wc_InitRng failed! %d\n", ret); + goto cleanup; + } + + cliCtx = wc_ecc_ctx_new(REQ_RESP_SERVER, &rng); + if (cliCtx == NULL) { + printf("wc_ecc_ctx_new failed!\n"); + ret = -1; goto cleanup; + } + + /* Collect Message to send and get echo */ + while (1) { + /* get my salt */ + mySalt = wc_ecc_ctx_get_own_salt(cliCtx); + if (mySalt == NULL) { + printf("wc_ecc_ctx_get_own_salt failed!\n"); + ret = -1; goto cleanup; + } + + /* Send my salt */ + ret = btle_send(mySalt, EXCHANGE_SALT_SZ, devCtx); + + /* Get peer salt */ + ret = btle_recv(peerSalt, EXCHANGE_SALT_SZ, devCtx); + wc_ecc_ctx_set_peer_salt(cliCtx, peerSalt); + + /* get message to send */ + fgets((char*)buffer, sizeof(buffer), stdin); + + bufLen = strlen((char*)buffer); + + /* send message */ + btle_send(buffer, bufLen, devCtx); + + /* get response (echo) */ + btle_recv(buffer, bufLen, devCtx); + + if (strstr((char*)buffer, "EXIT")) + break; + + /* reset context (reset my salt) */ + ret = wc_ecc_ctx_reset(cliCtx, &rng); + } + +cleanup: + + if (devCtx != NULL) + btle_close(devCtx); + + wolfSSL_Cleanup(); + + return ret; +} diff --git a/btle/ecc-server.c b/btle/ecc-server.c new file mode 100644 index 00000000..52ee95c6 --- /dev/null +++ b/btle/ecc-server.c @@ -0,0 +1,99 @@ +/* ecc-server.c + * + * Copyright (C) 2006-2017 wolfSSL Inc. + * + * This file is part of wolfSSL. (formerly known as CyaSSL) + * + * wolfSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * wolfSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + + +#include +#include +#include +#include +#include "btle-sim.h" + +int main(int argc, char** argv) +{ + int ret; + WC_RNG rng; + ecEncCtx* srvCtx = NULL; + const byte* mySalt; + void* devCtx = NULL; + byte peerSalt[EXCHANGE_SALT_SZ]; + byte buffer[MAX_BTLE_MSG_SIZE]; + size_t bufLen; + + wolfSSL_Init(); + +#ifdef DEBUG_WOLFSSL + wolfSSL_Debugging_ON(); +#endif + + /* open BTLE */ + ret = btle_open(&devCtx); + if (ret != 0) { + goto cleanup; + } + + ret = wc_InitRng(&rng); + if (ret != 0) { + printf("wc_InitRng failed! %d\n", ret); + goto cleanup; + } + + srvCtx = wc_ecc_ctx_new(REQ_RESP_SERVER, &rng); + if (srvCtx == NULL) { + printf("wc_ecc_ctx_new failed!\n"); + ret = -1; goto cleanup; + } + + while (1) { + mySalt = wc_ecc_ctx_get_own_salt(srvCtx); + if (mySalt == NULL) { + printf("wc_ecc_ctx_get_own_salt failed!\n"); + ret = -1; goto cleanup; + } + + /* Get peer salt */ + ret = btle_recv(peerSalt, EXCHANGE_SALT_SZ, devCtx); + + /* Send my salt */ + ret = btle_send(mySalt, EXCHANGE_SALT_SZ, devCtx); + + /* get message until null termination found */ + btle_recv(buffer, sizeof(buffer), devCtx); + + bufLen = strlen((char*)buffer); + + btle_send(buffer, bufLen, devCtx); + + if (strstr((char*)buffer, "EXIT")) + break; + + /* reset context (reset my salt) */ + ret = wc_ecc_ctx_reset(srvCtx, &rng); + } + +cleanup: + + if (devCtx != NULL) + btle_close(devCtx); + + wolfSSL_Cleanup(); + + return ret; +} From b55905b16420a96bffad0092a559c5f23c4783de Mon Sep 17 00:00:00 2001 From: David Garske Date: Tue, 18 Jul 2017 08:14:53 -0700 Subject: [PATCH 2/5] Added keys and encrypt/decrypt. --- btle/btle-sim.h | 2 +- btle/ecc-client.c | 50 ++++++++++++++++++++++++++++++++++++++--------- btle/ecc-server.c | 41 +++++++++++++++++++++++++++++++++----- 3 files changed, 78 insertions(+), 15 deletions(-) diff --git a/btle/btle-sim.h b/btle/btle-sim.h index 15b92e11..677b1f10 100644 --- a/btle/btle-sim.h +++ b/btle/btle-sim.h @@ -20,7 +20,7 @@ */ -#define MAX_BTLE_MSG_SIZE 128 +#define MAX_BTLE_MSG_SIZE 1024 int btle_open(void** dev); int btle_send(const unsigned char* buf, int len, void* context); diff --git a/btle/ecc-client.c b/btle/ecc-client.c index 0738d69f..8b8fd8c5 100644 --- a/btle/ecc-client.c +++ b/btle/ecc-client.c @@ -35,7 +35,10 @@ int main(int argc, char** argv) void* devCtx = NULL; byte peerSalt[EXCHANGE_SALT_SZ]; byte buffer[MAX_BTLE_MSG_SIZE]; - size_t bufLen; + word32 bufferSz; + byte plain[MAX_BTLE_MSG_SIZE]; + word32 plainSz; + ecc_key myKey, peerKey; wolfSSL_Init(); @@ -43,6 +46,11 @@ int main(int argc, char** argv) wolfSSL_Debugging_ON(); #endif + /* make my session key */ + wc_ecc_init(&myKey); + wc_ecc_init(&peerKey); + wc_ecc_make_key(&rng, 32, &myKey); + /* open BTLE */ ret = btle_open(&devCtx); if (ret != 0) { @@ -55,12 +63,24 @@ int main(int argc, char** argv) goto cleanup; } - cliCtx = wc_ecc_ctx_new(REQ_RESP_SERVER, &rng); + cliCtx = wc_ecc_ctx_new(REQ_RESP_CLIENT, &rng); if (cliCtx == NULL) { printf("wc_ecc_ctx_new failed!\n"); ret = -1; goto cleanup; } + /* exchange public keys */ + /* send my public key */ + /* export my public key */ + bufferSz = sizeof(buffer); + wc_ecc_export_x963(&myKey, buffer, &bufferSz); + ret = btle_send(buffer, bufferSz, devCtx); + + /* Get peer key */ + ret = btle_recv(buffer, sizeof(buffer), devCtx); + bufferSz = ret; + ret = wc_ecc_import_x963(buffer, bufferSz, &peerKey); + /* Collect Message to send and get echo */ while (1) { /* get my salt */ @@ -78,17 +98,29 @@ int main(int argc, char** argv) wc_ecc_ctx_set_peer_salt(cliCtx, peerSalt); /* get message to send */ - fgets((char*)buffer, sizeof(buffer), stdin); + bufferSz = sizeof(buffer); + fgets((char*)buffer, bufferSz, stdin); + bufferSz = strlen((char*)buffer); - bufLen = strlen((char*)buffer); + /* Encrypt message */ + bufferSz = sizeof(buffer); + ret = wc_ecc_encrypt(&myKey, &peerKey, plain, plainSz, buffer, &bufferSz, cliCtx); - /* send message */ - btle_send(buffer, bufLen, devCtx); + /* Send message */ + btle_send(buffer, bufferSz, devCtx); - /* get response (echo) */ - btle_recv(buffer, bufLen, devCtx); + /* get message until null termination found */ + bufferSz = sizeof(bufferSz); + ret = btle_recv(buffer, bufferSz, devCtx); - if (strstr((char*)buffer, "EXIT")) + /* decrypt message */ + bufferSz = ret; + ret = wc_ecc_decrypt(&myKey, &peerKey, buffer, bufferSz, plain, &plainSz, cliCtx); + + printf("Recv %d: %s\n", plainSz, plain); + + /* check for exit flag */ + if (strstr((char*)plain, "EXIT")) break; /* reset context (reset my salt) */ diff --git a/btle/ecc-server.c b/btle/ecc-server.c index 52ee95c6..e3e21a98 100644 --- a/btle/ecc-server.c +++ b/btle/ecc-server.c @@ -35,7 +35,10 @@ int main(int argc, char** argv) void* devCtx = NULL; byte peerSalt[EXCHANGE_SALT_SZ]; byte buffer[MAX_BTLE_MSG_SIZE]; - size_t bufLen; + word32 bufferSz; + byte plain[MAX_BTLE_MSG_SIZE]; + word32 plainSz; + ecc_key myKey, peerKey; wolfSSL_Init(); @@ -43,6 +46,11 @@ int main(int argc, char** argv) wolfSSL_Debugging_ON(); #endif + /* make my session key */ + wc_ecc_init(&myKey); + wc_ecc_init(&peerKey); + wc_ecc_make_key(&rng, 32, &myKey); + /* open BTLE */ ret = btle_open(&devCtx); if (ret != 0) { @@ -61,6 +69,18 @@ int main(int argc, char** argv) ret = -1; goto cleanup; } + /* exchange public keys */ + /* Get peer key */ + ret = btle_recv(buffer, sizeof(buffer), devCtx); + bufferSz = ret; + ret = wc_ecc_import_x963(buffer, bufferSz, &peerKey); + + /* send my public key */ + /* export my public key */ + bufferSz = sizeof(buffer); + wc_ecc_export_x963(&myKey, buffer, &bufferSz); + ret = btle_send(buffer, bufferSz, devCtx); + while (1) { mySalt = wc_ecc_ctx_get_own_salt(srvCtx); if (mySalt == NULL) { @@ -75,13 +95,24 @@ int main(int argc, char** argv) ret = btle_send(mySalt, EXCHANGE_SALT_SZ, devCtx); /* get message until null termination found */ - btle_recv(buffer, sizeof(buffer), devCtx); + bufferSz = sizeof(bufferSz); + ret = btle_recv(buffer, bufferSz, devCtx); - bufLen = strlen((char*)buffer); + /* decrypt message */ + bufferSz = ret; + ret = wc_ecc_decrypt(&myKey, &peerKey, buffer, bufferSz, plain, &plainSz, srvCtx); - btle_send(buffer, bufLen, devCtx); + printf("Recv %d: %s\n", plainSz, plain); - if (strstr((char*)buffer, "EXIT")) + /* Encrypt message */ + bufferSz = sizeof(buffer); + ret = wc_ecc_encrypt(&myKey, &peerKey, plain, plainSz, buffer, &bufferSz, srvCtx); + + /* Send message */ + btle_send(buffer, bufferSz, devCtx); + + /* check for exit flag */ + if (strstr((char*)plain, "EXIT")) break; /* reset context (reset my salt) */ From bf4b1875baa04e700c993937e01406407e5f7d3d Mon Sep 17 00:00:00 2001 From: David Garske Date: Tue, 18 Jul 2017 20:43:14 -0700 Subject: [PATCH 3/5] Added error response checking. Added header to indicate packet type and length. Added padding for packets. Testing almost complete. --- btle/btle-sim.c | 182 +++++++++++++++++++++++++++++++++++++++++----- btle/btle-sim.h | 24 +++++- btle/ecc-client.c | 108 ++++++++++++++++++++++----- btle/ecc-server.c | 103 ++++++++++++++++++++++---- 4 files changed, 362 insertions(+), 55 deletions(-) diff --git a/btle/btle-sim.c b/btle/btle-sim.c index cd72b941..c6c2040c 100644 --- a/btle/btle-sim.c +++ b/btle/btle-sim.c @@ -20,30 +20,126 @@ */ -#include +#include "btle-sim.h" + #include #include +#include +#include +#include +#include +#include #include +#include + +#define BTLE_VER 1 typedef struct { - int fd; + int role; + int fdmiso; + int fdmosi; } BtleDev_t; +typedef struct { + unsigned char ver; + unsigned char type; + unsigned short len; +} __attribute__ ((packed)) BtleHeader_t; + static BtleDev_t gBtleDev; -static const char* myfifo = "/tmp/myfifo"; +static const char* kBtleMisoFifo = "/tmp/btleMiso"; +static const char* kBtleMosiFifo = "/tmp/btleMosi"; -int btle_open(void** dev) +//#define BTLE_DEBUG_IO + +static int btle_get_write(BtleDev_t* dev) { - int fd; + return (dev->role == BTLE_ROLE_SERVER) ? dev->fdmosi : dev->fdmiso; +} - mkfifo(myfifo, 0666); +static int btle_get_read(BtleDev_t* dev) +{ + return (dev->role == BTLE_ROLE_SERVER) ? dev->fdmiso : dev->fdmosi; +} - fd = open(myfifo, O_WRONLY); - if (fd < 0) { - unlink(myfifo); +static int btle_send_block(BtleDev_t* dev, const void* buf, int len, int fd) +{ + int ret; + ret = write(fd, buf, len); +#ifdef BTLE_DEBUG_IO + printf("Write: %d\n", ret); +#endif + (void)dev; + return ret; +} + +static int btle_recv_block(BtleDev_t* dev, void* buf, int len, int fd) +{ + fd_set set; + int ret, pos = 0; + + FD_ZERO(&set); + FD_SET(fd, &set); + + while (pos < len) { + ret = select(fd+1, &set, NULL, NULL, NULL); + if (ret == 0) + continue; + if (ret < 0) + return ret; + + if (FD_ISSET(fd, &set)) { + ret = read(fd, &buf[pos], len - pos); + #ifdef BTLE_DEBUG_IO + printf("Read: %d\n", ret); + #endif + if (ret > 0) { + pos += ret; + } + else { + if (errno == EWOULDBLOCK) { + continue; + } + else { + return ret; + } + } + } + } + (void)dev; + + return pos; +} + +int btle_open(void** dev, int role) +{ + int fdmiso, fdmosi; + + mkfifo(kBtleMisoFifo, 0666); + mkfifo(kBtleMosiFifo, 0666); + + if (role == BTLE_ROLE_SERVER) { + fdmiso = open(kBtleMisoFifo, O_RDONLY | O_NONBLOCK); + fdmosi = open(kBtleMosiFifo, O_WRONLY); + } + else { + fdmosi = open(kBtleMosiFifo, O_RDONLY | O_NONBLOCK); + fdmiso = open(kBtleMisoFifo, O_WRONLY); + } + + if (fdmiso < 0) { + printf("Open %s failed! %d\n", kBtleMisoFifo, errno); return -1; } - gBtleDev.fd = fd; + if (fdmosi < 0) { + printf("Open %s failed! %d\n", kBtleMosiFifo, errno); + close(fdmiso); + return -1; + } + + gBtleDev.role = role; + gBtleDev.fdmiso = fdmiso; + gBtleDev.fdmosi = fdmosi; if (dev) *dev = &gBtleDev; @@ -51,24 +147,76 @@ int btle_open(void** dev) return 0; } -int btle_send(const unsigned char* buf, int len, void* context) +int btle_send(const unsigned char* buf, int len, int type, void* context) { BtleDev_t* dev = (BtleDev_t*)context; - write(dev->fd, buf, len); - + BtleHeader_t header; + int fd = btle_get_write(dev); + int ret; + header.ver = BTLE_VER; + header.type = type; + header.len = len; + ret = btle_send_block(dev, &header, sizeof(header), fd); + ret = btle_send_block(dev, buf, len, fd); return len; } -int btle_recv(unsigned char* buf, int len, void* context) +int btle_recv(unsigned char* buf, int len, int* type, void* context) { BtleDev_t* dev = (BtleDev_t*)context; - return read(dev->fd, buf, len); + BtleHeader_t header; + int ret; + int fd = btle_get_read(dev); + + + ret = btle_recv_block(dev, &header, sizeof(header), fd); + if (ret < 0) + return ret; + + if (header.ver != BTLE_VER) + return -1; + + if (type) + *type = header.type; + + if (len > 0) { + ret = header.len; + if (ret > len) + ret = len; + + ret = btle_recv_block(dev, buf, ret, fd); + if (ret < 0) + return ret; + } + + return header.len; } void btle_close(void* context) { BtleDev_t* dev = (BtleDev_t*)context; - close(dev->fd); - unlink(myfifo); + close(dev->fdmiso); + close(dev->fdmosi); + + unlink(kBtleMisoFifo); + unlink(kBtleMosiFifo); +} + +int btle_msg_pad(unsigned char* buf, int* len, void* context) +{ + BtleDev_t* dev = (BtleDev_t*)context; + int newLen = *len; + int odd = (newLen % BTLE_BLOCK_SIZE); + if (odd != 0) { + int addLen = (BTLE_BLOCK_SIZE - odd); + newLen += addLen; + if (newLen > BTLE_MSG_MAX_SIZE) + return -1; + + memset(&buf[*len], 0, addLen); + } + *len = newLen; + (void)dev; + return 0; } diff --git a/btle/btle-sim.h b/btle/btle-sim.h index 677b1f10..e591a572 100644 --- a/btle/btle-sim.h +++ b/btle/btle-sim.h @@ -20,9 +20,25 @@ */ -#define MAX_BTLE_MSG_SIZE 1024 +#define BTLE_MSG_MAX_SIZE 1024 +#define BTLE_BLOCK_SIZE 16 -int btle_open(void** dev); -int btle_send(const unsigned char* buf, int len, void* context); -int btle_recv(unsigned char* buf, int len, void* context); +typedef enum { + BTLE_PKT_TYPE_NULL, + BTLE_PKT_TYPE_KEY, + BTLE_PKT_TYPE_SALT, + BTLE_PKT_TYPE_MSG, + BTLE_PKT_TYPE_MAX, +} BtlePacket_t; + +typedef enum { + BTLE_ROLE_CLIENT, + BTLE_ROLE_SERVER, +} BtleRole_t; + + +int btle_open(void** dev, int role); +int btle_send(const unsigned char* buf, int len, int type, void* context); +int btle_recv(unsigned char* buf, int len, int* type, void* context); void btle_close(void* context); +int btle_msg_pad(unsigned char* buf, int* len, void* context); diff --git a/btle/ecc-client.c b/btle/ecc-client.c index 8b8fd8c5..2a39f1c5 100644 --- a/btle/ecc-client.c +++ b/btle/ecc-client.c @@ -34,11 +34,12 @@ int main(int argc, char** argv) const byte* mySalt; void* devCtx = NULL; byte peerSalt[EXCHANGE_SALT_SZ]; - byte buffer[MAX_BTLE_MSG_SIZE]; + byte buffer[BTLE_MSG_MAX_SIZE]; word32 bufferSz; - byte plain[MAX_BTLE_MSG_SIZE]; + byte plain[BTLE_MSG_MAX_SIZE]; word32 plainSz; ecc_key myKey, peerKey; + int type; wolfSSL_Init(); @@ -47,13 +48,17 @@ int main(int argc, char** argv) #endif /* make my session key */ - wc_ecc_init(&myKey); - wc_ecc_init(&peerKey); - wc_ecc_make_key(&rng, 32, &myKey); + ret = wc_ecc_init(&myKey); + ret |= wc_ecc_init(&peerKey); + if (ret != 0) { + printf("wc_ecc_init failed!\n"); + goto cleanup; + } /* open BTLE */ - ret = btle_open(&devCtx); + ret = btle_open(&devCtx, BTLE_ROLE_CLIENT); if (ret != 0) { + printf("btle_open failed %d! errno %d\n", ret, errno); goto cleanup; } @@ -63,6 +68,12 @@ int main(int argc, char** argv) goto cleanup; } + ret = wc_ecc_make_key(&rng, 32, &myKey); + if (ret != 0) { + printf("wc_ecc_make_key failed %d\n", ret); + goto cleanup; + } + cliCtx = wc_ecc_ctx_new(REQ_RESP_CLIENT, &rng); if (cliCtx == NULL) { printf("wc_ecc_ctx_new failed!\n"); @@ -73,13 +84,33 @@ int main(int argc, char** argv) /* send my public key */ /* export my public key */ bufferSz = sizeof(buffer); - wc_ecc_export_x963(&myKey, buffer, &bufferSz); - ret = btle_send(buffer, bufferSz, devCtx); + ret = wc_ecc_export_x963(&myKey, buffer, &bufferSz); + if (ret != 0) { + printf("wc_ecc_export_x963 failed %d\n", ret); + goto cleanup; + } + ret = btle_send(buffer, bufferSz, BTLE_PKT_TYPE_KEY, devCtx); + if (ret != bufferSz) { + printf("btle_send key failed %d!\n", ret); + goto cleanup; + } /* Get peer key */ - ret = btle_recv(buffer, sizeof(buffer), devCtx); + ret = btle_recv(buffer, sizeof(buffer), &type, devCtx); + if (ret <= 0) { + printf("btle_recv key failed %d\n", ret); + goto cleanup; + } + if (type != BTLE_PKT_TYPE_KEY) { + printf("btle_recv expected key!\n"); + ret = -1; goto cleanup; + } bufferSz = ret; ret = wc_ecc_import_x963(buffer, bufferSz, &peerKey); + if (ret != 0) { + printf("wc_ecc_import_x963 failed %d\n", ret); + goto cleanup; + } /* Collect Message to send and get echo */ while (1) { @@ -91,31 +122,66 @@ int main(int argc, char** argv) } /* Send my salt */ - ret = btle_send(mySalt, EXCHANGE_SALT_SZ, devCtx); + ret = btle_send(mySalt, EXCHANGE_SALT_SZ, BTLE_PKT_TYPE_SALT, devCtx); + if (ret != EXCHANGE_SALT_SZ) { + printf("btle_send salt failed %d!\n", ret); + goto cleanup; + } /* Get peer salt */ - ret = btle_recv(peerSalt, EXCHANGE_SALT_SZ, devCtx); - wc_ecc_ctx_set_peer_salt(cliCtx, peerSalt); + ret = btle_recv(peerSalt, EXCHANGE_SALT_SZ, &type, devCtx); + if (ret <= 0) { + printf("btle_recv failed %d! errno %d\n", ret, errno); + } + if (type != BTLE_PKT_TYPE_SALT) { + printf("btle_recv expected salt!\n"); + ret = -1; goto cleanup; + } + ret = wc_ecc_ctx_set_peer_salt(cliCtx, peerSalt); + if (ret != 0) { + printf("wc_ecc_ctx_set_peer_salt failed %d\n", ret); + goto cleanup; + } /* get message to send */ - bufferSz = sizeof(buffer); - fgets((char*)buffer, bufferSz, stdin); - bufferSz = strlen((char*)buffer); + plainSz = sizeof(plain); + fgets((char*)plain, plainSz, stdin); + plainSz = strlen((char*)plain); + ret = btle_msg_pad(plain, (int*)&plainSz, devCtx); + if (ret != 0) { + printf("btle_msg_pad failed %d\n", ret); + goto cleanup; + } /* Encrypt message */ bufferSz = sizeof(buffer); ret = wc_ecc_encrypt(&myKey, &peerKey, plain, plainSz, buffer, &bufferSz, cliCtx); + if (ret != 0) { + printf("wc_ecc_encrypt failed %d!\n", ret); + goto cleanup; + } /* Send message */ - btle_send(buffer, bufferSz, devCtx); + ret = btle_send(buffer, bufferSz, BTLE_PKT_TYPE_MSG, devCtx); + if (ret != bufferSz) { + printf("btle_send failed %d!\n", ret); + goto cleanup; + } - /* get message until null termination found */ + /* Get message */ bufferSz = sizeof(bufferSz); - ret = btle_recv(buffer, bufferSz, devCtx); + ret = btle_recv(buffer, bufferSz, &type, devCtx); + if (type != BTLE_PKT_TYPE_MSG) { + ret = -1; goto cleanup; + } - /* decrypt message */ + /* Decrypt message */ bufferSz = ret; ret = wc_ecc_decrypt(&myKey, &peerKey, buffer, bufferSz, plain, &plainSz, cliCtx); + if (ret != 0) { + printf("wc_ecc_decrypt failed %d!\n", ret); + goto cleanup; + } printf("Recv %d: %s\n", plainSz, plain); @@ -125,6 +191,10 @@ int main(int argc, char** argv) /* reset context (reset my salt) */ ret = wc_ecc_ctx_reset(cliCtx, &rng); + if (ret != 0) { + printf("wc_ecc_ctx_reset failed %d\n", ret); + goto cleanup; + } } cleanup: diff --git a/btle/ecc-server.c b/btle/ecc-server.c index e3e21a98..5d6e60ad 100644 --- a/btle/ecc-server.c +++ b/btle/ecc-server.c @@ -34,11 +34,12 @@ int main(int argc, char** argv) const byte* mySalt; void* devCtx = NULL; byte peerSalt[EXCHANGE_SALT_SZ]; - byte buffer[MAX_BTLE_MSG_SIZE]; + byte buffer[BTLE_MSG_MAX_SIZE]; word32 bufferSz; - byte plain[MAX_BTLE_MSG_SIZE]; + byte plain[BTLE_MSG_MAX_SIZE]; word32 plainSz; ecc_key myKey, peerKey; + int type; wolfSSL_Init(); @@ -47,13 +48,17 @@ int main(int argc, char** argv) #endif /* make my session key */ - wc_ecc_init(&myKey); - wc_ecc_init(&peerKey); - wc_ecc_make_key(&rng, 32, &myKey); + ret = wc_ecc_init(&myKey); + ret |= wc_ecc_init(&peerKey); + if (ret != 0) { + printf("wc_ecc_init failed!\n"); + goto cleanup; + } /* open BTLE */ - ret = btle_open(&devCtx); + ret = btle_open(&devCtx, BTLE_ROLE_SERVER); if (ret != 0) { + printf("btle_open failed %d! errno %d\n", ret, errno); goto cleanup; } @@ -63,6 +68,12 @@ int main(int argc, char** argv) goto cleanup; } + ret = wc_ecc_make_key(&rng, 32, &myKey); + if (ret != 0) { + printf("wc_ecc_make_key failed %d\n", ret); + goto cleanup; + } + srvCtx = wc_ecc_ctx_new(REQ_RESP_SERVER, &rng); if (srvCtx == NULL) { printf("wc_ecc_ctx_new failed!\n"); @@ -71,15 +82,35 @@ int main(int argc, char** argv) /* exchange public keys */ /* Get peer key */ - ret = btle_recv(buffer, sizeof(buffer), devCtx); + ret = btle_recv(buffer, sizeof(buffer), &type, devCtx); + if (ret < 0) { + printf("btle_recv key failed %d! errno %d\n", ret, errno); + goto cleanup; + } + if (type != BTLE_PKT_TYPE_KEY) { + printf("btle_recv expected key!\n"); + ret = -1; goto cleanup; + } bufferSz = ret; ret = wc_ecc_import_x963(buffer, bufferSz, &peerKey); + if (ret != 0) { + printf("wc_ecc_import_x963 failed %d!\n", ret); + goto cleanup; + } /* send my public key */ /* export my public key */ bufferSz = sizeof(buffer); - wc_ecc_export_x963(&myKey, buffer, &bufferSz); - ret = btle_send(buffer, bufferSz, devCtx); + ret = wc_ecc_export_x963(&myKey, buffer, &bufferSz); + if (ret != 0) { + printf("wc_ecc_export_x963 failed %d\n", ret); + goto cleanup; + } + ret = btle_send(buffer, bufferSz, BTLE_PKT_TYPE_KEY, devCtx); + if (ret != bufferSz) { + printf("btle_send key failed %d!\n", ret); + goto cleanup; + } while (1) { mySalt = wc_ecc_ctx_get_own_salt(srvCtx); @@ -89,27 +120,65 @@ int main(int argc, char** argv) } /* Get peer salt */ - ret = btle_recv(peerSalt, EXCHANGE_SALT_SZ, devCtx); + ret = btle_recv(peerSalt, EXCHANGE_SALT_SZ, &type, devCtx); + if (ret <= 0) { + printf("btle_recv salt failed %d! errno %d\n", ret, errno); + goto cleanup; + } + if (type != BTLE_PKT_TYPE_SALT) { + printf("btle_recv expected salt!\n"); + ret = -1; goto cleanup; + } + ret = wc_ecc_ctx_set_peer_salt(srvCtx, peerSalt); + if (ret != 0) { + printf("wc_ecc_ctx_set_peer_salt failed %d\n", ret); + goto cleanup; + } /* Send my salt */ - ret = btle_send(mySalt, EXCHANGE_SALT_SZ, devCtx); + ret = btle_send(mySalt, EXCHANGE_SALT_SZ, BTLE_PKT_TYPE_SALT, devCtx); + if (ret != EXCHANGE_SALT_SZ) { + printf("btle_send salt failed %d!\n", ret); + goto cleanup; + } - /* get message until null termination found */ + /* Get message */ bufferSz = sizeof(bufferSz); - ret = btle_recv(buffer, bufferSz, devCtx); + ret = btle_recv(buffer, bufferSz, &type, devCtx); + if (ret <= 0) { + printf("btle_recv msg failed %d! errno %d\n", ret, errno); + goto cleanup; + } + if (type != BTLE_PKT_TYPE_MSG) { + printf("btle_recv expected msg!\n"); + ret = -1; goto cleanup; + } - /* decrypt message */ + /* Decrypt message */ bufferSz = ret; + plainSz = sizeof(plain); ret = wc_ecc_decrypt(&myKey, &peerKey, buffer, bufferSz, plain, &plainSz, srvCtx); + if (ret != 0) { + printf("wc_ecc_decrypt failed %d!\n", ret); + goto cleanup; + } printf("Recv %d: %s\n", plainSz, plain); /* Encrypt message */ bufferSz = sizeof(buffer); ret = wc_ecc_encrypt(&myKey, &peerKey, plain, plainSz, buffer, &bufferSz, srvCtx); + if (ret != 0) { + printf("wc_ecc_encrypt failed %d!\n", ret); + goto cleanup; + } /* Send message */ - btle_send(buffer, bufferSz, devCtx); + ret = btle_send(buffer, bufferSz, BTLE_PKT_TYPE_MSG, devCtx); + if (ret != bufferSz) { + printf("btle_send failed %d!\n", ret); + goto cleanup; + } /* check for exit flag */ if (strstr((char*)plain, "EXIT")) @@ -117,6 +186,10 @@ int main(int argc, char** argv) /* reset context (reset my salt) */ ret = wc_ecc_ctx_reset(srvCtx, &rng); + if (ret != 0) { + printf("wc_ecc_ctx_reset failed %d\n", ret); + goto cleanup; + } } cleanup: From 6aa7f1c6747d887b325652a2a54db62f60d5c651 Mon Sep 17 00:00:00 2001 From: David Garske Date: Wed, 19 Jul 2017 19:20:02 -0700 Subject: [PATCH 4/5] Additional fixes and updates to doc. --- btle/README.md | 9 +++++---- btle/btle-sim.c | 8 +++++++- btle/ecc-client.c | 5 +++-- btle/ecc-server.c | 2 +- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/btle/README.md b/btle/README.md index 8b677545..597bdce8 100644 --- a/btle/README.md +++ b/btle/README.md @@ -4,9 +4,7 @@ Bluetooth Low Energy (BTLE or BLE) is a leightweight / low power wireless protoc These examples demonstrate leightweight methods for exchanging data securley over anytype of publically visible link. -The first phase is key establishment, which is done through some type of shared secret mechanism such as ECDH and a HKDF. ECC was choosen for these examples because its leightweight and widely used. - -The second phase is encrypted data communication and data integrity. +The first phase is key establishment, which is done through ECDH and HDKF. ECC was choosen for these examples because its leightweight and widely used. Salt exchanged to provent data reply of messages. The enryption is done with AES CBC. The data integrity is done using HMAC-SHA256. ## ECC Encrypt/Decrypt Example @@ -14,7 +12,7 @@ See `BTLESecureMessageExchange.pdf` for details. ### Building -The wolfSSL library must be built and installed using './configure --enable-ecc --enable-eccencrypt && make && sudo make install' or by defining `#define HAVE_ECC` and `#defineHAVE_ECC_ENCRYPT`. +The wolfSSL library must be built and installed using './configure --enable-ecc --enable-eccencrypt --enable-hkdf && make && sudo make install' or by defining `#define HAVE_ECC`, `#define HAVE_ECC_ENCRYPT` and `HAVE_HKDF`. ### Usage @@ -25,3 +23,6 @@ Use two consoles and STDIN to exchange data between the client and server. ./ecc-client ``` +### BTLE Simulator + +The simulator uses IPC (pipes) to communicate between threads for simualted communication between two devices. diff --git a/btle/btle-sim.c b/btle/btle-sim.c index c6c2040c..eff0deb8 100644 --- a/btle/btle-sim.c +++ b/btle/btle-sim.c @@ -20,6 +20,10 @@ */ +#include +#include +#include +#include #include "btle-sim.h" #include @@ -50,7 +54,7 @@ static BtleDev_t gBtleDev; static const char* kBtleMisoFifo = "/tmp/btleMiso"; static const char* kBtleMosiFifo = "/tmp/btleMosi"; -//#define BTLE_DEBUG_IO +#define BTLE_DEBUG_IO static int btle_get_write(BtleDev_t* dev) { @@ -68,6 +72,7 @@ static int btle_send_block(BtleDev_t* dev, const void* buf, int len, int fd) ret = write(fd, buf, len); #ifdef BTLE_DEBUG_IO printf("Write: %d\n", ret); + WOLFSSL_BUFFER(buf, len); #endif (void)dev; return ret; @@ -92,6 +97,7 @@ static int btle_recv_block(BtleDev_t* dev, void* buf, int len, int fd) ret = read(fd, &buf[pos], len - pos); #ifdef BTLE_DEBUG_IO printf("Read: %d\n", ret); + WOLFSSL_BUFFER(&buf[pos], len-pos); #endif if (ret > 0) { pos += ret; diff --git a/btle/ecc-client.c b/btle/ecc-client.c index 2a39f1c5..0f7a05bf 100644 --- a/btle/ecc-client.c +++ b/btle/ecc-client.c @@ -81,7 +81,6 @@ int main(int argc, char** argv) } /* exchange public keys */ - /* send my public key */ /* export my public key */ bufferSz = sizeof(buffer); ret = wc_ecc_export_x963(&myKey, buffer, &bufferSz); @@ -89,6 +88,7 @@ int main(int argc, char** argv) printf("wc_ecc_export_x963 failed %d\n", ret); goto cleanup; } + /* send my public key */ ret = btle_send(buffer, bufferSz, BTLE_PKT_TYPE_KEY, devCtx); if (ret != bufferSz) { printf("btle_send key failed %d!\n", ret); @@ -105,6 +105,7 @@ int main(int argc, char** argv) printf("btle_recv expected key!\n"); ret = -1; goto cleanup; } + /* import peer public key */ bufferSz = ret; ret = wc_ecc_import_x963(buffer, bufferSz, &peerKey); if (ret != 0) { @@ -169,7 +170,7 @@ int main(int argc, char** argv) } /* Get message */ - bufferSz = sizeof(bufferSz); + bufferSz = sizeof(buffer); ret = btle_recv(buffer, bufferSz, &type, devCtx); if (type != BTLE_PKT_TYPE_MSG) { ret = -1; goto cleanup; diff --git a/btle/ecc-server.c b/btle/ecc-server.c index 5d6e60ad..078434be 100644 --- a/btle/ecc-server.c +++ b/btle/ecc-server.c @@ -143,7 +143,7 @@ int main(int argc, char** argv) } /* Get message */ - bufferSz = sizeof(bufferSz); + bufferSz = sizeof(buffer); ret = btle_recv(buffer, bufferSz, &type, devCtx); if (ret <= 0) { printf("btle_recv msg failed %d! errno %d\n", ret, errno); From 32d8e4ad5ba83788e15c975e2d6693737cf4521f Mon Sep 17 00:00:00 2001 From: David Garske Date: Thu, 20 Jul 2017 11:13:36 -0700 Subject: [PATCH 5/5] Fix bug with not sending server salt before setting peer salt. Added additional error check in `btle_send`. Fixed filename type in ecc-client.c. Added notes about how to validate server public key using a trusted cert (TODO). --- btle/btle-sim.c | 6 +++++- btle/ecc-client.c | 10 ++++++++-- btle/ecc-server.c | 18 ++++++++++++------ 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/btle/btle-sim.c b/btle/btle-sim.c index eff0deb8..cd061ec5 100644 --- a/btle/btle-sim.c +++ b/btle/btle-sim.c @@ -36,6 +36,7 @@ #include #include +//#define BTLE_DEBUG_IO #define BTLE_VER 1 typedef struct { @@ -54,7 +55,6 @@ static BtleDev_t gBtleDev; static const char* kBtleMisoFifo = "/tmp/btleMiso"; static const char* kBtleMosiFifo = "/tmp/btleMosi"; -#define BTLE_DEBUG_IO static int btle_get_write(BtleDev_t* dev) { @@ -163,7 +163,11 @@ int btle_send(const unsigned char* buf, int len, int type, void* context) header.type = type; header.len = len; ret = btle_send_block(dev, &header, sizeof(header), fd); + if (ret < 0) + return ret; ret = btle_send_block(dev, buf, len, fd); + if (ret < 0) + return ret; return len; } diff --git a/btle/ecc-client.c b/btle/ecc-client.c index 0f7a05bf..44bf4b84 100644 --- a/btle/ecc-client.c +++ b/btle/ecc-client.c @@ -1,4 +1,4 @@ -/* ecc-server.c +/* ecc-client.c * * Copyright (C) 2006-2017 wolfSSL Inc. * @@ -31,8 +31,8 @@ int main(int argc, char** argv) int ret; WC_RNG rng; ecEncCtx* cliCtx = NULL; - const byte* mySalt; void* devCtx = NULL; + const byte* mySalt; byte peerSalt[EXCHANGE_SALT_SZ]; byte buffer[BTLE_MSG_MAX_SIZE]; word32 bufferSz; @@ -105,6 +105,10 @@ int main(int argc, char** argv) printf("btle_recv expected key!\n"); ret = -1; goto cleanup; } + + /* TODO: Client should hash and verify this public key against trusted ceritifcate (already exchanged) */ + /* ECC signature is about 65 bytes */ + /* import peer public key */ bufferSz = ret; ret = wc_ecc_import_x963(buffer, bufferSz, &peerKey); @@ -138,6 +142,7 @@ int main(int argc, char** argv) printf("btle_recv expected salt!\n"); ret = -1; goto cleanup; } + ret = wc_ecc_ctx_set_peer_salt(cliCtx, peerSalt); if (ret != 0) { printf("wc_ecc_ctx_set_peer_salt failed %d\n", ret); @@ -178,6 +183,7 @@ int main(int argc, char** argv) /* Decrypt message */ bufferSz = ret; + plainSz = sizeof(plain); ret = wc_ecc_decrypt(&myKey, &peerKey, buffer, bufferSz, plain, &plainSz, cliCtx); if (ret != 0) { printf("wc_ecc_decrypt failed %d!\n", ret); diff --git a/btle/ecc-server.c b/btle/ecc-server.c index 078434be..78497b93 100644 --- a/btle/ecc-server.c +++ b/btle/ecc-server.c @@ -31,8 +31,8 @@ int main(int argc, char** argv) int ret; WC_RNG rng; ecEncCtx* srvCtx = NULL; - const byte* mySalt; void* devCtx = NULL; + const byte* mySalt; byte peerSalt[EXCHANGE_SALT_SZ]; byte buffer[BTLE_MSG_MAX_SIZE]; word32 bufferSz; @@ -106,6 +106,10 @@ int main(int argc, char** argv) printf("wc_ecc_export_x963 failed %d\n", ret); goto cleanup; } + /* TODO: Server should hash and sign this public key with a trust ceritifcate (already exchanged) */ + /* ECC signature is about 65 bytes */ + + ret = btle_send(buffer, bufferSz, BTLE_PKT_TYPE_KEY, devCtx); if (ret != bufferSz) { printf("btle_send key failed %d!\n", ret); @@ -129,19 +133,21 @@ int main(int argc, char** argv) printf("btle_recv expected salt!\n"); ret = -1; goto cleanup; } - ret = wc_ecc_ctx_set_peer_salt(srvCtx, peerSalt); - if (ret != 0) { - printf("wc_ecc_ctx_set_peer_salt failed %d\n", ret); - goto cleanup; - } /* Send my salt */ + /* You must send mySalt before set_peer_salt, because buffer changes */ ret = btle_send(mySalt, EXCHANGE_SALT_SZ, BTLE_PKT_TYPE_SALT, devCtx); if (ret != EXCHANGE_SALT_SZ) { printf("btle_send salt failed %d!\n", ret); goto cleanup; } + ret = wc_ecc_ctx_set_peer_salt(srvCtx, peerSalt); + if (ret != 0) { + printf("wc_ecc_ctx_set_peer_salt failed %d\n", ret); + goto cleanup; + } + /* Get message */ bufferSz = sizeof(buffer); ret = btle_recv(buffer, bufferSz, &type, devCtx);