You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by na...@apache.org on 2020/01/07 11:18:19 UTC

[mynewt-nimble] 12/14: apps/bttester: Add Set MITM command

This is an automated email from the ASF dual-hosted git repository.

naraj pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-nimble.git

commit 91d332d275fee1fae6a9cfa9a4ef31ca023650e5
Author: MichaƂ Narajowski <mi...@codecoup.pl>
AuthorDate: Thu Oct 3 15:20:45 2019 +0200

    apps/bttester: Add Set MITM command
---
 apps/bttester/src/bttester.h |  5 +++++
 apps/bttester/src/gap.c      | 17 ++++++++++++++---
 apps/bttester/syscfg.yml     |  2 +-
 3 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/apps/bttester/src/bttester.h b/apps/bttester/src/bttester.h
index 9991248..f4e66a6 100644
--- a/apps/bttester/src/bttester.h
+++ b/apps/bttester/src/bttester.h
@@ -315,6 +315,11 @@ struct gap_oob_sc_set_remote_data_cmd {
     u8_t c[16];
 } __packed;
 
+#define GAP_SET_MITM		0x1b
+struct gap_set_mitm_cmd {
+    u8_t mitm;
+} __packed;
+
 /* events */
 #define GAP_EV_NEW_SETTINGS		0x80
 struct gap_new_settings_ev {
diff --git a/apps/bttester/src/gap.c b/apps/bttester/src/gap.c
index 38d6bc0..687f806 100644
--- a/apps/bttester/src/gap.c
+++ b/apps/bttester/src/gap.c
@@ -124,6 +124,7 @@ static void supported_commands(u8_t *data, u16_t len)
 	tester_set_bit(cmds, GAP_OOB_LEGACY_SET_DATA);
 	tester_set_bit(cmds, GAP_OOB_SC_GET_LOCAL_DATA);
 	tester_set_bit(cmds, GAP_OOB_SC_SET_REMOTE_DATA);
+	tester_set_bit(cmds, GAP_SET_MITM);
 
 	tester_send(BTP_SERVICE_ID_GAP, GAP_READ_SUPPORTED_COMMANDS,
 		    CONTROLLER_INDEX, (u8_t *) rp, sizeof(cmds));
@@ -203,8 +204,6 @@ static void controller_info(u8_t *data, u16_t len)
 		}
 	}
 
-	ble_hs_cfg.sm_mitm = 0;
-
 	supported_settings |= BIT(GAP_SETTINGS_POWERED);
 	supported_settings |= BIT(GAP_SETTINGS_CONNECTABLE);
 	supported_settings |= BIT(GAP_SETTINGS_BONDABLE);
@@ -1217,7 +1216,6 @@ static void set_io_cap(const u8_t *data, u16_t len)
 		ble_hs_cfg.sm_io_cap = BLE_SM_IO_CAP_NO_IO;
 		ble_hs_cfg.sm_mitm = 0;
 		break;
-		break;
 	case GAP_IO_CAP_KEYBOARD_ONLY:
 		ble_hs_cfg.sm_io_cap = BLE_SM_IO_CAP_KEYBOARD_ONLY;
 		ble_hs_cfg.sm_mitm = 1;
@@ -1499,6 +1497,16 @@ static void oob_sc_set_remote_data(const u8_t *data, u16_t len)
 		   CONTROLLER_INDEX, BTP_STATUS_SUCCESS);
 }
 
+static void set_mitm(const u8_t *data, u16_t len)
+{
+	const struct gap_set_mitm_cmd *cmd = (void *) data;
+
+	ble_hs_cfg.sm_mitm = cmd->mitm;
+
+	tester_rsp(BTP_SERVICE_ID_GAP, GAP_SET_MITM,
+		   CONTROLLER_INDEX, BTP_STATUS_SUCCESS);
+}
+
 void tester_handle_gap(u8_t opcode, u8_t index, u8_t *data,
 		       u16_t len)
 {
@@ -1587,6 +1595,9 @@ void tester_handle_gap(u8_t opcode, u8_t index, u8_t *data,
 	case GAP_OOB_SC_SET_REMOTE_DATA:
 		oob_sc_set_remote_data(data, len);
 		return;
+	case GAP_SET_MITM:
+		set_mitm(data, len);
+		return;
 	default:
 		tester_rsp(BTP_SERVICE_ID_GAP, opcode, index,
 			   BTP_STATUS_UNKNOWN_CMD);
diff --git a/apps/bttester/syscfg.yml b/apps/bttester/syscfg.yml
index bfdaa36..d2291aa 100644
--- a/apps/bttester/syscfg.yml
+++ b/apps/bttester/syscfg.yml
@@ -86,7 +86,7 @@ syscfg.vals:
     BLE_L2CAP_COC_MPS: 100
     BLE_RPA_TIMEOUT: 30
     BLE_SM_BONDING: 1
-    BLE_SM_MITM: 1
+    BLE_SM_MITM: 0
     BLE_SM_SC: 1
     BLE_SM_OUR_KEY_DIST: 7
     BLE_SM_THEIR_KEY_DIST: 7