mirror of
https://github.com/tianocore/edk2.git
synced 2025-09-16 16:43:03 +00:00
Revert "SecurityPkg: CodeQL Fixes."
This reverts commit ba6a8eb045
.
PR https://github.com/tianocore/edk2/pull/11307 introduced a
logic change that caused regressions in FV verification on
some platforms. This PR is being reverted to restore the prior
logic.
The Code QL fixes in https://github.com/tianocore/edk2/pull/11307
can be resubmitted without the logic change along with one
commit for each type of Code QL issue being addressed.
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
This commit is contained in:
parent
8d984e6a57
commit
072ab3846c
@ -71,10 +71,7 @@ InstallPreHashFvPpi (
|
|||||||
+ HashSize;
|
+ HashSize;
|
||||||
|
|
||||||
PreHashedFvPpi = AllocatePool (PpiSize);
|
PreHashedFvPpi = AllocatePool (PpiSize);
|
||||||
if (PreHashedFvPpi == NULL) {
|
|
||||||
ASSERT (PreHashedFvPpi != NULL);
|
ASSERT (PreHashedFvPpi != NULL);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
PreHashedFvPpi->FvBase = (UINT32)(UINTN)FvBuffer;
|
PreHashedFvPpi->FvBase = (UINT32)(UINTN)FvBuffer;
|
||||||
PreHashedFvPpi->FvLength = (UINT32)FvLength;
|
PreHashedFvPpi->FvLength = (UINT32)FvLength;
|
||||||
@ -86,11 +83,7 @@ InstallPreHashFvPpi (
|
|||||||
CopyMem (HASH_VALUE_PTR (HashInfo), HashValue, HashSize);
|
CopyMem (HASH_VALUE_PTR (HashInfo), HashValue, HashSize);
|
||||||
|
|
||||||
FvInfoPpiDescriptor = AllocatePool (sizeof (EFI_PEI_PPI_DESCRIPTOR));
|
FvInfoPpiDescriptor = AllocatePool (sizeof (EFI_PEI_PPI_DESCRIPTOR));
|
||||||
if (FvInfoPpiDescriptor == NULL) {
|
|
||||||
ASSERT (FvInfoPpiDescriptor != NULL);
|
ASSERT (FvInfoPpiDescriptor != NULL);
|
||||||
FreePool (PreHashedFvPpi);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
FvInfoPpiDescriptor->Guid = &gEdkiiPeiFirmwareVolumeInfoPrehashedFvPpiGuid;
|
FvInfoPpiDescriptor->Guid = &gEdkiiPeiFirmwareVolumeInfoPrehashedFvPpiGuid;
|
||||||
FvInfoPpiDescriptor->Flags = EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST;
|
FvInfoPpiDescriptor->Flags = EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST;
|
||||||
@ -209,11 +202,8 @@ VerifyHashedFv (
|
|||||||
// Copy FV to permanent memory to avoid potential TOC/TOU.
|
// Copy FV to permanent memory to avoid potential TOC/TOU.
|
||||||
//
|
//
|
||||||
FvBuffer = AllocatePages (EFI_SIZE_TO_PAGES ((UINTN)FvInfo[FvIndex].Length));
|
FvBuffer = AllocatePages (EFI_SIZE_TO_PAGES ((UINTN)FvInfo[FvIndex].Length));
|
||||||
if (FvBuffer == NULL) {
|
|
||||||
ASSERT (FvBuffer != NULL);
|
ASSERT (FvBuffer != NULL);
|
||||||
Status = EFI_OUT_OF_RESOURCES;
|
|
||||||
goto Done;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (FvShadowPpi != NULL) {
|
if (FvShadowPpi != NULL) {
|
||||||
Status = FvShadowPpi->FirmwareVolumeShadow (
|
Status = FvShadowPpi->FirmwareVolumeShadow (
|
||||||
@ -389,17 +379,12 @@ CheckStoredHashFv (
|
|||||||
);
|
);
|
||||||
if (!EFI_ERROR (Status) && (StoredHashFvPpi != NULL) && (StoredHashFvPpi->FvNumber > 0)) {
|
if (!EFI_ERROR (Status) && (StoredHashFvPpi != NULL) && (StoredHashFvPpi->FvNumber > 0)) {
|
||||||
HashInfo = GetHashInfo (StoredHashFvPpi, BootMode);
|
HashInfo = GetHashInfo (StoredHashFvPpi, BootMode);
|
||||||
if (HashInfo != NULL) {
|
|
||||||
Status = VerifyHashedFv (
|
Status = VerifyHashedFv (
|
||||||
HashInfo,
|
HashInfo,
|
||||||
StoredHashFvPpi->FvInfo,
|
StoredHashFvPpi->FvInfo,
|
||||||
StoredHashFvPpi->FvNumber,
|
StoredHashFvPpi->FvNumber,
|
||||||
BootMode
|
BootMode
|
||||||
);
|
);
|
||||||
} else {
|
|
||||||
Status = EFI_NOT_FOUND;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!EFI_ERROR (Status)) {
|
if (!EFI_ERROR (Status)) {
|
||||||
DEBUG ((DEBUG_INFO, "OBB verification passed (%r)\r\n", Status));
|
DEBUG ((DEBUG_INFO, "OBB verification passed (%r)\r\n", Status));
|
||||||
|
|
||||||
|
@ -149,10 +149,7 @@ BuildHddPasswordDeviceInfo (
|
|||||||
S3InitDevicesExist = FALSE;
|
S3InitDevicesExist = FALSE;
|
||||||
} else if (Status == EFI_BUFFER_TOO_SMALL) {
|
} else if (Status == EFI_BUFFER_TOO_SMALL) {
|
||||||
S3InitDevices = AllocatePool (S3InitDevicesLength);
|
S3InitDevices = AllocatePool (S3InitDevicesLength);
|
||||||
if (S3InitDevices == NULL) {
|
|
||||||
ASSERT (S3InitDevices != NULL);
|
ASSERT (S3InitDevices != NULL);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = RestoreLockBox (
|
Status = RestoreLockBox (
|
||||||
&gS3StorageDeviceInitListGuid,
|
&gS3StorageDeviceInitListGuid,
|
||||||
@ -187,10 +184,7 @@ BuildHddPasswordDeviceInfo (
|
|||||||
FreePool (S3InitDevicesBak);
|
FreePool (S3InitDevicesBak);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (S3InitDevices == NULL) {
|
|
||||||
ASSERT (S3InitDevices != NULL);
|
ASSERT (S3InitDevices != NULL);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
TempDevInfo = (HDD_PASSWORD_DEVICE_INFO *)((UINTN)TempDevInfo +
|
TempDevInfo = (HDD_PASSWORD_DEVICE_INFO *)((UINTN)TempDevInfo +
|
||||||
sizeof (HDD_PASSWORD_DEVICE_INFO) +
|
sizeof (HDD_PASSWORD_DEVICE_INFO) +
|
||||||
@ -2201,12 +2195,6 @@ HddPasswordFormExtractConfig (
|
|||||||
// followed by "&OFFSET=0&WIDTH=WWWWWWWWWWWWWWWW" followed by a Null-terminator
|
// followed by "&OFFSET=0&WIDTH=WWWWWWWWWWWWWWWW" followed by a Null-terminator
|
||||||
//
|
//
|
||||||
ConfigRequestHdr = HiiConstructConfigHdr (&mHddPasswordVendorGuid, mHddPasswordVendorStorageName, Private->DriverHandle);
|
ConfigRequestHdr = HiiConstructConfigHdr (&mHddPasswordVendorGuid, mHddPasswordVendorStorageName, Private->DriverHandle);
|
||||||
if (ConfigRequestHdr == NULL) {
|
|
||||||
ASSERT (ConfigRequestHdr != NULL);
|
|
||||||
FreePool (IfrData);
|
|
||||||
return EFI_OUT_OF_RESOURCES;
|
|
||||||
}
|
|
||||||
|
|
||||||
Size = (StrLen (ConfigRequestHdr) + 32 + 1) * sizeof (CHAR16);
|
Size = (StrLen (ConfigRequestHdr) + 32 + 1) * sizeof (CHAR16);
|
||||||
ConfigRequest = AllocateZeroPool (Size);
|
ConfigRequest = AllocateZeroPool (Size);
|
||||||
ASSERT (ConfigRequest != NULL);
|
ASSERT (ConfigRequest != NULL);
|
||||||
@ -2398,11 +2386,7 @@ HddPasswordFormCallback (
|
|||||||
// In case goto the device configuration form, update the device form title.
|
// In case goto the device configuration form, update the device form title.
|
||||||
//
|
//
|
||||||
ConfigFormEntry = HddPasswordGetConfigFormEntryByIndex ((UINT32)(QuestionId - KEY_HDD_DEVICE_ENTRY_BASE));
|
ConfigFormEntry = HddPasswordGetConfigFormEntryByIndex ((UINT32)(QuestionId - KEY_HDD_DEVICE_ENTRY_BASE));
|
||||||
if (ConfigFormEntry == NULL) {
|
|
||||||
ASSERT (ConfigFormEntry != NULL);
|
ASSERT (ConfigFormEntry != NULL);
|
||||||
FreePool (IfrData);
|
|
||||||
return EFI_NOT_FOUND;
|
|
||||||
}
|
|
||||||
|
|
||||||
DeviceFormTitleToken = (EFI_STRING_ID)STR_HDD_SECURITY_HD;
|
DeviceFormTitleToken = (EFI_STRING_ID)STR_HDD_SECURITY_HD;
|
||||||
HiiSetString (Private->HiiHandle, DeviceFormTitleToken, ConfigFormEntry->HddString, NULL);
|
HiiSetString (Private->HiiHandle, DeviceFormTitleToken, ConfigFormEntry->HddString, NULL);
|
||||||
|
@ -553,7 +553,7 @@ CheckSignatureListFormat (
|
|||||||
// Walk through the input signature list and check the data format.
|
// Walk through the input signature list and check the data format.
|
||||||
// If any signature is incorrectly formed, the whole check will fail.
|
// If any signature is incorrectly formed, the whole check will fail.
|
||||||
//
|
//
|
||||||
while ((SigDataSize > 0) && (SigDataSize >= (UINTN)SigList->SignatureListSize)) {
|
while ((SigDataSize > 0) && (SigDataSize >= SigList->SignatureListSize)) {
|
||||||
for (Index = 0; Index < (sizeof (mSupportSigItem) / sizeof (EFI_SIGNATURE_ITEM)); Index++ ) {
|
for (Index = 0; Index < (sizeof (mSupportSigItem) / sizeof (EFI_SIGNATURE_ITEM)); Index++ ) {
|
||||||
if (CompareGuid (&SigList->SignatureType, &mSupportSigItem[Index].SigType)) {
|
if (CompareGuid (&SigList->SignatureType, &mSupportSigItem[Index].SigType)) {
|
||||||
//
|
//
|
||||||
@ -1088,7 +1088,7 @@ FilterSignatureList (
|
|||||||
Tail = TempData;
|
Tail = TempData;
|
||||||
|
|
||||||
NewCertList = (EFI_SIGNATURE_LIST *)NewData;
|
NewCertList = (EFI_SIGNATURE_LIST *)NewData;
|
||||||
while ((*NewDataSize > 0) && (*NewDataSize >= (UINTN)NewCertList->SignatureListSize)) {
|
while ((*NewDataSize > 0) && (*NewDataSize >= NewCertList->SignatureListSize)) {
|
||||||
NewCert = (EFI_SIGNATURE_DATA *)((UINT8 *)NewCertList + sizeof (EFI_SIGNATURE_LIST) + NewCertList->SignatureHeaderSize);
|
NewCert = (EFI_SIGNATURE_DATA *)((UINT8 *)NewCertList + sizeof (EFI_SIGNATURE_LIST) + NewCertList->SignatureHeaderSize);
|
||||||
NewCertCount = (NewCertList->SignatureListSize - sizeof (EFI_SIGNATURE_LIST) - NewCertList->SignatureHeaderSize) / NewCertList->SignatureSize;
|
NewCertCount = (NewCertList->SignatureListSize - sizeof (EFI_SIGNATURE_LIST) - NewCertList->SignatureHeaderSize) / NewCertList->SignatureSize;
|
||||||
|
|
||||||
@ -1098,7 +1098,7 @@ FilterSignatureList (
|
|||||||
|
|
||||||
Size = DataSize;
|
Size = DataSize;
|
||||||
CertList = (EFI_SIGNATURE_LIST *)Data;
|
CertList = (EFI_SIGNATURE_LIST *)Data;
|
||||||
while ((Size > 0) && (Size >= (UINTN)CertList->SignatureListSize)) {
|
while ((Size > 0) && (Size >= CertList->SignatureListSize)) {
|
||||||
if (CompareGuid (&CertList->SignatureType, &NewCertList->SignatureType) &&
|
if (CompareGuid (&CertList->SignatureType, &NewCertList->SignatureType) &&
|
||||||
(CertList->SignatureSize == NewCertList->SignatureSize))
|
(CertList->SignatureSize == NewCertList->SignatureSize))
|
||||||
{
|
{
|
||||||
|
@ -883,7 +883,7 @@ IsCertHashFoundInDbx (
|
|||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
while ((DbxSize > 0) && (SignatureListSize >= (UINTN)DbxList->SignatureListSize)) {
|
while ((DbxSize > 0) && (SignatureListSize >= DbxList->SignatureListSize)) {
|
||||||
//
|
//
|
||||||
// Determine Hash Algorithm of Certificate in the forbidden database.
|
// Determine Hash Algorithm of Certificate in the forbidden database.
|
||||||
//
|
//
|
||||||
@ -1028,7 +1028,7 @@ IsSignatureFoundInDatabase (
|
|||||||
// Enumerate all signature data in SigDB to check if signature exists for executable.
|
// Enumerate all signature data in SigDB to check if signature exists for executable.
|
||||||
//
|
//
|
||||||
CertList = (EFI_SIGNATURE_LIST *)Data;
|
CertList = (EFI_SIGNATURE_LIST *)Data;
|
||||||
while ((DataSize > 0) && (DataSize >= (UINTN)CertList->SignatureListSize)) {
|
while ((DataSize > 0) && (DataSize >= CertList->SignatureListSize)) {
|
||||||
CertCount = (CertList->SignatureListSize - sizeof (EFI_SIGNATURE_LIST) - CertList->SignatureHeaderSize) / CertList->SignatureSize;
|
CertCount = (CertList->SignatureListSize - sizeof (EFI_SIGNATURE_LIST) - CertList->SignatureHeaderSize) / CertList->SignatureSize;
|
||||||
Cert = (EFI_SIGNATURE_DATA *)((UINT8 *)CertList + sizeof (EFI_SIGNATURE_LIST) + CertList->SignatureHeaderSize);
|
Cert = (EFI_SIGNATURE_DATA *)((UINT8 *)CertList + sizeof (EFI_SIGNATURE_LIST) + CertList->SignatureHeaderSize);
|
||||||
if ((CertList->SignatureSize == sizeof (EFI_SIGNATURE_DATA) - 1 + SignatureSize) && (CompareGuid (&CertList->SignatureType, CertType))) {
|
if ((CertList->SignatureSize == sizeof (EFI_SIGNATURE_DATA) - 1 + SignatureSize) && (CompareGuid (&CertList->SignatureType, CertType))) {
|
||||||
@ -1193,7 +1193,7 @@ PassTimestampCheck (
|
|||||||
}
|
}
|
||||||
|
|
||||||
CertList = (EFI_SIGNATURE_LIST *)DbtData;
|
CertList = (EFI_SIGNATURE_LIST *)DbtData;
|
||||||
while ((DbtDataSize > 0) && (DbtDataSize >= (UINTN)CertList->SignatureListSize)) {
|
while ((DbtDataSize > 0) && (DbtDataSize >= CertList->SignatureListSize)) {
|
||||||
if (CompareGuid (&CertList->SignatureType, &gEfiCertX509Guid)) {
|
if (CompareGuid (&CertList->SignatureType, &gEfiCertX509Guid)) {
|
||||||
Cert = (EFI_SIGNATURE_DATA *)((UINT8 *)CertList + sizeof (EFI_SIGNATURE_LIST) + CertList->SignatureHeaderSize);
|
Cert = (EFI_SIGNATURE_DATA *)((UINT8 *)CertList + sizeof (EFI_SIGNATURE_LIST) + CertList->SignatureHeaderSize);
|
||||||
CertCount = (CertList->SignatureListSize - sizeof (EFI_SIGNATURE_LIST) - CertList->SignatureHeaderSize) / CertList->SignatureSize;
|
CertCount = (CertList->SignatureListSize - sizeof (EFI_SIGNATURE_LIST) - CertList->SignatureHeaderSize) / CertList->SignatureSize;
|
||||||
@ -1319,7 +1319,7 @@ IsForbiddenByDbx (
|
|||||||
//
|
//
|
||||||
CertList = (EFI_SIGNATURE_LIST *)Data;
|
CertList = (EFI_SIGNATURE_LIST *)Data;
|
||||||
CertListSize = DataSize;
|
CertListSize = DataSize;
|
||||||
while ((CertListSize > 0) && (CertListSize >= (UINTN)CertList->SignatureListSize)) {
|
while ((CertListSize > 0) && (CertListSize >= CertList->SignatureListSize)) {
|
||||||
if (CompareGuid (&CertList->SignatureType, &gEfiCertX509Guid)) {
|
if (CompareGuid (&CertList->SignatureType, &gEfiCertX509Guid)) {
|
||||||
CertData = (EFI_SIGNATURE_DATA *)((UINT8 *)CertList + sizeof (EFI_SIGNATURE_LIST) + CertList->SignatureHeaderSize);
|
CertData = (EFI_SIGNATURE_DATA *)((UINT8 *)CertList + sizeof (EFI_SIGNATURE_LIST) + CertList->SignatureHeaderSize);
|
||||||
CertCount = (CertList->SignatureListSize - sizeof (EFI_SIGNATURE_LIST) - CertList->SignatureHeaderSize) / CertList->SignatureSize;
|
CertCount = (CertList->SignatureListSize - sizeof (EFI_SIGNATURE_LIST) - CertList->SignatureHeaderSize) / CertList->SignatureSize;
|
||||||
@ -1524,7 +1524,7 @@ IsAllowedByDb (
|
|||||||
// Find X509 certificate in Signature List to verify the signature in pkcs7 signed data.
|
// Find X509 certificate in Signature List to verify the signature in pkcs7 signed data.
|
||||||
//
|
//
|
||||||
CertList = (EFI_SIGNATURE_LIST *)Data;
|
CertList = (EFI_SIGNATURE_LIST *)Data;
|
||||||
while ((DataSize > 0) && (DataSize >= (UINTN)CertList->SignatureListSize)) {
|
while ((DataSize > 0) && (DataSize >= CertList->SignatureListSize)) {
|
||||||
if (CompareGuid (&CertList->SignatureType, &gEfiCertX509Guid)) {
|
if (CompareGuid (&CertList->SignatureType, &gEfiCertX509Guid)) {
|
||||||
CertData = (EFI_SIGNATURE_DATA *)((UINT8 *)CertList + sizeof (EFI_SIGNATURE_LIST) + CertList->SignatureHeaderSize);
|
CertData = (EFI_SIGNATURE_DATA *)((UINT8 *)CertList + sizeof (EFI_SIGNATURE_LIST) + CertList->SignatureHeaderSize);
|
||||||
CertCount = (CertList->SignatureListSize - sizeof (EFI_SIGNATURE_LIST) - CertList->SignatureHeaderSize) / CertList->SignatureSize;
|
CertCount = (CertList->SignatureListSize - sizeof (EFI_SIGNATURE_LIST) - CertList->SignatureHeaderSize) / CertList->SignatureSize;
|
||||||
@ -2057,9 +2057,8 @@ Failed:
|
|||||||
// executable information table in either case.
|
// executable information table in either case.
|
||||||
//
|
//
|
||||||
NameStr = ConvertDevicePathToText (File, FALSE, TRUE);
|
NameStr = ConvertDevicePathToText (File, FALSE, TRUE);
|
||||||
|
|
||||||
if (NameStr != NULL) {
|
|
||||||
AddImageExeInfo (Action, NameStr, File, SignatureList, SignatureListSize);
|
AddImageExeInfo (Action, NameStr, File, SignatureList, SignatureListSize);
|
||||||
|
if (NameStr != NULL) {
|
||||||
DEBUG ((DEBUG_INFO, "The image doesn't pass verification: %s\n", NameStr));
|
DEBUG ((DEBUG_INFO, "The image doesn't pass verification: %s\n", NameStr));
|
||||||
FreePool (NameStr);
|
FreePool (NameStr);
|
||||||
}
|
}
|
||||||
|
@ -387,10 +387,7 @@ Tcg2UserConfirm (
|
|||||||
NoPpiInfo = FALSE;
|
NoPpiInfo = FALSE;
|
||||||
BufSize = CONFIRM_BUFFER_SIZE;
|
BufSize = CONFIRM_BUFFER_SIZE;
|
||||||
ConfirmText = AllocateZeroPool (BufSize);
|
ConfirmText = AllocateZeroPool (BufSize);
|
||||||
if (ConfirmText == NULL) {
|
|
||||||
ASSERT (ConfirmText != NULL);
|
ASSERT (ConfirmText != NULL);
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
mTcg2PpStringPackHandle = HiiAddPackages (&gEfiTcg2PhysicalPresenceGuid, gImageHandle, DxeTcg2PhysicalPresenceLibStrings, NULL);
|
mTcg2PpStringPackHandle = HiiAddPackages (&gEfiTcg2PhysicalPresenceGuid, gImageHandle, DxeTcg2PhysicalPresenceLibStrings, NULL);
|
||||||
ASSERT (mTcg2PpStringPackHandle != NULL);
|
ASSERT (mTcg2PpStringPackHandle != NULL);
|
||||||
@ -404,20 +401,10 @@ Tcg2UserConfirm (
|
|||||||
TmpStr2 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_CLEAR));
|
TmpStr2 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_CLEAR));
|
||||||
|
|
||||||
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_HEAD_STR));
|
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_HEAD_STR));
|
||||||
if ((TmpStr1 == NULL) || (TmpStr2 == NULL)) {
|
|
||||||
FreePool (ConfirmText);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
UnicodeSPrint (ConfirmText, BufSize, TmpStr1, TmpStr2);
|
UnicodeSPrint (ConfirmText, BufSize, TmpStr1, TmpStr2);
|
||||||
FreePool (TmpStr1);
|
FreePool (TmpStr1);
|
||||||
|
|
||||||
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_WARNING_CLEAR));
|
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_WARNING_CLEAR));
|
||||||
if (TmpStr1 == NULL) {
|
|
||||||
FreePool (ConfirmText);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), TmpStr1, (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), TmpStr1, (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
||||||
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), L" \n\n", (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), L" \n\n", (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
||||||
FreePool (TmpStr1);
|
FreePool (TmpStr1);
|
||||||
@ -430,29 +417,14 @@ Tcg2UserConfirm (
|
|||||||
TmpStr2 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_CLEAR));
|
TmpStr2 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_CLEAR));
|
||||||
|
|
||||||
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_PPI_HEAD_STR));
|
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_PPI_HEAD_STR));
|
||||||
if ((TmpStr1 == NULL) || (TmpStr2 == NULL)) {
|
|
||||||
FreePool (ConfirmText);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
UnicodeSPrint (ConfirmText, BufSize, TmpStr1, TmpStr2);
|
UnicodeSPrint (ConfirmText, BufSize, TmpStr1, TmpStr2);
|
||||||
FreePool (TmpStr1);
|
FreePool (TmpStr1);
|
||||||
|
|
||||||
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_NOTE_CLEAR));
|
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_NOTE_CLEAR));
|
||||||
if (TmpStr1 == NULL) {
|
|
||||||
FreePool (ConfirmText);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), TmpStr1, (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), TmpStr1, (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
||||||
FreePool (TmpStr1);
|
FreePool (TmpStr1);
|
||||||
|
|
||||||
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_WARNING_CLEAR));
|
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_WARNING_CLEAR));
|
||||||
if (TmpStr1 == NULL) {
|
|
||||||
FreePool (ConfirmText);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), TmpStr1, (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), TmpStr1, (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
||||||
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), L" \n\n", (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), L" \n\n", (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
||||||
FreePool (TmpStr1);
|
FreePool (TmpStr1);
|
||||||
@ -480,29 +452,14 @@ Tcg2UserConfirm (
|
|||||||
TmpStr2 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_SET_PCR_BANKS));
|
TmpStr2 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_SET_PCR_BANKS));
|
||||||
|
|
||||||
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_HEAD_STR));
|
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_HEAD_STR));
|
||||||
if ((TmpStr1 == NULL) || (TmpStr2 == NULL)) {
|
|
||||||
FreePool (ConfirmText);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
UnicodeSPrint (ConfirmText, BufSize, TmpStr1, TmpStr2);
|
UnicodeSPrint (ConfirmText, BufSize, TmpStr1, TmpStr2);
|
||||||
FreePool (TmpStr1);
|
FreePool (TmpStr1);
|
||||||
|
|
||||||
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_WARNING_SET_PCR_BANKS_1));
|
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_WARNING_SET_PCR_BANKS_1));
|
||||||
if (TmpStr1 == NULL) {
|
|
||||||
FreePool (ConfirmText);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), TmpStr1, (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), TmpStr1, (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
||||||
FreePool (TmpStr1);
|
FreePool (TmpStr1);
|
||||||
|
|
||||||
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_WARNING_SET_PCR_BANKS_2));
|
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_WARNING_SET_PCR_BANKS_2));
|
||||||
if (TmpStr1 == NULL) {
|
|
||||||
FreePool (ConfirmText);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), TmpStr1, (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), TmpStr1, (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
||||||
FreePool (TmpStr1);
|
FreePool (TmpStr1);
|
||||||
|
|
||||||
@ -510,11 +467,7 @@ Tcg2UserConfirm (
|
|||||||
Tcg2FillBufferWithBootHashAlg (TempBuffer2, sizeof (TempBuffer2), CurrentPCRBanks);
|
Tcg2FillBufferWithBootHashAlg (TempBuffer2, sizeof (TempBuffer2), CurrentPCRBanks);
|
||||||
|
|
||||||
TmpStr1 = AllocateZeroPool (BufSize);
|
TmpStr1 = AllocateZeroPool (BufSize);
|
||||||
if (TmpStr1 == NULL) {
|
|
||||||
ASSERT (TmpStr1 != NULL);
|
ASSERT (TmpStr1 != NULL);
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
UnicodeSPrint (TmpStr1, BufSize, L"Current PCRBanks is 0x%x. (%s)\nNew PCRBanks is 0x%x. (%s)\n", CurrentPCRBanks, TempBuffer2, TpmPpCommandParameter, TempBuffer);
|
UnicodeSPrint (TmpStr1, BufSize, L"Current PCRBanks is 0x%x. (%s)\nNew PCRBanks is 0x%x. (%s)\n", CurrentPCRBanks, TempBuffer2, TpmPpCommandParameter, TempBuffer);
|
||||||
|
|
||||||
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), TmpStr1, (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), TmpStr1, (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
||||||
@ -528,29 +481,14 @@ Tcg2UserConfirm (
|
|||||||
TmpStr2 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_CHANGE_EPS));
|
TmpStr2 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_CHANGE_EPS));
|
||||||
|
|
||||||
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_HEAD_STR));
|
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_HEAD_STR));
|
||||||
if ((TmpStr1 == NULL) || (TmpStr2 == NULL)) {
|
|
||||||
FreePool (ConfirmText);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
UnicodeSPrint (ConfirmText, BufSize, TmpStr1, TmpStr2);
|
UnicodeSPrint (ConfirmText, BufSize, TmpStr1, TmpStr2);
|
||||||
FreePool (TmpStr1);
|
FreePool (TmpStr1);
|
||||||
|
|
||||||
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_WARNING_CHANGE_EPS_1));
|
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_WARNING_CHANGE_EPS_1));
|
||||||
if (TmpStr1 == NULL) {
|
|
||||||
FreePool (ConfirmText);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), TmpStr1, (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), TmpStr1, (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
||||||
FreePool (TmpStr1);
|
FreePool (TmpStr1);
|
||||||
|
|
||||||
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_WARNING_CHANGE_EPS_2));
|
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_WARNING_CHANGE_EPS_2));
|
||||||
if (TmpStr1 == NULL) {
|
|
||||||
FreePool (ConfirmText);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), TmpStr1, (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), TmpStr1, (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
||||||
FreePool (TmpStr1);
|
FreePool (TmpStr1);
|
||||||
|
|
||||||
@ -560,11 +498,6 @@ Tcg2UserConfirm (
|
|||||||
TmpStr2 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TCG_STORAGE_ENABLE_BLOCK_SID));
|
TmpStr2 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TCG_STORAGE_ENABLE_BLOCK_SID));
|
||||||
|
|
||||||
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TCG_STORAGE_HEAD_STR));
|
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TCG_STORAGE_HEAD_STR));
|
||||||
if ((TmpStr1 == NULL) || (TmpStr2 == NULL)) {
|
|
||||||
FreePool (ConfirmText);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
UnicodeSPrint (ConfirmText, BufSize, TmpStr1, TmpStr2);
|
UnicodeSPrint (ConfirmText, BufSize, TmpStr1, TmpStr2);
|
||||||
FreePool (TmpStr1);
|
FreePool (TmpStr1);
|
||||||
break;
|
break;
|
||||||
@ -573,11 +506,6 @@ Tcg2UserConfirm (
|
|||||||
TmpStr2 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TCG_STORAGE_DISABLE_BLOCK_SID));
|
TmpStr2 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TCG_STORAGE_DISABLE_BLOCK_SID));
|
||||||
|
|
||||||
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TCG_STORAGE_HEAD_STR));
|
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TCG_STORAGE_HEAD_STR));
|
||||||
if ((TmpStr1 == NULL) || (TmpStr2 == NULL)) {
|
|
||||||
FreePool (ConfirmText);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
UnicodeSPrint (ConfirmText, BufSize, TmpStr1, TmpStr2);
|
UnicodeSPrint (ConfirmText, BufSize, TmpStr1, TmpStr2);
|
||||||
FreePool (TmpStr1);
|
FreePool (TmpStr1);
|
||||||
break;
|
break;
|
||||||
@ -587,11 +515,6 @@ Tcg2UserConfirm (
|
|||||||
TmpStr2 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TCG_STORAGE_PP_ENABLE_BLOCK_SID));
|
TmpStr2 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TCG_STORAGE_PP_ENABLE_BLOCK_SID));
|
||||||
|
|
||||||
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TCG_STORAGE_PPI_HEAD_STR));
|
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TCG_STORAGE_PPI_HEAD_STR));
|
||||||
if ((TmpStr1 == NULL) || (TmpStr2 == NULL)) {
|
|
||||||
FreePool (ConfirmText);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
UnicodeSPrint (ConfirmText, BufSize, TmpStr1, TmpStr2);
|
UnicodeSPrint (ConfirmText, BufSize, TmpStr1, TmpStr2);
|
||||||
FreePool (TmpStr1);
|
FreePool (TmpStr1);
|
||||||
break;
|
break;
|
||||||
@ -601,11 +524,6 @@ Tcg2UserConfirm (
|
|||||||
TmpStr2 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TCG_STORAGE_PP_DISABLE_BLOCK_SID));
|
TmpStr2 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TCG_STORAGE_PP_DISABLE_BLOCK_SID));
|
||||||
|
|
||||||
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TCG_STORAGE_PPI_HEAD_STR));
|
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TCG_STORAGE_PPI_HEAD_STR));
|
||||||
if ((TmpStr1 == NULL) || (TmpStr2 == NULL)) {
|
|
||||||
FreePool (ConfirmText);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
UnicodeSPrint (ConfirmText, BufSize, TmpStr1, TmpStr2);
|
UnicodeSPrint (ConfirmText, BufSize, TmpStr1, TmpStr2);
|
||||||
FreePool (TmpStr1);
|
FreePool (TmpStr1);
|
||||||
break;
|
break;
|
||||||
@ -626,21 +544,11 @@ Tcg2UserConfirm (
|
|||||||
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_ACCEPT_KEY));
|
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_ACCEPT_KEY));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TmpStr1 == NULL) {
|
|
||||||
FreePool (ConfirmText);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), TmpStr1, (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), TmpStr1, (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
||||||
FreePool (TmpStr1);
|
FreePool (TmpStr1);
|
||||||
|
|
||||||
if (NoPpiInfo) {
|
if (NoPpiInfo) {
|
||||||
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_NO_PPI_INFO));
|
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TPM_NO_PPI_INFO));
|
||||||
if (TmpStr1 == NULL) {
|
|
||||||
FreePool (ConfirmText);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), TmpStr1, (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), TmpStr1, (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
||||||
FreePool (TmpStr1);
|
FreePool (TmpStr1);
|
||||||
}
|
}
|
||||||
@ -653,21 +561,11 @@ Tcg2UserConfirm (
|
|||||||
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TCG_STORAGE_ACCEPT_KEY));
|
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TCG_STORAGE_ACCEPT_KEY));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TmpStr1 == NULL) {
|
|
||||||
FreePool (ConfirmText);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), TmpStr1, (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), TmpStr1, (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
||||||
FreePool (TmpStr1);
|
FreePool (TmpStr1);
|
||||||
|
|
||||||
if (NoPpiInfo) {
|
if (NoPpiInfo) {
|
||||||
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TCG_STORAGE_NO_PPI_INFO));
|
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TCG_STORAGE_NO_PPI_INFO));
|
||||||
if (TmpStr1 == NULL) {
|
|
||||||
FreePool (ConfirmText);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), TmpStr1, (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
StrnCatS (ConfirmText, BufSize / sizeof (CHAR16), TmpStr1, (BufSize / sizeof (CHAR16)) - StrLen (ConfirmText) - 1);
|
||||||
FreePool (TmpStr1);
|
FreePool (TmpStr1);
|
||||||
}
|
}
|
||||||
@ -675,11 +573,6 @@ Tcg2UserConfirm (
|
|||||||
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TCG_STORAGE_REJECT_KEY));
|
TmpStr1 = Tcg2PhysicalPresenceGetStringById (STRING_TOKEN (TCG_STORAGE_REJECT_KEY));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TmpStr1 == NULL) {
|
|
||||||
FreePool (ConfirmText);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
BufSize -= StrSize (ConfirmText);
|
BufSize -= StrSize (ConfirmText);
|
||||||
UnicodeSPrint (ConfirmText + StrLen (ConfirmText), BufSize, TmpStr1, TmpStr2);
|
UnicodeSPrint (ConfirmText + StrLen (ConfirmText), BufSize, TmpStr1, TmpStr2);
|
||||||
|
|
||||||
|
@ -540,7 +540,7 @@ UserConfirm (
|
|||||||
CHAR16 *TmpStr2;
|
CHAR16 *TmpStr2;
|
||||||
UINTN BufSize;
|
UINTN BufSize;
|
||||||
BOOLEAN CautionKey;
|
BOOLEAN CautionKey;
|
||||||
UINTN Index;
|
UINT16 Index;
|
||||||
CHAR16 DstStr[81];
|
CHAR16 DstStr[81];
|
||||||
|
|
||||||
TmpStr2 = NULL;
|
TmpStr2 = NULL;
|
||||||
|
@ -615,9 +615,6 @@ GetMeasureBootProtocols (
|
|||||||
@retval EFI_SUCCESS The file specified by DevicePath and non-NULL
|
@retval EFI_SUCCESS The file specified by DevicePath and non-NULL
|
||||||
FileBuffer did authenticate, and the platform policy dictates
|
FileBuffer did authenticate, and the platform policy dictates
|
||||||
that the DXE Foundation may use the file.
|
that the DXE Foundation may use the file.
|
||||||
|
|
||||||
@retval EFI_OUT_OF_RESOURCES A necessary memory buffer could not be allocated.
|
|
||||||
|
|
||||||
@retval other error value
|
@retval other error value
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
@ -711,16 +708,9 @@ DxeTpm2MeasureBootHandler (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (OrigDevicePathNode != NULL) {
|
|
||||||
FreePool (OrigDevicePathNode);
|
FreePool (OrigDevicePathNode);
|
||||||
}
|
|
||||||
|
|
||||||
OrigDevicePathNode = DuplicateDevicePath (File);
|
OrigDevicePathNode = DuplicateDevicePath (File);
|
||||||
if (OrigDevicePathNode == NULL) {
|
|
||||||
ASSERT (OrigDevicePathNode != NULL);
|
ASSERT (OrigDevicePathNode != NULL);
|
||||||
return EFI_OUT_OF_RESOURCES;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -56,10 +56,7 @@ Sha1HashInit (
|
|||||||
|
|
||||||
CtxSize = Sha1GetContextSize ();
|
CtxSize = Sha1GetContextSize ();
|
||||||
Sha1Ctx = AllocatePool (CtxSize);
|
Sha1Ctx = AllocatePool (CtxSize);
|
||||||
if (Sha1Ctx == NULL) {
|
|
||||||
ASSERT (Sha1Ctx != NULL);
|
ASSERT (Sha1Ctx != NULL);
|
||||||
return EFI_OUT_OF_RESOURCES;
|
|
||||||
}
|
|
||||||
|
|
||||||
Sha1Init (Sha1Ctx);
|
Sha1Init (Sha1Ctx);
|
||||||
|
|
||||||
|
@ -56,10 +56,7 @@ Sha256HashInit (
|
|||||||
|
|
||||||
CtxSize = Sha256GetContextSize ();
|
CtxSize = Sha256GetContextSize ();
|
||||||
Sha256Ctx = AllocatePool (CtxSize);
|
Sha256Ctx = AllocatePool (CtxSize);
|
||||||
if (Sha256Ctx == NULL) {
|
|
||||||
ASSERT (Sha256Ctx != NULL);
|
ASSERT (Sha256Ctx != NULL);
|
||||||
return EFI_OUT_OF_RESOURCES;
|
|
||||||
}
|
|
||||||
|
|
||||||
Sha256Init (Sha256Ctx);
|
Sha256Init (Sha256Ctx);
|
||||||
|
|
||||||
|
@ -80,11 +80,6 @@ HashStart (
|
|||||||
|
|
||||||
for (Index = 0; Index < mHashInterfaceCount; Index++) {
|
for (Index = 0; Index < mHashInterfaceCount; Index++) {
|
||||||
HashMask = Tpm2GetHashMaskFromAlgo (&mHashInterface[Index].HashGuid);
|
HashMask = Tpm2GetHashMaskFromAlgo (&mHashInterface[Index].HashGuid);
|
||||||
if (HashCtx == NULL) {
|
|
||||||
// If we fail to get the hash mask we don't have resources.
|
|
||||||
return EFI_OUT_OF_RESOURCES;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((HashMask & PcdGet32 (PcdTpm2HashMask)) != 0) {
|
if ((HashMask & PcdGet32 (PcdTpm2HashMask)) != 0) {
|
||||||
mHashInterface[Index].HashInit (&HashCtx[Index]);
|
mHashInterface[Index].HashInit (&HashCtx[Index]);
|
||||||
}
|
}
|
||||||
@ -283,16 +278,8 @@ HashAndExtend (
|
|||||||
|
|
||||||
CheckSupportedHashMaskMismatch ();
|
CheckSupportedHashMaskMismatch ();
|
||||||
|
|
||||||
Status = HashStart (&HashHandle);
|
HashStart (&HashHandle);
|
||||||
if (EFI_ERROR (Status)) {
|
HashUpdate (HashHandle, DataToHash, DataToHashLen);
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = HashUpdate (HashHandle, DataToHash, DataToHashLen);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = HashCompleteAndExtend (HashHandle, PcrIndex, NULL, 0, DigestList);
|
Status = HashCompleteAndExtend (HashHandle, PcrIndex, NULL, 0, DigestList);
|
||||||
|
|
||||||
return Status;
|
return Status;
|
||||||
|
@ -106,10 +106,7 @@ CheckSupportedHashMaskMismatch (
|
|||||||
HASH_INTERFACE_HOB *HashInterfaceHobLast;
|
HASH_INTERFACE_HOB *HashInterfaceHobLast;
|
||||||
|
|
||||||
HashInterfaceHobLast = InternalGetHashInterfaceHob (&gZeroGuid);
|
HashInterfaceHobLast = InternalGetHashInterfaceHob (&gZeroGuid);
|
||||||
if (HashInterfaceHobLast == NULL) {
|
|
||||||
ASSERT (HashInterfaceHobLast != NULL);
|
ASSERT (HashInterfaceHobLast != NULL);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((HashInterfaceHobLast->SupportedHashMask != 0) &&
|
if ((HashInterfaceHobLast->SupportedHashMask != 0) &&
|
||||||
(HashInterfaceHobCurrent->SupportedHashMask != HashInterfaceHobLast->SupportedHashMask))
|
(HashInterfaceHobCurrent->SupportedHashMask != HashInterfaceHobLast->SupportedHashMask))
|
||||||
@ -155,10 +152,7 @@ HashStart (
|
|||||||
CheckSupportedHashMaskMismatch (HashInterfaceHob);
|
CheckSupportedHashMaskMismatch (HashInterfaceHob);
|
||||||
|
|
||||||
HashCtx = AllocatePool (sizeof (*HashCtx) * HashInterfaceHob->HashInterfaceCount);
|
HashCtx = AllocatePool (sizeof (*HashCtx) * HashInterfaceHob->HashInterfaceCount);
|
||||||
if (HashCtx == NULL) {
|
|
||||||
ASSERT (HashCtx != NULL);
|
ASSERT (HashCtx != NULL);
|
||||||
return EFI_OUT_OF_RESOURCES;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Index = 0; Index < HashInterfaceHob->HashInterfaceCount; Index++) {
|
for (Index = 0; Index < HashInterfaceHob->HashInterfaceCount; Index++) {
|
||||||
HashMask = Tpm2GetHashMaskFromAlgo (&HashInterfaceHob->HashInterface[Index].HashGuid);
|
HashMask = Tpm2GetHashMaskFromAlgo (&HashInterfaceHob->HashInterface[Index].HashGuid);
|
||||||
@ -311,16 +305,8 @@ HashAndExtend (
|
|||||||
|
|
||||||
CheckSupportedHashMaskMismatch (HashInterfaceHob);
|
CheckSupportedHashMaskMismatch (HashInterfaceHob);
|
||||||
|
|
||||||
Status = HashStart (&HashHandle);
|
HashStart (&HashHandle);
|
||||||
if (EFI_ERROR (Status)) {
|
HashUpdate (HashHandle, DataToHash, DataToHashLen);
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = HashUpdate (HashHandle, DataToHash, DataToHashLen);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = HashCompleteAndExtend (HashHandle, PcrIndex, NULL, 0, DigestList);
|
Status = HashCompleteAndExtend (HashHandle, PcrIndex, NULL, 0, DigestList);
|
||||||
|
|
||||||
return Status;
|
return Status;
|
||||||
|
@ -59,10 +59,6 @@ SecureBootFetchData (
|
|||||||
*SigListOut = NULL;
|
*SigListOut = NULL;
|
||||||
*SigListsSize = 0;
|
*SigListsSize = 0;
|
||||||
CertInfo = AllocatePool (sizeof (SECURE_BOOT_CERTIFICATE_INFO));
|
CertInfo = AllocatePool (sizeof (SECURE_BOOT_CERTIFICATE_INFO));
|
||||||
if (CertInfo == NULL) {
|
|
||||||
return EFI_OUT_OF_RESOURCES;
|
|
||||||
}
|
|
||||||
|
|
||||||
NewCertInfo = CertInfo;
|
NewCertInfo = CertInfo;
|
||||||
while (1) {
|
while (1) {
|
||||||
if (NewCertInfo == NULL) {
|
if (NewCertInfo == NULL) {
|
||||||
@ -97,9 +93,6 @@ SecureBootFetchData (
|
|||||||
sizeof (SECURE_BOOT_CERTIFICATE_INFO) * (KeyIndex + 1),
|
sizeof (SECURE_BOOT_CERTIFICATE_INFO) * (KeyIndex + 1),
|
||||||
CertInfo
|
CertInfo
|
||||||
);
|
);
|
||||||
if (NewCertInfo == NULL) {
|
|
||||||
goto Cleanup;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Status == EFI_NOT_FOUND) {
|
if (Status == EFI_NOT_FOUND) {
|
||||||
|
@ -106,7 +106,7 @@ MeasureFirmwareBlob (
|
|||||||
{
|
{
|
||||||
if (Description != NULL) {
|
if (Description != NULL) {
|
||||||
AsciiSPrint ((CHAR8 *)FvBlob2.BlobDescription, sizeof (FvBlob2.BlobDescription), "%a", Description);
|
AsciiSPrint ((CHAR8 *)FvBlob2.BlobDescription, sizeof (FvBlob2.BlobDescription), "%a", Description);
|
||||||
} else if (FvName != NULL) {
|
} else {
|
||||||
AsciiSPrint ((CHAR8 *)FvBlob2.BlobDescription, sizeof (FvBlob2.BlobDescription), "Fv(%g)", FvName);
|
AsciiSPrint ((CHAR8 *)FvBlob2.BlobDescription, sizeof (FvBlob2.BlobDescription), "Fv(%g)", FvName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -270,7 +270,7 @@ Tpm12TisTpmCommand (
|
|||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
UINT16 BurstCount;
|
UINT16 BurstCount;
|
||||||
UINTN Index;
|
UINT32 Index;
|
||||||
UINT32 TpmOutSize;
|
UINT32 TpmOutSize;
|
||||||
UINT16 Data16;
|
UINT16 Data16;
|
||||||
UINT32 Data32;
|
UINT32 Data32;
|
||||||
|
@ -230,8 +230,6 @@ AesEncrypt (
|
|||||||
UINTN NbIndex;
|
UINTN NbIndex;
|
||||||
UINTN Round;
|
UINTN Round;
|
||||||
|
|
||||||
EFI_STATUS Status;
|
|
||||||
|
|
||||||
if ((Key == NULL) || (InData == NULL) || (OutData == NULL)) {
|
if ((Key == NULL) || (InData == NULL) || (OutData == NULL)) {
|
||||||
return EFI_INVALID_PARAMETER;
|
return EFI_INVALID_PARAMETER;
|
||||||
}
|
}
|
||||||
@ -239,10 +237,7 @@ AesEncrypt (
|
|||||||
//
|
//
|
||||||
// Expands AES Key for encryption.
|
// Expands AES Key for encryption.
|
||||||
//
|
//
|
||||||
Status = AesExpandKey (Key, 128, &AesKey);
|
AesExpandKey (Key, 128, &AesKey);
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
||||||
Nr = AesKey.Nk + 6;
|
Nr = AesKey.Nk + 6;
|
||||||
Ek = AesKey.EncKey;
|
Ek = AesKey.EncKey;
|
||||||
|
@ -2224,7 +2224,7 @@ ProcessOpalRequest (
|
|||||||
//
|
//
|
||||||
TempVariable = Variable;
|
TempVariable = Variable;
|
||||||
while ((VariableSize > sizeof (OPAL_REQUEST_VARIABLE)) &&
|
while ((VariableSize > sizeof (OPAL_REQUEST_VARIABLE)) &&
|
||||||
(VariableSize >= (UINTN)TempVariable->Length) &&
|
(VariableSize >= TempVariable->Length) &&
|
||||||
(TempVariable->Length > sizeof (OPAL_REQUEST_VARIABLE)))
|
(TempVariable->Length > sizeof (OPAL_REQUEST_VARIABLE)))
|
||||||
{
|
{
|
||||||
DevicePathInVariable = (EFI_DEVICE_PATH_PROTOCOL *)((UINTN)TempVariable + sizeof (OPAL_REQUEST_VARIABLE));
|
DevicePathInVariable = (EFI_DEVICE_PATH_PROTOCOL *)((UINTN)TempVariable + sizeof (OPAL_REQUEST_VARIABLE));
|
||||||
|
@ -113,7 +113,7 @@ GetSavedOpalRequest (
|
|||||||
|
|
||||||
TempVariable = Variable;
|
TempVariable = Variable;
|
||||||
while ((VariableSize > sizeof (OPAL_REQUEST_VARIABLE)) &&
|
while ((VariableSize > sizeof (OPAL_REQUEST_VARIABLE)) &&
|
||||||
(VariableSize >= (UINTN)TempVariable->Length) &&
|
(VariableSize >= TempVariable->Length) &&
|
||||||
(TempVariable->Length > sizeof (OPAL_REQUEST_VARIABLE)))
|
(TempVariable->Length > sizeof (OPAL_REQUEST_VARIABLE)))
|
||||||
{
|
{
|
||||||
DevicePathInVariable = (EFI_DEVICE_PATH_PROTOCOL *)((UINTN)TempVariable + sizeof (OPAL_REQUEST_VARIABLE));
|
DevicePathInVariable = (EFI_DEVICE_PATH_PROTOCOL *)((UINTN)TempVariable + sizeof (OPAL_REQUEST_VARIABLE));
|
||||||
@ -193,7 +193,7 @@ SaveOpalRequest (
|
|||||||
TempVariable = Variable;
|
TempVariable = Variable;
|
||||||
TempVariableSize = VariableSize;
|
TempVariableSize = VariableSize;
|
||||||
while ((TempVariableSize > sizeof (OPAL_REQUEST_VARIABLE)) &&
|
while ((TempVariableSize > sizeof (OPAL_REQUEST_VARIABLE)) &&
|
||||||
(TempVariableSize >= (UINTN)TempVariable->Length) &&
|
(TempVariableSize >= TempVariable->Length) &&
|
||||||
(TempVariable->Length > sizeof (OPAL_REQUEST_VARIABLE)))
|
(TempVariable->Length > sizeof (OPAL_REQUEST_VARIABLE)))
|
||||||
{
|
{
|
||||||
DevicePathInVariable = (EFI_DEVICE_PATH_PROTOCOL *)((UINTN)TempVariable + sizeof (OPAL_REQUEST_VARIABLE));
|
DevicePathInVariable = (EFI_DEVICE_PATH_PROTOCOL *)((UINTN)TempVariable + sizeof (OPAL_REQUEST_VARIABLE));
|
||||||
@ -226,11 +226,7 @@ SaveOpalRequest (
|
|||||||
DevicePathSize = GetDevicePathSize (DevicePath);
|
DevicePathSize = GetDevicePathSize (DevicePath);
|
||||||
NewVariableSize = VariableSize + sizeof (OPAL_REQUEST_VARIABLE) + DevicePathSize;
|
NewVariableSize = VariableSize + sizeof (OPAL_REQUEST_VARIABLE) + DevicePathSize;
|
||||||
NewVariable = AllocatePool (NewVariableSize);
|
NewVariable = AllocatePool (NewVariableSize);
|
||||||
if (NewVariable == NULL) {
|
|
||||||
ASSERT (NewVariable != NULL);
|
ASSERT (NewVariable != NULL);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
CopyMem (NewVariable, Variable, VariableSize);
|
CopyMem (NewVariable, Variable, VariableSize);
|
||||||
TempVariable = (OPAL_REQUEST_VARIABLE *)((UINTN)NewVariable + VariableSize);
|
TempVariable = (OPAL_REQUEST_VARIABLE *)((UINTN)NewVariable + VariableSize);
|
||||||
TempVariable->Length = (UINT32)(sizeof (OPAL_REQUEST_VARIABLE) + DevicePathSize);
|
TempVariable->Length = (UINT32)(sizeof (OPAL_REQUEST_VARIABLE) + DevicePathSize);
|
||||||
@ -243,11 +239,7 @@ SaveOpalRequest (
|
|||||||
DevicePathSize = GetDevicePathSize (DevicePath);
|
DevicePathSize = GetDevicePathSize (DevicePath);
|
||||||
NewVariableSize = sizeof (OPAL_REQUEST_VARIABLE) + DevicePathSize;
|
NewVariableSize = sizeof (OPAL_REQUEST_VARIABLE) + DevicePathSize;
|
||||||
NewVariable = AllocatePool (NewVariableSize);
|
NewVariable = AllocatePool (NewVariableSize);
|
||||||
if (NewVariable == NULL) {
|
|
||||||
ASSERT (NewVariable != NULL);
|
ASSERT (NewVariable != NULL);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
NewVariable->Length = (UINT32)(sizeof (OPAL_REQUEST_VARIABLE) + DevicePathSize);
|
NewVariable->Length = (UINT32)(sizeof (OPAL_REQUEST_VARIABLE) + DevicePathSize);
|
||||||
CopyMem (&NewVariable->OpalRequest, &OpalRequest, sizeof (OPAL_REQUEST));
|
CopyMem (&NewVariable->OpalRequest, &OpalRequest, sizeof (OPAL_REQUEST));
|
||||||
DevicePathInVariable = (EFI_DEVICE_PATH_PROTOCOL *)((UINTN)NewVariable + sizeof (OPAL_REQUEST_VARIABLE));
|
DevicePathInVariable = (EFI_DEVICE_PATH_PROTOCOL *)((UINTN)NewVariable + sizeof (OPAL_REQUEST_VARIABLE));
|
||||||
@ -1119,11 +1111,6 @@ ExtractConfig (
|
|||||||
//
|
//
|
||||||
DriverHandle = HiiGetDriverImageHandleCB ();
|
DriverHandle = HiiGetDriverImageHandleCB ();
|
||||||
ConfigRequestHdr = HiiConstructConfigHdr (&gHiiSetupVariableGuid, OpalPasswordStorageName, DriverHandle);
|
ConfigRequestHdr = HiiConstructConfigHdr (&gHiiSetupVariableGuid, OpalPasswordStorageName, DriverHandle);
|
||||||
if (ConfigRequestHdr == NULL) {
|
|
||||||
ASSERT (ConfigRequestHdr != NULL);
|
|
||||||
return EFI_OUT_OF_RESOURCES;
|
|
||||||
}
|
|
||||||
|
|
||||||
Size = (StrLen (ConfigRequestHdr) + 32 + 1) * sizeof (CHAR16);
|
Size = (StrLen (ConfigRequestHdr) + 32 + 1) * sizeof (CHAR16);
|
||||||
ConfigRequest = AllocateZeroPool (Size);
|
ConfigRequest = AllocateZeroPool (Size);
|
||||||
if (ConfigRequest == NULL) {
|
if (ConfigRequest == NULL) {
|
||||||
|
@ -103,11 +103,7 @@ InitializeTcg2VersionInfo (
|
|||||||
TCG2_VERSION_NAME,
|
TCG2_VERSION_NAME,
|
||||||
PrivateData->DriverHandle
|
PrivateData->DriverHandle
|
||||||
);
|
);
|
||||||
if (ConfigRequestHdr == NULL) {
|
|
||||||
ASSERT (ConfigRequestHdr != NULL);
|
ASSERT (ConfigRequestHdr != NULL);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
DataSize = sizeof (Tcg2Version);
|
DataSize = sizeof (Tcg2Version);
|
||||||
Status = gRT->GetVariable (
|
Status = gRT->GetVariable (
|
||||||
TCG2_VERSION_NAME,
|
TCG2_VERSION_NAME,
|
||||||
|
@ -626,7 +626,7 @@ DumpEventLog (
|
|||||||
TCG_PCR_EVENT_HDR *EventHdr;
|
TCG_PCR_EVENT_HDR *EventHdr;
|
||||||
TCG_PCR_EVENT2 *TcgPcrEvent2;
|
TCG_PCR_EVENT2 *TcgPcrEvent2;
|
||||||
TCG_EfiSpecIDEventStruct *TcgEfiSpecIdEventStruct;
|
TCG_EfiSpecIDEventStruct *TcgEfiSpecIdEventStruct;
|
||||||
UINT64 NumberOfEvents;
|
UINTN NumberOfEvents;
|
||||||
|
|
||||||
if (!DebugPrintLevelEnabled (DEBUG_SECURITY)) {
|
if (!DebugPrintLevelEnabled (DEBUG_SECURITY)) {
|
||||||
return;
|
return;
|
||||||
@ -637,7 +637,7 @@ DumpEventLog (
|
|||||||
switch (EventLogFormat) {
|
switch (EventLogFormat) {
|
||||||
case EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2:
|
case EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2:
|
||||||
EventHdr = (TCG_PCR_EVENT_HDR *)(UINTN)EventLogLocation;
|
EventHdr = (TCG_PCR_EVENT_HDR *)(UINTN)EventLogLocation;
|
||||||
while ((EFI_PHYSICAL_ADDRESS)(UINTN)EventHdr <= EventLogLastEntry) {
|
while ((UINTN)EventHdr <= EventLogLastEntry) {
|
||||||
DumpEvent (EventHdr);
|
DumpEvent (EventHdr);
|
||||||
EventHdr = (TCG_PCR_EVENT_HDR *)((UINTN)EventHdr + sizeof (TCG_PCR_EVENT_HDR) + EventHdr->EventSize);
|
EventHdr = (TCG_PCR_EVENT_HDR *)((UINTN)EventHdr + sizeof (TCG_PCR_EVENT_HDR) + EventHdr->EventSize);
|
||||||
}
|
}
|
||||||
@ -668,7 +668,7 @@ DumpEventLog (
|
|||||||
DumpTcgEfiSpecIdEventStruct (TcgEfiSpecIdEventStruct);
|
DumpTcgEfiSpecIdEventStruct (TcgEfiSpecIdEventStruct);
|
||||||
|
|
||||||
TcgPcrEvent2 = (TCG_PCR_EVENT2 *)((UINTN)TcgEfiSpecIdEventStruct + GetTcgEfiSpecIdEventStructSize (TcgEfiSpecIdEventStruct));
|
TcgPcrEvent2 = (TCG_PCR_EVENT2 *)((UINTN)TcgEfiSpecIdEventStruct + GetTcgEfiSpecIdEventStructSize (TcgEfiSpecIdEventStruct));
|
||||||
while ((EFI_PHYSICAL_ADDRESS)(UINTN)TcgPcrEvent2 <= EventLogLastEntry) {
|
while ((UINTN)TcgPcrEvent2 <= EventLogLastEntry) {
|
||||||
DumpEvent2 (TcgPcrEvent2);
|
DumpEvent2 (TcgPcrEvent2);
|
||||||
TcgPcrEvent2 = (TCG_PCR_EVENT2 *)((UINTN)TcgPcrEvent2 + GetPcrEvent2Size (TcgPcrEvent2));
|
TcgPcrEvent2 = (TCG_PCR_EVENT2 *)((UINTN)TcgPcrEvent2 + GetPcrEvent2Size (TcgPcrEvent2));
|
||||||
}
|
}
|
||||||
|
@ -193,19 +193,9 @@ TcgExtractConfig (
|
|||||||
// followed by "&OFFSET=0&WIDTH=WWWWWWWWWWWWWWWW" followed by a Null-terminator
|
// followed by "&OFFSET=0&WIDTH=WWWWWWWWWWWWWWWW" followed by a Null-terminator
|
||||||
//
|
//
|
||||||
ConfigRequestHdr = HiiConstructConfigHdr (&gTcgConfigFormSetGuid, mTcgStorageName, PrivateData->DriverHandle);
|
ConfigRequestHdr = HiiConstructConfigHdr (&gTcgConfigFormSetGuid, mTcgStorageName, PrivateData->DriverHandle);
|
||||||
if (ConfigRequestHdr == NULL) {
|
|
||||||
ASSERT (ConfigRequestHdr != NULL);
|
|
||||||
return EFI_OUT_OF_RESOURCES;
|
|
||||||
}
|
|
||||||
|
|
||||||
Size = (StrLen (ConfigRequestHdr) + 32 + 1) * sizeof (CHAR16);
|
Size = (StrLen (ConfigRequestHdr) + 32 + 1) * sizeof (CHAR16);
|
||||||
ConfigRequest = AllocateZeroPool (Size);
|
ConfigRequest = AllocateZeroPool (Size);
|
||||||
if (ConfigRequest == NULL) {
|
|
||||||
ASSERT (ConfigRequest != NULL);
|
ASSERT (ConfigRequest != NULL);
|
||||||
FreePool (ConfigRequestHdr);
|
|
||||||
return EFI_OUT_OF_RESOURCES;
|
|
||||||
}
|
|
||||||
|
|
||||||
AllocatedRequest = TRUE;
|
AllocatedRequest = TRUE;
|
||||||
UnicodeSPrint (ConfigRequest, Size, L"%s&OFFSET=0&WIDTH=%016LX", ConfigRequestHdr, sizeof (TCG_CONFIGURATION));
|
UnicodeSPrint (ConfigRequest, Size, L"%s&OFFSET=0&WIDTH=%016LX", ConfigRequestHdr, sizeof (TCG_CONFIGURATION));
|
||||||
FreePool (ConfigRequestHdr);
|
FreePool (ConfigRequestHdr);
|
||||||
|
@ -286,10 +286,7 @@ TpmCommHashAll (
|
|||||||
|
|
||||||
CtxSize = Sha1GetContextSize ();
|
CtxSize = Sha1GetContextSize ();
|
||||||
Sha1Ctx = AllocatePool (CtxSize);
|
Sha1Ctx = AllocatePool (CtxSize);
|
||||||
if (Sha1Ctx == NULL) {
|
|
||||||
ASSERT (Sha1Ctx != NULL);
|
ASSERT (Sha1Ctx != NULL);
|
||||||
return EFI_OUT_OF_RESOURCES;
|
|
||||||
}
|
|
||||||
|
|
||||||
Sha1Init (Sha1Ctx);
|
Sha1Init (Sha1Ctx);
|
||||||
Sha1Update (Sha1Ctx, Data, DataLen);
|
Sha1Update (Sha1Ctx, Data, DataLen);
|
||||||
|
@ -99,10 +99,6 @@ ExtractFileNameFromDevicePath (
|
|||||||
ASSERT (DevicePath != NULL);
|
ASSERT (DevicePath != NULL);
|
||||||
|
|
||||||
String = DevicePathToStr (DevicePath);
|
String = DevicePathToStr (DevicePath);
|
||||||
if (String == NULL) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
MatchString = String;
|
MatchString = String;
|
||||||
LastMatch = String;
|
LastMatch = String;
|
||||||
FileName = NULL;
|
FileName = NULL;
|
||||||
|
@ -1095,7 +1095,7 @@ IsSignatureFoundInDatabase (
|
|||||||
// Enumerate all signature data in SigDB to check if signature exists for executable.
|
// Enumerate all signature data in SigDB to check if signature exists for executable.
|
||||||
//
|
//
|
||||||
CertList = (EFI_SIGNATURE_LIST *)Data;
|
CertList = (EFI_SIGNATURE_LIST *)Data;
|
||||||
while ((DataSize > 0) && (DataSize >= (UINTN)CertList->SignatureListSize)) {
|
while ((DataSize > 0) && (DataSize >= CertList->SignatureListSize)) {
|
||||||
CertCount = (CertList->SignatureListSize - sizeof (EFI_SIGNATURE_LIST) - CertList->SignatureHeaderSize) / CertList->SignatureSize;
|
CertCount = (CertList->SignatureListSize - sizeof (EFI_SIGNATURE_LIST) - CertList->SignatureHeaderSize) / CertList->SignatureSize;
|
||||||
Cert = (EFI_SIGNATURE_DATA *)((UINT8 *)CertList + sizeof (EFI_SIGNATURE_LIST) + CertList->SignatureHeaderSize);
|
Cert = (EFI_SIGNATURE_DATA *)((UINT8 *)CertList + sizeof (EFI_SIGNATURE_LIST) + CertList->SignatureHeaderSize);
|
||||||
if ((CertList->SignatureSize == sizeof (EFI_SIGNATURE_DATA) - 1 + SignatureSize) && (CompareGuid (&CertList->SignatureType, &gEfiCertX509Guid))) {
|
if ((CertList->SignatureSize == sizeof (EFI_SIGNATURE_DATA) - 1 + SignatureSize) && (CompareGuid (&CertList->SignatureType, &gEfiCertX509Guid))) {
|
||||||
@ -1173,10 +1173,7 @@ CalculateCertHash (
|
|||||||
//
|
//
|
||||||
CtxSize = mHash[HashAlg].GetContextSize ();
|
CtxSize = mHash[HashAlg].GetContextSize ();
|
||||||
HashCtx = AllocatePool (CtxSize);
|
HashCtx = AllocatePool (CtxSize);
|
||||||
if (HashCtx == NULL) {
|
|
||||||
ASSERT (HashCtx != NULL);
|
ASSERT (HashCtx != NULL);
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// 2. Initialize a hash context.
|
// 2. Initialize a hash context.
|
||||||
@ -1264,7 +1261,7 @@ IsCertHashFoundInDbx (
|
|||||||
// Check whether the certificate hash exists in the forbidden database.
|
// Check whether the certificate hash exists in the forbidden database.
|
||||||
//
|
//
|
||||||
DbxList = (EFI_SIGNATURE_LIST *)Data;
|
DbxList = (EFI_SIGNATURE_LIST *)Data;
|
||||||
while ((DataSize > 0) && (DataSize >= (UINTN)DbxList->SignatureListSize)) {
|
while ((DataSize > 0) && (DataSize >= DbxList->SignatureListSize)) {
|
||||||
//
|
//
|
||||||
// Determine Hash Algorithm of Certificate in the forbidden database.
|
// Determine Hash Algorithm of Certificate in the forbidden database.
|
||||||
//
|
//
|
||||||
@ -1351,7 +1348,7 @@ GetSignaturelistOffset (
|
|||||||
|
|
||||||
SigList = Database;
|
SigList = Database;
|
||||||
SiglistSize = DatabaseSize;
|
SiglistSize = DatabaseSize;
|
||||||
while ((SiglistSize > 0) && (SiglistSize >= (UINTN)SigList->SignatureListSize)) {
|
while ((SiglistSize > 0) && (SiglistSize >= SigList->SignatureListSize)) {
|
||||||
if (CompareGuid (&SigList->SignatureType, SignatureType)) {
|
if (CompareGuid (&SigList->SignatureType, SignatureType)) {
|
||||||
*Offset = DatabaseSize - SiglistSize;
|
*Offset = DatabaseSize - SiglistSize;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -1891,10 +1888,7 @@ HashPeImage (
|
|||||||
CtxSize = mHash[HashAlg].GetContextSize ();
|
CtxSize = mHash[HashAlg].GetContextSize ();
|
||||||
|
|
||||||
HashCtx = AllocatePool (CtxSize);
|
HashCtx = AllocatePool (CtxSize);
|
||||||
if (HashCtx == NULL) {
|
|
||||||
ASSERT (HashCtx != NULL);
|
ASSERT (HashCtx != NULL);
|
||||||
goto Done;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 1. Load the image header into memory.
|
// 1. Load the image header into memory.
|
||||||
|
|
||||||
@ -2546,7 +2540,7 @@ UpdateDeletePage (
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
UINTN Index;
|
UINT32 Index;
|
||||||
UINTN CertCount;
|
UINTN CertCount;
|
||||||
UINTN GuidIndex;
|
UINTN GuidIndex;
|
||||||
VOID *StartOpCodeHandle;
|
VOID *StartOpCodeHandle;
|
||||||
@ -2730,7 +2724,7 @@ DeleteKeyExchangeKey (
|
|||||||
UINT8 *Data;
|
UINT8 *Data;
|
||||||
UINT8 *OldData;
|
UINT8 *OldData;
|
||||||
UINT32 Attr;
|
UINT32 Attr;
|
||||||
UINTN Index;
|
UINT32 Index;
|
||||||
EFI_SIGNATURE_LIST *CertList;
|
EFI_SIGNATURE_LIST *CertList;
|
||||||
EFI_SIGNATURE_LIST *NewCertList;
|
EFI_SIGNATURE_LIST *NewCertList;
|
||||||
EFI_SIGNATURE_DATA *Cert;
|
EFI_SIGNATURE_DATA *Cert;
|
||||||
@ -2934,7 +2928,7 @@ DeleteSignature (
|
|||||||
UINT8 *Data;
|
UINT8 *Data;
|
||||||
UINT8 *OldData;
|
UINT8 *OldData;
|
||||||
UINT32 Attr;
|
UINT32 Attr;
|
||||||
UINTN Index;
|
UINT32 Index;
|
||||||
EFI_SIGNATURE_LIST *CertList;
|
EFI_SIGNATURE_LIST *CertList;
|
||||||
EFI_SIGNATURE_LIST *NewCertList;
|
EFI_SIGNATURE_LIST *NewCertList;
|
||||||
EFI_SIGNATURE_DATA *Cert;
|
EFI_SIGNATURE_DATA *Cert;
|
||||||
@ -3212,7 +3206,7 @@ DeleteSignatureEx (
|
|||||||
//
|
//
|
||||||
// Traverse to target EFI_SIGNATURE_LIST but others will be skipped.
|
// Traverse to target EFI_SIGNATURE_LIST but others will be skipped.
|
||||||
//
|
//
|
||||||
while ((RemainingSize > 0) && (RemainingSize >= (UINTN)ListWalker->SignatureListSize) && ListIndex < PrivateData->ListIndex) {
|
while ((RemainingSize > 0) && (RemainingSize >= ListWalker->SignatureListSize) && ListIndex < PrivateData->ListIndex) {
|
||||||
CopyMem ((UINT8 *)NewVariableData + Offset, ListWalker, ListWalker->SignatureListSize);
|
CopyMem ((UINT8 *)NewVariableData + Offset, ListWalker, ListWalker->SignatureListSize);
|
||||||
Offset += ListWalker->SignatureListSize;
|
Offset += ListWalker->SignatureListSize;
|
||||||
|
|
||||||
@ -3519,19 +3513,9 @@ SecureBootExtractConfig (
|
|||||||
// followed by "&OFFSET=0&WIDTH=WWWWWWWWWWWWWWWW" followed by a Null-terminator
|
// followed by "&OFFSET=0&WIDTH=WWWWWWWWWWWWWWWW" followed by a Null-terminator
|
||||||
//
|
//
|
||||||
ConfigRequestHdr = HiiConstructConfigHdr (&gSecureBootConfigFormSetGuid, mSecureBootStorageName, PrivateData->DriverHandle);
|
ConfigRequestHdr = HiiConstructConfigHdr (&gSecureBootConfigFormSetGuid, mSecureBootStorageName, PrivateData->DriverHandle);
|
||||||
if (ConfigRequestHdr == NULL) {
|
|
||||||
ASSERT (ConfigRequestHdr != NULL);
|
|
||||||
return EFI_OUT_OF_RESOURCES;
|
|
||||||
}
|
|
||||||
|
|
||||||
Size = (StrLen (ConfigRequestHdr) + 32 + 1) * sizeof (CHAR16);
|
Size = (StrLen (ConfigRequestHdr) + 32 + 1) * sizeof (CHAR16);
|
||||||
ConfigRequest = AllocateZeroPool (Size);
|
ConfigRequest = AllocateZeroPool (Size);
|
||||||
if (ConfigRequest == NULL) {
|
|
||||||
ASSERT (ConfigRequest != NULL);
|
ASSERT (ConfigRequest != NULL);
|
||||||
FreePool (ConfigRequestHdr);
|
|
||||||
return EFI_OUT_OF_RESOURCES;
|
|
||||||
}
|
|
||||||
|
|
||||||
AllocatedRequest = TRUE;
|
AllocatedRequest = TRUE;
|
||||||
UnicodeSPrint (ConfigRequest, Size, L"%s&OFFSET=0&WIDTH=%016LX", ConfigRequestHdr, (UINT64)BufferSize);
|
UnicodeSPrint (ConfigRequest, Size, L"%s&OFFSET=0&WIDTH=%016LX", ConfigRequestHdr, (UINT64)BufferSize);
|
||||||
FreePool (ConfigRequestHdr);
|
FreePool (ConfigRequestHdr);
|
||||||
@ -3810,7 +3794,7 @@ LoadSignatureList (
|
|||||||
|
|
||||||
RemainingSize = DataSize;
|
RemainingSize = DataSize;
|
||||||
ListWalker = (EFI_SIGNATURE_LIST *)VariableData;
|
ListWalker = (EFI_SIGNATURE_LIST *)VariableData;
|
||||||
while ((RemainingSize > 0) && (RemainingSize >= (UINTN)ListWalker->SignatureListSize)) {
|
while ((RemainingSize > 0) && (RemainingSize >= ListWalker->SignatureListSize)) {
|
||||||
if (CompareGuid (&ListWalker->SignatureType, &gEfiCertRsa2048Guid)) {
|
if (CompareGuid (&ListWalker->SignatureType, &gEfiCertRsa2048Guid)) {
|
||||||
ListType = STRING_TOKEN (STR_LIST_TYPE_RSA2048_SHA256);
|
ListType = STRING_TOKEN (STR_LIST_TYPE_RSA2048_SHA256);
|
||||||
} else if (CompareGuid (&ListWalker->SignatureType, &gEfiCertX509Guid)) {
|
} else if (CompareGuid (&ListWalker->SignatureType, &gEfiCertX509Guid)) {
|
||||||
@ -4226,7 +4210,7 @@ LoadSignatureData (
|
|||||||
VOID *EndOpCodeHandle;
|
VOID *EndOpCodeHandle;
|
||||||
UINTN DataSize;
|
UINTN DataSize;
|
||||||
UINTN RemainingSize;
|
UINTN RemainingSize;
|
||||||
UINT64 Index;
|
UINT16 Index;
|
||||||
UINT8 *VariableData;
|
UINT8 *VariableData;
|
||||||
CHAR16 VariableName[BUFFER_MAX_SIZE];
|
CHAR16 VariableName[BUFFER_MAX_SIZE];
|
||||||
CHAR16 NameBuffer[BUFFER_MAX_SIZE];
|
CHAR16 NameBuffer[BUFFER_MAX_SIZE];
|
||||||
@ -4310,7 +4294,7 @@ LoadSignatureData (
|
|||||||
//
|
//
|
||||||
// Skip signature list.
|
// Skip signature list.
|
||||||
//
|
//
|
||||||
while ((RemainingSize > 0) && (RemainingSize >= (UINTN)ListWalker->SignatureListSize) && ListIndex-- > 0) {
|
while ((RemainingSize > 0) && (RemainingSize >= ListWalker->SignatureListSize) && ListIndex-- > 0) {
|
||||||
RemainingSize -= ListWalker->SignatureListSize;
|
RemainingSize -= ListWalker->SignatureListSize;
|
||||||
ListWalker = (EFI_SIGNATURE_LIST *)((UINT8 *)ListWalker + ListWalker->SignatureListSize);
|
ListWalker = (EFI_SIGNATURE_LIST *)((UINT8 *)ListWalker + ListWalker->SignatureListSize);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user