1
0
mirror of https://github.com/ARMmbed/mbedtls.git synced 2025-05-13 10:19:53 +08:00

tests: early data status: Add "server rejects" scenario

Signed-off-by: Ronald Cron <ronald.cron@arm.com>
This commit is contained in:
Ronald Cron 2024-01-24 12:22:24 +01:00
parent 265273e8b3
commit d6dba675b8
2 changed files with 52 additions and 12 deletions

View File

@ -3277,8 +3277,8 @@ tls13_resume_session_with_ticket
TLS 1.3 early data, early data accepted TLS 1.3 early data, early data accepted
tls13_early_data:TEST_EARLY_DATA_ACCEPTED tls13_early_data:TEST_EARLY_DATA_ACCEPTED
TLS 1.3 early data, deprotect and discard TLS 1.3 early data, server rejects early data
tls13_early_data:TEST_EARLY_DATA_DEPROTECT_AND_DISCARD tls13_early_data:TEST_EARLY_DATA_SERVER_REJECTS
TLS 1.3 early data, discard after HRR TLS 1.3 early data, discard after HRR
tls13_early_data:TEST_EARLY_DATA_DISCARD_AFTER_HRR tls13_early_data:TEST_EARLY_DATA_DISCARD_AFTER_HRR
@ -3288,3 +3288,6 @@ tls13_cli_early_data_status:TEST_EARLY_DATA_ACCEPTED
TLS 1.3 cli, early data status, no early data indication TLS 1.3 cli, early data status, no early data indication
tls13_cli_early_data_status:TEST_EARLY_DATA_NO_INDICATION_SENT tls13_cli_early_data_status:TEST_EARLY_DATA_NO_INDICATION_SENT
TLS 1.3 cli, early data status, server rejects early data
tls13_cli_early_data_status:TEST_EARLY_DATA_SERVER_REJECTS

View File

