<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>nRF52832 pm_conn_secure() return 0x3002</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/90329/nrf52832-pm_conn_secure-return-0x3002</link><description>I have implemented bonding mechanism in nRF52832 firmware. But when I request nRF Connect to connect nRF52832 second time. nRF52832 pm_conn_secure() return 0x3002 and nRF Connect log message shows &amp;quot;authentication failed with status BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 26 Jul 2022 11:08:59 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/90329/nrf52832-pm_conn_secure-return-0x3002" /><item><title>RE: nRF52832 pm_conn_secure() return 0x3002</title><link>https://devzone.nordicsemi.com/thread/378690?ContentTypeID=1</link><pubDate>Tue, 26 Jul 2022 11:08:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3b59422e-05d2-4417-8588-cab9bb2718e6</guid><dc:creator>snowuyl</dc:creator><description>&lt;p&gt;Thanks for your comment!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52832 pm_conn_secure() return 0x3002</title><link>https://devzone.nordicsemi.com/thread/378687?ContentTypeID=1</link><pubDate>Tue, 26 Jul 2022 11:05:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0459b3ef-e1b7-40c8-a497-1ed686b4673f</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;If you use the dongle on the central side , there is a big chance that the dongle didn&amp;#39;t store bond information.&amp;nbsp;&lt;br /&gt;This will lead to the issue that the dongle will try to re-bond to the device on the next connection.&amp;nbsp;&lt;br /&gt;And if the device is already bonded, and if it has&amp;nbsp;&lt;span&gt;allow_repairing&amp;nbsp;= false, it will return&amp;nbsp;BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP&amp;nbsp;. Because a re-pair is not allowed.&amp;nbsp;&lt;br /&gt;So it&amp;#39;s correct to set&amp;nbsp;allow_repairing= true if your central device can&amp;#39;t store and reuse bond information.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Also , next time when you post your code/log, please put them into the Code section (Insert -&amp;gt; Code)&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Please try to use the example in the SDK as the referral&amp;nbsp;code. If you only do the same features as the example, you wouldn&amp;#39;t need to modify anything outside what implemented in the example.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52832 pm_conn_secure() return 0x3002</title><link>https://devzone.nordicsemi.com/thread/378610?ContentTypeID=1</link><pubDate>Tue, 26 Jul 2022 03:26:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5432da1a-b624-44ea-92d0-0313275ad454</guid><dc:creator>snowuyl</dc:creator><description>&lt;p&gt;When I changing .allow_repairing to true in handing PM_EVT_CONN_SEC_CONFIG_REQ event. When I restart nRF connect. nRF connect pop up Windows for user to enter passkey at fist time. And nRF connect doesn&amp;#39;t pop up Windows for user to enter passkey after second time. And no Authentication failed with status BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP issue. Is it good idea to change .allow_repairing to true?&lt;/p&gt;
&lt;p&gt;static void _pmEvtHandler(pm_evt_t const * pEvt) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch (pEvt-&amp;gt;evt_id) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case PM_EVT_CONN_SEC_CONFIG_REQ:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NRF_LOG_INFO(&amp;quot;PM_EVT_CONN_SEC_CONFIG_REQ\n&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Reject pairing request from an already bonded peer.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pm_conn_sec_config_t config = {.allow_repairing = true};&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pm_conn_sec_config_reply(pEvt-&amp;gt;conn_handle, &amp;amp;config);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;br /&gt;}&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52832 pm_conn_secure() return 0x3002</title><link>https://devzone.nordicsemi.com/thread/378607?ContentTypeID=1</link><pubDate>Tue, 26 Jul 2022 02:28:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9e5d7ce8-2010-4122-b30a-33ef573baeb5</guid><dc:creator>snowuyl</dc:creator><description>&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/no_5F00_nRF_5F00_sniffer.png" /&gt;&lt;/p&gt;
&lt;p&gt;I use nRF52840 dongle &lt;span&gt;on the central side. But Wireshark can&amp;#39;t find nRF sniffer. &lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52832 pm_conn_secure() return 0x3002</title><link>https://devzone.nordicsemi.com/thread/378605?ContentTypeID=1</link><pubDate>Tue, 26 Jul 2022 02:25:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dac71b92-9b72-401b-91cd-eed83d8be54b</guid><dc:creator>snowuyl</dc:creator><description>&lt;p&gt;Thanks for your help! I have fixed error 0x3002 by adding BLE_ERROR_INVALID_CONN_HANDLE checking before calling&amp;nbsp;&lt;span&gt;pm_conn_secure()&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;static void _securityRequestHandler(void* pContext) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (m_cur_conn_handle != BLE_CONN_HANDLE_INVALID) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; const ret_code_t errCode = pm_conn_secure(m_cur_conn_handle, false);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (errCode != NRF_SUCCESS) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NRF_LOG_WARNING(&amp;quot;pm_conn_secure() failed, errCode=0x%x\n&amp;quot;, errCode);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;But nRF Connect still can&amp;#39;t connect to nRF52832 device with &amp;quot;Authentication failed with status BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP&amp;quot;. Could you provide bonding example?&lt;/p&gt;
&lt;p&gt;nRF52832 log messages:&lt;/p&gt;
&lt;p&gt;0&amp;gt; &amp;lt;debug&amp;gt; nrf_ble_gatt: Requesting to update ATT MTU to 185 bytes on connection 0x0.&lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: PM_EVT_BONDED_PEER_CONNECTED&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: BLE_GAP_EVT_CONNECTED&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; app: state=1&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; nrf_ble_gatt: ATT MTU updated to 185 bytes on connection 0x0 (response).&lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; app: _securityRequestHandler&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; peer_manager: pm_conn_secure() e&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; peer_manager_sm: sm_link_secure() e&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; peer_manager_sm: link_secure() e&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; peer_manager_smd: smd_link_secure() e&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; peer_manager_smd: smd_link_secure() e&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; peer_manager_smd: link_secure_authenticate() e&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; peer_manager_smd: link_secure_authenticate() return 0x0&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; peer_manager_smd: smd_link_secure() return 0x0&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; peer_manager_sm: link_secure() return 0x0&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; peer_manager_sm: pm_conn_secure() return 0x0&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;warning&amp;gt; peer_manager: pm_conn_secure() return 0x0&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; peer_manager_smd: smd_params_reply() e&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: PM_EVT_CONN_SEC_CONFIG_REQ&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; peer_manager_smd: smd_params_reply() BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP 2&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; peer_manager_smd: smd_params_reply() return 0x0&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: BLE_GAP_EVT_SEC_PARAMS_REQUEST&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: PM_EVT_CONN_SEC_FAILED&lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: Faield to secure connection with handle 00&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: BLE_GAP_EVT_AUTH_STATUS&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;warning&amp;gt; app: sd_ble_gap_disconnect() failed, errCode=0x3002&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: BLE_GAP_EVT_DISCONNECTED&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; app: _gFstorageState=0&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; app: state=0&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;nRF Connect log messages:&lt;/p&gt;
&lt;p&gt;nRF5x&lt;br /&gt;F0:92:AF:29:DA:F8&lt;br /&gt;Generic Access&lt;br /&gt;Generic Attribute&lt;br /&gt;10:42:15.236&amp;nbsp;&amp;nbsp; &amp;nbsp;Using nrf-device-lib-js version: 0.4.11&lt;br /&gt;10:42:15.236&amp;nbsp;&amp;nbsp; &amp;nbsp;Using nrf-device-lib version: 0.11.8&lt;br /&gt;10:42:15.237&amp;nbsp;&amp;nbsp; &amp;nbsp;Using nrfjprog DLL version: 10.15.4&lt;br /&gt;10:42:15.237&amp;nbsp;&amp;nbsp; &amp;nbsp;Using JLink version: JLink_V7.66a&lt;br /&gt;10:42:15.260&amp;nbsp;&amp;nbsp; &amp;nbsp;Installed JLink version does not match the provided version (V7.58b)&lt;br /&gt;10:42:15.434&amp;nbsp;&amp;nbsp; &amp;nbsp;Updated list of uuids with data from &lt;a href="https://github.com/NordicSemiconductor/bluetooth-numbers-database/tree/master/v1"&gt;github.com/.../v1&lt;/a&gt;&lt;br /&gt;10:42:17.650&amp;nbsp;&amp;nbsp; &amp;nbsp;Selected device with s/n F092AF29DAF8&lt;br /&gt;10:42:17.657&amp;nbsp;&amp;nbsp; &amp;nbsp;Device setup completed&lt;br /&gt;10:42:17.658&amp;nbsp;&amp;nbsp; &amp;nbsp;Connectivity firmware version: ble-connectivity 4.1.4+Mar-11-2021-08-36-04. SoftDevice API version: 5. Baud rate: 1000000.&lt;br /&gt;10:42:17.658&amp;nbsp;&amp;nbsp; &amp;nbsp;Opening adapter connected to COM5&lt;br /&gt;10:42:18.592&amp;nbsp;&amp;nbsp; &amp;nbsp;Successfully opened COM5. Baud rate: 1000000. Flow control: none. Parity: none.&lt;br /&gt;10:42:18.594&amp;nbsp;&amp;nbsp; &amp;nbsp;Reset performed on adapter COM5&lt;br /&gt;10:42:19.662&amp;nbsp;&amp;nbsp; &amp;nbsp;Adapter connected to COM5 opened&lt;br /&gt;10:42:21.285&amp;nbsp;&amp;nbsp; &amp;nbsp;Scan started&lt;br /&gt;10:42:28.131&amp;nbsp;&amp;nbsp; &amp;nbsp;Connecting to device&lt;br /&gt;10:42:30.949&amp;nbsp;&amp;nbsp; &amp;nbsp;Connected to device E8:20:9F:75:90:08: interval: 7.5ms, timeout: 4000ms, latency: 0&lt;br /&gt;10:42:30.973&amp;nbsp;&amp;nbsp; &amp;nbsp;ATT MTU updated for device E8:20:9F:75:90:08, new value is 185&lt;br /&gt;10:42:31.231&amp;nbsp;&amp;nbsp; &amp;nbsp;Attribute value read, handle: 0x03, value (0x): 41-4E-43-53-32&lt;br /&gt;10:42:32.469&amp;nbsp;&amp;nbsp; &amp;nbsp;Authentication failed with status BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP&lt;br /&gt;10:42:32.492&amp;nbsp;&amp;nbsp; &amp;nbsp;Disconnected from device E8:20:9F:75:90:08, reason: BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52832 pm_conn_secure() return 0x3002</title><link>https://devzone.nordicsemi.com/thread/378539?ContentTypeID=1</link><pubDate>Mon, 25 Jul 2022 12:35:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a96a785c-3a5d-4e8c-9210-b5bfc8b39c78</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Error 0x3002 means&amp;nbsp;BLE_ERROR_INVALID_CONN_HANDLE .&amp;nbsp;&lt;br /&gt;Please&amp;nbsp;check how&amp;nbsp;&lt;span&gt;pm_conn_secure() is called.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I&amp;#39;ve noticed that you have opened quite a few support cases regarding the same issue on pairing. Please try to focus on one ticket.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I would suggest to study the example and make as few modification as possible.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Which device you used on the central side ?&amp;nbsp;&lt;br /&gt;Please try to capture a &lt;a href="https://www.nordicsemi.com/Products/Development-tools/nRF-Sniffer-for-Bluetooth-LE"&gt;sniffer trace.&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52832 pm_conn_secure() return 0x3002</title><link>https://devzone.nordicsemi.com/thread/378497?ContentTypeID=1</link><pubDate>Mon, 25 Jul 2022 09:14:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6d941be5-5b9b-4c51-a204-d315deb63f04</guid><dc:creator>snowuyl</dc:creator><description>&lt;p&gt;I found sec_status is set to BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP in smd_params_reply(). So nRF Connect shows &amp;quot;Authentication failed with status BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP&amp;quot;.&lt;/p&gt;
&lt;p&gt;log messages.&lt;/p&gt;
&lt;p&gt;# SEGGER J-Link RTT Viewer V6.32i Terminal Log File&lt;br /&gt;# Compiled: 15:22:50 on Jul 24 2018&lt;br /&gt;# Logging started @ 25 Jul 2022 17:00:50&lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: Version 1.0.0&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: ========| flash info |========&lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: erase unit:&amp;nbsp;&amp;nbsp; 4096 bytes&lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: program unit: 4 bytes&lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: end address: 0x7FFFF&lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: ==============================&lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app_timer: RTC: initialized.&lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; app: NOR_DATA_PERIOD=819&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; app: NOR_RECORD_PERIOD=8192&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: bsp_button_longkey_handler 0.&lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;warning&amp;gt; app: Battery volage 222mV is too low&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;warning&amp;gt; app: Battery volage 42mV is too low&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;warning&amp;gt; app: Battery volage 0mV is too low&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: POWER_ON.&lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: External devices initializing start&lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: External devices initializing finish&lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: bsp_button_longkey_handler 1.&lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; nrf_ble_gatt: Requesting to update ATT MTU to 185 bytes on connection 0x0.&lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: PM_EVT_BONDED_PEER_CONNECTED&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: BLE_GAP_EVT_CONNECTED&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; app: state=1&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; nrf_ble_gatt: ATT MTU updated to 185 bytes on connection 0x0 (response).&lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; peer_manager_smd: smd_params_reply() e&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: PM_EVT_CONN_SEC_CONFIG_REQ&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; peer_manager_smd: smd_params_reply() BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP 2&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; peer_manager_smd: smd_params_reply() return 0x0&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: BLE_GAP_EVT_SEC_PARAMS_REQUEST&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: PM_EVT_CONN_SEC_FAILED&lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: Faield to secure connection with handle 00&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: BLE_GAP_EVT_AUTH_STATUS&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;warning&amp;gt; app: sd_ble_gap_disconnect() failed, errCode=0x3002&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;info&amp;gt; app: BLE_GAP_EVT_DISCONNECTED&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; app: state=0&lt;br /&gt;&amp;nbsp;0&amp;gt; &lt;br /&gt;&amp;nbsp;0&amp;gt; &amp;lt;debug&amp;gt; app: _securityRequestHandler&lt;br /&gt;&amp;nbsp;0&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;ret_code_t smd_params_reply(uint16_t&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn_handle,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ble_gap_sec_params_t&amp;nbsp;&amp;nbsp; * p_sec_params,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ble_gap_lesc_p256_pk_t * p_public_key)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NRF_LOG_DEBUG(&amp;quot;smd_params_reply() e\n&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NRF_PM_DEBUG_CHECK(m_module_initialized);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; role&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ble_conn_state_role(conn_handle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret_code_t&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; err_code&amp;nbsp;&amp;nbsp; = NRF_SUCCESS;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sec_status = BLE_GAP_SEC_STATUS_SUCCESS;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ble_gap_sec_keyset_t sec_keyset;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; memset(&amp;amp;sec_keyset, 0, sizeof(ble_gap_sec_keyset_t));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (role == BLE_GAP_ROLE_PERIPH)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set the default value for allowing repairing at the start of the sec proc. (for peripheral)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ble_conn_state_user_flag_set(conn_handle, m_flag_allow_repairing, false);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (role == BLE_GAP_ROLE_INVALID)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return BLE_ERROR_INVALID_CONN_HANDLE;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;#if PM_RA_PROTECTION_ENABLED&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ast_peer_blacklisted(conn_handle)) //Check for repeated attempts here.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sec_status = BLE_GAP_SEC_STATUS_REPEATED_ATTEMPTS;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;#endif // PM_RA_PROTECTION_ENABLED&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (p_sec_params == NULL)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // NULL params means reject pairing.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sec_status = BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NRF_LOG_DEBUG(&amp;quot;smd_params_reply() BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP 1\n&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((im_peer_id_get_by_conn_handle(conn_handle) != PM_PEER_ID_INVALID) &amp;amp;&amp;amp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (role == BLE_GAP_ROLE_PERIPH) &amp;amp;&amp;amp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !allow_repairing(conn_handle))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Bond already exists. Reject the pairing request if the user doesn&amp;#39;t intervene.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; send_config_req(conn_handle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!allow_repairing(conn_handle))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Reject pairing.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sec_status = BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NRF_LOG_DEBUG(&amp;quot;smd_params_reply() BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP 2\n&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!p_sec_params-&amp;gt;bond)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Pairing, no bonding.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sec_keyset.keys_own.p_pk&amp;nbsp; = p_public_key;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sec_keyset.keys_peer.p_pk = &amp;amp;m_peer_pk;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (sec_status != BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Bonding is to be performed, prepare to receive bonding data.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; err_code = sec_keyset_fill(conn_handle, role, p_public_key, &amp;amp;sec_keyset);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (err_code == NRF_SUCCESS)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Everything OK, reply to SoftDevice. If an error happened, the user is given an&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // opportunity to change the parameters and retry the call.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (role == BLE_GAP_ROLE_PERIPH)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; err_code = sd_ble_gap_sec_params_reply(conn_handle, sec_status, p_sec_params, &amp;amp;sec_keyset);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; err_code = sd_ble_gap_sec_params_reply(conn_handle, sec_status, NULL, &amp;amp;sec_keyset);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NRF_LOG_DEBUG(&amp;quot;smd_params_reply() return 0x%x\n&amp;quot;, err_code);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return err_code;&lt;br /&gt;}&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52832 pm_conn_secure() return 0x3002</title><link>https://devzone.nordicsemi.com/thread/378467?ContentTypeID=1</link><pubDate>Mon, 25 Jul 2022 05:49:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ce8ba9d7-abce-48ee-a533-22d98a09708a</guid><dc:creator>snowuyl</dc:creator><description>&lt;p&gt;int main(void) {&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; timerInit();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; peerManagerInit();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gapParamsInit();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; services_init();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; advertisingInit();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn_params_init();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#define SECURITY_REQUEST_PERIOD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; APP_TIMER_TICKS(2500)&lt;br /&gt;&lt;br /&gt;int timerInit(void) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret_code_t errCode = app_timer_create(&amp;amp;_gSecRequestTimerID, APP_TIMER_MODE_SINGLE_SHOT, _securityRequestHandler);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (errCode != NRF_SUCCESS) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NRF_LOG_WARNING(&amp;quot;app_timer_create(_gSecRequestTimerID) failed\n&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ERROR_TIMER_CREATE_FAIL;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _gTimerSecRequestRunning&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = false;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int timerSecRequestStart(void) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!_gTimerSecRequestRunning) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; const ret_code_t errCode = app_timer_start(_gSecRequestTimerID, SECURITY_REQUEST_PERIOD, NULL);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (errCode != NRF_SUCCESS) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NRF_LOG_WARNING(&amp;quot;app_timer_start(_gSecRequestTimerID) failed\n&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ERROR_TIMER_START_FAIL;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _gTimerSecRequestRunning = true;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;static void ble_evt_handler(ble_evt_t const* pBleEvt, void* pContext)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret_code_t errCode = NRF_SUCCESS;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch (pBleEvt-&amp;gt;header.evt_id)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case BLE_GAP_EVT_CONNECTED:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NRF_LOG_INFO(&amp;quot;BLE_GAP_EVT_CONNECTED\n&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BLE_UART_SetState(BLE_NUS_STATE_CONNECT);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errCode = bsp_indication_set(BSP_INDICATE_CONNECTED);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (errCode != NRF_SUCCESS) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NRF_LOG_WARNING(&amp;quot;bsp_indication_set() failed, errCode=0x%x\n&amp;quot;, errCode);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_cur_conn_handle = pBleEvt-&amp;gt;evt.gap_evt.conn_handle;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errCode = nrf_ble_qwr_conn_handle_assign(&amp;amp;m_qwr, m_cur_conn_handle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (errCode != NRF_SUCCESS) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NRF_LOG_WARNING(&amp;quot;nrf_ble_qwr_conn_handle_assign() failed, errCode=0x%x\n&amp;quot;, errCode);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;#if PASSKEY_ENABLED&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ble_gap_sec_params_t secParam;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; securityParametersGet(&amp;amp;secParam);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //secParam.bond&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = SEC_PARAM_BOND;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //secParam.mitm&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = SEC_PARAM_MITM;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errCode = sd_ble_gap_authenticate(m_cur_conn_handle, &amp;amp;secParam);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (errCode != NRF_SUCCESS) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NRF_LOG_WARNING(&amp;quot;sd_ble_gap_authenticate() failed, errCode=0x%x\n&amp;quot;, errCode);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;#endif&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case BLE_GAP_EVT_DISCONNECTED:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NRF_LOG_INFO(&amp;quot;BLE_GAP_EVT_DISCONNECTED\n&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fstorageGetState() == FSTORAGE_STATE_ERASED) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fstorageWaitUpdateRecordFinish();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BLE_UART_SetState(BLE_NUS_STATE_DISCONNECT);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_cur_conn_handle = BLE_CONN_HANDLE_INVALID;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case BLE_GAP_EVT_SEC_PARAMS_REQUEST:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NRF_LOG_INFO(&amp;quot;BLE_GAP_EVT_SEC_PARAMS_REQUEST\n&amp;quot;);&lt;br /&gt;#if 0&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ble_gap_sec_params_t secParam;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; securityParametersGet(&amp;amp;secParam);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errCode = sd_ble_gap_sec_params_reply(m_cur_conn_handle,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BLE_GAP_SEC_STATUS_SUCCESS,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;secParam,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NULL);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((errCode != NRF_SUCCESS) &amp;amp;&amp;amp; (errCode != NRF_ERROR_INVALID_STATE)) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NRF_LOG_WARNING(&amp;quot;sd_ble_gap_sec_params_reply() failed, errCode=0x%x\n&amp;quot;, errCode);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;#endif&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case BLE_GAP_EVT_AUTH_STATUS:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NRF_LOG_INFO(&amp;quot;BLE_GAP_EVT_AUTH_STATUS\n&amp;quot;);&lt;br /&gt;#if PASSKEY_ENABLED&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (pBleEvt-&amp;gt;evt.gap_evt.params.auth_status.auth_status != BLE_GAP_SEC_STATUS_SUCCESS) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errCode = sd_ble_gap_disconnect(m_cur_conn_handle,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (errCode != NRF_SUCCESS) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NRF_LOG_WARNING(&amp;quot;sd_ble_gap_disconnect() failed, errCode=0x%x\n&amp;quot;, errCode);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;#endif&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; default:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // No implementation needed.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52832 pm_conn_secure() return 0x3002</title><link>https://devzone.nordicsemi.com/thread/378466?ContentTypeID=1</link><pubDate>Mon, 25 Jul 2022 05:48:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:51d7c6dc-9fb5-47ca-8a96-f59d56c82e71</guid><dc:creator>snowuyl</dc:creator><description>&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/1018.security.c"&gt;devzone.nordicsemi.com/.../1018.security.c&lt;/a&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/8865.gap.h"&gt;devzone.nordicsemi.com/.../8865.gap.h&lt;/a&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/6712.gap.c"&gt;devzone.nordicsemi.com/.../6712.gap.c&lt;/a&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/5226.security.h"&gt;devzone.nordicsemi.com/.../5226.security.h&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF52832 pm_conn_secure() return 0x3002</title><link>https://devzone.nordicsemi.com/thread/378465?ContentTypeID=1</link><pubDate>Mon, 25 Jul 2022 05:47:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6a87e751-38b2-4ded-904e-3c3200d0cf84</guid><dc:creator>snowuyl</dc:creator><description>&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/8507.passkey_5F00_request_5F00_2nd.png" alt=" " /&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/7002.passkey_5F00_request_5F00_1st.png" alt=" " /&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/security_5F00_parameters.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>