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 > 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 >= 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>