@ -15,7 +15,7 @@
/* Mnemonics for the early data test scenarios */ /* Mnemonics for the early data test scenarios */
#define TEST_EARLY_DATA_ACCEPTED 0 #define TEST_EARLY_DATA_ACCEPTED 0
#define TEST_EARLY_DATA_NO_INDICATION_SENT 1 #define TEST_EARLY_DATA_NO_INDICATION_SENT 1
#define TEST_EARLY_DATA_DEPROTECT_AND_DISCARD 2 #define TEST_EARLY_DATA_SERVER_REJECTS 2
#define TEST_EARLY_DATA_DISCARD_AFTER_HRR 3 #define TEST_EARLY_DATA_DISCARD_AFTER_HRR 3
#if (!defined(MBEDTLS_SSL_PROTO_TLS1_2)) && \ #if (!defined(MBEDTLS_SSL_PROTO_TLS1_2)) && \
@ -3699,7 +3699,7 @@ void tls13_early_data(int scenario)
case TEST_EARLY_DATA_ACCEPTED: case TEST_EARLY_DATA_ACCEPTED:
break; break;
case TEST_EARLY_DATA_DEPROTECT_AND_DISCARD: case TEST_EARLY_DATA_SERVER_REJECTS:
mbedtls_debug_set_threshold(3); mbedtls_debug_set_threshold(3);
server_pattern.pattern = server_pattern.pattern =
"EarlyData: deprotect and discard app data records."; "EarlyData: deprotect and discard app data records.";
@ -3766,7 +3766,7 @@ void tls13_early_data(int scenario)
TEST_MEMORY_COMPARE(buf, early_data_len, early_data, early_data_len); TEST_MEMORY_COMPARE(buf, early_data_len, early_data, early_data_len);
break; break;
case TEST_EARLY_DATA_DEPROTECT_AND_DISCARD: /* Intentional fallthrough */ case TEST_EARLY_DATA_SERVER_REJECTS: /* Intentional fallthrough */
case TEST_EARLY_DATA_DISCARD_AFTER_HRR: case TEST_EARLY_DATA_DISCARD_AFTER_HRR:
TEST_EQUAL(ret, 0); TEST_EQUAL(ret, 0);
TEST_EQUAL(server_ep.ssl.handshake->early_data_accepted, 0); TEST_EQUAL(server_ep.ssl.handshake->early_data_accepted, 0);
@ -3829,6 +3829,10 @@ void tls13_cli_early_data_status(int scenario)
client_options.early_data = MBEDTLS_SSL_EARLY_DATA_DISABLED; client_options.early_data = MBEDTLS_SSL_EARLY_DATA_DISABLED;
break; break;
case TEST_EARLY_DATA_SERVER_REJECTS:
server_options.early_data = MBEDTLS_SSL_EARLY_DATA_DISABLED;
break;
default: default:
TEST_FAIL("Unknown scenario."); TEST_FAIL("Unknown scenario.");
} }
@ -3879,7 +3883,8 @@ void tls13_cli_early_data_status(int scenario)
case MBEDTLS_SSL_CLIENT_HELLO: case MBEDTLS_SSL_CLIENT_HELLO:
switch (scenario) { switch (scenario) {
case TEST_EARLY_DATA_ACCEPTED: /* Intentional fallthrough */ case TEST_EARLY_DATA_ACCEPTED: /* Intentional fallthrough */
case TEST_EARLY_DATA_NO_INDICATION_SENT: case TEST_EARLY_DATA_NO_INDICATION_SENT: /* Intentional fallthrough */
case TEST_EARLY_DATA_SERVER_REJECTS:
TEST_EQUAL(client_ep.ssl.early_data_status, TEST_EQUAL(client_ep.ssl.early_data_status,
MBEDTLS_SSL_EARLY_DATA_STATUS_UNKNOWN); MBEDTLS_SSL_EARLY_DATA_STATUS_UNKNOWN);
break; break;
@ -3888,7 +3893,8 @@ void tls13_cli_early_data_status(int scenario)
case MBEDTLS_SSL_SERVER_HELLO: case MBEDTLS_SSL_SERVER_HELLO:
switch (scenario) { switch (scenario) {
case TEST_EARLY_DATA_ACCEPTED: case TEST_EARLY_DATA_ACCEPTED: /* Intentional fallthrough */
case TEST_EARLY_DATA_SERVER_REJECTS:
TEST_EQUAL(client_ep.ssl.early_data_status, TEST_EQUAL(client_ep.ssl.early_data_status,
MBEDTLS_SSL_EARLY_DATA_STATUS_CAN_WRITE); MBEDTLS_SSL_EARLY_DATA_STATUS_CAN_WRITE);
break; break;
@ -3902,7 +3908,8 @@ void tls13_cli_early_data_status(int scenario)
case MBEDTLS_SSL_ENCRYPTED_EXTENSIONS: case MBEDTLS_SSL_ENCRYPTED_EXTENSIONS:
switch (scenario) { switch (scenario) {
case TEST_EARLY_DATA_ACCEPTED: case TEST_EARLY_DATA_ACCEPTED: /* Intentional fallthrough */
case TEST_EARLY_DATA_SERVER_REJECTS:
TEST_EQUAL(client_ep.ssl.early_data_status, TEST_EQUAL(client_ep.ssl.early_data_status,
MBEDTLS_SSL_EARLY_DATA_STATUS_CAN_WRITE); MBEDTLS_SSL_EARLY_DATA_STATUS_CAN_WRITE);
break; break;
@ -3925,6 +3932,11 @@ void tls13_cli_early_data_status(int scenario)
TEST_EQUAL(client_ep.ssl.early_data_status, TEST_EQUAL(client_ep.ssl.early_data_status,
MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_SENT); MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_SENT);
break; break;
case TEST_EARLY_DATA_SERVER_REJECTS:
TEST_EQUAL(client_ep.ssl.early_data_status,
MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED);
break;
} }
break; break;
@ -3945,6 +3957,11 @@ void tls13_cli_early_data_status(int scenario)
TEST_EQUAL(client_ep.ssl.early_data_status, TEST_EQUAL(client_ep.ssl.early_data_status,
MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_SENT); MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_SENT);
break; break;
case TEST_EARLY_DATA_SERVER_REJECTS:
TEST_EQUAL(client_ep.ssl.early_data_status,
MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED);
break;
} }
break; break;
@ -3959,6 +3976,11 @@ void tls13_cli_early_data_status(int scenario)
TEST_EQUAL(client_ep.ssl.early_data_status, TEST_EQUAL(client_ep.ssl.early_data_status,
MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_SENT); MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_SENT);
break; break;
case TEST_EARLY_DATA_SERVER_REJECTS:
TEST_EQUAL(client_ep.ssl.early_data_status,
MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED);
break;
} }
break; break;
@ -3966,7 +3988,8 @@ void tls13_cli_early_data_status(int scenario)
case MBEDTLS_SSL_CLIENT_CCS_AFTER_CLIENT_HELLO: case MBEDTLS_SSL_CLIENT_CCS_AFTER_CLIENT_HELLO:
TEST_ASSERT(scenario != TEST_EARLY_DATA_NO_INDICATION_SENT); TEST_ASSERT(scenario != TEST_EARLY_DATA_NO_INDICATION_SENT);
switch (scenario) { switch (scenario) {
case TEST_EARLY_DATA_ACCEPTED: case TEST_EARLY_DATA_ACCEPTED: /* Intentional fallthrough */
case TEST_EARLY_DATA_SERVER_REJECTS:
TEST_EQUAL(client_ep.ssl.early_data_status, TEST_EQUAL(client_ep.ssl.early_data_status,
MBEDTLS_SSL_EARLY_DATA_STATUS_SENT); MBEDTLS_SSL_EARLY_DATA_STATUS_SENT);
break; break;
@ -3974,10 +3997,19 @@ void tls13_cli_early_data_status(int scenario)
break; break;
case MBEDTLS_SSL_CLIENT_CCS_AFTER_SERVER_FINISHED: case MBEDTLS_SSL_CLIENT_CCS_AFTER_SERVER_FINISHED:
TEST_ASSERT(scenario == TEST_EARLY_DATA_NO_INDICATION_SENT); TEST_ASSERT(scenario != TEST_EARLY_DATA_ACCEPTED);
switch (scenario) {
case TEST_EARLY_DATA_NO_INDICATION_SENT:
TEST_EQUAL(client_ep.ssl.early_data_status, TEST_EQUAL(client_ep.ssl.early_data_status,
MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_SENT); MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_SENT);
break; break;
case TEST_EARLY_DATA_SERVER_REJECTS:
TEST_EQUAL(client_ep.ssl.early_data_status,
MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED);
break;
}
break;
#endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */ #endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */
case MBEDTLS_SSL_FLUSH_BUFFERS: /* Intentional fallthrough */ case MBEDTLS_SSL_FLUSH_BUFFERS: /* Intentional fallthrough */
@ -3993,6 +4025,11 @@ void tls13_cli_early_data_status(int scenario)
TEST_EQUAL(client_ep.ssl.early_data_status, TEST_EQUAL(client_ep.ssl.early_data_status,
MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_SENT); MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_SENT);
break; break;
case TEST_EARLY_DATA_SERVER_REJECTS:
TEST_EQUAL(client_ep.ssl.early_data_status,
MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED);
break;
} }
break; break;