Add tests for the newly created ad-hoc EC J-PAKE KDF
Signed-off-by: Andrzej Kurek <andrzej.kurek@arm.com>
diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function
index 7d368cf..b04adcc 100644
--- a/tests/suites/test_suite_psa_crypto.function
+++ b/tests/suites/test_suite_psa_crypto.function
@@ -7233,6 +7233,45 @@
}
/* END_CASE */
+/* BEGIN_CASE depends_on:MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS:MBEDTLS_SHA256_C */
+void derive_ecjpake_to_pms( data_t *input, int expected_input_status,
+ data_t *expected_output, int expected_output_status )
+{
+ psa_algorithm_t alg = PSA_ALG_TLS12_ECJPAKE_TO_PMS;
+ psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT;
+
+ uint8_t *output_buffer = NULL;
+ psa_status_t status;
+
+ ASSERT_ALLOC( output_buffer, expected_output->len );
+ PSA_ASSERT( psa_crypto_init() );
+
+ PSA_ASSERT( psa_key_derivation_setup( &operation, alg ) );
+ PSA_ASSERT( psa_key_derivation_set_capacity( &operation,
+ expected_output->len ) );
+
+ TEST_EQUAL( psa_key_derivation_input_bytes( &operation,
+ PSA_KEY_DERIVATION_INPUT_SECRET, input->x, input->len ),
+ (psa_status_t) expected_input_status );
+
+ if( ( (psa_status_t) expected_input_status ) != PSA_SUCCESS )
+ goto exit;
+
+ status = psa_key_derivation_output_bytes( &operation, output_buffer,
+ expected_output->len );
+
+ TEST_EQUAL( status, (psa_status_t) expected_output_status );
+ if( expected_output->len != 0 && expected_output_status == PSA_SUCCESS )
+ ASSERT_COMPARE( output_buffer, expected_output->len, expected_output->x,
+ expected_output->len );
+
+exit:
+ mbedtls_free( output_buffer );
+ psa_key_derivation_abort( &operation );
+ PSA_DONE();
+}
+/* END_CASE */
+
/* BEGIN_CASE */
void derive_key_exercise( int alg_arg,
data_t *key_data,