This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2745P10-Q1: Add custom functionality to the bonding process

Part Number: CC2745P10-Q1
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Hi, Ti

I previously asked a question about how to control bonding via API, which required removing the GAPBondMgr and implementing it by calling GAP_Authenticate and GAP_Bond instead.

The link is as follows:https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1507314/cc2745r10-q1-how-can-i-control-the-bonding-process

However, after internal discussions, we are now considering whether we can retain the GAPBondMgr and use your existing logic, but insert our own authentication process after connection establishment and before bonding—only allowing bonding to proceed if authentication succeeds. Would this implementation be possible? Specifically, how can we intercept the bonding procedure to pause it for custom authentication, then resume bonding only upon successful verification?

Best regards

Preston

  • Hello,

    After reading the old thread and the information you've provided here, I believe I understand the use-case better, my apologies for not suggesting this earlier!

    However, after internal discussions, we are now considering whether we can retain the GAPBondMgr and use your existing logic, but insert our own authentication process after connection establishment and before bonding—only allowing bonding to proceed if authentication succeeds.

    Though, I should mention that bonding only occurs if pairing was successful to begin with, and from our documentation:

    Bonding can enabled or disabled for any type of pairing through the GAPBOND_BONDING_ENABLED parameter, and occurs after the pairing process is complete

    Bonding cannot occur if the pairing process did not complete successfully, since there would be no keys to store. Additionally, if the device is in the central role, you can specify a Bond Fail Action: 

    However, if you wanted to pair, then have some custom authentication, and if that is complete then bond, you could do the following:

    The method would be to disable bonding initially. You'd need to go into your sysconfig file and uncheck the Bonding flag. You may also want to change the Pairing Mode to wait for pairing request, so that you can do whatever custom authentication you like before the pairing is initiated (though this isn't required). 

    Once the devices have paired but not bonded, you can use GAPBondMgr_setParameter to re-enable bonding, and then call GAPBondMgr_Pair to re-encrypt and bond.

    The last method would be to use Out-Of-Band pairing.

    Hope that helps! 

    Best,

    Nima Behmanesh

  • Hi, Nima

    I will proceed with the debugging and verification using the method you recommended. For now, I'll mark this issue as resolved. Should any further questions arise, I'll provide additional details. Thank you for your support!

    Best regards

    Preston