1<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1096px" preserveAspectRatio="none" style="width:1428px;height:1096px;" version="1.1" viewBox="0 0 1428 1096" width="1428px" zoomAndPan="magnify"><defs><filter height="300%" id="fr2kl6r8w9m30" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="366" x="530.25" y="26.708">Reactive Authentication in Central Role</text><ellipse cx="1004.1875" cy="40.9531" fill="#000000" filter="url(#fr2kl6r8w9m30)" rx="10" ry="10" style="stroke:none;stroke-width:1.0;"/><rect fill="#FEFECE" filter="url(#fr2kl6r8w9m30)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="166" x="921.1875" y="70.9531"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="142" x="935.1875" y="92.0918">App on A connects to B</text><rect fill="#FEFECE" filter="url(#fr2kl6r8w9m30)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="254" x="877.1875" y="124.9219"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="230" x="891.1875" y="146.0605">App on A triggers GATT Client request</text><rect fill="#FEFECE" filter="url(#fr2kl6r8w9m30)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="173" x="917.6875" y="178.8906"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="931.6875" y="200.0293">GATT Client request sent</text><polygon fill="#FEFECE" filter="url(#fr2kl6r8w9m30)" points="835.6875,232.8594,1172.6875,232.8594,1184.6875,244.8594,1172.6875,256.8594,835.6875,256.8594,823.6875,244.8594,835.6875,232.8594" style="stroke:#A80036;stroke-width:1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="337" x="835.6875" y="248.6675">GATT Server returns an ATT_ERROR_INSUFFICIENT_X error?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="21" x="802.6875" y="242.2651">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1184.6875" y="242.2651">no</text><polygon fill="#FEFECE" filter="url(#fr2kl6r8w9m30)" points="583.875,266.8594,813.875,266.8594,825.875,278.8594,813.875,290.8594,583.875,290.8594,571.875,278.8594,583.875,266.8594" style="stroke:#A80036;stroke-width:1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="230" x="583.875" y="282.6675">ENABLE_GATT_CLIENT_PAIRING defined?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="21" x="550.875" y="276.2651">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="825.875" y="276.2651">no</text><rect fill="#FEFECE" filter="url(#fr2kl6r8w9m30)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="235" x="269.25" y="349.2617"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="283.25" y="370.4004">SM_EVENT_REENCRYPTION_STARTED</text><rect fill="#FEFECE" filter="url(#fr2kl6r8w9m30)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="119" x="327.25" y="418.2305"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="341.25" y="439.3691">start encryption</text><polygon fill="#FEFECE" filter="url(#fr2kl6r8w9m30)" points="349.75,472.1992,423.75,472.1992,435.75,484.1992,423.75,496.1992,349.75,496.1992,337.75,484.1992,349.75,472.1992" style="stroke:#A80036;stroke-width:1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="349.75" y="488.0073">re-encrypted</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="21" x="316.75" y="481.605">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="435.75" y="481.605">no</text><rect fill="#FEFECE" filter="url(#fr2kl6r8w9m30)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="393" x="11" y="506.1992"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="369" x="25" y="527.3379">SM_EVENT_REENCRYPTION_COMPLETE(ERROR_CODE_SUCCESS)</text><rect fill="#FEFECE" filter="url(#fr2kl6r8w9m30)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="191" x="112" y="560.168"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="167" x="126" y="581.3066">GATT Client request re-sent</text><rect fill="#23DB2B" filter="url(#fr2kl6r8w9m30)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="204" x="105.5" y="614.1367"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="180" x="119.5" y="635.2754">App receives GATT Response</text><ellipse cx="207.5" cy="679.1055" fill="#FFFFFF" filter="url(#fr2kl6r8w9m30)" rx="11" ry="11" style="stroke:#000000;stroke-width:1.0;"/><ellipse cx="207.5" cy="679.1055" fill="#000000" rx="6" ry="6" style="stroke:#7F7F7F;stroke-width:1.0;"/><rect fill="#FEFECE" filter="url(#fr2kl6r8w9m30)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="284" x="424" y="506.1992"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="260" x="438" y="527.3379">SM_EVENT_REENCRYPTION_COMPLETE(error)</text><rect fill="#FEFECE" filter="url(#fr2kl6r8w9m30)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="187" x="472.5" y="560.168"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="163" x="486.5" y="581.3066">delete bonding information</text><polygon fill="#FEFECE" filter="url(#fr2kl6r8w9m30)" points="345.75,300.8594,427.75,300.8594,439.75,312.8594,427.75,324.8594,345.75,324.8594,333.75,312.8594,345.75,300.8594" style="stroke:#A80036;stroke-width:1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="21" x="390.75" y="335.0698">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="82" x="345.75" y="316.6675">LTK available?</text><polygon fill="#FEFECE" filter="url(#fr2kl6r8w9m30)" points="386.75,710.1055,398.75,722.1055,386.75,734.1055,374.75,722.1055,386.75,710.1055" style="stroke:#A80036;stroke-width:1.5;"/><rect fill="#FEFECE" filter="url(#fr2kl6r8w9m30)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="194" x="289.75" y="754.1055"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="170" x="303.75" y="775.2441">SM_EVENT_PAIRING_STARTED</text><rect fill="#FEFECE" filter="url(#fr2kl6r8w9m30)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="96" x="338.75" y="808.0742"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="72" x="352.75" y="829.2129">start pairing</text><polygon fill="#FEFECE" filter="url(#fr2kl6r8w9m30)" points="340.25,862.043,433.25,862.043,445.25,874.043,433.25,886.043,340.25,886.043,328.25,874.043,340.25,862.043" style="stroke:#A80036;stroke-width:1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="93" x="340.25" y="877.8511">pairing success?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="21" x="307.25" y="871.4487">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="445.25" y="871.4487">no</text><rect fill="#FEFECE" filter="url(#fr2kl6r8w9m30)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="352" x="52" y="896.043"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="328" x="66" y="917.1816">SM_EVENT_PAIRING_COMPLETE(ERROR_CODE_SUCCESS)</text><rect fill="#FEFECE" filter="url(#fr2kl6r8w9m30)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="191" x="132.5" y="950.0117"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="167" x="146.5" y="971.1504">GATT Client request re-sent</text><rect fill="#23DB2B" filter="url(#fr2kl6r8w9m30)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="204" x="126" y="1003.9805"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="180" x="140" y="1025.1191">App receives GATT Response</text><ellipse cx="228" cy="1068.9492" fill="#FFFFFF" filter="url(#fr2kl6r8w9m30)" rx="11" ry="11" style="stroke:#000000;stroke-width:1.0;"/><ellipse cx="228" cy="1068.9492" fill="#000000" rx="6" ry="6" style="stroke:#7F7F7F;stroke-width:1.0;"/><rect fill="#FEFECE" filter="url(#fr2kl6r8w9m30)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="243" x="424" y="896.043"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="219" x="438" y="917.1816">SM_EVENT_PAIRING_COMPLETE(error)</text><rect fill="#FD5B41" filter="url(#fr2kl6r8w9m30)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="223" x="434" y="950.0117"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="199" x="448" y="971.1504">App receives a GATT Client error</text><ellipse cx="545.5" cy="1014.9805" fill="#FFFFFF" filter="url(#fr2kl6r8w9m30)" rx="11" ry="11" style="stroke:#000000;stroke-width:1.0;"/><ellipse cx="545.5" cy="1014.9805" fill="#000000" rx="6" ry="6" style="stroke:#7F7F7F;stroke-width:1.0;"/><rect fill="#FD5B41" filter="url(#fr2kl6r8w9m30)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="333" x="844.5" y="300.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="309" x="858.5" y="321.998">ATT_QUERY_COMPLETE(ATT_ERROR_INSUFFICIENT_X)</text><path d="M760,369.8281 L760,410.0938 A0,0 0 0 0 760,410.0938 L980,410.0938 A0,0 0 0 0 980,410.0938 L980,393.9609 L1000,389.9609 L980,385.9609 L980,379.8281 L970,369.8281 L760,369.8281 A0,0 0 0 0 760,369.8281 " fill="#FBFB77" filter="url(#fr2kl6r8w9m30)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M970,369.8281 L970,379.8281 L980,379.8281 L970,369.8281 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="173" x="766" y="386.895">App can trigger pairing and</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="199" x="766" y="402.0278">repeat the GATT Client request</text><ellipse cx="1011" cy="389.9609" fill="#FFFFFF" filter="url(#fr2kl6r8w9m30)" rx="11" ry="11" style="stroke:#000000;stroke-width:1.0;"/><ellipse cx="1011" cy="389.9609" fill="#000000" rx="6" ry="6" style="stroke:#7F7F7F;stroke-width:1.0;"/><rect fill="#23DB2B" filter="url(#fr2kl6r8w9m30)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="204" x="1207.5" y="266.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="180" x="1221.5" y="287.998">App receives GATT Response</text><ellipse cx="1309.5" cy="346.8281" fill="#FFFFFF" filter="url(#fr2kl6r8w9m30)" rx="11" ry="11" style="stroke:#000000;stroke-width:1.0;"/><ellipse cx="1309.5" cy="346.8281" fill="#000000" rx="6" ry="6" style="stroke:#7F7F7F;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1004.1875" x2="1004.1875" y1="50.9531" y2="70.9531"/><polygon fill="#A80036" points="1000.1875,60.9531,1004.1875,70.9531,1008.1875,60.9531,1004.1875,64.9531" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1004.1875" x2="1004.1875" y1="104.9219" y2="124.9219"/><polygon fill="#A80036" points="1000.1875,114.9219,1004.1875,124.9219,1008.1875,114.9219,1004.1875,118.9219" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1004.1875" x2="1004.1875" y1="158.8906" y2="178.8906"/><polygon fill="#A80036" points="1000.1875,168.8906,1004.1875,178.8906,1008.1875,168.8906,1004.1875,172.8906" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="386.75" x2="386.75" y1="383.2305" y2="418.2305"/><polygon fill="#A80036" points="382.75,408.2305,386.75,418.2305,390.75,408.2305,386.75,412.2305" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="207.5" x2="207.5" y1="540.168" y2="560.168"/><polygon fill="#A80036" points="203.5,550.168,207.5,560.168,211.5,550.168,207.5,554.168" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="207.5" x2="207.5" y1="594.1367" y2="614.1367"/><polygon fill="#A80036" points="203.5,604.1367,207.5,614.1367,211.5,604.1367,207.5,608.1367" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="207.5" x2="207.5" y1="648.1055" y2="668.1055"/><polygon fill="#A80036" points="203.5,658.1055,207.5,668.1055,211.5,658.1055,207.5,662.1055" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="566" x2="566" y1="540.168" y2="560.168"/><polygon fill="#A80036" points="562,550.168,566,560.168,570,550.168,566,554.168" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="337.75" x2="207.5" y1="484.1992" y2="484.1992"/><line style="stroke:#A80036;stroke-width:1.5;" x1="207.5" x2="207.5" y1="484.1992" y2="506.1992"/><polygon fill="#A80036" points="203.5,496.1992,207.5,506.1992,211.5,496.1992,207.5,500.1992" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="435.75" x2="566" y1="484.1992" y2="484.1992"/><line style="stroke:#A80036;stroke-width:1.5;" x1="566" x2="566" y1="484.1992" y2="506.1992"/><polygon fill="#A80036" points="562,496.1992,566,506.1992,570,496.1992,566,500.1992" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="566" x2="566" y1="594.1367" y2="695.1055"/><line style="stroke:#A80036;stroke-width:1.5;" x1="566" x2="386.75" y1="695.1055" y2="695.1055"/><line style="stroke:#A80036;stroke-width:1.5;" x1="386.75" x2="386.75" y1="695.1055" y2="710.1055"/><polygon fill="#A80036" points="382.75,700.1055,386.75,710.1055,390.75,700.1055,386.75,704.1055" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="386.75" x2="386.75" y1="452.1992" y2="472.1992"/><polygon fill="#A80036" points="382.75,462.1992,386.75,472.1992,390.75,462.1992,386.75,466.1992" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="386.75" x2="386.75" y1="324.8594" y2="349.2617"/><polygon fill="#A80036" points="382.75,339.2617,386.75,349.2617,390.75,339.2617,386.75,343.2617" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="439.75" x2="728" y1="312.8594" y2="312.8594"/><polygon fill="#A80036" points="724,527.6836,728,537.6836,732,527.6836,728,531.6836" style="stroke:#A80036;stroke-width:1.5;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="728" x2="728" y1="312.8594" y2="722.1055"/><line style="stroke:#A80036;stroke-width:1.5;" x1="728" x2="398.75" y1="722.1055" y2="722.1055"/><polygon fill="#A80036" points="408.75,718.1055,398.75,722.1055,408.75,726.1055,404.75,722.1055" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="386.75" x2="386.75" y1="734.1055" y2="754.1055"/><polygon fill="#A80036" points="382.75,744.1055,386.75,754.1055,390.75,744.1055,386.75,748.1055" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="386.75" x2="386.75" y1="788.0742" y2="808.0742"/><polygon fill="#A80036" points="382.75,798.0742,386.75,808.0742,390.75,798.0742,386.75,802.0742" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="228" x2="228" y1="930.0117" y2="950.0117"/><polygon fill="#A80036" points="224,940.0117,228,950.0117,232,940.0117,228,944.0117" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="228" x2="228" y1="983.9805" y2="1003.9805"/><polygon fill="#A80036" points="224,993.9805,228,1003.9805,232,993.9805,228,997.9805" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="228" x2="228" y1="1037.9492" y2="1057.9492"/><polygon fill="#A80036" points="224,1047.9492,228,1057.9492,232,1047.9492,228,1051.9492" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="545.5" x2="545.5" y1="930.0117" y2="950.0117"/><polygon fill="#A80036" points="541.5,940.0117,545.5,950.0117,549.5,940.0117,545.5,944.0117" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="545.5" x2="545.5" y1="983.9805" y2="1003.9805"/><polygon fill="#A80036" points="541.5,993.9805,545.5,1003.9805,549.5,993.9805,545.5,997.9805" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="328.25" x2="228" y1="874.043" y2="874.043"/><line style="stroke:#A80036;stroke-width:1.5;" x1="228" x2="228" y1="874.043" y2="896.043"/><polygon fill="#A80036" points="224,886.043,228,896.043,232,886.043,228,890.043" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="445.25" x2="545.5" y1="874.043" y2="874.043"/><line style="stroke:#A80036;stroke-width:1.5;" x1="545.5" x2="545.5" y1="874.043" y2="896.043"/><polygon fill="#A80036" points="541.5,886.043,545.5,896.043,549.5,886.043,545.5,890.043" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="386.75" x2="386.75" y1="842.043" y2="862.043"/><polygon fill="#A80036" points="382.75,852.043,386.75,862.043,390.75,852.043,386.75,856.043" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1011" x2="1011" y1="334.8281" y2="378.9609"/><polygon fill="#A80036" points="1007,368.9609,1011,378.9609,1015,368.9609,1011,372.9609" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="571.875" x2="386.75" y1="278.8594" y2="278.8594"/><line style="stroke:#A80036;stroke-width:1.5;" x1="386.75" x2="386.75" y1="278.8594" y2="300.8594"/><polygon fill="#A80036" points="382.75,290.8594,386.75,300.8594,390.75,290.8594,386.75,294.8594" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="825.875" x2="1011" y1="278.8594" y2="278.8594"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1011" x2="1011" y1="278.8594" y2="300.8594"/><polygon fill="#A80036" points="1007,290.8594,1011,300.8594,1015,290.8594,1011,294.8594" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1309.5" x2="1309.5" y1="300.8281" y2="335.8281"/><polygon fill="#A80036" points="1305.5,325.8281,1309.5,335.8281,1313.5,325.8281,1309.5,329.8281" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="823.6875" x2="698.875" y1="244.8594" y2="244.8594"/><line style="stroke:#A80036;stroke-width:1.5;" x1="698.875" x2="698.875" y1="244.8594" y2="266.8594"/><polygon fill="#A80036" points="694.875,256.8594,698.875,266.8594,702.875,256.8594,698.875,260.8594" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1184.6875" x2="1309.5" y1="244.8594" y2="244.8594"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1309.5" x2="1309.5" y1="244.8594" y2="266.8594"/><polygon fill="#A80036" points="1305.5,256.8594,1309.5,266.8594,1313.5,256.8594,1309.5,260.8594" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1004.1875" x2="1004.1875" y1="212.8594" y2="232.8594"/><polygon fill="#A80036" points="1000.1875,222.8594,1004.1875,232.8594,1008.1875,222.8594,1004.1875,226.8594" style="stroke:#A80036;stroke-width:1.0;"/><!--MD5=[816ade61cc7c93607edea310a2513721] 2@startuml 3title Reactive Authentication in Central Role 4start 5: App on A connects to B; 6: App on A triggers GATT Client request; 7: GATT Client request sent; 8 9if (GATT Server returns an ATT_ERROR_INSUFFICIENT_X error?) then (yes) 10 if (ENABLE_GATT_CLIENT_PAIRING defined?) then (yes) 11 if (LTK available?) then (yes) 12 : SM_EVENT_REENCRYPTION_STARTED; 13 : start encryption; 14 if (re-encrypted) then (yes) 15 : SM_EVENT_REENCRYPTION_COMPLETE(ERROR_CODE_SUCCESS); 16 : GATT Client request re-sent; 17 #23DB2B : App receives GATT Response; 18 stop 19 else (no) 20 : SM_EVENT_REENCRYPTION_COMPLETE(error); 21 : delete bonding information; 22 endif 23 endif 24 : SM_EVENT_PAIRING_STARTED; 25 : start pairing; 26 if (pairing success?) then (yes) 27 : SM_EVENT_PAIRING_COMPLETE(ERROR_CODE_SUCCESS); 28 : GATT Client request re-sent; 29 #23DB2B : App receives GATT Response; 30 stop 31 else (no) 32 : SM_EVENT_PAIRING_COMPLETE(error); 33 #FD5B41 : App receives a GATT Client error; 34 stop 35 endif 36 else (no) 37 #FD5B41: ATT_QUERY_COMPLETE(ATT_ERROR_INSUFFICIENT_X); 38 stop 39 note left 40 App can trigger pairing and 41 repeat the GATT Client request 42 end note 43 endif 44else (no) 45 #23DB2B : App receives GATT Response; 46 stop 47endif 48@enduml 49 50PlantUML version 1.2020.22beta2(Unknown compile time) 51(GPL source distribution) 52Java Runtime: Java(TM) SE Runtime Environment 53JVM: Java HotSpot(TM) 64-Bit Server VM 54Default Encoding: UTF-8 55Language: en 56Country: US 57--></g></svg>