test/pts: update GAP tests + sequences

This commit is contained in:
Matthias Ringwald 2021-12-07 12:03:43 +01:00
parent d7f12b5216
commit cab96eec12
4 changed files with 247 additions and 136 deletions

View File

@ -183,9 +183,9 @@ static uint8_t ui_presentation_format[7];
static uint16_t ui_aggregate_handle;
static uint16_t handle = 0;
static bd_addr_t public_pts_address = {0x00, 0x1B, 0xDC, 0x07, 0x32, 0xef};
//static bd_addr_t public_pts_address = {0x00, 0x1B, 0xDC, 0x07, 0x32, 0xef};
//static bd_addr_t public_pts_address = {0x00, 0x1B, 0xDC, 0x08, 0xe2, 0x72};
//static bd_addr_t public_pts_address = {0x00, 0x1B, 0xDC, 0x08, 0xe2, 0x5C};
static bd_addr_t public_pts_address = {0x00, 0x1B, 0xDC, 0x08, 0xe2, 0x5C};
static int public_pts_address_type = 0;
static bd_addr_t current_pts_address;
@ -973,6 +973,7 @@ static void show_usage(void){
printf_row("4 - Set Security Level 4");
printf_row("9 - create HCI Classic connection to addr %s", bd_addr_to_str(public_pts_address));
printf_row("N - Create L2CAP Connection to PSM 0x1001");
printf_row("l - dedicated bonding, MITM %u", sm_mitm_protection);
printf_row("s/S - passive/active scanning");
printf_row("a - enable Advertisements");
printf_row("b - start bonding");
@ -1454,7 +1455,6 @@ static void ui_process_command(char buffer){
gap_random_address_set_mode(GAP_RANDOM_ADDRESS_NON_RESOLVABLE);
gap_privacy = 1;
update_advertisement_params();
show_usage();
break;
case '0':
update_security_level(LEVEL_0);
@ -1471,22 +1471,22 @@ static void ui_process_command(char buffer){
case '5':
sm_io_capabilities = "IO_CAPABILITY_DISPLAY_YES_NO";
sm_set_io_capabilities(IO_CAPABILITY_DISPLAY_YES_NO);
show_usage();
printf("IO Capabilities: %s\n", sm_io_capabilities);
break;
case '6':
sm_io_capabilities = "IO_CAPABILITY_NO_INPUT_NO_OUTPUT";
sm_set_io_capabilities(IO_CAPABILITY_NO_INPUT_NO_OUTPUT);
show_usage();
printf("IO Capabilities: %s\n", sm_io_capabilities);
break;
case '7':
sm_io_capabilities = "IO_CAPABILITY_KEYBOARD_ONLY";
sm_set_io_capabilities(IO_CAPABILITY_KEYBOARD_ONLY);
show_usage();
printf("IO Capabilities: %s\n", sm_io_capabilities);
break;
case '8':
sm_io_capabilities = "IO_CAPABILITY_KEYBOARD_DISPLAY";
sm_set_io_capabilities(IO_CAPABILITY_KEYBOARD_DISPLAY);
show_usage();
printf("IO Capabilities: %s\n", sm_io_capabilities);
break;
case '9':
printf("Creating HCI Classic Connection to %s\n", bd_addr_to_str(public_pts_address));
@ -1498,34 +1498,35 @@ static void ui_process_command(char buffer){
break;
case 'a':
gap_advertisements_enable(1);
show_usage();
printf("Advertisement enabled\n");
break;
case 'b':
printf("Request pairing\n");
sm_request_pairing(handle);
break;
case 'c':
printf("Non-Connectable\n");
gap_connectable = 0;
update_advertisement_params();
gap_connectable_control(gap_connectable);
show_usage();
break;
case 'C':
printf("Connectable\n");
gap_connectable = 1;
update_advertisement_params();
gap_connectable_control(gap_connectable);
show_usage();
break;
case 'd':
printf("Non-Bondable\n");
gap_bondable = 0;
gap_set_bondable_mode(gap_bondable);
update_auth_req();
show_usage();
break;
case 'D':
printf("Bondable\n");
gap_bondable = 1;
gap_set_bondable_mode(gap_bondable);
update_auth_req();
show_usage();
break;
case 'f':
printf("PTS Address: ");
@ -1552,33 +1553,34 @@ static void ui_process_command(char buffer){
printf("MITM protection off\n");
sm_mitm_protection = 0;
update_auth_req();
show_usage();
break;
case 'M':
printf("MITM protection on\n");
sm_mitm_protection = 1;
update_auth_req();
show_usage();
break;
case 'j':
printf("Secure connections OFF\n");
sm_sc = 0;
update_auth_req();
show_usage();
break;
case 'J':
printf("Secure connections ON\n");
sm_sc = 1;
update_auth_req();
show_usage();
break;
case 'k':
printf("Secure connections Only Mode: OFF\n");
sm_sc_only_mode = 0;
update_auth_req();
show_usage();
break;
case 'K':
printf("Secure connections Only Mode: ON\n");
sm_sc_only_mode = 1;
update_auth_req();
show_usage();
break;
case 'l':
gap_dedicated_bonding(current_pts_address, sm_mitm_protection);
break;
case 'g':
central_state = CENTRAL_W4_READ_CHARACTERISTIC_VALUE_BY_HANDLE;
@ -1662,16 +1664,16 @@ static void ui_process_command(char buffer){
show_usage();
break;
case 'y':
printf("Drop OOB data\n");
sm_have_oob_data = 0;
show_usage();
break;
case 'Y':
printf("Simulate OOB data\n");
if (sm_have_oob_data){
sm_have_oob_data = 3 - sm_have_oob_data;
} else {
sm_have_oob_data = 1;
}
show_usage();
break;
case 'z':
printf("Updating connection parameters via L2CAP\n");

View File

@ -1,25 +1,39 @@
# GAP Central/Observer Test
## IXIT
- Set TSPX_advertising_data to 02010008094254737461636B (Flags = 0, Name "BTstack")
- Set TSPX_advertising_data to 02010008094254737461636B (Flags = 0, Name "BTstack")-
- Set TSPX_gap_iut_role to Central
- Set TSPX_psm_2 to 1001
## IUT
- Set PTS address
## Notes
Two tests requires old BR-only dongle:
- GAP/DM/LEP/BV-02-C:
- GAP/DM/LEP/BV-02-C:
With the white dongle, test hangs: [CASE0071230](https://bluetooth.service-now.com/ess/case_detail.do?sysparm_document_key=x_bsig_case_manage_case,331db3171bb7a810bb65db1dcd4bcbc0)
1 tests require BR/EDR dongle without SC:
- GAP/SEC/SEM/BV-16-C
Some tests require IUT dongle with support for SC/EDR
Some tests require:
GAP/SEC/SEM/BI-05-C
## Sequences
- GAP/BROB/BCST/*: -> Peripheral
- GAP/BROB/OBSV/BV-01-C: s
- GAP/BROB/OBSV/BV-02-C: s
- GAP/BROB/OBSV/BV-03-C: S
- GAP/BROB/OBSV/BV-03-C: p, b, s
- GAP/DISC/NONM/* -> Peripheral
- GAP/DISC/LIMM/* -> Peripheral
- GAP/DISC/GENM/* -> Peripheral
- GAP/DISC/LIMP/BV-01-C: s, "OK" if "LE Limited Discoverable Mode" is shown
- GAP/DISC/LIMP/BV-02-C: s, "OK" if "LE Limited Discoverable Mode" is NOT shown (General discoverable)
- GAP/DISC/LIMP/BV-03-C: s, "OK" if "LE Limited Discoverable Mode" is NOT shown (Non-connectable)
@ -42,6 +56,12 @@ GAP/SEC/SEM/BI-05-C
- GAP/IDLE/DED/BV-02-C: i
- GAP/IDLE/BON/BV-02-C: N
- GAP/IDLE/BON/BV-03-C: l
- GAP/IDLE/BON/BV-04-C: M, l
- GAP/IDLE/BON/BV-05-C: N, N
- GAP/IDLE/BON/BV-06-C: 3, N
- GAP/CONN/NCON/BV-01-C -> GAP Peripheral
- GAP/CONN/NCON/BV-02-C -> GAP Peripheral
- GAP/CONN/NCON/BV-03-C -> GAP Peripheral
@ -54,38 +74,131 @@ GAP/SEC/SEM/BI-05-C
- GAP/CONN/UCON/BV-04-C -> GAP Peripheral
- GAP/CONN/ACEP/BV-01-C: p, t
- GAP/CONN/ACEP/BV-03-C: TODO - PTS "Selected device doesn't support EXTENDED features (EXT ADV, EXT SCAN). Selected test case can not execute with selected device"
- GAP/CONN/ACEP/BV-04-C: TODO - PTS "Selected device doesn't support EXTENDED features (EXT ADV, EXT SCAN). Selected test case can not execute with selected device"
- GAP/CONN/GCEP/BV-01-C: P, t
- GAP/CONN/GCEP/BV-02-C: P, t
- GAP/CONN/GCEP/BV-01-C: p, t
- GAP/CONN/GCEP/BV-02-C: p, t
- GAP/CONN/GCEP/BV-05-C: TODO - PTS "Selected device doesn't support EXTENDED features (EXT ADV, EXT SCAN). Selected test case can not execute with selected device"
- GAP/CONN/GCEP/BV-06-C: TODO - PTS "Selected device doesn't support EXTENDED features (EXT ADV, EXT SCAN). Selected test case can not execute with selected device"
- GAP/CONN/SCEP/BV-01-C: p, t
- GAP/CONN/SCEP/BV-03-C: TODO - PTS "Selected device doesn't support EXTENDED features (EXT ADV, EXT SCAN). Selected test case can not execute with selected device"
- GAP/CONN/DCEP/BV-01-C: P, t (if it fails, retry)
- GAP/CONN/DCEP/BV-03-C: P, t (if it fails, retry)
- GAP/CONN/DCEP/BV-01-C: p, t (if it fails, retry)
- GAP/CONN/DCEP/BV-03-C: p, t (if it fails, retry)
- GAP/CONN/DCEP/BV-05-C: TODO - PTS "Selected device doesn't support EXTENDED features (EXT ADV, EXT SCAN). Selected test case can not execute with selected device"
- GAP/CONN/DCEP/BV-06-C: TODO - PTS "Selected device doesn't support EXTENDED features (EXT ADV, EXT SCAN). Selected test case can not execute with selected device"
# BV-1 to BV-3 are NOT 21_9 - Connection Parameter Update Procedure
- GAP/CONN/CPUP/BV-01-C: C, a, z
- GAP/CONN/CPUP/BV-02-C: C, a, z - wait for timeout
- GAP/CONN/CPUP/BV-03-C: C, a
- GAP/CONN/CPUP/BV-04-C: p, t (restart if connect fails when adv are still on)
- GAP/CONN/CPUP/BV-05-C: p, t
# The selected test case requires to have LE only device to turn off the Connection Parameters Request Procedure LL feature bit to 0
- GAP/CONN/CPUP/BV-06-C: p, Z, t
-
- GAP/CONN/CPUP/BV-08-C: C, a
- GAP/CONN/CPUP/BV-10-C: C, a
- GAP/CONN/TERM/BV-01-C: p, t
- GAP/CONN/PRDA/BV-01-C: C, a, t, t, t
# Requires TSPX_security_enabled = true for resolvable address
- GAP/CONN/PRDA/BV-02-C: f, BD_ADDR, p, b, P, b, P, b
- GAP/BOND/NBON/BV-01-C: p, d, p, p
- GAP/EST/LIE/BV-02-C: 9
- GAP/BOND/NBON/BV-01-C: p, d, b, p, b
- GAP/BOND/NBON/BV-02-C: p, d, b, p, b
- GAP/BOND/NBON/BV-03-C: C, a
- GAP/BOND/NBON/BV-03-C: C, a, d
- GAP/BOND/BON/BV-01-C: C, D, a, b
- GAP/BOND/BON/BV-02-C: C, D, p, b, p,
- GAP/BOND/BON/BV-03-C: C, a,
- GAP/BOND/BON/BV-04-C: C, p, p, b (to start encryption)
# TODO LE
- GAP/BOND/BON/BV-04-C: C, p, t, p, b (to start encryption)
- GAP/SEC/AUT/BV-01-C -> GAP Peripheral
- GAP/SEC/SEM/BV-02-C -> GAP Peripheral
- GAP/SEC/SEM/BV-04-C -> GAP Peripheral
- GAP/SEC/SEM/BV-05-C: 2, d, N, t
- GAP/SEC/SEM/BV-50-C: 2, C, N, t, N, t
- GAP/SEC/SEM/BV-06-C: 2, N, t
- GAP/SEC/SEM/BV-51-C: 2, C, N, t, N, t
- GAP/SEC/SEM/BV-07-C: 3, C, N,
- GAP/SEC/SEM/BV-52-C: 3, N, t, N, t
- GAP/SEC/SEM/BV-08-C: Fragile PTS test! OK, N, YES, now PTS waits but just continue, t, OK, N, YES
- GAP/SEC/SEM/BV-09-C: F - restart tester - 2, N, 3, N, t
- GAP/SEC/SEM/BV-53-C: F - restart tester - 2, C, N, t, N, 3, N
- GAP/SEC/SEM/BV-10-C -> GAP Peripheral
- GAP/SEC/SEM/BI-24-C -> GAP Peripheral
- GAP/SEC/SEM/BV-46-C -> GAP Peripheral
- GAP/SEC/SEM/BV-11-C -> GAP Peripheral
- GAP/SEC/SEM/BV-12-C -> GAP Peripheral
- GAP/SEC/SEM/BV-13-C -> GAP Peripheral
- GAP/SEC/SEM/BV-47-C -> GAP Peripheral
- GAP/SEC/SEM/BV-14-C -> GAP Peripheral
- GAP/SEC/SEM/BV-48-C -> GAP Peripheral
- GAP/SEC/SEM/BV-15-C -> GAP Peripheral
- GAP/SEC/SEM/BV-49-C -> GAP Peripheral
- GAP/SEC/SEM/BV-16-C: K, N, wait, confirm reject - requires dongle without support for SC
- GAP/SEC/SEM/BV-17-C: F - restart tester - K, N, wait, confirm reject
- GAP/SEC/SEM/BV-18-C: F - restart tester - K, N - requires dongle with support for SC
- GAP/SEC/SEM/BV-54-C F - restart tester - K, N, N - requires dongle with support for SC
- GAP/SEC/SEM/BV-19-C: F - restart tester - k, N - requires dongle with support for SC
- GAP/SEC/SEM/BV-55-C k, N, N
- GAP/SEC/SEM/BV-20-C: F - restart tester - 4, N, wait, confirm reject
- GAP/SEC/SEM/BV-21-C: 5, M, J, C, a, g0009, b (5,M,J - Level 4)
- GAP/SEC/SEM/BV-37-C: m, j, C, a, g0009, b (m,J - Level 2)
- GAP/SEC/SEM/BV-38-C: 5, M, J, C, a, g0009, b (5,M,J - Level 4)
- GAP/SEC/SEM/BV-22-C: 5, M, J, C, a, 000F, Confirm Passkey (5,M,J - Level 4)
- GAP/SEC/SEM/BV-39-C: m, J, C, a, 0011 (5,J,M - Level 2)
- GAP/SEC/SEM/BV-40-C: m, J, C, a, 0011 (5,J,M - Level 2)
- GAP/SEC/SEM/BV-23-C: M, J, K, C, a, G0009, 00, b
- GAP/SEC/SEM/BV-24-C: C, a, 000f
- GAP/SEC/SEM/BV-25-C: J, K, M, C, a, G0009, 00, b, (PTS waits for Write request, ignore Read request), t, confirm
- GAP/SEC/SEM/BV-26-C: F, 5, M, J, p, g0009, b
- GAP/SEC/SEM/BV-41-C: F, 5, m, J, p, g0009, b
- GAP/SEC/SEM/BV-42-C: F, 5, M, J, p, g0009, b
- GAP/SEC/SEM/BV-27-C: F, 5, M, J, p, 000f
- GAP/SEC/SEM/BV-43-C: F, 5, m, J, p, 0011
- GAP/SEC/SEM/BV-44-C: F, 5, M, J, p, 000f
- GAP/SEC/SEM/BV-28-C: K, p, G0009, b
- GAP/SEC/SEM/BV-29-C: K, p, 000f
- GAP/SEC/SEM/BV-30-C: p, G0009, 00, b, N
- GAP/SEC/SEM/BV-31-C: not supported yet - LE Security Mode 3
- GAP/SEC/SEM/BV-32-C: not supported yet - LE Security Mode 3
- GAP/SEC/SEM/BV-34-C: not supported yet - LE Security Mode 3
- GAP/SEC/SEM/BV-35-C: not supported yet - LE Security Mode 3
- GAP/SEC/SEM/BI-01-C -> GAP Peripheral
- GAP/SEC/SEM/BI-02-C -> GAP Peripheral
- GAP/SEC/SEM/BI-03-C -> GAP Peripheral
- GAP/SEC/SEM/BI-04-C -> GAP Peripheral
- GAP/SEC/SEM/BI-05-C: delete link keys, 0, N, N, N, N, N, N
- GAP/SEC/SEM/BI-06-C: delete link keys, N, N, N, N, N, N
- GAP/SEC/SEM/BI-07-C: delete link keys, N, N, N, N, N, N
- GAP/SEC/SEM/BI-08-C: delete link keys, N, N, N, N, N, N, ... N - requires LEVEL_4
- GAP/SEC/SEM/BI-09-C: C, K, a
- GAP/SEC/SEM/BI-10-C: C, K, { p, b, t }
GAP/SEC/SEM/BI-11-C -> GAP Peripheral
- GAP/SEC/SEM/BI-12-C: delete link keys, N, N, N, N, N, N
- GAP/SEC/SEM/BI-13-C: not supported yet - LE Security Mode 3
- GAP/SEC/SEM/BV-45-C: NEW LE
- GAP/SEC/SEM/BI-14-C -> GAP Peripheral
- GAP/SEC/SEM/BI-14-C -> GAP Peripheral
- GAP/SEC/SEM/BI-15-C -> GAP Peripheral
- GAP/SEC/SEM/BI-16-C -> GAP Peripheral
- GAP/SEC/SEM/BI-17-C: delete link keys, N, N, N, N, N, N, ... N - requires LEVEL_4
- GAP/SEC/SEM/BI-18-C: delete link keys, N, N, N, N, N, N, ... N - requires LEVEL_4
- GAP/SEC/SEM/BI-19-C: delete link keys, N, N, N, N, N, N, ... N - requires LEVEL_4
- GAP/SEC/SEM/BI-20-C: C, K, a
- GAP/SEC/SEM/BI-21-C: C, K, a
- GAP/SEC/SEM/BI-22-C: C, K, { p, b, t }
- GAP/SEC/SEM/BI-23-C: C, K, { p, b, t }
- GAP/SEC/AUT/BV-02-C -> GAP Peripheral
- GAP/SEC/AUT/BV-11-C -> GAP Peripheral
- GAP/SEC/AUT/BV-12-C: M, 5, p, 000b, "enter secure id"
- GAP/SEC/AUT/BV-13-C: M, 5, p, 000b, "enter secure id"
@ -106,65 +219,6 @@ GAP/SEC/SEM/BI-05-C
- GAP/SEC/CSIGN/BI-03-C: p, b, F, p, 1, t (bonding info deleted -> CSRK not available)
- GAP/SEC/CSIGN/BI-04-C: H, p, b, p,1, t (characteristic requires authentication write permissions)
- GAP/SEC/SEM/BV-02-C -> GAP Peripheral
- GAP/SEC/SEM/BV-04-C -> GAP Peripheral
- GAP/SEC/SEM/BV-11-C -> GAP Peripheral
- GAP/SEC/SEM/BV-12-C -> GAP Peripheral
- GAP/SEC/SEM/BV-13-C -> GAP Peripheral
- GAP/SEC/SEM/BV-14-C -> GAP Peripheral
- GAP/SEC/SEM/BV-15-C -> GAP Peripheral
- GAP/SEC/SEM/BV-21-C: 5, M, J, C, a, g0009, b (5,M,J - Level 4)
- GAP/SEC/SEM/BV-37-C: m, j, C, a, g0009, b (m,J - Level 2)
- GAP/SEC/SEM/BV-38-C: 5, M, J, C, a, g0009, b (5,M,J - Level 4)
- GAP/SEC/SEM/BV-22-C: 5, M, J, C, a, 000F, Confirm Passkey (5,M,J - Level 4)
- GAP/SEC/SEM/BV-39-C: m, J, C, a, 0011 (5,J,M - Level 2)
- GAP/SEC/SEM/BV-40-C: m, J, C, a, 0011 (5,J,M - Level 2)
- GAP/SEC/SEM/BV-23-C: M, J, K, C, a, G0009, 00, b
- GAP/SEC/SEM/BV-24-C: C, a, 000f
- GAP/SEC/SEM/BV-25-C: J, K, M, C, a, G0009, 00, b, (PTS waits for Write request, ignore Read request), t
- GAP/SEC/SEM/BI-01-C -> GAP Peripheral
GAP/SEC/SEM/BI-11-C -> GAP Peripheral
- GAP/SEC/SEM/BI-02-C -> GAP Peripheral
- GAP/SEC/SEM/BI-03-C -> GAP Peripheral
- GAP/SEC/SEM/BI-04-C -> GAP Peripheral
- GAP/SEC/SEM/BI-14-C -> GAP Peripheral
- GAP/SEC/SEM/BI-15-C -> GAP Peripheral
- GAP/SEC/SEM/BI-16-C -> GAP Peripheral
- GAP/SEC/SEM/BI-05-C: 0, N, N, N, N, N, N
- GAP/SEC/SEM/BI-12-C: delete link keys, N, N, N, N, N, N
- GAP/SEC/SEM/BI-06-C: delete link keys, N, N, N, N, N, N
- GAP/SEC/SEM/BI-07-C: delete link keys, N, N, N, N, N, N
- GAP/SEC/SEM/BI-08-C: delete link keys, N, N, N, N, N, N, ... N - requires LEVEL_4
- GAP/SEC/SEM/BI-17-C: delete link keys, N, N, N, N, N, N, ... N - requires LEVEL_4
- GAP/SEC/SEM/BI-18-C: delete link keys, N, N, N, N, N, N, ... N - requires LEVEL_4
- GAP/SEC/SEM/BI-19-C: delete link keys, N, N, N, N, N, N, ... N - requires LEVEL_4
- GAP/SEC/SEM/BI-09-C: C, K, a
- GAP/SEC/SEM/BI-20-C: C, K, a
- GAP/SEC/SEM/BI-21-C: C, K, a
- GAP/SEC/SEM/BI-10-C: C, K, { p, b, t }
- GAP/SEC/SEM/BI-22-C: C, K, { p, b, t }
- GAP/SEC/SEM/BI-23-C: C, K, { p, b, t }
- GAP/SEC/SEM/BV-05-C: 2, d, N, t
- GAP/SEC/SEM/BV-06-C: 2, d, N, t
- GAP/SEC/SEM/BV-07-C: 2, d, M, N, t
- GAP/SEC/SEM/BV-08-C: F, N, t, N, "ok"
- GAP/SEC/SEM/BV-09-C: F, 2, N, 3, N, t
- GAP/SEC/SEM/BV-10-C -> GAP Peripheral
- GAP/SEC/SEM/BV-16-C: REQUIRE - PTS v4.0 Dongle without BR/EDR SC. 4, N
- GAP/SEC/SEM/BV-17-C: F, K, N
- GAP/SEC/SEM/BV-18-C: 3, F, N
- GAP/SEC/SEM/BV-19-C: 3, F, N
- GAP/SEC/SEM/BV-20-C: 4, F, N
- GAP/SEC/SEM/BV-26-C: F, 5, M, J, p, g0009, b
- GAP/SEC/SEM/BV-41-C: F, 5, m, J, p, g0009, b
- GAP/SEC/SEM/BV-42-C: F, 5, M, J, p, g0009, b
- GAP/SEC/SEM/BV-27-C: F, 5, M, J, p, 000f
- GAP/SEC/SEM/BV-43-C: F, 5, m, J, p, 0011
- GAP/SEC/SEM/BV-44-C: F, 5, M, J, p, 000f
- GAP/SEC/SEM/BV-28-C: K, p, G0009, b
- GAP/SEC/SEM/BV-29-C: K, p, 000f
- GAP/SEC/SEM/BV-30-C: K, p, G009, b, N
- GAP/PRIV/CONN/BV-10-C -> GAP Peripheral
- GAP/PRIV/CONN/BV-11-C: p, b, P
@ -176,8 +230,8 @@ GAP/SEC/SEM/BI-05-C
- GAP/DM/NCON/BV-01-C: c, a (we need to enable non-connectable advertisements)
- GAP/DM/CON/BV-01-C: C, a
- GAP/DM/NBON/BV-01-C: C, d, p, p, p
- GAP/DM/BON/BV-01-C: C, D, t, p, b, p, b
- GAP/DM/NBON/BV-01-C: F - restart tester - C, d, p, p, p
- GAP/DM/BON/BV-01-C: C, D, N, t, p, b, p, b
- GAP/DM/GIN/BV-01-C: i, s
- GAP/DM/LIN/BV-01-C: I, wait for PTS to show up, s, "OK" if "LE Limited Discoverable Mode"
- GAP/DM/NAD/BV-01-C: i
@ -186,10 +240,26 @@ GAP/SEC/SEM/BI-05-C
- GAP/DM/LEP/BV-02-C: C (Test requires an old dongle, but it passes with 5.0 dongle)
- GAP/DM/LEP/BV-04-C: 9, t
- GAP/DM/LEP/BV-05-C: 9, t (Test requires an old dongle, but it passes with 5.0 dongle)
- GAP/DM/LEP/BV-06-C: p
- GAP/DM/LEP/BV-06-C: p - Test requires LE-only dongle on PTS side
- GAP/DM/LEP/BV-07-C: C, a,
- GAP/DM/LEP/BV-08-C: C, a,
- GAP/DM/LEP/BV-11:C: C, wait quite a while, p, t
- GAP/DM/LEP/BV-12:C: NEW CTKD LE -> BR/EDR
- GAP/DM/LEP/BV-13:C: NEW CTKD Upgrade
- GAP/DM/LEP/BV-14:C: NEW CTKD LE -> BR/EDR
- GAP/DM/LEP/BV-15:C: NEW CTKD LE -> BR/EDR
- GAP/DM/LEP/BV-16:C: NEW CTKD LE -> BR/EDR
- GAP/DM/LEP/BV-17:C: NEW CTKD BR/EDR -> LE
- GAP/DM/LEP/BV-18:C: NEW CTKD BR/EDR -> LE
- GAP/DM/LEP/BV-19:C: NEW CTKD BR/EDR -> LE
- GAP/DM/LEP/BV-20:C: NEW CTKD BR/EDR -> LE - don't overwrite stronger key
- GAP/DM/LEP/BV-21:C: NEW CTKD BR/EDR -> LE - don't overwrite stronger key
- GAP/DM/LEP/BV-22:C: NEW CTKD LE -> BR/EDR - don't overwrite stronger key
- GAP/DM/LEP/BV-23:C: NEW CTKD LE -> BR/EDR - don't overwrite stronger key
- GAP/DM/LEP/BI-01:C: NEW CTKD BR/EDR -> LE - P192 not sufficient
- GAP/DM/LEP/BI-02:C: NEW CTKD BR/EDR -> LE - P192 not sufficient
- GAP/MOD/* -> GAP Peripheral
## TODO

View File

@ -133,9 +133,9 @@ static void show_usage(void);
static void update_advertisements(void);
static bd_addr_t tester_address = {0x00, 0x1B, 0xDC, 0x07, 0x32, 0xef};
// static bd_addr_t tester_address = {0x00, 0x1B, 0xDC, 0x07, 0x32, 0xef};
// static bd_addr_t tester_address = {0x00, 0x1B, 0xDC, 0x06, 0x07, 0x5F};
// static bd_addr_t tester_address = {0x00, 0x1B, 0xDC, 0x08, 0xe2, 0x72};
static bd_addr_t tester_address = {0x00, 0x1B, 0xDC, 0x08, 0xe2, 0x72};
static int tester_address_type = 0;
// general discoverable flags
@ -742,7 +742,7 @@ void show_usage(void){
printf("6 - AD Services | - - AD Appearance\n");
printf("---\n");
printf("p/P - privacy flag off\n");
printf("F - delete bonding information");
printf("F - delete bonding information\n");
printf("s - send security request\n");
printf("z - send Connection Parameter Update Request\n");
printf("Z - terminate connection\n");
@ -754,6 +754,7 @@ void show_usage(void){
printf("g - IO_CAPABILITY_NO_INPUT_NO_OUTPUT\n");
printf("h - IO_CAPABILITY_KEYBOARD_ONLY\n");
printf("i - IO_CAPABILITY_KEYBOARD_DISPLAY\n");
printf("E - Reject SSP bonding\n");
printf("o/O - OOB data off/on ('%s')\n", sm_oob_data);
printf("m/M - MITM protection off\n");
printf("k/k - encryption key range [7..16]/[16..16]\n");
@ -1028,27 +1029,26 @@ static void stdin_process(char c){
case 'e':
sm_io_capabilities = "IO_CAPABILITY_DISPLAY_ONLY";
sm_set_io_capabilities(IO_CAPABILITY_DISPLAY_ONLY);
// show_usage();
break;
case 'f':
sm_io_capabilities = "IO_CAPABILITY_DISPLAY_YES_NO";
sm_set_io_capabilities(IO_CAPABILITY_DISPLAY_YES_NO);
// show_usage();
break;
case 'g':
sm_io_capabilities = "IO_CAPABILITY_NO_INPUT_NO_OUTPUT";
sm_set_io_capabilities(IO_CAPABILITY_NO_INPUT_NO_OUTPUT);
// show_usage();
break;
case 'h':
sm_io_capabilities = "IO_CAPABILITY_KEYBOARD_ONLY";
sm_set_io_capabilities(IO_CAPABILITY_KEYBOARD_ONLY);
// show_usage();
break;
case 'i':
sm_io_capabilities = "IO_CAPABILITY_KEYBOARD_DISPLAY";
sm_set_io_capabilities(IO_CAPABILITY_KEYBOARD_DISPLAY);
// show_usage();
break;
case 'E':
printf("Reject SSP bonding\n");
gap_ssp_set_io_capability(SSP_IO_CAPABILITY_UNKNOWN);
break;
case 'Z':
printf("Terminating connection\n");
@ -1070,39 +1070,31 @@ static void stdin_process(char c){
break;
case 'p':
gap_privacy = 0;
// show_usage();
break;
case 'P':
gap_privacy = 1;
// show_usage();
break;
case 'o':
sm_have_oob_data = 0;
// show_usage();
break;
case 'O':
sm_have_oob_data = 1;
// show_usage();
break;
case 'k':
sm_min_key_size = 7;
sm_set_encryption_key_size_range(7, 16);
// show_usage();
break;
case 'K':
sm_min_key_size = 16;
sm_set_encryption_key_size_range(16, 16);
// show_usage();
break;
case 'm':
sm_mitm_protection = 0;
update_auth_req();
// show_usage();
break;
case 'M':
sm_mitm_protection = 1;
update_auth_req();
// show_usage();
break;
case 'j':
printf("Create L2CAP Connection to %s\n", bd_addr_to_str(tester_address));
@ -1188,8 +1180,9 @@ int btstack_main(int argc, const char * argv[]){
hci_disable_l2cap_timeout_check();
// provide L2CAP Service
gap_set_security_level(LEVEL_3);
l2cap_register_service(l2cap_packet_handler, 0x1001, 100, LEVEL_3);
gap_security_level_t security_level = LEVEL_2;
gap_set_security_level(security_level);
l2cap_register_service(l2cap_packet_handler, 0x1001, 100, security_level);
// register for HCI Events
hci_event_callback_registration.callback = &app_packet_handler;

View File

@ -20,7 +20,7 @@ Set TSPX_iut_private_address_interval to 60000 (default 5 seconds, but GAP/BROB/
- GAP/DISC/NONM/BV-02-C: d, C, A
- GAP/DISC/LIMM/BV-01-C: T, A, a (wait 30 sec)
- GAP/DISC/LIMM/BV-01-C: T, C, A, a (wait 30 sec)
- GAP/DISC/LIMM/BV-02-C: T, C, A, a (wait 30 sec)
- GAP/DISC/GENM/BV-01-C: D, a, d
- GAP/DISC/GENM/BV-02-C: D, A, C
@ -43,8 +43,14 @@ Set TSPX_iut_private_address_interval to 60000 (default 5 seconds, but GAP/BROB/
- GAP/IDLE/NAMP/BV-02-C: C, A
- GAP/IDLE/GIN/BV-01-C -> GAP Central
- GAP/IDLE/DNDIS/BV-01-C: D
- GAP/IDLE/LIN/BV-01-C: -> GAP Central
- GAP/IDLE/DED/BV-02-C -> GAP Central
-
- GAP/IDLE/BON/* -> GAP Central
- GAP/CONN/NCON/BV-01-C: c, A
- GAP/CONN/NCON/BV-02-C: c, D, A
@ -80,36 +86,39 @@ Set TSPX_iut_private_address_interval to 60000 (default 5 seconds, but GAP/BROB/
- GAP/CONN/PRDA/BV-01-C -> GAP Central
- GAP/CONN/PRDA/BV-02-C -> GAP Central
- GAP/EST/LIE/BV-02-C -> GAP Central
- BOND -> GAP Central
- GAP/SEC/AUT/BV-02-C: delete link keys, u, C
- GAP/SEC/AUT/BV-11-C: C, M, e, A, 18
- GAP/SEC/AUT/BV-12-C -> GAP Central
- GAP/SEC/AUT/BV-13-C -> GAP Central
- GAP/SEC/AUT/BV-14-C: C, M, e, A, 18
- GAP/SEC/AUT/BV-17-C -> GAP Central
- GAP/SEC/AUT/BV-18-C -> GAP Central
- GAP/SEC/AUT/BV-19-C -> GAP Central
- GAP/SEC/AUT/BV-20-C -> GAP Central
- GAP/SEC/AUT/BV-21-C -> GAP Central
- GAP/SEC/AUT/BV-22-C -> GAP Central
- GAP/SEC/AUT/BV-23-C: C, M, e, B, A, 18,
- GAP/SEC/AUT/BV-24-C -> GAP Central
- GAP/SEC/CSIGN/BV-01-C -> GAP Central
- GAP/SEC/CSIGN/BV-02-C -> GAP Central
- GAP/SEC/CSIGN/BI-01-C -> GAP Central
- GAP/SEC/CSIGN/BI-02-C -> GAP Central
- GAP/SEC/CSIGN/BI-03-C -> GAP Central
- GAP/SEC/CSIGN/BI-04-C -> GAP Central
- GAP/SEC/SEM/BV-02-C: u, (wait)
- GAP/SEC/SEM/BV-04-C: (wait)
- GAP/SEC/SEM/BV-05-C -> GAP Central
- GAP/SEC/SEM/BV-50-C -> GAP Central
- GAP/SEC/SEM/BV-06-C -> GAP Central
- GAP/SEC/SEM/BV-51-C -> GAP Central
- GAP/SEC/SEM/BV-07-C -> GAP Central
- GAP/SEC/SEM/BV-52-C -> GAP Central
- GAP/SEC/SEM/BV-08-C -> GAP Central
- GAP/SEC/SEM/BV-09-C -> GAP Central
- GAP/SEC/SEM/BV-53-C -> GAP Central
- GAP/SEC/SEM/BV-10-C: F, C, D
- GAP/SEC/SEM/BI-24-C: F, C, D, ???
- GAP/SEC/SEM/BV-46-C: NEW LE CBM
- GAP/SEC/SEM/BV-11-C: REQUIRE - PTS v4.0 Dongle without BR/EDR SC. C, D, J
- GAP/SEC/SEM/BV-12-C: F, C, D, J
- GAP/SEC/SEM/BV-13-C: F, C, D, M, B
- GAP/SEC/SEM/BV-47-C: C, D
- GAP/SEC/SEM/BV-14-C: F, C, D
- GAP/SEC/SEM/BV-15-C: Set L2CAP Service Level to 4, F, C, D
- GAP/SEC/SEM/BV-48-C: C, D
- GAP/SEC/SEM/BV-15-C: Set L2CAP Service Level to 4 in gap_peripheral_test.c, F, C, D
- GAP/SEC/SEM/BV-49-C: Set L2CAP Service Level to 4 in gap_peripheral_test.c, F, C, D
- GAP/SEC/SEM/BV-16-C -> GAP Central
- GAP/SEC/SEM/BV-17-C -> GAP Central
- GAP/SEC/SEM/BV-18-C -> GAP Central
- GAP/SEC/SEM/BV-54-C -> GAP Central
- GAP/SEC/SEM/BV-19-C -> GAP Central
- GAP/SEC/SEM/BV-55-C -> GAP Central
- GAP/SEC/SEM/BV-20-C -> GAP Central
- GAP/SEC/SEM/BV-21-C -> GAP Central
- GAP/SEC/SEM/BV-37-C -> GAP Central
- GAP/SEC/SEM/BV-38-C -> GAP Central
@ -119,7 +128,20 @@ Set TSPX_iut_private_address_interval to 60000 (default 5 seconds, but GAP/BROB/
- GAP/SEC/SEM/BV-23-C -> GAP Central
- GAP/SEC/SEM/BV-24-C -> GAP Central
- GAP/SEC/SEM/BV-25-C -> GAP Central
- GAP/SEC/SEM/BI-01-C: u, C, D (PTS says "send Connection Response" although we did, just wait), ca 3 minnutes
- GAP/SEC/SEM/BV-26-C -> GAP Central
- GAP/SEC/SEM/BV-41-C -> GAP Central
- GAP/SEC/SEM/BV-42-C -> GAP Central
- GAP/SEC/SEM/BV-27-C -> GAP Central
- GAP/SEC/SEM/BV-43-C -> GAP Central
- GAP/SEC/SEM/BV-44-C -> GAP Central
- GAP/SEC/SEM/BV-28-C -> GAP Central
- GAP/SEC/SEM/BV-29-C -> GAP Central
- GAP/SEC/SEM/BV-30-C -> GAP Central
- GAP/SEC/SEM/BV-31-C: not supported yet - LE Security Mode 3`
- GAP/SEC/SEM/BV-32-C: not supported yet - LE Security Mode 3
- GAP/SEC/SEM/BV-34-C: not supported yet - LE Security Mode 3
- GAP/SEC/SEM/BV-35-C: not supported yet - LE Security Mode 3
- GAP/SEC/SEM/BI-01-C: u, C, D (PTS says "send Connection Response" although we did), wait ca. 3 minutes
- GAP/SEC/SEM/BI-11-C: Set L2CAP Service Level to 1 - C, D
- GAP/SEC/SEM/BI-02-C: Set L2CAP Service Level to 2 - C, D
- GAP/SEC/SEM/BI-03-C: Set L2CAP Service Level to 2 - C, D
@ -146,7 +168,6 @@ Set TSPX_iut_private_address_interval to 60000 (default 5 seconds, but GAP/BROB/
- GAP/SEC/SEM/BV-07-C -> GAP Central
- GAP/SEC/SEM/BV-08-C -> GAP Central
- GAP/SEC/SEM/BV-09-C -> GAP Central
- GAP/SEC/SEM/BV-10-C: F, C, D
- GAP/SEC/SEM/BV-16-C -> GAP Central
- GAP/SEC/SEM/BV-17-C -> GAP Central
- GAP/SEC/SEM/BV-18-C -> GAP Central
@ -161,6 +182,27 @@ Set TSPX_iut_private_address_interval to 60000 (default 5 seconds, but GAP/BROB/
- GAP/SEC/SEM/BV-28-C -> GAP Central
- GAP/SEC/SEM/BV-29-C -> GAP Central
- GAP/SEC/SEM/BV-30-C -> GAP Central
-
- GAP/SEC/AUT/BV-02-C: delete link keys, u, C
- GAP/SEC/AUT/BV-11-C: C, M, e, A, 18
- GAP/SEC/AUT/BV-12-C -> GAP Central
- GAP/SEC/AUT/BV-13-C -> GAP Central
- GAP/SEC/AUT/BV-14-C: C, M, e, A, 18
- GAP/SEC/AUT/BV-17-C -> GAP Central
- GAP/SEC/AUT/BV-18-C -> GAP Central
- GAP/SEC/AUT/BV-19-C -> GAP Central
- GAP/SEC/AUT/BV-20-C -> GAP Central
- GAP/SEC/AUT/BV-21-C -> GAP Central
- GAP/SEC/AUT/BV-22-C -> GAP Central
- GAP/SEC/AUT/BV-23-C: C, M, e, B, A, 18,
- GAP/SEC/AUT/BV-24-C -> GAP Central
- GAP/SEC/CSIGN/BV-01-C -> GAP Central
- GAP/SEC/CSIGN/BV-02-C -> GAP Central
- GAP/SEC/CSIGN/BI-01-C -> GAP Central
- GAP/SEC/CSIGN/BI-02-C -> GAP Central
- GAP/SEC/CSIGN/BI-03-C -> GAP Central
- GAP/SEC/CSIGN/BI-04-C -> GAP Central
- GAP/PRIV/CONN/BV-10-C: C, A, Z, R, C, A, Z
- GAP/PRIV/CONN/BV-11-C -> GAP Central
@ -191,9 +233,13 @@ Set TSPX_iut_private_address_interval to 60000 (default 5 seconds, but GAP/BROB/
- GAP/MOD/LDIS/BV-02-C: T, D
- GAP/MOD/LDIS/BV-03-C: T, D, t, d
- GAP/MOD/LDIS/BV-01-C: D, A
- GAP/MOD/LDIS/BV-02-C: D, A
- GAP/MOD/GDIS/BV-01-C: D, A
- GAP/MOD/GDIS/BV-02-C: t, D, A
- GAP/MOD/NCON/BV-01-C: c
- GAP/MOD/CON/BV-01-C: C
- GAP/MOD/NBON/BV-02-C: E, C
- GAP/MOD/NBON/BV-03-C: Set L2CAP Service Level to 2, b, C