We are using an nRF52840 running SoftDevice Controller (SDC) in a custom Host + Controller architecture:
-
SDC runs on nRF52840 as the Bluetooth LE Controller.
-
Our firmware on nRF52840 implements the HCI transport.
-
An external Host (non‑Nordic) runs the Bluetooth Host stack and communicates with SDC via HCI.
We need detailed clarification on how LE Secure Connections (LE SC) and SMP are intended to be handled in this setup.
-
SMP and LE SC responsibilities
-
Is the full LE SMP state machine (including LE Secure Connections) implemented inside SDC in this HCI‑controller configuration, or is SMP expected to be implemented entirely on the Host?
-
Are ECC P‑256 key generation and ECDH DHKey computation performed internally by SDC, or must the Host perform these operations?
-
Are the LE SC cryptographic functions (f4, f5, f6, g2, etc.) and LTK generation handled inside SDC, or are they Host responsibilities?
-
In short: when SDC is used purely as an HCI controller, is LE Secure Connections fully managed by SDC, or by the Host?
-
-
IO Capability and OOB configuration
-
We do not see SDC HCI APIs such as
sdc_hci_cmd_io_capability_reply()orsdc_hci_cmd_le_set_oob_data()in the nrfxlib SDC HCI API index.[SDC HCI API] -
How should the Host respond to IO Capability Request and configure IO capabilities when using SDC as an HCI controller?
-
How should we provide OOB Confirm and Random values for LE Secure Connections OOB pairing in this architecture? Which specific SDC HCI commands (if any) are intended for LE SC OOB data provisioning?
-
-
DHKey access
-
Is it possible for the Host to request generation of the ECDH DHKey via HCI and read the DHKey value, or is DHKey computation strictly internal to SDC and never exposed over HCI in this configuration?
-
-
SMP PDU handling over L2CAP
-
If SDC implements SMP internally, should the Host avoid handling SMP PDUs over L2CAP and treat the link as “already secured” based on HCI events?
-
Or is the intended model that the Host implements the full SMP over L2CAP, and SDC only provides lower‑level LE encryption primitives via HCI (e.g.,
LE Enable Encryption,LE Long Term Key Request Reply/Negative Reply, etc.)?[HCI LE cmds]
-
Our goal is to understand the officially supported and recommended division of responsibilities between SDC and an external Host for:
-
LE Secure Connections (Just Works / Passkey / Numeric Comparison)
-
LE SC OOB pairing
-
SMP PDU handling and key management
so that we can implement our Host side correctly and remain compliant with Nordic’s intended SDC usage.
Please provide:
-
A clear statement of which parts of LE SC/SMP are implemented in SDC vs. expected on the Host in HCI mode.
-
The list of HCI commands/events that should be used for LE SC and OOB pairing in this architecture.
-
Any relevant application notes or documentation links that describe this Host + SDC‑as‑HCI‑controller model.