Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

pc-ble-driver support for BLE Privacy

The current pc-ble-driver (https://github.com/NordicSemiconductor/pc-ble-driver) does not seem to support the SoC Library API of a Softdevice  e.g. S130 (https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s130.api.v2.0.1/group__nrf__soc__api.html).

Support for Function sd_ecb_block_encrypt() would suffice to resolve RPAs (Resolvable Private Address) as it is done by the SDK Peer Manager Library (see id_manager.c e.g. SDK12.3.0) and add partly BLE Privacy support thru pc-ble-driver.

Anyone working in that direction?

Parents
  • Hi,

    The reason why only the "real" SoftDevice calls are serialized (and not the SoC API calls) is that since there is no SoftDevice running locally on the application chip you can access the hardware directly without restriction.

    You will find that a couple of SoC API calls are implemented in app_mw_nrf_soc.c, and sd_ecb_block_encrypt() is one of them. They are run locally instead of being serialized. This lets you run higher level libraries such as Peer Manager, which may expect SoC access through the SoftDevice.

    For an example of using Peer Manager in a serialized application, see the HRS example at examples/ble_peripheral/ble_app_hrs/pca10040/ser_s132_uart

    Or am I missing the point here?.

    Regards,
    Terje

  • Sorry, I was not clear enough.

    The idea is to have tests running from a PC. The central device being an nRF Dongle or DK running the nRF5 SoftDevice serialization firmware. The test object being a peripheral device. The test code accesses the Softdevice thru pc-ble-driver API and models a central device, i.e. scans and connects to the peripheral device.

    So, if the central wants to resolve RPAs, the sd_ecb_block_encrypt() should be accessible somehow to the PC to handle resolving RPAs.

    Is there a way for code running on a PC to be able to resolve RPAs?

Reply
  • Sorry, I was not clear enough.

    The idea is to have tests running from a PC. The central device being an nRF Dongle or DK running the nRF5 SoftDevice serialization firmware. The test object being a peripheral device. The test code accesses the Softdevice thru pc-ble-driver API and models a central device, i.e. scans and connects to the peripheral device.

    So, if the central wants to resolve RPAs, the sd_ecb_block_encrypt() should be accessible somehow to the PC to handle resolving RPAs.

    Is there a way for code running on a PC to be able to resolve RPAs?

Children
No Data
Related