Hi all I've recently started a new project that requires to do multiple bonding and its kind of pushed my knowledge of the CSR framework to the limits. I do my best to gleem as much information from the examples but sometimes I just end up with more questions!
So this is a good example,
First my application is a peripheral mode (just confirming).
So when a central (smartphone in this case) connects to my application the first we do is check whether there is bonding info available, if not my application then allows the bonding to begin.
Once the bonding is complete (SM_SIMPLE_PAIRING_COMPLETE_IND) I then store the all the bonding information that is delivered via: SM_KEYS_IND into NVM.
When the central(smartphone) reconnects I can use the divisfier to check the integritey of the bonded device but I would expect the fw to request the LTK probably via: SM_KEY_REQUEST_IND
And to go with this I also found SMKeyRequestResponse()
This allows the application to pass the sm keys back to the FW to encrpt the link thiss a lot of sense to me.
However it doesnt! its like the csr fw has already stored the LTK and other keys relating the bond somewhere else. I never do any of this yet the encryption still works!! how does the FW know what keys to use and more to the point what is the point of having these functions if the FW doesnt need them?
And where is this information store!!!! I dont have any control over it and with multiple bonding going on I need some control!
Ive also failed to find an example application using this case SM_KEY_REQUEST_IND.
I need some help here