BTW, is there any document talk about the usage of APIs related to OOB setting?
Hi BCM support,
Please be patient and kindly read my words. I have told that I referred the discussion thread talked about OOB. Unfortunately the last reply mentioned the same problem like me here, even he used passkey pairing method and used lesmp_setJustWorksNotPermitted(). The BCM platform still wild open to just work connection. And the code I post here is referred from hello_sensor.c but it not work.
Of course I understand that the OOB key should be exchange "Out Of Band", and then set by lesmp_setSMPOOBdata().
My problem is suppose I enabled this feature then called lesmp_setJustWorksNotPermitted() and lesmp_setPasskeyEntryNotPermitted(), the JustWork connection method shouldn't not works. BUT it did still work under OOB is enabled and lesmp_setJustWorksNotPermitted() called! Why?
1. Should I add some libraries into makefile?
2. Should I include some headers?
3. Should I call some function in proper ways?
I meet the similar issue with you, mark!
Did you have a chance to move to SDK 2.2.1?
It seems there is no SDK2.2.1 for MAC OSX host systems, and I got lots of trouble when installing SDK2.2.1 under Windows 10, I also tried using Linux but got trouble for JAVA issue.... Um...I would like to try if you can provide me the suitable SDK 2.2.1.
After struggling through the JAVA installation, I tried SDK 2.2.1 under Linux, no luck. The device still allow JustWork connection. Things become critical now.
Hi BCM supports,
Please kindly test with your TAG and your example hello_sensor.c for the OOB or PassKey feature.
It seems not enough to do the code added in sensor_create() only. Looks like you should take care of smp_bonding_result(), connection_up() and encryptionChanged() functions.
But I can not find any document mention about it, please kindly ask your SDK developer ASAP. We do not like black magic.
Hi BCM support,
Here is what I want below:
Please provide the document about the below APIs: (No more black magic please.)
void lesmp_init(LESMP_INFO *pinfo);
void lesmp_setPtr(LESMP_INFO *pinfo);
void lesmp_setSMPRole(int role);
void lesmp_setPairingMode(LESMP_PAIRING_REQ *pkt );
void lesmp_calcLocalMConf(UINT8 *ptr);
void lesmp_calcMConf(UINT8 *key, UINT8 *rand);
void lesmp_verifySConf(UINT8 *key, UINT8 *rand);
int lesmp_startPairing(UINT8 *AuthReq);
void lesmp_sendConfirmation(UINT8 *pkt);
void lesmp_sendEncInfo( UINT8 *ltk );
void lesmp_sendMasterId( UINT8 *rand, UINT16 ediv );
void lesmp_sendIdInfo(UINT8 *irk );
void lesmp_sendIdAddrInfo(UINT8 *bdAddr, int type );
void lesmp_sendSigningInfo(UINT8 *csrk );
Hi BCM support,
I changed back to PASSKey feature and hope we can go smoothly, but it not. And I found it waste me a lot of time until I found the below thread:
So I think the PassKey and OOB pairing never success with BCM20737 platform. Now I just waiting for SDK 2.2.2.
firstname.lastname@example.org: This is the problem I told you that the OOB/Passkey seems not work well in BCM20737. Now the only thing I can do is just waiting for the SDK 2.2.2.
MichaelF_56 We are almost in MP stage, if the SDK 2.2.2 does not solve the problem. We may need an on-site support for this issue.
I will reach out to the team that manages your part of the world and see if there is a distributor that can support you.
Since it's a holiday week here in the US, SDK 2.2.2 will most likely not be released prior to Monday of next week.
1. I just change back to use passkey for reference. The local FAE fochc_2132071 just pass me the hello_sensor.c the same as the SDK mention and prove the Passkey half work, it isn't related to OOB key pairing problem.
2. About the passkey pairing, it is quite strange that I test the PassKey works in hello_sensor but doesn't work in my project. I used the same HW board and the same setting with PASSKEY feature. Even the BLE_PROFILE_CFG are also the same. There must be something which is a MUST beyond the PASSKEY_PAIRING macro.
Thank you for supporting. Now I am trying to use OOB pairing as you mentioned:
I can see the TAG03 get the connection to the slave device but stuck at "starting pairing". Below is my test environment.
1. Set the same oob_tk in hello_sensor.c and hello_client.c, uncomment the "#define OOB_PAIRING" to make it works.
2. download the hello_client into TAG03.
3. download the hello_sensor into our target.
4. Press the TAG03 button(SW1) over 5 seconds to trigger the scanning and connection.
And then I get the connection_up but stuck at bonding. In the device message I always get "Not bonding"==> The else option I added below the "if (LESMP_PAIRING_RESULT_BONDED)" condition.
Should we add something in "hello_client.smp_info" before we call "lesmp_startPairing(NULL)"??