apache / apache/mynewt-nimble

Allow setting non-default IRK

Open
#887 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
893
Forks
512
Avg merge
13d 31m
Merged PRs (30d)
7

Description

hi! I'm from the [MicroPython](https://github.com/micropython/micropython) project, where we use NimBLE as our BLE stack (on top of a few different HCI controllers). I've recently been doing some work with pairing & bonding, and seem to be missing something important -- I can't see a way to not use the default IRK ble_hs_pvcy_default_irk.

ble_hs_pvcy_set_our_irk is in a private header (ble_hs_pvcy_priv.h), and even if it wasn't there's no way to avoid it already being called at startup (ble_hs_startup_go calls ble_hs_pvcy_set_our_irk(NULL))

But even if do use ble_hs_pvcy_set_our_irk is in a private header (ble_hs_pvcy_priv.h), and even if it wasn't there's no way to avoid it already being called at startup to re-set it in sync_cb or somewhere, then now all the peer IRK entries loaded from my key store will be thrown away, so I'd have to call ble_hs_misc_restore_irks to re-load them. But that's also in a private header.

I notice in #517 there's a reference to "setting a custom IRK". I'm not sure what the mechanism to set a custom IRK is, but in our case (MicroPython) this should ideally be able to be generated and set at runtime (i.e. not a syscfg option).

How are other NimBLE implementors using a non-default IRK in their devices? Thanks!

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by tracing ble_hs_startup_go and ble_hs_pvcy_set_our_irk in ble_hs_pvcy_priv.h, then inspect ble_hs_misc_restore_irks and the startup ordering described in the issue. Done should provide a supported runtime way to set a non-default IRK without losing peer IRK entries.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
embedded-iot, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.