From 857cb520242d5750775a0a192f09d57dfa117fe1 Mon Sep 17 00:00:00 2001 From: Wenxing Hou Date: Fri, 2 Feb 2024 09:42:15 +0800 Subject: [PATCH] Add key_pair_id for libspdm_gen_csr_ex Fix the issue: #2550 Signed-off-by: Wenxing Hou --- include/hal/library/responder/csrlib.h | 5 ++++- library/spdm_responder_lib/libspdm_rsp_csr.c | 4 ++-- os_stub/spdm_device_secret_lib_null/lib.c | 3 ++- os_stub/spdm_device_secret_lib_sample/lib.c | 3 ++- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/include/hal/library/responder/csrlib.h b/include/hal/library/responder/csrlib.h index 7972ebdf55b..6413e07e44a 100644 --- a/include/hal/library/responder/csrlib.h +++ b/include/hal/library/responder/csrlib.h @@ -1,6 +1,6 @@ /** * Copyright Notice: - * Copyright 2021-2023 DMTF. All rights reserved. + * Copyright 2021-2024 DMTF. All rights reserved. * License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/libspdm/blob/main/LICENSE.md **/ @@ -92,6 +92,8 @@ extern bool libspdm_gen_csr(uint32_t base_hash_algo, uint32_t base_asym_algo, bo * * @param[in, out] req_csr_tracking_tag For input, this field shall contain the CSRTrackingTag of the associated GET_CSR request. * For output, this field indicate responder available csr_tracking_tag. + * @param[in] req_key_pair_id The value of this field shall be the unique key pair number identifying the desired + * asymmetric key pair to associate with SlotID. * @param[in] overwrite If set, the Responder shall stop processing any existing GET_CSR request and * overwrite it with this request * @@ -107,6 +109,7 @@ extern bool libspdm_gen_csr_ex(uint32_t base_hash_algo, uint32_t base_asym_algo, size_t *csr_len, uint8_t *csr_pointer, uint8_t req_cert_model, uint8_t *req_csr_tracking_tag, + uint8_t req_key_pair_id, bool overwrite); #endif /*LIBSPDM_ENABLE_CAPABILITY_CSR_CAP_EX*/ #endif /* LIBSPDM_ENABLE_CAPABILITY_CSR_CAP */ diff --git a/library/spdm_responder_lib/libspdm_rsp_csr.c b/library/spdm_responder_lib/libspdm_rsp_csr.c index 89e78523e36..dbfeb86c55e 100644 --- a/library/spdm_responder_lib/libspdm_rsp_csr.c +++ b/library/spdm_responder_lib/libspdm_rsp_csr.c @@ -1,6 +1,6 @@ /** * Copyright Notice: - * Copyright 2021-2022 DMTF. All rights reserved. + * Copyright 2021-2024 DMTF. All rights reserved. * License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/libspdm/blob/main/LICENSE.md **/ @@ -204,7 +204,7 @@ libspdm_return_t libspdm_get_response_csr(libspdm_context_t *spdm_context, requester_info, requester_info_length, opaque_data, opaque_data_length, &csr_len, csr_p, req_cert_model, - &csr_tracking_tag, overwrite); + &csr_tracking_tag, key_pair_id, overwrite); #else return libspdm_generate_error_response( spdm_context, diff --git a/os_stub/spdm_device_secret_lib_null/lib.c b/os_stub/spdm_device_secret_lib_null/lib.c index e0268fd752e..4354985c04b 100644 --- a/os_stub/spdm_device_secret_lib_null/lib.c +++ b/os_stub/spdm_device_secret_lib_null/lib.c @@ -1,6 +1,6 @@ /** * Copyright Notice: - * Copyright 2021-2022 DMTF. All rights reserved. + * Copyright 2021-2024 DMTF. All rights reserved. * License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/libspdm/blob/main/LICENSE.md **/ @@ -161,6 +161,7 @@ bool libspdm_gen_csr_ex(uint32_t base_hash_algo, uint32_t base_asym_algo, bool * size_t *csr_len, uint8_t *csr_pointer, uint8_t req_cert_model, uint8_t *csr_tracking_tag, + uint8_t req_key_pair_id, bool overwrite) { return false; diff --git a/os_stub/spdm_device_secret_lib_sample/lib.c b/os_stub/spdm_device_secret_lib_sample/lib.c index c3ccdf95c71..94b69c24688 100644 --- a/os_stub/spdm_device_secret_lib_sample/lib.c +++ b/os_stub/spdm_device_secret_lib_sample/lib.c @@ -1,6 +1,6 @@ /** * Copyright Notice: - * Copyright 2021-2022 DMTF. All rights reserved. + * Copyright 2021-2024 DMTF. All rights reserved. * License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/libspdm/blob/main/LICENSE.md **/ @@ -870,6 +870,7 @@ bool libspdm_gen_csr_ex(uint32_t base_hash_algo, uint32_t base_asym_algo, bool * size_t *csr_len, uint8_t *csr_pointer, uint8_t req_cert_model, uint8_t *req_csr_tracking_tag, + uint8_t req_key_pair_id, bool overwrite) { bool result;