2019-09-10 02:08 AM
Hi
When I connect to the STM32WB55 nucleo(set up as peripheral) with my phone, I receive the EVT_LE_CONN_COMPLETE . Now I want to bond them with MITM, so I use aci_gap_slave_security_req() to let the phone know, I get a notification to pair, press pair, but then it keeps trying but doesn't work. In the documentation (STM32_BLEstack.pdf) they just say to use the command like that. Prior to the command(when not connected), I also set up the IO capability and authentication requirements like so:
/**
* Initialize IO capability
*/
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.ioCapability = CFG_IO_CAPABILITY;
aci_gap_set_io_capability(BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.ioCapability);
/**
* Initialize authentication
*/
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.mitm_mode = CFG_MITM_PROTECTION;
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.OOB_Data_Present = 0;
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.encryptionKeySizeMin = 8;
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.encryptionKeySizeMax = 16;
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.Use_Fixed_Pin = 0;
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.Fixed_Pin = 111111;
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.bonding_mode = 1;
for (index = 0; index < 16; index++)
{
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.OOB_Data[index] = (uint8_t) index;
}
aci_gap_set_authentication_requirement(BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.bonding_mode,
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.mitm_mode,
0x02,
0,
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.encryptionKeySizeMin,
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.encryptionKeySizeMax,
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.Use_Fixed_Pin,
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.Fixed_Pin,
0
);
thx in advance :)
Solved! Go to Solution.
2019-09-10 07:05 AM
Okay after a long search, I discovered the aci_gap_allow_rebond() function. I needed to call this function when the EVT_LE_CONN_UPDATE_COMPLETE occured. This is not described in the documentation...... Does anyone has some good documentation?
2019-09-10 07:05 AM
Okay after a long search, I discovered the aci_gap_allow_rebond() function. I needed to call this function when the EVT_LE_CONN_UPDATE_COMPLETE occured. This is not described in the documentation...... Does anyone has some good documentation?