From 2fb7e65a8361818fbb569b7b96a16febb901f68f Mon Sep 17 00:00:00 2001 From: Xiaohanjlll Date: Tue, 20 Feb 2024 13:27:34 +0800 Subject: [PATCH] Enhance unit test for OPAQUE_DATA_FORMAT algorithm Signed-off-by: Xiaohanjlll --- unit_test/test_spdm_responder/algorithms.c | 26 +++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/unit_test/test_spdm_responder/algorithms.c b/unit_test/test_spdm_responder/algorithms.c index fb2c85cce7a..1f2e0e7847f 100644 --- a/unit_test/test_spdm_responder/algorithms.c +++ b/unit_test/test_spdm_responder/algorithms.c @@ -2231,7 +2231,31 @@ void libspdm_test_responder_algorithms_case23(void **state) assert_int_equal(spdm_context->connection_info.algorithm.other_params_support, SPDM_ALGORITHMS_OPAQUE_DATA_FORMAT_1); - + /* Sub Case 4: OpaqueDataFmt. Supports both SPDM_ALGORITHMS_OPAQUE_DATA_FORMAT_0 and SPDM_ALGORITHMS_OPAQUE_DATA_FORMAT_1*/ + m_libspdm_negotiate_algorithm_request18.spdm_request_version10.other_params_support = + SPDM_ALGORITHMS_OPAQUE_DATA_FORMAT_0 | + SPDM_ALGORITHMS_OPAQUE_DATA_FORMAT_1; + spdm_context->local_context.algorithm.other_params_support = + SPDM_ALGORITHMS_OPAQUE_DATA_FORMAT_0 | + SPDM_ALGORITHMS_OPAQUE_DATA_FORMAT_1; + spdm_context->connection_info.connection_state = LIBSPDM_CONNECTION_STATE_AFTER_CAPABILITIES; + libspdm_reset_message_a(spdm_context); + response_size = sizeof(response); + status = libspdm_get_response_algorithms (spdm_context, + m_libspdm_negotiate_algorithm_request18_size, + &m_libspdm_negotiate_algorithm_request18, + &response_size, + response); + assert_int_equal(status, LIBSPDM_STATUS_SUCCESS); + assert_int_equal(response_size, + sizeof(spdm_algorithms_response_t) + 4* + sizeof(spdm_negotiate_algorithms_common_struct_table_t)); + spdm_response = (void *)response; + assert_int_equal(spdm_response->header.spdm_version, SPDM_MESSAGE_VERSION_12); + assert_int_equal(spdm_response->header.request_response_code, SPDM_ALGORITHMS); + assert_int_equal(spdm_response->other_params_selection, SPDM_ALGORITHMS_OPAQUE_DATA_FORMAT_1); + assert_int_equal(spdm_context->connection_info.algorithm.other_params_support, + SPDM_ALGORITHMS_OPAQUE_DATA_FORMAT_1); } void libspdm_test_responder_algorithms_case24(void **state)