1 of 1 people found this helpful
After power cycling , when you connected with CySmart, did you click pair button on CySmart GUI?
Please note, if you paired and bonded once, you don't have to go through entire pairing process again. Can you please confirm how you checked there is no protection after power cycling?
Can you please share the project which you are testing to check the implementation?
Thank you for your quick response. However, I must apologize because after taking another look this morning, I find that I am receiving the subject events. I guess I just spent too many hours at the keyboard without a break.
I am receiving and properly responding to BTM_LOCAL_IDENTITY_KEYS_REQUEST_EVT events. There are no ***KEYS_UPDATE_EVT events because I am restoring the local keys from NV memory. I missed the ***KEYS_REQUEST_EVT events because I was using the HCI UART for tracing to BTSpy which I did not connect to the CYW20719 until after reset and initialization processing were complete and the REQUEST_EVT event occurs very early in the startup process.
In answer to your first two questions:
1. Yes, I am clicking the Pair button in CySmart after connection is successful.
2. I do know that I don't have to repeat the entire pairing process once the two devices are bonded. In fact, I expect that. I also expect that the pairing after a reconnect should be at the same level as the initial pairing (authenticated or unauthenticated).
Your third question is the crux of the matter: Can you please confirm how you checked there is no protection after power cycling?
On getting a BTM_ENCRYPTION_STATUS_EVT event, I call wiced_bt_ble_get_security_state() with the p_event_data->encryption_status.bd_addr. I check the security flags returned by this function to see if the BTM_SEC_LE_LINK_PAIRED_WITH_MITM bit is set (passkey was entered at initial pairing). This bit is set after initial pairing and subsequent re-connects and re-pairs. But after a reset or power cycle of the CYW20719, this bit is cleared after doing a re-connect and re-pair using previously saved keys.
Is there some other way for my application to test if a pairing was authenticated with a passkey?