diff --git a/library/spdm_requester_lib/libspdm_req_get_digests.c b/library/spdm_requester_lib/libspdm_req_get_digests.c index 50b9c48335c..7d452ba10a9 100644 --- a/library/spdm_requester_lib/libspdm_req_get_digests.c +++ b/library/spdm_requester_lib/libspdm_req_get_digests.c @@ -167,6 +167,18 @@ static libspdm_return_t libspdm_try_get_digest(libspdm_context_t *spdm_context, *slot_mask = spdm_response->header.param2; } + LIBSPDM_DEBUG((LIBSPDM_DEBUG_INFO, "provisioned_slot_mask - 0x%02x\n", + spdm_response->header.param2)); + if (spdm_request->header.spdm_version >= SPDM_MESSAGE_VERSION_13) { + LIBSPDM_DEBUG((LIBSPDM_DEBUG_INFO, "supported_slot_mask - 0x%02x\n", + spdm_response->header.param1)); + if ((spdm_response->header.param1 & spdm_response->header.param2) != + spdm_response->header.param2) { + status = LIBSPDM_STATUS_INVALID_MSG_FIELD; + goto receive_done; + } + } + digest_count = 0; for (index = 0; index < SPDM_MAX_SLOT_COUNT; index++) { if (spdm_response->header.param2 & (1 << index)) {