LE Secure Connection fails with Windows 10

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
ThBr_4364666
Level 2
Level 2
First like received First like given

Hello,

I am implementing Just Works pairing+bonding with LE Secure Connection on a PSoC 4 BLE and have it working with Android and iOS clients. However, pairing fails immediately with Windows 10 due to "Invalid parameters" (reason 0x0A). I can reproduce this using the BLE 4.2 Data Length Security Privacy 1.0 example project and have attached the project. The only modification I made was to add a call to CyBle_GapSetIoCap(CYBLE_GAP_IOCAP_NOINPUT_NOOUTPUT); in the CYBLE_EVT_STACK_ON event handler.

I have also attached a BLE protocol analyzer trace showing the pairing failure with a windows client. You can open it with Teledyne LeCroy Wireless Protocol Suite. Is this a known issue? How can it be resolved? I have this kind of pairing working on windows 10 with a PSoC 6 BLE part.

Thanks,
Theo

0 Likes
1 Solution
ThBr_4364666
Level 2
Level 2
First like received First like given

I figured out that I wasn't generating a new public/private key pair for LE secure, so the debug keys were being used and windows was rejecting it. Good on them for enforcing security! I fixed this by calling CyBle_GapGenerateLocalP256Keys() in the CYBLE_EVT_GAP_DEVICE_CONNECTED event handler. The example project should really be updated to include this call as well.

View solution in original post

1 Reply
ThBr_4364666
Level 2
Level 2
First like received First like given

I figured out that I wasn't generating a new public/private key pair for LE secure, so the debug keys were being used and windows was rejecting it. Good on them for enforcing security! I fixed this by calling CyBle_GapGenerateLocalP256Keys() in the CYBLE_EVT_GAP_DEVICE_CONNECTED event handler. The example project should really be updated to include this call as well.