9 Replies Latest reply on Dec 8, 2015 3:53 PM by MichaelF_56 Branched to a new discussion.

    Pairing process with Passkey not completed - (MASTER: BCM20737S, SLAVE: BCM20737S)

    MiTo_1583836

      I reworked the Hello_Client and Hello_Sensor to enable the pairing with passkey. There is a defined at the top of the hello_sensor.c and hello_client.c : #define PASSKEY_PAIRING. This is used to turn ON this feature (over Just Work or OOB).

       

      The client initiate a scan and does connect with the sensor. The sensor is in charge of initiating the security request calling: lesmp_sendSecurityRequest();

       

      The passkey is set right after the call lesmp_setPairingParam() early during the xxx_create() for both the client and the sensor.

       

      The pairing on the client side is set with: lesmp_setPairingParam() with LESMP_IO_CAP_DISP_KEYBOARD_ONLY. The client is also set with lesmp_setSMPRole(LESMP_ROLE_RESPONDERS);

       

      The sensor lesmp_setPairingParam() is called with LESMP_IO_CAP_DISP_ONLY. So the pairing key is displayed on the sensor and entered on the client.

       

      I am getting stuck at the beginning of the third phase of the pairing during the key distribution. I do see the exchange of pairing information and the authentication of the link (see SM_PAIRING_CONFIRM in the air capture attached to this post). After that I am getting stuck.


      Also I have the feeling that I am not even getting that far if I remove the lesmp_setSMPRole(LESMP_ROLE_RESPONDERS) in the client code.

       

      I need to understand why I cannot complete the pairing process/key exchanges at this stage of the game. Am I missing a call in the code?


      The sample code of the sensor and the client is attached to this post.

       

      Attached:

       

      Sniff_Air_traffic_Capture_Pairing_not_completed: capture of the traffic between the Master and Slave.

      Source code for the Master and Slave (.c/.h files).