BLE OOB - pairing/bonding - local-oob - HCI UART Zephyr issue?
Hi all, Carles,
During the last months I have been doing a lot of research in BLE technologies.
Finally for implementing our use case we came up with the following BLE architecture:
- a Linux embedded device (with Linux Kernel V4.20), more precise a BBB to be used as demonstrator platform before moving to a board with iMX6, running a BLE central application based on the QT BLE framework, as BLE connectivity HW, a Nordic nRF52 DK board is used that runs the RTOS Zephyr (V1.13) HCI_UART SW stack. So between both board there is a HCI_UART connection.
- as demonstrator BLE peripheral I'm using another nRF52 DK board that runs the Zephyr HR peripheral sample applic.
So the BLE central application written in QT C++, monitors the heart rate value that is simulated by the HR peripheral application.
So far so good...
However I'm now trying to add security to the BLE architecture.
So far QT BLE doesn't explicitly implement any security for a BLE implementation, in other words no QT API is available (yet?).
My idea is to implement the BLE pairing outside the QT framework as it is not supported via QT.
However I'm struggling with a number of "things" and possible concepts of OOB when doing the pairing process.
I would love to implement OOB as SSP with possible NFC as method for exchanging OOB info.
BlueZ on Linux offers a tool like btmgmt.
The idea is before starting implementing code based on this tool or the Bluetooth mgmt socket, to do some fast prototyping with this btmgmt tool in a shell.
However when I run the btmgmt local-oob, I get this output:
So it seems for some reason the HCI stack does not support this.
Could this be related to the Zephyr HCI_UART implementation?
Any help on this topic is very welcome.
More information on the "demonstrator" setup I'm trying to implement is described here:
I would really love to stick to all these technologies (Zephyr/QT BLE/BlueZ) in our BLE design.
The nRF52 (DK) with the Zephyr as BLE connectivity and as standalone unit for running a peripheral applic based on Zephyr is awesome.