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="747px" preserveAspectRatio="none" style="width:1841px;height:747px;" version="1.1" viewBox="0 0 1841 747" width="1841px" zoomAndPan="magnify"><defs><filter height="300%" id="ficsatr1k5q0d" 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="414" x="712.5" y="26.708">Mandatory Authentication in Peripheral Role</text><ellipse cx="821.5625" cy="40.9531" fill="#000000" filter="url(#ficsatr1k5q0d)" rx="10" ry="10" style="stroke:none;stroke-width:1.0;"/><rect fill="#FEFECE" filter="url(#ficsatr1k5q0d)" 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(#ficsatr1k5q0d)" 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 B connects to A</text><rect fill="#FEFECE" filter="url(#ficsatr1k5q0d)" 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(#ficsatr1k5q0d)" 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(#ficsatr1k5q0d)" 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(#ficsatr1k5q0d)" 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(#ficsatr1k5q0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="233" x="283.5" y="374.7969"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="209" x="297.5" y="395.9355">SM on A sends SECURITY REQUEST</text><rect fill="#FEFECE" filter="url(#ficsatr1k5q0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="330" x="235" y="428.7656"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="306" x="249" y="449.9043">SM on B should encrypt connection if LTK available</text><polygon fill="#FEFECE" filter="url(#ficsatr1k5q0d)" points="363,482.7344,437,482.7344,449,494.7344,437,506.7344,363,506.7344,351,494.7344,363,482.7344" style="stroke:#A80036;stroke-width:1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="363" y="498.5425">re-encrypted</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="21" x="330" y="492.1401">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="449" y="492.1401">no</text><rect fill="#FEFECE" filter="url(#ficsatr1k5q0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="393" x="11" y="516.7344"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="369" x="25" y="537.873">SM_EVENT_REENCRYPTION_COMPLETE(ERROR_CODE_SUCCESS)</text><rect fill="#FEFECE" filter="url(#ficsatr1k5q0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="173" x="121" y="570.7031"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="135" y="591.8418">GATT Client request sent</text><rect fill="#23DB2B" filter="url(#ficsatr1k5q0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="204" x="105.5" y="639.6719"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="180" x="119.5" y="660.8105">App receives GATT Response</text><ellipse cx="207.5" cy="719.6406" fill="#FFFFFF" filter="url(#ficsatr1k5q0d)" rx="11" ry="11" style="stroke:#000000;stroke-width:1.0;"/><ellipse cx="207.5" cy="719.6406" fill="#000000" rx="6" ry="6" style="stroke:#7F7F7F;stroke-width:1.0;"/><rect fill="#FEFECE" filter="url(#ficsatr1k5q0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="284" x="450.5" y="516.7344"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="260" x="464.5" y="537.873">SM_EVENT_REENCRYPTION_COMPLETE(error)</text><rect fill="#FD5B41" filter="url(#ficsatr1k5q0d)" height="47.9375" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="337" x="424" y="570.7031"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="267" x="438" y="591.8418">App receives GATT_QUERY_COMPLETE event</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="297" x="454" y="605.8105">with ATT_ERROR_BONDING_INFORMATION_MISSING</text><ellipse cx="592.5" cy="664.6406" fill="#FFFFFF" filter="url(#ficsatr1k5q0d)" rx="11" ry="11" style="stroke:#000000;stroke-width:1.0;"/><ellipse cx="592.5" cy="664.6406" fill="#000000" rx="6" ry="6" style="stroke:#7F7F7F;stroke-width:1.0;"/><rect fill="#FEFECE" filter="url(#ficsatr1k5q0d)" 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(#ficsatr1k5q0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="233" x="1126.625" y="374.7969"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="209" x="1140.625" y="395.9355">SM on A sends SECURITY REQUEST</text><rect fill="#FEFECE" filter="url(#ficsatr1k5q0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="279" x="1103.625" y="428.7656"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="255" x="1117.625" y="449.9043">SM on B should perform pairing sequence</text><polygon fill="#FEFECE" filter="url(#ficsatr1k5q0d)" points="1196.625,482.7344,1289.625,482.7344,1301.625,494.7344,1289.625,506.7344,1196.625,506.7344,1184.625,494.7344,1196.625,482.7344" 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="498.5425">pairing success?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="21" x="1163.625" y="492.1401">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1301.625" y="492.1401">no</text><rect fill="#FEFECE" filter="url(#ficsatr1k5q0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="352" x="801" y="516.7344"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="328" x="815" y="537.873">SM_EVENT_PAIRING_COMPLETE(ERROR_CODE_SUCCESS)</text><rect fill="#FEFECE" filter="url(#ficsatr1k5q0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="173" x="890.5" y="570.7031"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="149" x="904.5" y="591.8418">GATT Client request sent</text><rect fill="#23DB2B" filter="url(#ficsatr1k5q0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="204" x="875" y="639.6719"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="180" x="889" y="660.8105">App receives GATT Response</text><ellipse cx="977" cy="719.6406" fill="#FFFFFF" filter="url(#ficsatr1k5q0d)" rx="11" ry="11" style="stroke:#000000;stroke-width:1.0;"/><ellipse cx="977" cy="719.6406" fill="#000000" rx="6" ry="6" style="stroke:#7F7F7F;stroke-width:1.0;"/><rect fill="#FEFECE" filter="url(#ficsatr1k5q0d)" height="33.9688" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="243" x="1387.75" y="516.7344"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="219" x="1401.75" y="537.873">SM_EVENT_PAIRING_COMPLETE(error)</text><polygon fill="#FEFECE" filter="url(#ficsatr1k5q0d)" points="1478.25,570.7031,1540.25,570.7031,1552.25,582.7031,1540.25,594.7031,1478.25,594.7031,1466.25,582.7031,1478.25,570.7031" 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="586.5112">level &gt;= 3</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="21" x="1445.25" y="580.1089">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="1552.25" y="580.1089">no</text><rect fill="#FD5B41" filter="url(#ficsatr1k5q0d)" height="47.9375" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="322" x="1183" y="604.7031"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="267" x="1197" y="625.8418">App receives GATT_QUERY_COMPLETE event</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="286" x="1209" y="639.8105">with ATT_ERROR_INSUFFICIENT_AUTHENTICATION</text><ellipse cx="1344" cy="698.6406" fill="#FFFFFF" filter="url(#ficsatr1k5q0d)" rx="11" ry="11" style="stroke:#000000;stroke-width:1.0;"/><ellipse cx="1344" cy="698.6406" fill="#000000" rx="6" ry="6" style="stroke:#7F7F7F;stroke-width:1.0;"/><rect fill="#FD5B41" filter="url(#ficsatr1k5q0d)" height="47.9375" rx="12.5" ry="12.5" style="stroke:#A80036;stroke-width:1.5;" width="299" x="1525" y="604.7031"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="267" x="1539" y="625.8418">App receives GATT_QUERY_COMPLETE event</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="259" x="1551" y="639.8105">with ATT_ERROR_INSUFFICIENT_ENCRYPTION;</text><ellipse cx="1674.5" cy="698.6406" fill="#FFFFFF" filter="url(#ficsatr1k5q0d)" rx="11" ry="11" style="stroke:#000000;stroke-width:1.0;"/><ellipse cx="1674.5" cy="698.6406" 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="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="207.5" x2="207.5" y1="550.7031" y2="570.7031"/><polygon fill="#A80036" points="203.5,560.7031,207.5,570.7031,211.5,560.7031,207.5,564.7031" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="207.5" x2="207.5" y1="604.6719" y2="639.6719"/><polygon fill="#A80036" points="203.5,629.6719,207.5,639.6719,211.5,629.6719,207.5,633.6719" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="207.5" x2="207.5" y1="673.6406" y2="708.6406"/><polygon fill="#A80036" points="203.5,698.6406,207.5,708.6406,211.5,698.6406,207.5,702.6406" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="592.5" x2="592.5" y1="550.7031" y2="570.7031"/><polygon fill="#A80036" points="588.5,560.7031,592.5,570.7031,596.5,560.7031,592.5,564.7031" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="592.5" x2="592.5" y1="618.6406" y2="653.6406"/><polygon fill="#A80036" points="588.5,643.6406,592.5,653.6406,596.5,643.6406,592.5,647.6406" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="351" x2="207.5" y1="494.7344" y2="494.7344"/><line style="stroke:#A80036;stroke-width:1.5;" x1="207.5" x2="207.5" y1="494.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="449" x2="592.5" y1="494.7344" y2="494.7344"/><line style="stroke:#A80036;stroke-width:1.5;" x1="592.5" x2="592.5" y1="494.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="400" x2="400" y1="462.7344" y2="482.7344"/><polygon fill="#A80036" points="396,472.7344,400,482.7344,404,472.7344,400,476.7344" 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="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="977" x2="977" y1="550.7031" y2="570.7031"/><polygon fill="#A80036" points="973,560.7031,977,570.7031,981,560.7031,977,564.7031" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="977" x2="977" y1="604.6719" y2="639.6719"/><polygon fill="#A80036" points="973,629.6719,977,639.6719,981,629.6719,977,633.6719" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="977" x2="977" y1="673.6406" y2="708.6406"/><polygon fill="#A80036" points="973,698.6406,977,708.6406,981,698.6406,977,702.6406" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1344" x2="1344" y1="652.6406" y2="687.6406"/><polygon fill="#A80036" points="1340,677.6406,1344,687.6406,1348,677.6406,1344,681.6406" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1674.5" x2="1674.5" y1="652.6406" y2="687.6406"/><polygon fill="#A80036" points="1670.5,677.6406,1674.5,687.6406,1678.5,677.6406,1674.5,681.6406" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1466.25" x2="1344" y1="582.7031" y2="582.7031"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1344" x2="1344" y1="582.7031" y2="604.7031"/><polygon fill="#A80036" points="1340,594.7031,1344,604.7031,1348,594.7031,1344,598.7031" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1552.25" x2="1674.5" y1="582.7031" y2="582.7031"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1674.5" x2="1674.5" y1="582.7031" y2="604.7031"/><polygon fill="#A80036" points="1670.5,594.7031,1674.5,604.7031,1678.5,594.7031,1674.5,598.7031" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1509.25" x2="1509.25" y1="550.7031" y2="570.7031"/><polygon fill="#A80036" points="1505.25,560.7031,1509.25,570.7031,1513.25,560.7031,1509.25,564.7031" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1184.625" x2="977" y1="494.7344" y2="494.7344"/><line style="stroke:#A80036;stroke-width:1.5;" x1="977" x2="977" y1="494.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="1301.625" x2="1509.25" y1="494.7344" y2="494.7344"/><line style="stroke:#A80036;stroke-width:1.5;" x1="1509.25" x2="1509.25" y1="494.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="1243.125" x2="1243.125" y1="462.7344" y2="482.7344"/><polygon fill="#A80036" points="1239.125,472.7344,1243.125,482.7344,1247.125,472.7344,1243.125,476.7344" 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=[552fa1f141c8705399591c18484ec6d1]
2@startuml
3title Mandatory Authentication in Peripheral Role
4start
5: App calls gatt_client_set_required_security_level (level > 0);
6: App on B connects to A;
7: App on A triggers GATT Client request;
8: GATT Client request sent;
9if (LTK available?) then (yes)
10   : SM_EVENT_REENCRYPTION_STARTED;
11   : SM on A sends SECURITY REQUEST;
12   : SM on B should encrypt connection if LTK available;
13   if (re-encrypted) then (yes)
14     : SM_EVENT_REENCRYPTION_COMPLETE(ERROR_CODE_SUCCESS);
15     : GATT Client request sent;
16     #23DB2B : App receives GATT Response;
17     stop
18  else (no)
19     : SM_EVENT_REENCRYPTION_COMPLETE(error);
20     #FD5B41: App receives GATT_QUERY_COMPLETE event
21          with ATT_ERROR_BONDING_INFORMATION_MISSING;
22     stop
23  endif
24else (no)
25  : SM_EVENT_PAIRING_STARTED;
26  : SM on A sends SECURITY REQUEST;
27  : SM on B should perform pairing sequence;
28  if (pairing success?) then (yes)
29     : SM_EVENT_PAIRING_COMPLETE(ERROR_CODE_SUCCESS);
30     : GATT Client request sent;
31     #23DB2B : App receives GATT Response;
32     stop
33  else (no)
34    : SM_EVENT_PAIRING_COMPLETE(error);
35    if (level >= 3) then (yes)
36      #FD5B41: App receives GATT_QUERY_COMPLETE event
37          with ATT_ERROR_INSUFFICIENT_AUTHENTICATION;
38      stop
39    else (no)
40      #FD5B41: App receives GATT_QUERY_COMPLETE event
41          with ATT_ERROR_INSUFFICIENT_ENCRYPTION;
42      stop
43    endif
44  endif
45@enduml
46
47PlantUML version 1.2020.22beta2(Unknown compile time)
48(GPL source distribution)
49Java Runtime: Java(TM) SE Runtime Environment
50JVM: Java HotSpot(TM) 64-Bit Server VM
51Default Encoding: UTF-8
52Language: en
53Country: US
54--></g></svg>