mirror of
				https://github.com/Mbed-TLS/mbedtls.git
				synced 2025-10-28 23:14:56 +03:00 
			
		
		
		
	Add moving state test for TLS1.3
Signed-off-by: Jerry Yu <jerry.h.yu@arm.com>
This commit is contained in:
		| @@ -248,6 +248,126 @@ Negative test moving servers ssl to state: NEW_SESSION_TICKET | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_2:!MBEDTLS_USE_PSA_CRYPTO:!MBEDTLS_SSL_PROTO_TLS1_3 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_NEW_SESSION_TICKET:0 | ||||
|  | ||||
| TLSv1.3:Test moving clients handshake to state: HELLO_REQUEST | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_HELLO_REQUEST:1 | ||||
|  | ||||
| TLSv1.3:Test moving servers handshake to state: HELLO_REQUEST | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_HELLO_REQUEST:1 | ||||
|  | ||||
| TLSv1.3:Test moving clients handshake to state: CLIENT_HELLO | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_HELLO:1 | ||||
|  | ||||
| TLSv1.3:Test moving servers handshake to state: CLIENT_HELLO | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_HELLO:1 | ||||
|  | ||||
| TLSv1.3:Test moving clients handshake to state: SERVER_HELLO | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_HELLO:1 | ||||
|  | ||||
| TLSv1.3:Test moving servers handshake to state: SERVER_HELLO | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_HELLO:1 | ||||
|  | ||||
| TLSv1.3:Test moving clients handshake to state: ENCRYPTED_EXTENSIONS | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_ENCRYPTED_EXTENSIONS:1 | ||||
|  | ||||
| TLSv1.3:Test moving servers handshake to state: ENCRYPTED_EXTENSIONS | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_ENCRYPTED_EXTENSIONS:1 | ||||
|  | ||||
| TLSv1.3:Test moving clients handshake to state: CERTIFICATE_REQUEST | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CERTIFICATE_REQUEST:1 | ||||
|  | ||||
| TLSv1.3:Test moving servers handshake to state: CERTIFICATE_REQUEST | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CERTIFICATE_REQUEST:0 | ||||
|  | ||||
| TLSv1.3:Test moving clients handshake to state: SERVER_CERTIFICATE | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_CERTIFICATE:1 | ||||
|  | ||||
| TLSv1.3:Test moving servers handshake to state: SERVER_CERTIFICATE | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_CERTIFICATE:1 | ||||
|  | ||||
| TLSv1.3:Test moving clients handshake to state: CERTIFICATE_VERIFY | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CERTIFICATE_VERIFY:1 | ||||
|  | ||||
| TLSv1.3:Test moving servers handshake to state: CERTIFICATE_VERIFY | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CERTIFICATE_VERIFY:1 | ||||
|  | ||||
| TLSv1.3:Test moving clients handshake to state: SERVER_FINISHED | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_FINISHED:1 | ||||
|  | ||||
| TLSv1.3:Test moving servers handshake to state: SERVER_FINISHED | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_FINISHED:1 | ||||
|  | ||||
| TLSv1.3:Test moving clients handshake to state: CLIENT_CERTIFICATE | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_CERTIFICATE:1 | ||||
|  | ||||
| TLSv1.3:Test moving servers handshake to state: CLIENT_CERTIFICATE | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_CERTIFICATE:0 | ||||
|  | ||||
| TLSv1.3:Test moving clients handshake to state: CLIENT_CERTIFICATE_VERIFY | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY:0 | ||||
|  | ||||
| TLSv1.3:Test moving servers handshake to state: CLIENT_CERTIFICATE_VERIFY | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY:0 | ||||
|  | ||||
| TLSv1.3:Test moving clients handshake to state: CLIENT_FINISHED | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_FINISHED:1 | ||||
|  | ||||
| TLSv1.3:Test moving servers handshake to state: CLIENT_FINISHED | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_FINISHED:1 | ||||
|  | ||||
| TLSv1.3:Test moving clients handshake to state: FLUSH_BUFFERS | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_FLUSH_BUFFERS:1 | ||||
|  | ||||
| TLSv1.3:Test moving servers handshake to state: FLUSH_BUFFERS | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_FLUSH_BUFFERS:0 | ||||
|  | ||||
| TLSv1.3:Test moving clients handshake to state: HANDSHAKE_WRAPUP | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_HANDSHAKE_WRAPUP:1 | ||||
|  | ||||
| TLSv1.3:Test moving servers handshake to state: HANDSHAKE_WRAPUP | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_HANDSHAKE_WRAPUP:0 | ||||
|  | ||||
| TLSv1.3:Test moving clients handshake to state: CLIENT_CCS_BEFORE_2ND_CLIENT_HELLO | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_CCS_BEFORE_2ND_CLIENT_HELLO:0 | ||||
|  | ||||
| TLSv1.3:Test moving servers handshake to state: CLIENT_CCS_BEFORE_2ND_CLIENT_HELLO | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_CCS_BEFORE_2ND_CLIENT_HELLO:0 | ||||
|  | ||||
| TLSv1.3:Test moving clients handshake to state: CLIENT_CCS_AFTER_SERVER_FINISHED | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_CCS_AFTER_SERVER_FINISHED:1 | ||||
|  | ||||
| TLSv1.3:Test moving servers handshake to state: CLIENT_CCS_AFTER_SERVER_FINISHED | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_CCS_AFTER_SERVER_FINISHED:0 | ||||
|  | ||||
| Handshake, tls1_2 | ||||
| depends_on:MBEDTLS_SSL_PROTO_TLS1_2 | ||||
| handshake_version:0:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2 | ||||
|   | ||||
| @@ -751,6 +751,7 @@ typedef struct mbedtls_endpoint | ||||
|     mbedtls_entropy_context entropy; | ||||
|     mbedtls_mock_socket socket; | ||||
|     mbedtls_endpoint_certificate cert; | ||||
|     FILE *dbg_output; | ||||
| } mbedtls_endpoint; | ||||
|  | ||||
| /* | ||||
| @@ -872,6 +873,17 @@ exit: | ||||
|     return ret; | ||||
| } | ||||
|  | ||||
| static void my_debug( void *ctx, int level, | ||||
|                       const char *file, int line, | ||||
|                       const char *str ) | ||||
| { | ||||
|     ((void) level); | ||||
|     mbedtls_endpoint *ep=(mbedtls_endpoint *)ctx; | ||||
|     mbedtls_fprintf( ep->dbg_output, | ||||
|                      "%s: %s:%04d: %s", | ||||
|                      ep->name, file, line, str ); | ||||
|     fflush( ep->dbg_output  ); | ||||
| } | ||||
| /* | ||||
|  * Initializes \p ep structure. It is important to call `mbedtls_endpoint_free()` | ||||
|  * after calling this function even if it fails. | ||||
| @@ -886,6 +898,7 @@ exit: | ||||
|  * | ||||
|  * \retval  0 on success, otherwise error code. | ||||
|  */ | ||||
|  | ||||
| int mbedtls_endpoint_init( mbedtls_endpoint *ep, int endpoint_type, int pk_alg, | ||||
|                            mbedtls_test_message_socket_context *dtls_context, | ||||
|                            mbedtls_test_message_queue *input_queue, | ||||
| @@ -913,6 +926,8 @@ int mbedtls_endpoint_init( mbedtls_endpoint *ep, int endpoint_type, int pk_alg, | ||||
|         &( ep->ctr_drbg ) ); | ||||
|     mbedtls_entropy_init( &( ep->entropy ) ); | ||||
|  | ||||
|  | ||||
|  | ||||
|     TEST_ASSERT( mbedtls_ssl_conf_get_user_data_p( &ep->conf ) == NULL ); | ||||
|     TEST_EQUAL( mbedtls_ssl_conf_get_user_data_n( &ep->conf ), 0 ); | ||||
|     TEST_ASSERT( mbedtls_ssl_get_user_data_p( &ep->ssl ) == NULL ); | ||||
| @@ -981,6 +996,9 @@ int mbedtls_endpoint_init( mbedtls_endpoint *ep, int endpoint_type, int pk_alg, | ||||
|     mbedtls_ssl_conf_set_user_data_p( &ep->conf, ep ); | ||||
|     TEST_EQUAL( mbedtls_ssl_get_user_data_n( &ep->ssl ), user_data_n ); | ||||
|     mbedtls_ssl_set_user_data_p( &ep->ssl, ep ); | ||||
|     ep->dbg_output = stderr; | ||||
|     mbedtls_ssl_conf_dbg( &ep->conf, my_debug, ep ); | ||||
|     mbedtls_debug_set_threshold( 100 ); | ||||
|  | ||||
| exit: | ||||
|     return ret; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user