diff --git a/unit/test-stkutil.c b/unit/test-stkutil.c index 907ce65f..52638d6c 100644 --- a/unit/test-stkutil.c +++ b/unit/test-stkutil.c @@ -10610,6 +10610,648 @@ static const struct terminal_response_test get_inkey_response_data_1311 = { }, }; +static const unsigned char get_input_response_111[] = { + 0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82, + 0x81, 0x83, 0x01, 0x00, 0x8d, 0x06, 0x04, 0x31, + 0x32, 0x33, 0x34, 0x35, +}; + +static const struct terminal_response_test get_input_response_data_111 = { + .pdu = get_input_response_111, + .pdu_len = sizeof(get_input_response_111), + .response = { + .number = 1, + .type = STK_COMMAND_TYPE_GET_INPUT, + .qualifier = 0x00, + .src = STK_DEVICE_IDENTITY_TYPE_TERMINAL, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + .result = { + .type = STK_RESULT_TYPE_SUCCESS, + }, + { .get_input = { + .text = { + .text = "12345", + }, + }}, + }, +}; + +static const unsigned char get_input_response_121[] = { + 0x81, 0x03, 0x01, 0x23, 0x08, 0x82, 0x02, 0x82, + 0x81, 0x83, 0x01, 0x00, 0x8d, 0x06, 0x00, 0xb6, + 0x9b, 0x6a, 0xb4, 0x02, +}; + +static const struct terminal_response_test get_input_response_data_121 = { + .pdu = get_input_response_121, + .pdu_len = sizeof(get_input_response_121), + .response = { + .number = 1, + .type = STK_COMMAND_TYPE_GET_INPUT, + .qualifier = 0x08, /* Input is packed */ + .src = STK_DEVICE_IDENTITY_TYPE_TERMINAL, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + .result = { + .type = STK_RESULT_TYPE_SUCCESS, + }, + { .get_input = { + .text = { + .text = "67*#+", + .packed = TRUE, + }, + }}, + }, +}; + +static const unsigned char get_input_response_131[] = { + 0x81, 0x03, 0x01, 0x23, 0x01, 0x82, 0x02, 0x82, + 0x81, 0x83, 0x01, 0x00, 0x8d, 0x06, 0x04, 0x41, + 0x62, 0x43, 0x64, 0x45, +}; + +static const struct terminal_response_test get_input_response_data_131 = { + .pdu = get_input_response_131, + .pdu_len = sizeof(get_input_response_131), + .response = { + .number = 1, + .type = STK_COMMAND_TYPE_GET_INPUT, + .qualifier = 0x01, /* Allow all SMS characters */ + .src = STK_DEVICE_IDENTITY_TYPE_TERMINAL, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + .result = { + .type = STK_RESULT_TYPE_SUCCESS, + }, + { .get_input = { + .text = { + .text = "AbCdE", + }, + }}, + }, +}; + +static const unsigned char get_input_response_141[] = { + 0x81, 0x03, 0x01, 0x23, 0x04, 0x82, 0x02, 0x82, + 0x81, 0x83, 0x01, 0x00, 0x8d, 0x08, 0x04, 0x32, + 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, +}; + +static const struct terminal_response_test get_input_response_data_141 = { + .pdu = get_input_response_141, + .pdu_len = sizeof(get_input_response_141), + .response = { + .number = 1, + .type = STK_COMMAND_TYPE_GET_INPUT, + .qualifier = 0x04, /* Hide text */ + .src = STK_DEVICE_IDENTITY_TYPE_TERMINAL, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + .result = { + .type = STK_RESULT_TYPE_SUCCESS, + }, + { .get_input = { + .text = { + .text = "2345678", + }, + }}, + }, +}; + +static const unsigned char get_input_response_151[] = { + 0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82, + 0x81, 0x83, 0x01, 0x00, 0x8d, 0x15, 0x04, 0x31, + 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x30, +}; + +static const struct terminal_response_test get_input_response_data_151 = { + .pdu = get_input_response_151, + .pdu_len = sizeof(get_input_response_151), + .response = { + .number = 1, + .type = STK_COMMAND_TYPE_GET_INPUT, + .qualifier = 0x00, + .src = STK_DEVICE_IDENTITY_TYPE_TERMINAL, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + .result = { + .type = STK_RESULT_TYPE_SUCCESS, + }, + { .get_input = { + .text = { + .text = "12345678901234567890", + }, + }}, + }, +}; + +static const unsigned char get_input_response_161[] = { + 0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82, + 0x81, 0x83, 0x01, 0x11, +}; + +static const struct terminal_response_test get_input_response_data_161 = { + .pdu = get_input_response_161, + .pdu_len = sizeof(get_input_response_161), + .response = { + .number = 1, + .type = STK_COMMAND_TYPE_GET_INPUT, + .qualifier = 0x00, + .src = STK_DEVICE_IDENTITY_TYPE_TERMINAL, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + .result = { + .type = STK_RESULT_TYPE_GO_BACK, + }, + }, +}; + +static const unsigned char get_input_response_171[] = { + 0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82, + 0x81, 0x83, 0x01, 0x10, +}; + +static const struct terminal_response_test get_input_response_data_171 = { + .pdu = get_input_response_171, + .pdu_len = sizeof(get_input_response_171), + .response = { + .number = 1, + .type = STK_COMMAND_TYPE_GET_INPUT, + .qualifier = 0x00, + .src = STK_DEVICE_IDENTITY_TYPE_TERMINAL, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + .result = { + .type = STK_RESULT_TYPE_USER_TERMINATED, + }, + }, +}; + +static const unsigned char get_input_response_181[] = { + 0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82, + 0x81, 0x83, 0x01, 0x00, 0x8d, 0x81, 0xa1, 0x04, + 0x2a, 0x2a, 0x2a, 0x31, 0x31, 0x31, 0x31, 0x31, + 0x31, 0x31, 0x31, 0x31, 0x31, 0x23, 0x23, 0x23, + 0x2a, 0x2a, 0x2a, 0x32, 0x32, 0x32, 0x32, 0x32, + 0x32, 0x32, 0x32, 0x32, 0x32, 0x23, 0x23, 0x23, + 0x2a, 0x2a, 0x2a, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x23, 0x23, 0x23, + 0x2a, 0x2a, 0x2a, 0x34, 0x34, 0x34, 0x34, 0x34, + 0x34, 0x34, 0x34, 0x34, 0x34, 0x23, 0x23, 0x23, + 0x2a, 0x2a, 0x2a, 0x35, 0x35, 0x35, 0x35, 0x35, + 0x35, 0x35, 0x35, 0x35, 0x35, 0x23, 0x23, 0x23, + 0x2a, 0x2a, 0x2a, 0x36, 0x36, 0x36, 0x36, 0x36, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x23, 0x23, 0x23, + 0x2a, 0x2a, 0x2a, 0x37, 0x37, 0x37, 0x37, 0x37, + 0x37, 0x37, 0x37, 0x37, 0x37, 0x23, 0x23, 0x23, + 0x2a, 0x2a, 0x2a, 0x38, 0x38, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x23, 0x23, 0x23, + 0x2a, 0x2a, 0x2a, 0x39, 0x39, 0x39, 0x39, 0x39, + 0x39, 0x39, 0x39, 0x39, 0x39, 0x23, 0x23, 0x23, + 0x2a, 0x2a, 0x2a, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x23, 0x23, 0x23, +}; + +static const struct terminal_response_test get_input_response_data_181 = { + .pdu = get_input_response_181, + .pdu_len = sizeof(get_input_response_181), + .response = { + .number = 1, + .type = STK_COMMAND_TYPE_GET_INPUT, + .qualifier = 0x00, + .src = STK_DEVICE_IDENTITY_TYPE_TERMINAL, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + .result = { + .type = STK_RESULT_TYPE_SUCCESS, + }, + { .get_input = { + .text = { + .text = "***1111111111###***2222222222###" + "***3333333333###***4444444444###" + "***5555555555###***6666666666###" + "***7777777777###***8888888888###" + "***9999999999###***0000000000###", + }, + }}, + }, +}; + +static const unsigned char get_input_response_191a[] = { + 0x81, 0x03, 0x01, 0x23, 0x01, 0x82, 0x02, 0x82, + 0x81, 0x83, 0x01, 0x00, 0x8d, 0x01, 0x04, +}; + +static const unsigned char get_input_response_191b[] = { + 0x81, 0x03, 0x01, 0x23, 0x01, 0x82, 0x02, 0x82, + 0x81, 0x83, 0x01, 0x00, 0x8d, 0x00, +}; + +static const struct terminal_response_test get_input_response_data_191 = { + /* Either get_input_response_191a or get_input_response_191b is ok */ + .pdu = get_input_response_191a, + .pdu_len = sizeof(get_input_response_191a), + .response = { + .number = 1, + .type = STK_COMMAND_TYPE_GET_INPUT, + .qualifier = 0x01, /* Allow all SMS characters */ + .src = STK_DEVICE_IDENTITY_TYPE_TERMINAL, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + .result = { + .type = STK_RESULT_TYPE_SUCCESS, + }, + { .get_input = { + .text = { + .text = "", + }, + }}, + }, +}; + +static const unsigned char get_input_response_211[] = { + 0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82, + 0x81, 0x83, 0x01, 0x12, +}; + +static const struct terminal_response_test get_input_response_data_211 = { + .pdu = get_input_response_211, + .pdu_len = sizeof(get_input_response_211), + .response = { + .number = 1, + .type = STK_COMMAND_TYPE_GET_INPUT, + .qualifier = 0x00, + .src = STK_DEVICE_IDENTITY_TYPE_TERMINAL, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + .result = { + .type = STK_RESULT_TYPE_NO_RESPONSE, + }, + }, +}; + +static const unsigned char get_input_response_311[] = { + 0x81, 0x03, 0x01, 0x23, 0x01, 0x82, 0x02, 0x82, + 0x81, 0x83, 0x01, 0x00, 0x8d, 0x06, 0x04, 0x48, + 0x45, 0x4c, 0x4c, 0x4f, +}; + +static const struct terminal_response_test get_input_response_data_311 = { + .pdu = get_input_response_311, + .pdu_len = sizeof(get_input_response_311), + .response = { + .number = 1, + .type = STK_COMMAND_TYPE_GET_INPUT, + .qualifier = 0x01, /* Allow all SMS characters */ + .src = STK_DEVICE_IDENTITY_TYPE_TERMINAL, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + .result = { + .type = STK_RESULT_TYPE_SUCCESS, + }, + { .get_input = { + .text = { + .text = "HELLO", + }, + }}, + }, +}; + +static const unsigned char get_input_response_411[] = { + 0x81, 0x03, 0x01, 0x23, 0x03, 0x82, 0x02, 0x82, + 0x81, 0x83, 0x01, 0x00, 0x8d, 0x19, 0x08, 0x04, + 0x17, 0x04, 0x14, 0x04, 0x20, 0x04, 0x10, 0x04, + 0x12, 0x04, 0x21, 0x04, 0x22, 0x04, 0x12, 0x04, + 0x23, 0x04, 0x19, 0x04, 0x22, 0x04, 0x15, +}; + +static const struct terminal_response_test get_input_response_data_411 = { + .pdu = get_input_response_411, + .pdu_len = sizeof(get_input_response_411), + .response = { + .number = 1, + .type = STK_COMMAND_TYPE_GET_INPUT, + .qualifier = 0x03, /* Allow all UCS2 characters */ + .src = STK_DEVICE_IDENTITY_TYPE_TERMINAL, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + .result = { + .type = STK_RESULT_TYPE_SUCCESS, + }, + { .get_input = { + .text = { + .text = "ЗДРАВСТВУЙТЕ", + }, + }}, + }, +}; + +static const unsigned char get_input_response_421[] = { + 0x81, 0x03, 0x01, 0x23, 0x03, 0x82, 0x02, 0x82, + 0x81, 0x83, 0x01, 0x00, 0x8d, 0x81, 0x8d, 0x08, + 0x04, 0x17, 0x04, 0x14, 0x04, 0x20, 0x04, 0x10, + 0x04, 0x12, 0x04, 0x21, 0x04, 0x22, 0x04, 0x12, + 0x04, 0x23, 0x04, 0x19, 0x04, 0x22, 0x04, 0x15, + 0x04, 0x17, 0x04, 0x14, 0x04, 0x20, 0x04, 0x10, + 0x04, 0x12, 0x04, 0x21, 0x04, 0x22, 0x04, 0x12, + 0x04, 0x23, 0x04, 0x19, 0x04, 0x22, 0x04, 0x15, + 0x04, 0x17, 0x04, 0x14, 0x04, 0x20, 0x04, 0x10, + 0x04, 0x12, 0x04, 0x21, 0x04, 0x22, 0x04, 0x12, + 0x04, 0x23, 0x04, 0x19, 0x04, 0x22, 0x04, 0x15, + 0x04, 0x17, 0x04, 0x14, 0x04, 0x20, 0x04, 0x10, + 0x04, 0x12, 0x04, 0x21, 0x04, 0x22, 0x04, 0x12, + 0x04, 0x23, 0x04, 0x19, 0x04, 0x22, 0x04, 0x15, + 0x04, 0x17, 0x04, 0x14, 0x04, 0x20, 0x04, 0x10, + 0x04, 0x12, 0x04, 0x21, 0x04, 0x22, 0x04, 0x12, + 0x04, 0x23, 0x04, 0x19, 0x04, 0x22, 0x04, 0x15, + 0x04, 0x17, 0x04, 0x14, 0x04, 0x20, 0x04, 0x10, + 0x04, 0x12, 0x04, 0x21, 0x04, 0x22, 0x04, 0x12, + 0x04, 0x23, 0x04, 0x19, +}; + +static const struct terminal_response_test get_input_response_data_421 = { + .pdu = get_input_response_421, + .pdu_len = sizeof(get_input_response_421), + .response = { + .number = 1, + .type = STK_COMMAND_TYPE_GET_INPUT, + .qualifier = 0x03, /* Allow all UCS2 characters */ + .src = STK_DEVICE_IDENTITY_TYPE_TERMINAL, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + .result = { + .type = STK_RESULT_TYPE_SUCCESS, + }, + { .get_input = { + .text = { + .text = "ЗДРАВСТВУЙТЕЗДРАВСТВУЙТЕ" + "ЗДРАВСТВУЙТЕЗДРАВСТВУЙТЕ" + "ЗДРАВСТВУЙТЕЗДРАВСТВУЙ", + }, + }}, + }, +}; + +static const unsigned char get_input_response_611a[] = { + 0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82, + 0x81, 0x83, 0x01, 0x00, 0x8d, 0x02, 0x04, 0x2b, +}; + +static const struct terminal_response_test get_input_response_data_611a = { + .pdu = get_input_response_611a, + .pdu_len = sizeof(get_input_response_611a), + .response = { + .number = 1, + .type = STK_COMMAND_TYPE_GET_INPUT, + .qualifier = 0x00, + .src = STK_DEVICE_IDENTITY_TYPE_TERMINAL, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + .result = { + .type = STK_RESULT_TYPE_SUCCESS, + }, + { .get_input = { + .text = { + .text = "+", + }, + }}, + }, +}; + +static const unsigned char get_input_response_611b[] = { + 0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82, + 0x81, 0x83, 0x01, 0x04, 0x8d, 0x02, 0x04, 0x2b, +}; + +static const struct terminal_response_test get_input_response_data_611b = { + .pdu = get_input_response_611b, + .pdu_len = sizeof(get_input_response_611b), + .response = { + .number = 1, + .type = STK_COMMAND_TYPE_GET_INPUT, + .qualifier = 0x00, + .src = STK_DEVICE_IDENTITY_TYPE_TERMINAL, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + .result = { + .type = STK_RESULT_TYPE_NO_ICON, + }, + { .get_input = { + .text = { + .text = "+", + }, + }}, + }, +}; + +static const unsigned char get_input_response_711[] = { + 0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82, + 0x81, 0x83, 0x01, 0x13, +}; + +static const struct terminal_response_test get_input_response_data_711 = { + .pdu = get_input_response_711, + .pdu_len = sizeof(get_input_response_711), + .response = { + .number = 1, + .type = STK_COMMAND_TYPE_GET_INPUT, + .qualifier = 0x00, + .src = STK_DEVICE_IDENTITY_TYPE_TERMINAL, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + .result = { + .type = STK_RESULT_TYPE_HELP_REQUESTED, + }, + }, +}; + +static const unsigned char get_input_response_812[] = { + 0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82, + 0x81, 0x83, 0x01, 0x00, 0x8d, 0x06, 0x04, 0x32, + 0x32, 0x32, 0x32, 0x32, +}; + +static const struct terminal_response_test get_input_response_data_812 = { + .pdu = get_input_response_812, + .pdu_len = sizeof(get_input_response_812), + .response = { + .number = 1, + .type = STK_COMMAND_TYPE_GET_INPUT, + .qualifier = 0x00, + .src = STK_DEVICE_IDENTITY_TYPE_TERMINAL, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + .result = { + .type = STK_RESULT_TYPE_SUCCESS, + }, + { .get_input = { + .text = { + .text = "22222", + }, + }}, + }, +}; + +static const unsigned char get_input_response_843[] = { + 0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82, + 0x81, 0x83, 0x01, 0x00, 0x8d, 0x06, 0x04, 0x33, + 0x33, 0x33, 0x33, 0x33, +}; + +static const struct terminal_response_test get_input_response_data_843 = { + .pdu = get_input_response_843, + .pdu_len = sizeof(get_input_response_843), + .response = { + .number = 1, + .type = STK_COMMAND_TYPE_GET_INPUT, + .qualifier = 0x00, + .src = STK_DEVICE_IDENTITY_TYPE_TERMINAL, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + .result = { + .type = STK_RESULT_TYPE_SUCCESS, + }, + { .get_input = { + .text = { + .text = "33333", + }, + }}, + }, +}; + +static const unsigned char get_input_response_1011[] = { + 0x81, 0x03, 0x01, 0x23, 0x03, 0x82, 0x02, 0x82, + 0x81, 0x83, 0x01, 0x00, 0x8d, 0x05, 0x08, 0x4f, + 0x60, 0x59, 0x7d, +}; + +static const struct terminal_response_test get_input_response_data_1011 = { + .pdu = get_input_response_1011, + .pdu_len = sizeof(get_input_response_1011), + .response = { + .number = 1, + .type = STK_COMMAND_TYPE_GET_INPUT, + .qualifier = 0x03, /* Allow all UCS2 characters */ + .src = STK_DEVICE_IDENTITY_TYPE_TERMINAL, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + .result = { + .type = STK_RESULT_TYPE_SUCCESS, + }, + { .get_input = { + .text = { + .text = "你好", + }, + }}, + }, +}; + +static const unsigned char get_input_response_1021[] = { + 0x81, 0x03, 0x01, 0x23, 0x03, 0x82, 0x02, 0x82, + 0x81, 0x83, 0x01, 0x00, 0x8d, 0x81, 0x8d, 0x08, + 0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d, + 0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d, + 0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d, + 0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d, + 0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d, + 0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d, + 0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d, + 0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d, + 0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d, + 0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d, + 0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d, + 0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d, + 0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d, + 0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d, + 0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d, + 0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d, + 0x4f, 0x60, 0x59, 0x7d, 0x4f, 0x60, 0x59, 0x7d, + 0x4f, 0x60, 0x59, 0x7d, +}; + +static const struct terminal_response_test get_input_response_data_1021 = { + .pdu = get_input_response_1021, + .pdu_len = sizeof(get_input_response_1021), + .response = { + .number = 1, + .type = STK_COMMAND_TYPE_GET_INPUT, + .qualifier = 0x03, /* Allow all UCS2 characters */ + .src = STK_DEVICE_IDENTITY_TYPE_TERMINAL, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + .result = { + .type = STK_RESULT_TYPE_SUCCESS, + }, + { .get_input = { + .text = { + .text = "你好你好你好你好你好你好" + "你好你好你好你好你好你好" + "你好你好你好你好你好你好" + "你好你好你好你好你好你好" + "你好你好你好你好你好你好" + "你好你好你好你好你好", + }, + }}, + }, +}; + +static const unsigned char get_input_response_1211[] = { + 0x81, 0x03, 0x01, 0x23, 0x03, 0x82, 0x02, 0x82, + 0x81, 0x83, 0x01, 0x00, 0x8d, 0x05, 0x08, 0x30, + 0xeb, 0x30, 0xeb, +}; + +static const struct terminal_response_test get_input_response_data_1211 = { + .pdu = get_input_response_1211, + .pdu_len = sizeof(get_input_response_1211), + .response = { + .number = 1, + .type = STK_COMMAND_TYPE_GET_INPUT, + .qualifier = 0x03, /* Allow all UCS2 characters */ + .src = STK_DEVICE_IDENTITY_TYPE_TERMINAL, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + .result = { + .type = STK_RESULT_TYPE_SUCCESS, + }, + { .get_input = { + .text = { + .text = "ルル", + }, + }}, + }, +}; + +static const unsigned char get_input_response_1221[] = { + 0x81, 0x03, 0x01, 0x23, 0x03, 0x82, 0x02, 0x82, + 0x81, 0x83, 0x01, 0x00, 0x8d, 0x81, 0x8d, 0x08, + 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, + 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, + 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, + 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, + 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, + 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, + 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, + 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, + 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, + 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, + 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, + 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, + 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, + 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, + 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, + 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, + 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, 0x30, 0xeb, + 0x30, 0xeb, 0x30, 0xeb, +}; + +static const struct terminal_response_test get_input_response_data_1221 = { + .pdu = get_input_response_1221, + .pdu_len = sizeof(get_input_response_1221), + .response = { + .number = 1, + .type = STK_COMMAND_TYPE_GET_INPUT, + .qualifier = 0x03, /* Allow all UCS2 characters */ + .src = STK_DEVICE_IDENTITY_TYPE_TERMINAL, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + .result = { + .type = STK_RESULT_TYPE_SUCCESS, + }, + { .get_input = { + .text = { + .text = "ルルルルルルルルルルルル" + "ルルルルルルルルルルルル" + "ルルルルルルルルルルルル" + "ルルルルルルルルルルルル" + "ルルルルルルルルルルルル" + "ルルルルルルルルルル", + }, + }}, + }, +}; + int main(int argc, char **argv) { g_test_init(&argc, &argv, NULL); @@ -10939,6 +11581,73 @@ int main(int argc, char **argv) g_test_add_data_func("/teststk/Get Input 12.2.1", &get_input_data_1221, test_get_input); + g_test_add_data_func("/teststk/Get Input response 1.1.1", + &get_input_response_data_111, + test_terminal_response_encoding); + g_test_add_data_func("/teststk/Get Input response 1.2.1", + &get_input_response_data_121, + test_terminal_response_encoding); + g_test_add_data_func("/teststk/Get Input response 1.3.1", + &get_input_response_data_131, + test_terminal_response_encoding); + g_test_add_data_func("/teststk/Get Input response 1.4.1", + &get_input_response_data_141, + test_terminal_response_encoding); + g_test_add_data_func("/teststk/Get Input response 1.5.1", + &get_input_response_data_151, + test_terminal_response_encoding); + g_test_add_data_func("/teststk/Get Input response 1.6.1", + &get_input_response_data_161, + test_terminal_response_encoding); + g_test_add_data_func("/teststk/Get Input response 1.7.1", + &get_input_response_data_171, + test_terminal_response_encoding); + g_test_add_data_func("/teststk/Get Input response 1.8.1", + &get_input_response_data_181, + test_terminal_response_encoding); + g_test_add_data_func("/teststk/Get Input response 1.9.1", + &get_input_response_data_191, + test_terminal_response_encoding); + g_test_add_data_func("/teststk/Get Input response 2.1.1", + &get_input_response_data_211, + test_terminal_response_encoding); + g_test_add_data_func("/teststk/Get Input response 3.1.1", + &get_input_response_data_311, + test_terminal_response_encoding); + g_test_add_data_func("/teststk/Get Input response 4.1.1", + &get_input_response_data_411, + test_terminal_response_encoding); + g_test_add_data_func("/teststk/Get Input response 4.2.1", + &get_input_response_data_421, + test_terminal_response_encoding); + g_test_add_data_func("/teststk/Get Input response 6.1.1A", + &get_input_response_data_611a, + test_terminal_response_encoding); + g_test_add_data_func("/teststk/Get Input response 6.1.1B", + &get_input_response_data_611b, + test_terminal_response_encoding); + g_test_add_data_func("/teststk/Get Input response 7.1.1", + &get_input_response_data_711, + test_terminal_response_encoding); + g_test_add_data_func("/teststk/Get Input response 8.1.2", + &get_input_response_data_812, + test_terminal_response_encoding); + g_test_add_data_func("/teststk/Get Input response 8.4.3", + &get_input_response_data_843, + test_terminal_response_encoding); + g_test_add_data_func("/teststk/Get Input response 10.1.1", + &get_input_response_data_1011, + test_terminal_response_encoding); + g_test_add_data_func("/teststk/Get Input response 10.2.1", + &get_input_response_data_1021, + test_terminal_response_encoding); + g_test_add_data_func("/teststk/Get Input response 12.1.1", + &get_input_response_data_1211, + test_terminal_response_encoding); + g_test_add_data_func("/teststk/Get Input response 12.2.1", + &get_input_response_data_1221, + test_terminal_response_encoding); + g_test_add_data_func("/teststk/More Time 1.1.1", &more_time_data_111, test_more_time);