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="693px" preserveAspectRatio="none" style="width:1841px;height:693px;" version="1.1" viewBox="0 0 1841 693" width="1841px" zoomAndPan="magnify"><defs><filter height="300%" id="f14als4nudxgwt" 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="386" x="726.5" y="26.708">Mandatory Authentication in Central Role</text><ellipse cx="821.5625" cy="40.9531" fill="#000000" filter="url(#f14als4nudxgwt)" rx="10" ry="10" style="stroke:none;stroke-width:1.0;"/><rect fill="#FEFECE" filter="url(#f14als4nudxgwt)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="385" x="629.0625" y="70.9531"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="361" x="643.0625" y="92.0918">App calls gatt_client_set_required_security_level (level &gt; 0)</text><rect fill="#FEFECE" filter="url(#f14als4nudxgwt)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="166" x="738.5625" y="124.9219"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="142" x="752.5625" y="146.0605">App on A connects to B</text><rect fill="#FEFECE" filter="url(#f14als4nudxgwt)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="254" x="694.5625" y="178.8906"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="230" x="708.5625" y="200.0293">App on A triggers GATT Client request</text><rect fill="#FEFECE" filter="url(#f14als4nudxgwt)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="173" x="735.0625" y="232.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="749.0625" y="253.998">GATT Client request sent</text><polygon fill="#FEFECE" filter="url(#f14als4nudxgwt)" points="780.5625,286.8281,862.5625,286.8281,874.5625,298.8281,862.5625,310.8281,780.5625,310.8281,768.5625,298.8281,780.5625,286.8281" style="stroke:#A80036;stroke-width:1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="82" x="780.5625" y="302.6362">LTK available?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="21" x="747.5625" y="296.2339">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="874.5625" y="296.2339">no</text><rect fill="#FEFECE" filter="url(#f14als4nudxgwt)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="235" x="282.5" y="320.8281"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="296.5" y="341.9668">SM_EVENT_REENCRYPTION_STARTED</text><rect fill="#FEFECE" filter="url(#f14als4nudxgwt)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="119" x="340.5" y="374.7969"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="354.5" y="395.9355">start encryption</text><polygon fill="#FEFECE" filter="url(#f14als4nudxgwt)" points="363,428.7656,437,428.7656,449,440.7656,437,452.7656,363,452.7656,351,440.7656,363,428.7656" style="stroke:#A80036;stroke-width:1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="363" y="444.5737">re-encrypted</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="21" x="330" y="438.1714">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="449" y="438.1714">no</text><rect fill="#FEFECE" filter="url(#f14als4nudxgwt)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="393" x="11" y="462.7656"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="369" x="25" y="483.9043">SM_EVENT_REENCRYPTION_COMPLETE(ERROR_CODE_SUCCESS)</text><rect fill="#FEFECE" filter="url(#f14als4nudxgwt)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="173" x="121" y="516.7344"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="135" y="537.873">GATT Client request sent</text><rect fill="#23DB2B" filter="url(#f14als4nudxgwt)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="204" x="105.5" y="585.7031"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="180" x="119.5" y="606.8418">App receives GATT Response</text><ellipse cx="207.5" cy="665.6719" fill="#FFFFFF" filter="url(#f14als4nudxgwt)" rx="11" ry="11" style="stroke:#000000;stroke-width:1.0;"/><ellipse cx="207.5" cy="665.6719" fill="#000000" rx="6" ry="6" style="stroke:#7F7F7F;stroke-width:1.0;"/><rect fill="#FEFECE" filter="url(#f14als4nudxgwt)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="284" x="450.5" y="462.7656"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="260" x="464.5" y="483.9043">SM_EVENT_REENCRYPTION_COMPLETE(error)</text><rect fill="#FD5B41" filter="url(#f14als4nudxgwt)" height="47.9375" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="337" x="424" y="516.7344"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="267" x="438" y="537.873">App receives GATT_QUERY_COMPLETE event</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="297" x="454" y="551.8418">with ATT_ERROR_BONDING_INFORMATION_MISSING</text><ellipse cx="592.5" cy="610.6719" fill="#FFFFFF" filter="url(#f14als4nudxgwt)" rx="11" ry="11" style="stroke:#000000;stroke-width:1.0;"/><ellipse cx="592.5" cy="610.6719" fill="#000000" rx="6" ry="6" style="stroke:#7F7F7F;stroke-width:1.0;"/><rect fill="#FEFECE" filter="url(#f14als4nudxgwt)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="194" x="1146.125" y="320.8281"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="170" x="1160.125" y="341.9668">SM_EVENT_PAIRING_STARTED</text><rect fill="#FEFECE" filter="url(#f14als4nudxgwt)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="96" x="1195.125" y="374.7969"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="72" x="1209.125" y="395.9355">start pairing</text><polygon fill="#FEFECE" filter="url(#f14als4nudxgwt)" points="1196.625,428.7656,1289.625,428.7656,1301.625,440.7656,1289.625,452.7656,1196.625,452.7656,1184.625,440.7656,1196.625,428.7656" style="stroke:#A80036;stroke-width:1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="93" x="1196.625" y="444.5737">pairing success?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="21" x="1163.625" y="438.1714">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1301.625" y="438.1714">no</text><rect fill="#FEFECE" filter="url(#f14als4nudxgwt)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="352" x="801" y="462.7656"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="328" x="815" y="483.9043">SM_EVENT_PAIRING_COMPLETE(ERROR_CODE_SUCCESS)</text><rect fill="#FEFECE" filter="url(#f14als4nudxgwt)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="173" x="890.5" y="516.7344"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="904.5" y="537.873">GATT Client request sent</text><rect fill="#23DB2B" filter="url(#f14als4nudxgwt)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="204" x="875" y="585.7031"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="180" x="889" y="606.8418">App receives GATT Response</text><ellipse cx="977" cy="665.6719" fill="#FFFFFF" filter="url(#f14als4nudxgwt)" rx="11" ry="11" style="stroke:#000000;stroke-width:1.0;"/><ellipse cx="977" cy="665.6719" fill="#000000" rx="6" ry="6" style="stroke:#7F7F7F;stroke-width:1.0;"/><rect fill="#FEFECE" filter="url(#f14als4nudxgwt)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="243" x="1387.75" y="462.7656"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="219" x="1401.75" y="483.9043">SM_EVENT_PAIRING_COMPLETE(error)</text><polygon fill="#FEFECE" filter="url(#f14als4nudxgwt)" points="1478.25,516.7344,1540.25,516.7344,1552.25,528.7344,1540.25,540.7344,1478.25,540.7344,1466.25,528.7344,1478.25,516.7344" style="stroke:#A80036;stroke-width:1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="62" x="1478.25" y="532.5425">level &gt;= 3</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="21" x="1445.25" y="526.1401">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1552.25" y="526.1401">no</text><rect fill="#FD5B41" filter="url(#f14als4nudxgwt)" height="47.9375" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="322" x="1183" y="550.7344"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="267" x="1197" y="571.873">App receives GATT_QUERY_COMPLETE event</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="286" x="1209" y="585.8418">with ATT_ERROR_INSUFFICIENT_AUTHENTICATION</text><ellipse cx="1344" cy="644.6719" fill="#FFFFFF" filter="url(#f14als4nudxgwt)" rx="11" ry="11" style="stroke:#000000;stroke-width:1.0;"/><ellipse cx="1344" cy="644.6719" fill="#000000" rx="6" ry="6" style="stroke:#7F7F7F;stroke-width:1.0;"/><rect fill="#FD5B41" filter="url(#f14als4nudxgwt)" height="47.9375" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="299" x="1525" y="550.7344"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="267" x="1539" y="571.873">App receives GATT_QUERY_COMPLETE event</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="259" x="1551" y="585.8418">with ATT_ERROR_INSUFFICIENT_ENCRYPTION;</text><ellipse cx="1674.5" cy="644.6719" fill="#FFFFFF" filter="url(#f14als4nudxgwt)" rx="11" ry="11" style="stroke:#000000;stroke-width:1.0;"/><ellipse cx="1674.5" cy="644.6719" fill="#000000" rx="6" ry="6" style="stroke:#7F7F7F;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="821.5625" x2="821.5625" y1="50.9531" y2="70.9531"/><polygon fill="#A80036" points="817.5625,60.9531,821.5625,70.9531,825.5625,60.9531,821.5625,64.9531" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="821.5625" x2="821.5625" y1="104.9219" y2="124.9219"/><polygon fill="#A80036" points="817.5625,114.9219,821.5625,124.9219,825.5625,114.9219,821.5625,118.9219" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="821.5625" x2="821.5625" y1="158.8906" y2="178.8906"/><polygon fill="#A80036" points="817.5625,168.8906,821.5625,178.8906,825.5625,168.8906,821.5625,172.8906" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="821.5625" x2="821.5625" y1="212.8594" y2="232.8594"/><polygon fill="#A80036" points="817.5625,222.8594,821.5625,232.8594,825.5625,222.8594,821.5625,226.8594" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="400" x2="400" y1="354.7969" y2="374.7969"/><polygon fill="#A80036" points="396,364.7969,400,374.7969,404,364.7969,400,368.7969" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="207.5" x2="207.5" y1="496.7344" y2="516.7344"/><polygon fill="#A80036" points="203.5,506.7344,207.5,516.7344,211.5,506.7344,207.5,510.7344" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="207.5" x2="207.5" y1="550.7031" y2="585.7031"/><polygon fill="#A80036" points="203.5,575.7031,207.5,585.7031,211.5,575.7031,207.5,579.7031" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="207.5" x2="207.5" y1="619.6719" y2="654.6719"/><polygon fill="#A80036" points="203.5,644.6719,207.5,654.6719,211.5,644.6719,207.5,648.6719" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="592.5" x2="592.5" y1="496.7344" y2="516.7344"/><polygon fill="#A80036" points="588.5,506.7344,592.5,516.7344,596.5,506.7344,592.5,510.7344" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="592.5" x2="592.5" y1="564.6719" y2="599.6719"/><polygon fill="#A80036" points="588.5,589.6719,592.5,599.6719,596.5,589.6719,592.5,593.6719" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="351" x2="207.5" y1="440.7656" y2="440.7656"/><line style="stroke:#A80036;stroke-width:1.5;" x1="207.5" x2="207.5" y1="440.7656" y2="462.7656"/><polygon fill="#A80036" points="203.5,452.7656,207.5,462.7656,211.5,452.7656,207.5,456.7656" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="449" x2="592.5" y1="440.7656" y2="440.7656"/><line style="stroke:#A80036;stroke-width:1.5;" x1="592.5" x2="592.5" y1="440.7656" y2="462.7656"/><polygon fill="#A80036" points="588.5,452.7656,592.5,462.7656,596.5,452.7656,592.5,456.7656" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="400" x2="400" y1="408.7656" y2="428.7656"/><polygon fill="#A80036" points="396,418.7656,400,428.7656,404,418.7656,400,422.7656" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1243.125" x2="1243.125" y1="354.7969" y2="374.7969"/><polygon fill="#A80036" points="1239.125,364.7969,1243.125,374.7969,1247.125,364.7969,1243.125,368.7969" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="977" x2="977" y1="496.7344" y2="516.7344"/><polygon fill="#A80036" points="973,506.7344,977,516.7344,981,506.7344,977,510.7344" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="977" x2="977" y1="550.7031" y2="585.7031"/><polygon fill="#A80036" points="973,575.7031,977,585.7031,981,575.7031,977,579.7031" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="977" x2="977" y1="619.6719" y2="654.6719"/><polygon fill="#A80036" points="973,644.6719,977,654.6719,981,644.6719,977,648.6719" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1344" x2="1344" y1="598.6719" y2="633.6719"/><polygon fill="#A80036" points="1340,623.6719,1344,633.6719,1348,623.6719,1344,627.6719" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1674.5" x2="1674.5" y1="598.6719" y2="633.6719"/><polygon fill="#A80036" points="1670.5,623.6719,1674.5,633.6719,1678.5,623.6719,1674.5,627.6719" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1466.25" x2="1344" y1="528.7344" y2="528.7344"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1344" x2="1344" y1="528.7344" y2="550.7344"/><polygon fill="#A80036" points="1340,540.7344,1344,550.7344,1348,540.7344,1344,544.7344" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1552.25" x2="1674.5" y1="528.7344" y2="528.7344"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1674.5" x2="1674.5" y1="528.7344" y2="550.7344"/><polygon fill="#A80036" points="1670.5,540.7344,1674.5,550.7344,1678.5,540.7344,1674.5,544.7344" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1509.25" x2="1509.25" y1="496.7344" y2="516.7344"/><polygon fill="#A80036" points="1505.25,506.7344,1509.25,516.7344,1513.25,506.7344,1509.25,510.7344" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1184.625" x2="977" y1="440.7656" y2="440.7656"/><line style="stroke:#A80036;stroke-width:1.5;" x1="977" x2="977" y1="440.7656" y2="462.7656"/><polygon fill="#A80036" points="973,452.7656,977,462.7656,981,452.7656,977,456.7656" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1301.625" x2="1509.25" y1="440.7656" y2="440.7656"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1509.25" x2="1509.25" y1="440.7656" y2="462.7656"/><polygon fill="#A80036" points="1505.25,452.7656,1509.25,462.7656,1513.25,452.7656,1509.25,456.7656" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1243.125" x2="1243.125" y1="408.7656" y2="428.7656"/><polygon fill="#A80036" points="1239.125,418.7656,1243.125,428.7656,1247.125,418.7656,1243.125,422.7656" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="768.5625" x2="400" y1="298.8281" y2="298.8281"/><line style="stroke:#A80036;stroke-width:1.5;" x1="400" x2="400" y1="298.8281" y2="320.8281"/><polygon fill="#A80036" points="396,310.8281,400,320.8281,404,310.8281,400,314.8281" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="874.5625" x2="1243.125" y1="298.8281" y2="298.8281"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1243.125" x2="1243.125" y1="298.8281" y2="320.8281"/><polygon fill="#A80036" points="1239.125,310.8281,1243.125,320.8281,1247.125,310.8281,1243.125,314.8281" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="821.5625" x2="821.5625" y1="266.8281" y2="286.8281"/><polygon fill="#A80036" points="817.5625,276.8281,821.5625,286.8281,825.5625,276.8281,821.5625,280.8281" style="stroke:#A80036;stroke-width:1.0;"/><!--MD5=[a6b8d5a73938eed40047714615eda317]
2@startuml
3title Mandatory Authentication in Central Role
4start
5: App calls gatt_client_set_required_security_level (level > 0);
6: App on A connects to B;
7: App on A triggers GATT Client request;
8: GATT Client request sent;
9if (LTK available?) then (yes)
10   : SM_EVENT_REENCRYPTION_STARTED;
11   : start encryption;
12   if (re-encrypted) then (yes)
13     : SM_EVENT_REENCRYPTION_COMPLETE(ERROR_CODE_SUCCESS);
14     : GATT Client request sent;
15     #23DB2B : App receives GATT Response;
16     stop
17  else (no)
18     : SM_EVENT_REENCRYPTION_COMPLETE(error);
19     #FD5B41: App receives GATT_QUERY_COMPLETE event
20          with ATT_ERROR_BONDING_INFORMATION_MISSING;
21     stop
22  endif
23else (no)
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 sent;
29     #23DB2B : App receives GATT Response;
30     stop
31  else (no)
32    : SM_EVENT_PAIRING_COMPLETE(error);
33    if (level >= 3) then (yes)
34      #FD5B41: App receives GATT_QUERY_COMPLETE event
35          with ATT_ERROR_INSUFFICIENT_AUTHENTICATION;
36      stop
37    else (no)
38      #FD5B41: App receives GATT_QUERY_COMPLETE event
39          with ATT_ERROR_INSUFFICIENT_ENCRYPTION;
40      stop
41    endif
42  endif
43@enduml
44
45PlantUML version 1.2020.22beta2(Unknown compile time)
46(GPL source distribution)
47Java Runtime: Java(TM) SE Runtime Environment
48JVM: Java HotSpot(TM) 64-Bit Server VM
49Default Encoding: UTF-8
50Language: en
51Country: US
52--></g></svg>