Line data Source code
1 : /**
2 : * Copyright Notice:
3 : * Copyright 2021-2022 DMTF. All rights reserved.
4 : * License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/libspdm/blob/main/LICENSE.md
5 : **/
6 :
7 : #include "internal/libspdm_requester_lib.h"
8 :
9 : #if LIBSPDM_ENABLE_CAPABILITY_ENCAP_CAP
10 :
11 36 : libspdm_return_t libspdm_generate_encap_error_response(const void *spdm_context,
12 : uint8_t error_code,
13 : uint8_t error_data,
14 : size_t *response_size,
15 : void *response)
16 : {
17 : spdm_error_response_t *spdm_response;
18 :
19 36 : LIBSPDM_ASSERT(*response_size >= sizeof(spdm_error_response_t));
20 36 : *response_size = sizeof(spdm_error_response_t);
21 36 : spdm_response = response;
22 :
23 36 : spdm_response->header.spdm_version = libspdm_get_connection_version (spdm_context);
24 36 : spdm_response->header.request_response_code = SPDM_ERROR;
25 36 : spdm_response->header.param1 = error_code;
26 36 : spdm_response->header.param2 = error_data;
27 :
28 36 : return LIBSPDM_STATUS_SUCCESS;
29 : }
30 :
31 0 : libspdm_return_t libspdm_generate_encap_extended_error_response(
32 : const void *spdm_context, uint8_t error_code, uint8_t error_data,
33 : size_t extended_error_data_size, const uint8_t *extended_error_data,
34 : size_t *response_size, void *response)
35 : {
36 : spdm_error_response_t *spdm_response;
37 0 : LIBSPDM_ASSERT(*response_size >=
38 : sizeof(spdm_error_response_t) + extended_error_data_size);
39 :
40 0 : spdm_response = response;
41 0 : spdm_response->header.spdm_version = libspdm_get_connection_version (spdm_context);
42 0 : spdm_response->header.request_response_code = SPDM_ERROR;
43 0 : spdm_response->header.param1 = error_code;
44 0 : spdm_response->header.param2 = error_data;
45 0 : libspdm_copy_mem(spdm_response + 1, *response_size - (sizeof(spdm_error_response_t)),
46 : extended_error_data, extended_error_data_size);
47 0 : *response_size =
48 0 : sizeof(spdm_error_response_t) + extended_error_data_size;
49 0 : return LIBSPDM_STATUS_SUCCESS;
50 : }
51 :
52 : #endif /* LIBSPDM_ENABLE_CAPABILITY_ENCAP_CAP */
|