test: pake: reshaping the ssl_ecjpake_set_password()
Removed the "error injection" strategy. Now the functions checks
for all the errors in a row.
Signed-off-by: Valerio Setti <vsetti@baylibre.com>
diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data
index 0cec784..66d32a1 100644
--- a/tests/suites/test_suite_ssl.data
+++ b/tests/suites/test_suite_ssl.data
@@ -3570,28 +3570,8 @@
EC-JPAKE set password
depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED
-ssl_ecjpake_set_password:0:ECJPAKE_ERR_NONE:0
-
-EC-JPAKE set password - uninitiazed SSL context
-depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED
-ssl_ecjpake_set_password:0:ECJPAKE_ERR_UNITIALIZED_SSL_CONTEXT:MBEDTLS_ERR_SSL_BAD_INPUT_DATA
-
-EC-JPAKE set password - empty password
-depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED
-ssl_ecjpake_set_password:0:ECJPAKE_ERR_EMPTY_PASSWORD:MBEDTLS_ERR_SSL_BAD_INPUT_DATA
+ssl_ecjpake_set_password:0
EC-JPAKE set opaque password
depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED:MBEDTLS_USE_PSA_CRYPTO
-ssl_ecjpake_set_password:1:ECJPAKE_ERR_NONE:0
-
-EC-JPAKE set opaque password - uninitiazed SSL context
-depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED:MBEDTLS_USE_PSA_CRYPTO
-ssl_ecjpake_set_password:1:ECJPAKE_ERR_UNITIALIZED_SSL_CONTEXT:MBEDTLS_ERR_SSL_BAD_INPUT_DATA
-
-EC-JPAKE set opaque password - empty password
-depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED:MBEDTLS_USE_PSA_CRYPTO
-ssl_ecjpake_set_password:1:ECJPAKE_ERR_EMPTY_PASSWORD:MBEDTLS_ERR_SSL_BAD_INPUT_DATA
-
-EC-JPAKE set opaque password - uninitalized password key
-depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED:MBEDTLS_USE_PSA_CRYPTO
-ssl_ecjpake_set_password:1:ECJPAKE_ERR_UNINITIALIZED_PWD_KEY:MBEDTLS_ERR_SSL_BAD_INPUT_DATA
+ssl_ecjpake_set_password:1
diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function
index bfc6a37..0530ca0 100644
--- a/tests/suites/test_suite_ssl.function
+++ b/tests/suites/test_suite_ssl.function
@@ -2583,14 +2583,20 @@
}
#endif /* MBEDTLS_TEST_HOOKS */
-typedef enum {
- ECJPAKE_ERR_NONE,
- ECJPAKE_ERR_UNITIALIZED_SSL_CONTEXT,
- ECJPAKE_ERR_EMPTY_PASSWORD,
- ECJPAKE_ERR_UNINITIALIZED_PWD_KEY,
-} ecjpake_err_inj_step_t;
-
#define ECJPAKE_TEST_PWD "bla"
+
+#if defined( MBEDTLS_USE_PSA_CRYPTO )
+#define ECJPAKE_TEST_SET_PASSWORD( exp_ret_val ) \
+ ret = ( use_opaque_arg ) ? \
+ mbedtls_ssl_set_hs_ecjpake_password_opaque( &ssl, pwd_slot ) : \
+ mbedtls_ssl_set_hs_ecjpake_password( &ssl, pwd_string, pwd_len ); \
+ TEST_ASSERT( ret == exp_ret_val )
+#else
+#define ECJPAKE_TEST_SET_PASSWORD( exp_ret_val ) \
+ ret = mbedtls_ssl_set_hs_ecjpake_password( &ssl, \
+ pwd_string, pwd_len ); \
+ TEST_ASSERT( ret == exp_ret_val )
+#endif
/* END_HEADER */
/* BEGIN_DEPENDENCIES
@@ -6191,9 +6197,7 @@
/* END_CASE */
/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */
-void ssl_ecjpake_set_password( int use_opaque_arg,
- int err_injection_step_arg,
- int expected_error_arg )
+void ssl_ecjpake_set_password( int use_opaque_arg )
{
mbedtls_ssl_context ssl;
mbedtls_ssl_config conf;
@@ -6204,15 +6208,14 @@
#endif /* MBEDTLS_USE_PSA_CRYPTO */
const unsigned char pwd_string[ sizeof(ECJPAKE_TEST_PWD) ] = "";
size_t pwd_len = 0;
- ecjpake_err_inj_step_t err_injection_step = err_injection_step_arg;
int ret;
USE_PSA_INIT( );
mbedtls_ssl_init( &ssl );
- if( err_injection_step == ECJPAKE_ERR_UNITIALIZED_SSL_CONTEXT )
- goto run_test;
+ /* test with uninitalized SSL context */
+ ECJPAKE_TEST_SET_PASSWORD( MBEDTLS_ERR_SSL_BAD_INPUT_DATA );
mbedtls_ssl_config_init( &conf );
@@ -6224,8 +6227,8 @@
TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 );
- if( err_injection_step == ECJPAKE_ERR_EMPTY_PASSWORD )
- goto run_test;
+ /* test with empty password */
+ ECJPAKE_TEST_SET_PASSWORD( MBEDTLS_ERR_SSL_BAD_INPUT_DATA );
pwd_len = strlen( ECJPAKE_TEST_PWD );
memcpy( (void*) pwd_string, ECJPAKE_TEST_PWD, pwd_len );
@@ -6233,8 +6236,8 @@
#if defined( MBEDTLS_USE_PSA_CRYPTO )
if( use_opaque_arg )
{
- if( err_injection_step == ECJPAKE_ERR_UNINITIALIZED_PWD_KEY )
- goto run_test;
+ /* test with uninitialized password key */
+ ECJPAKE_TEST_SET_PASSWORD( MBEDTLS_ERR_SSL_BAD_INPUT_DATA );
psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
@@ -6247,16 +6250,12 @@
}
#endif /* MBEDTLS_USE_PSA_CRYPTO */
-run_test:
-#if defined( MBEDTLS_USE_PSA_CRYPTO )
- ret = ( use_opaque_arg ) ?
- mbedtls_ssl_set_hs_ecjpake_password_opaque( &ssl, pwd_slot ) :
- mbedtls_ssl_set_hs_ecjpake_password( &ssl, pwd_string, pwd_len );
-#else /* MBEDTLS_USE_PSA_CRYPTO */
- ret = mbedtls_ssl_set_hs_ecjpake_password( &ssl, pwd_string, pwd_len );
-#endif /* MBEDTLS_USE_PSA_CRYPTO */
- TEST_EQUAL( ret, expected_error_arg );
+ /* final check which should work without errors */
+ ECJPAKE_TEST_SET_PASSWORD( 0 );
+#if defined( MBEDTLS_USE_PSA_CRYPTO )
+ psa_destroy_key( pwd_slot );
+#endif /* MBEDTLS_USE_PSA_CRYPTO */
mbedtls_ssl_free( &ssl );
mbedtls_ssl_config_free( &conf );