From f32b7a88e66a25540de795d65b9d1eaea41cbfab Mon Sep 17 00:00:00 2001 From: Matthias Ringwald Date: Thu, 29 Oct 2020 11:35:34 +0100 Subject: [PATCH] sm: move SM_INITIATOR_PH0_HAS_LTK code into sm_run remove SM_INITIATOR_PH0_SEND_START_ENCRYPTION --- src/ble/sm.c | 12 +++++++----- src/hci.h | 1 - 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/ble/sm.c b/src/ble/sm.c index 465dbf68c..8cec3cdab 100644 --- a/src/ble/sm.c +++ b/src/ble/sm.c @@ -2206,9 +2206,7 @@ static void sm_run_activate_connection(void){ #ifdef ENABLE_LE_CENTRAL case SM_INITIATOR_PH0_HAS_LTK: - sm_reset_setup(); - sm_load_security_info(sm_connection); - sm_connection->sm_engine_state = SM_INITIATOR_PH0_SEND_START_ENCRYPTION; + // just lock context break; case SM_INITIATOR_PH1_W2_SEND_PAIRING_REQUEST: sm_reset_setup(); @@ -2354,7 +2352,7 @@ static void sm_run(void){ break; } - // responding state + // secure connections, initiator + responding states #ifdef ENABLE_LE_SECURE_CONNECTIONS case SM_SC_W2_CMAC_FOR_CONFIRMATION: if (!sm_cmac_ready()) break; @@ -2417,7 +2415,11 @@ static void sm_run(void){ #ifdef ENABLE_LE_CENTRAL // initiator side - case SM_INITIATOR_PH0_SEND_START_ENCRYPTION: { + + case SM_INITIATOR_PH0_HAS_LTK: { + sm_reset_setup(); + sm_load_security_info(connection); + sm_key_t peer_ltk_flipped; reverse_128(setup->sm_peer_ltk, peer_ltk_flipped); connection->sm_engine_state = SM_INITIATOR_PH0_W4_CONNECTION_ENCRYPTED; diff --git a/src/hci.h b/src/hci.h index a547bd548..00d622e07 100644 --- a/src/hci.h +++ b/src/hci.h @@ -340,7 +340,6 @@ typedef enum { // INITITIATOR ROLE SM_INITIATOR_CONNECTED, SM_INITIATOR_PH0_HAS_LTK, - SM_INITIATOR_PH0_SEND_START_ENCRYPTION, SM_INITIATOR_PH0_W4_CONNECTION_ENCRYPTED, SM_INITIATOR_PH1_W2_SEND_PAIRING_REQUEST, SM_INITIATOR_PH1_SEND_PAIRING_REQUEST,