mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-29 08:34:07 +02:00
SecurityPkg/TPM2: Move GetDigestFromDigestList() to Tpm2CommandLib
This patch just moves function Tpm2GetDigestFromDigestList() from drivers to library as GetDigestFromDigestList() and no functionality change. Cc: Chao B Zhang <chao.b.zhang@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jiewen Yao <jiewen.yao@intel.com> Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Chao Zhang <chao.b.zhang@intel.com>
This commit is contained in:
parent
f9c9a1406c
commit
d4b9b2c32c
@ -988,4 +988,22 @@ GetHashSizeFromAlgo (
|
|||||||
IN TPMI_ALG_HASH HashAlgo
|
IN TPMI_ALG_HASH HashAlgo
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
This function get digest from digest list.
|
||||||
|
|
||||||
|
@param HashAlg digest algorithm
|
||||||
|
@param DigestList digest list
|
||||||
|
@param Digest digest
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Sha1Digest is found and returned.
|
||||||
|
@retval EFI_NOT_FOUND Sha1Digest is not found.
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
GetDigestFromDigestList(
|
||||||
|
IN TPMI_ALG_HASH HashAlg,
|
||||||
|
IN TPML_DIGEST_VALUES *DigestList,
|
||||||
|
IN VOID *Digest
|
||||||
|
);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/** @file
|
/** @file
|
||||||
Implement TPM2 help.
|
Implement TPM2 help.
|
||||||
|
|
||||||
Copyright (c) 2013 - 2014, Intel Corporation. All rights reserved. <BR>
|
Copyright (c) 2013 - 2016, Intel Corporation. All rights reserved. <BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
which accompanies this distribution. The full text of the license may be found at
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
@ -164,3 +164,39 @@ CopyAuthSessionResponse (
|
|||||||
|
|
||||||
return (UINT32)(UINTN)(Buffer - (UINT8 *)AuthSessionIn);
|
return (UINT32)(UINTN)(Buffer - (UINT8 *)AuthSessionIn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
This function get digest from digest list.
|
||||||
|
|
||||||
|
@param HashAlg digest algorithm
|
||||||
|
@param DigestList digest list
|
||||||
|
@param Digest digest
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Sha1Digest is found and returned.
|
||||||
|
@retval EFI_NOT_FOUND Sha1Digest is not found.
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
GetDigestFromDigestList (
|
||||||
|
IN TPMI_ALG_HASH HashAlg,
|
||||||
|
IN TPML_DIGEST_VALUES *DigestList,
|
||||||
|
IN VOID *Digest
|
||||||
|
)
|
||||||
|
{
|
||||||
|
UINTN Index;
|
||||||
|
UINT16 DigestSize;
|
||||||
|
|
||||||
|
DigestSize = GetHashSizeFromAlgo (HashAlg);
|
||||||
|
for (Index = 0; Index < DigestList->count; Index++) {
|
||||||
|
if (DigestList->digests[Index].hashAlg == HashAlg) {
|
||||||
|
CopyMem (
|
||||||
|
Digest,
|
||||||
|
&DigestList->digests[Index].digest,
|
||||||
|
DigestSize
|
||||||
|
);
|
||||||
|
return EFI_SUCCESS;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return EFI_NOT_FOUND;
|
||||||
|
}
|
@ -863,41 +863,6 @@ TcgDxeLogEvent (
|
|||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
This function get digest from digest list.
|
|
||||||
|
|
||||||
@param HashAlg digest algorithm
|
|
||||||
@param DigestList digest list
|
|
||||||
@param Digest digest
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS Sha1Digest is found and returned.
|
|
||||||
@retval EFI_NOT_FOUND Sha1Digest is not found.
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
Tpm2GetDigestFromDigestList (
|
|
||||||
IN TPMI_ALG_HASH HashAlg,
|
|
||||||
IN TPML_DIGEST_VALUES *DigestList,
|
|
||||||
IN VOID *Digest
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINTN Index;
|
|
||||||
UINT16 DigestSize;
|
|
||||||
|
|
||||||
DigestSize = GetHashSizeFromAlgo (HashAlg);
|
|
||||||
for (Index = 0; Index < DigestList->count; Index++) {
|
|
||||||
if (DigestList->digests[Index].hashAlg == HashAlg) {
|
|
||||||
CopyMem (
|
|
||||||
Digest,
|
|
||||||
&DigestList->digests[Index].digest,
|
|
||||||
DigestSize
|
|
||||||
);
|
|
||||||
return EFI_SUCCESS;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return EFI_NOT_FOUND;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get TPML_DIGEST_VALUES data size.
|
Get TPML_DIGEST_VALUES data size.
|
||||||
|
|
||||||
@ -1067,7 +1032,7 @@ TcgDxeLogHashEvent (
|
|||||||
DEBUG ((EFI_D_INFO, " LogFormat - 0x%08x\n", mTcg2EventInfo[Index].LogFormat));
|
DEBUG ((EFI_D_INFO, " LogFormat - 0x%08x\n", mTcg2EventInfo[Index].LogFormat));
|
||||||
switch (mTcg2EventInfo[Index].LogFormat) {
|
switch (mTcg2EventInfo[Index].LogFormat) {
|
||||||
case EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2:
|
case EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2:
|
||||||
Status = Tpm2GetDigestFromDigestList (TPM_ALG_SHA1, DigestList, &NewEventHdr->Digest);
|
Status = GetDigestFromDigestList (TPM_ALG_SHA1, DigestList, &NewEventHdr->Digest);
|
||||||
if (!EFI_ERROR (Status)) {
|
if (!EFI_ERROR (Status)) {
|
||||||
//
|
//
|
||||||
// Enter critical region
|
// Enter critical region
|
||||||
|
@ -134,41 +134,6 @@ EFI_PEI_NOTIFY_DESCRIPTOR mNotifyList[] = {
|
|||||||
|
|
||||||
EFI_PEI_FIRMWARE_VOLUME_INFO_MEASUREMENT_EXCLUDED_PPI *mMeasurementExcludedFvPpi;
|
EFI_PEI_FIRMWARE_VOLUME_INFO_MEASUREMENT_EXCLUDED_PPI *mMeasurementExcludedFvPpi;
|
||||||
|
|
||||||
/**
|
|
||||||
This function get digest from digest list.
|
|
||||||
|
|
||||||
@param HashAlg digest algorithm
|
|
||||||
@param DigestList digest list
|
|
||||||
@param Digest digest
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS Sha1Digest is found and returned.
|
|
||||||
@retval EFI_NOT_FOUND Sha1Digest is not found.
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
Tpm2GetDigestFromDigestList (
|
|
||||||
IN TPMI_ALG_HASH HashAlg,
|
|
||||||
IN TPML_DIGEST_VALUES *DigestList,
|
|
||||||
IN VOID *Digest
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINTN Index;
|
|
||||||
UINT16 DigestSize;
|
|
||||||
|
|
||||||
DigestSize = GetHashSizeFromAlgo (HashAlg);
|
|
||||||
for (Index = 0; Index < DigestList->count; Index++) {
|
|
||||||
if (DigestList->digests[Index].hashAlg == HashAlg) {
|
|
||||||
CopyMem (
|
|
||||||
Digest,
|
|
||||||
&DigestList->digests[Index].digest,
|
|
||||||
DigestSize
|
|
||||||
);
|
|
||||||
return EFI_SUCCESS;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return EFI_NOT_FOUND;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Record all measured Firmware Volum Information into a Guid Hob
|
Record all measured Firmware Volum Information into a Guid Hob
|
||||||
Guid Hob payload layout is
|
Guid Hob payload layout is
|
||||||
@ -420,7 +385,7 @@ LogHashEvent (
|
|||||||
DEBUG ((EFI_D_INFO, " LogFormat - 0x%08x\n", mTcg2EventInfo[Index].LogFormat));
|
DEBUG ((EFI_D_INFO, " LogFormat - 0x%08x\n", mTcg2EventInfo[Index].LogFormat));
|
||||||
switch (mTcg2EventInfo[Index].LogFormat) {
|
switch (mTcg2EventInfo[Index].LogFormat) {
|
||||||
case EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2:
|
case EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2:
|
||||||
Status = Tpm2GetDigestFromDigestList (TPM_ALG_SHA1, DigestList, &NewEventHdr->Digest);
|
Status = GetDigestFromDigestList (TPM_ALG_SHA1, DigestList, &NewEventHdr->Digest);
|
||||||
if (!EFI_ERROR (Status)) {
|
if (!EFI_ERROR (Status)) {
|
||||||
HobData = BuildGuidHob (
|
HobData = BuildGuidHob (
|
||||||
&gTcgEventEntryHobGuid,
|
&gTcgEventEntryHobGuid,
|
||||||
|
@ -624,41 +624,6 @@ TcgDxeLogEvent (
|
|||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
This function get digest from digest list.
|
|
||||||
|
|
||||||
@param HashAlg digest algorithm
|
|
||||||
@param DigestList digest list
|
|
||||||
@param Digest digest
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS Sha1Digest is found and returned.
|
|
||||||
@retval EFI_NOT_FOUND Sha1Digest is not found.
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
Tpm2GetDigestFromDigestList (
|
|
||||||
IN TPMI_ALG_HASH HashAlg,
|
|
||||||
IN TPML_DIGEST_VALUES *DigestList,
|
|
||||||
IN VOID *Digest
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINTN Index;
|
|
||||||
UINT16 DigestSize;
|
|
||||||
|
|
||||||
DigestSize = GetHashSizeFromAlgo (HashAlg);
|
|
||||||
for (Index = 0; Index < DigestList->count; Index++) {
|
|
||||||
if (DigestList->digests[Index].hashAlg == HashAlg) {
|
|
||||||
CopyMem (
|
|
||||||
Digest,
|
|
||||||
&DigestList->digests[Index].digest,
|
|
||||||
DigestSize
|
|
||||||
);
|
|
||||||
return EFI_SUCCESS;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return EFI_NOT_FOUND;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Add a new entry to the Event Log.
|
Add a new entry to the Event Log.
|
||||||
|
|
||||||
@ -686,7 +651,7 @@ TcgDxeLogHashEvent (
|
|||||||
DEBUG ((EFI_D_INFO, " LogFormat - 0x%08x\n", mTreeEventInfo[Index].LogFormat));
|
DEBUG ((EFI_D_INFO, " LogFormat - 0x%08x\n", mTreeEventInfo[Index].LogFormat));
|
||||||
switch (mTreeEventInfo[Index].LogFormat) {
|
switch (mTreeEventInfo[Index].LogFormat) {
|
||||||
case TREE_EVENT_LOG_FORMAT_TCG_1_2:
|
case TREE_EVENT_LOG_FORMAT_TCG_1_2:
|
||||||
Status = Tpm2GetDigestFromDigestList (TPM_ALG_SHA1, DigestList, &NewEventHdr->Digest);
|
Status = GetDigestFromDigestList (TPM_ALG_SHA1, DigestList, &NewEventHdr->Digest);
|
||||||
if (!EFI_ERROR (Status)) {
|
if (!EFI_ERROR (Status)) {
|
||||||
//
|
//
|
||||||
// Enter critical region
|
// Enter critical region
|
||||||
|
@ -132,41 +132,6 @@ EFI_PEI_NOTIFY_DESCRIPTOR mNotifyList[] = {
|
|||||||
|
|
||||||
EFI_PEI_FIRMWARE_VOLUME_INFO_MEASUREMENT_EXCLUDED_PPI *mMeasurementExcludedFvPpi;
|
EFI_PEI_FIRMWARE_VOLUME_INFO_MEASUREMENT_EXCLUDED_PPI *mMeasurementExcludedFvPpi;
|
||||||
|
|
||||||
/**
|
|
||||||
This function get digest from digest list.
|
|
||||||
|
|
||||||
@param HashAlg digest algorithm
|
|
||||||
@param DigestList digest list
|
|
||||||
@param Digest digest
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS Sha1Digest is found and returned.
|
|
||||||
@retval EFI_NOT_FOUND Sha1Digest is not found.
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
Tpm2GetDigestFromDigestList (
|
|
||||||
IN TPMI_ALG_HASH HashAlg,
|
|
||||||
IN TPML_DIGEST_VALUES *DigestList,
|
|
||||||
IN VOID *Digest
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINTN Index;
|
|
||||||
UINT16 DigestSize;
|
|
||||||
|
|
||||||
DigestSize = GetHashSizeFromAlgo (HashAlg);
|
|
||||||
for (Index = 0; Index < DigestList->count; Index++) {
|
|
||||||
if (DigestList->digests[Index].hashAlg == HashAlg) {
|
|
||||||
CopyMem (
|
|
||||||
Digest,
|
|
||||||
&DigestList->digests[Index].digest,
|
|
||||||
DigestSize
|
|
||||||
);
|
|
||||||
return EFI_SUCCESS;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return EFI_NOT_FOUND;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Record all measured Firmware Volum Information into a Guid Hob
|
Record all measured Firmware Volum Information into a Guid Hob
|
||||||
Guid Hob payload layout is
|
Guid Hob payload layout is
|
||||||
@ -249,7 +214,7 @@ LogHashEvent (
|
|||||||
DEBUG ((EFI_D_INFO, " LogFormat - 0x%08x\n", mTreeEventInfo[Index].LogFormat));
|
DEBUG ((EFI_D_INFO, " LogFormat - 0x%08x\n", mTreeEventInfo[Index].LogFormat));
|
||||||
switch (mTreeEventInfo[Index].LogFormat) {
|
switch (mTreeEventInfo[Index].LogFormat) {
|
||||||
case TREE_EVENT_LOG_FORMAT_TCG_1_2:
|
case TREE_EVENT_LOG_FORMAT_TCG_1_2:
|
||||||
Status = Tpm2GetDigestFromDigestList (TPM_ALG_SHA1, DigestList, &NewEventHdr->Digest);
|
Status = GetDigestFromDigestList (TPM_ALG_SHA1, DigestList, &NewEventHdr->Digest);
|
||||||
if (!EFI_ERROR (Status)) {
|
if (!EFI_ERROR (Status)) {
|
||||||
HobData = BuildGuidHob (
|
HobData = BuildGuidHob (
|
||||||
&gTcgEventEntryHobGuid,
|
&gTcgEventEntryHobGuid,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user