2 Replies Latest reply on Jun 17, 2017 6:49 AM by sujayy_46

    BLE Pairing issue

    jkgupta654_2265946

      Hi All,

         

      I'm trying to implement the pairing feature in my project. What I observed is (In CySmart App) In IOS when I'm entering wrong passkey(even if I press cancel button also) than also it is showing all the services, where as in Android it is fine (If passkey is wrong it will get disconnect).

         

      Security Mode: 1

         

      Security Level: Authenticate Pairing with Encryption

         

      I/O Capability: Display

         

      Bonding Requirement: No Bonding.

         

      I think if the passkey is wrong it should not show any services. Am I right?

         

       

         

      Thanks,

         

      Jatin

        • 1. Re: BLE Pairing issue
          e.pratt_1639216

          You need to make sure you set the access requirements for the services to "Authenticated" or "Encrypted" (or a mix) for it to prevent access upon incorrect bonding/encryption, but yes. It should behave the way you are describing if setup properly :)

          • 2. Re: BLE Pairing issue
            sujayy_46

            Hi Jatin,

               

            The behavior of the device on authentication failure will vary from device to device and also depends on your project.

               

            You could call the CyBle_GapDisconnect() API under the CYBLE_EVT_GAP_AUTH_FAILED event. Also, add a CyBle_GapAuthReq() upon connection, i.e. under CYBLE_EVT_GAP_DEVICE_CONNECTED event. This will make sure that every central that connects to your phone has to pair successfully. If pairing is rejected/fails, then the device would disconnect immediately.

               

            Secondly, "Permissions" such as Encryption required, Authentication required are set for characteristic properties such as read, write, notify and so on. This means that a client can read or write only if the link is encrypted and/or if the connection is authenticated. However, setting these permissions won't stop a client from 'discovering the services' on a server.

               

            So, if the passkey is wrong, the client can still see the services but this depends on the configuration of the server.