This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

OOB works with MCP but fails with nRF Connect

Hi,

I'm doing some tests with Legacy OOB and I made it work with Master Control Panel 3.10.0.14, but when I try with
nRF Connect v2.6.2 it fails. I know MCP is not supported anymore but I need to know what is happening before I decide to use OOB in our application.

In MCP I use the options:

  • No keyboard or display
  • Out of Band authentication support Enabled

and I get the following log when I bond:

[16:16:12.7] Connected to C1DA7A3F433C
[16:16:12.7] SERVER: Received packet <HciEvent: eventCode=0x05> - <HciEvent: eventCode=0x05>
[16:16:18.7] BondToDevice()
[16:16:27.8] Encryption change: Link encryption is ON
[16:16:27.8] SERVER: Received packet <HciEvent: eventCode=0x0B> - <HciEvent: eventCode=0x0B>
[16:16:27.8] SERVER: Received Encryption Change Event
[16:16:27.9] SERVER: Received packet <class 'protocol.Att.AttReadByTypeRequest'> - [0x08, 0x01, 0x00, 0xFF, 0xFF, 0xA6, 0x2A]
[16:16:28.0] SERVER: Returned packet <class 'protocol.Att.AttErrorResponse'> - [0x01, 0x08, 0x01, 0x00, 0x0A]


With nRF Connect the following options are enabled:

  • No keyboard, no display
  • Enable MITM protection
  • Enable OOB data
  • Perform Bonding

When I click Pair and enter the 16 bytes key (the key is 0x01010101010101010101010101010101) I get no response on nRF connect and PM_EVT_CONN_SEC_FAILED on the firmware side.

I checked the return data on PM_EVT_CONN_SEC_FAILED and got this:

p_event->params.conn_sec_failed.error_src == 0
p_event->params.conn_sec_failed.procedure == 1
p_event->params.conn_sec_failed.error == 132 (0x84 - BLE_GAP_SEC_STATUS_CONFIRM_VALUE) 

Didn't find any answer about BLE_GAP_SEC_STATUS_CONFIRM_VALUE error but it looks like the same case here.


My problem looks similar to this one

I erased the whole flash, erased bond information in nRF Connect but it didn't help.

My configurations are the following (nRF52 Devkit as peripheral + nRF51 dongle):

  • SDK v15.3.0
  • s132_nrf52_6.1.1
  • GCC ARM Embedded 7.2018q2.update


param_register.bond           = true;
param_register.mitm           = true;
param_register.io_caps        = BLE_GAP_IO_CAPS_NONE;
param_register.oob            = true;
param_register.min_key_size   = 7;
param_register.max_key_size   = 16;
param_register.kdist_own.enc  = 1;
param_register.kdist_own.id   = 1;
param_register.kdist_peer.enc = 1;
param_register.kdist_peer.id  = 1; 



I also tried quickly with nRF Connect on Android and the result was the same (didn't see any input to enter the key though)

Files captured with sniffer for both MCP and nRFConnect:

mcp_success.pcapng

nrfconnect_fail.pcapng

What could be wrong?

Thank you

Parents Reply Children
Related