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 <[email protected]> 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
