]> granicus.if.org Git - esp-idf/commitdiff
component/bt: Fix bug of function smp_decide_association_model
authorbaohongde <baohongde@espressif.com>
Wed, 11 Oct 2017 09:36:46 +0000 (17:36 +0800)
committerbaohongde <baohongde@espressif.com>
Mon, 23 Oct 2017 07:34:02 +0000 (15:34 +0800)
components/bt/bluedroid/stack/smp/smp_act.c

index 1ca5bf0d3d7e8fc8810453d85a0d45bfb99ff81c..99f248accf79a5fd7db1a0c9412b7664d5986b71 100644 (file)
@@ -1221,25 +1221,16 @@ void smp_decide_association_model(tSMP_CB *p_cb, tSMP_INT_DATA *p_data)
 
     switch (p_cb->selected_association_model) {
     case SMP_MODEL_ENCRYPTION_ONLY:  /* TK = 0, go calculate Confirm */
-        if (p_cb->role == HCI_ROLE_MASTER &&
-                ((p_cb->peer_auth_req & SMP_AUTH_YN_BIT) != 0) &&
-                ((p_cb->loc_auth_req & SMP_AUTH_YN_BIT) == 0)) {
-            SMP_TRACE_ERROR ("IO capability does not meet authentication requirement\n");
-            failure = SMP_PAIR_AUTH_FAIL;
-            p = (tSMP_INT_DATA *)&failure;
-            int_evt = SMP_AUTH_CMPL_EVT;
-        } else {
-            p_cb->sec_level = SMP_SEC_UNAUTHENTICATE;
-            SMP_TRACE_EVENT ("p_cb->sec_level =%d (SMP_SEC_UNAUTHENTICATE) \n", p_cb->sec_level );
+        p_cb->sec_level = SMP_SEC_UNAUTHENTICATE;
+        SMP_TRACE_EVENT ("p_cb->sec_level =%d (SMP_SEC_UNAUTHENTICATE) \n", p_cb->sec_level );
 
-            key.key_type = SMP_KEY_TYPE_TK;
-            key.p_data = p_cb->tk;
-            p = (tSMP_INT_DATA *)&key;
+        key.key_type = SMP_KEY_TYPE_TK;
+        key.p_data = p_cb->tk;
+        p = (tSMP_INT_DATA *)&key;
 
-            memset(p_cb->tk, 0, BT_OCTET16_LEN);
-            /* TK, ready  */
-            int_evt = SMP_KEY_READY_EVT;
-        }
+        memset(p_cb->tk, 0, BT_OCTET16_LEN);
+        /* TK, ready  */
+        int_evt = SMP_KEY_READY_EVT;
         break;
 
     case SMP_MODEL_PASSKEY: