SPDM related fix based on real hardware testing - SecurityPkg

Implemented SPDM functionality on real hardware, and here is the bug fix in SecurityPkg.

Signed-off-by: Liqi Qi <liqiqi@microsoft.com>
This commit is contained in:
Liqi Qi 2025-05-15 13:20:09 -07:00 committed by mergify[bot]
parent 3260988830
commit 0321f030ea
3 changed files with 11 additions and 3 deletions

View File

@ -565,7 +565,9 @@ DoDeviceCertificate (
ZeroMem (CertChain, sizeof (CertChain));
SpdmReturn = SpdmGetCertificateEx (SpdmContext, NULL, SlotId, &CertChainSize, CertChain, (CONST VOID **)&TrustAnchor, &TrustAnchorSize);
if (LIBSPDM_STATUS_IS_SUCCESS (SpdmReturn)) {
*IsValidCertChain = TRUE;
SecurityState->AuthenticationState = EDKII_DEVICE_SECURITY_STATE_SUCCESS;
*AuthState = TCG_DEVICE_SECURITY_EVENT_DATA_DEVICE_AUTH_STATE_SUCCESS;
*IsValidCertChain = TRUE;
break;
} else if (SpdmReturn == LIBSPDM_STATUS_VERIF_FAIL) {
*IsValidCertChain = FALSE;

View File

@ -418,6 +418,14 @@ CreateSpdmDeviceContext (
goto Error;
}
Data8 = SPDM_ALGORITHMS_OPAQUE_DATA_FORMAT_1;
SpdmSetData (SpdmContext, SpdmDataOtherParamsSupport, &Parameter, &Data8, sizeof (Data8));
if (LIBSPDM_STATUS_IS_ERROR (SpdmReturn)) {
DEBUG ((DEBUG_ERROR, "SpdmSetDataOtherParamsSupport - %p\n", SpdmReturn));
ASSERT (FALSE);
goto Error;
}
SpdmReturn = SpdmInitConnection (SpdmContext, FALSE);
if (LIBSPDM_STATUS_IS_ERROR (SpdmReturn)) {
DEBUG ((DEBUG_ERROR, "SpdmInitConnection - %p\n", SpdmReturn));

View File

@ -22,8 +22,6 @@
[Includes]
Include
Test/Mock/Include
[Includes.Common.Private]
DeviceSecurity/SpdmLib/Include
DeviceSecurity/SpdmLib/libspdm/include