summaryrefslogtreecommitdiff
path: root/SecurityPkg/Library/HashLibBaseCryptoRouter
diff options
context:
space:
mode:
authorGuo Mang <mang.guo@intel.com>2017-08-02 09:54:47 +0800
committerGuo Mang <mang.guo@intel.com>2017-09-05 19:45:08 +0800
commit6c128c65b5ec0e5b8b5a0ccb165f3afd29e485f8 (patch)
tree444372d92a0ae8991fe4d15eb3937df43690dfda /SecurityPkg/Library/HashLibBaseCryptoRouter
parentb207c6434d7a5a4502975d322312e07017e8a8cb (diff)
downloadedk2-platforms-6c128c65b5ec0e5b8b5a0ccb165f3afd29e485f8.tar.xz
Remove core packages since we can get them from edk2 repository
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Guo Mang <mang.guo@intel.com>
Diffstat (limited to 'SecurityPkg/Library/HashLibBaseCryptoRouter')
-rw-r--r--SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterCommon.c77
-rw-r--r--SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterCommon.h44
-rw-r--r--SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.c236
-rw-r--r--SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.inf53
-rw-r--r--SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.unibin2326 -> 0 bytes
-rw-r--r--SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterPei.c303
-rw-r--r--SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterPei.inf54
-rw-r--r--SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterPei.unibin2312 -> 0 bytes
8 files changed, 0 insertions, 767 deletions
diff --git a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterCommon.c b/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterCommon.c
deleted file mode 100644
index 7fb5f3d1f8..0000000000
--- a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterCommon.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/** @file
- Ihis is BaseCrypto router support function.
-
-Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved. <BR>
-This program and the accompanying materials
-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
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-#include <PiPei.h>
-#include <Library/BaseLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/Tpm2CommandLib.h>
-#include <Library/DebugLib.h>
-#include <Library/MemoryAllocationLib.h>
-#include <Library/HashLib.h>
-#include <Protocol/Tcg2Protocol.h>
-
-typedef struct {
- EFI_GUID Guid;
- UINT32 Mask;
-} TPM2_HASH_MASK;
-
-TPM2_HASH_MASK mTpm2HashMask[] = {
- {HASH_ALGORITHM_SHA1_GUID, HASH_ALG_SHA1},
- {HASH_ALGORITHM_SHA256_GUID, HASH_ALG_SHA256},
- {HASH_ALGORITHM_SHA384_GUID, HASH_ALG_SHA384},
- {HASH_ALGORITHM_SHA512_GUID, HASH_ALG_SHA512},
-};
-
-/**
- The function get hash mask info from algorithm.
-
- @param HashGuid Hash Guid
-
- @return HashMask
-**/
-UINT32
-EFIAPI
-Tpm2GetHashMaskFromAlgo (
- IN EFI_GUID *HashGuid
- )
-{
- UINTN Index;
- for (Index = 0; Index < sizeof(mTpm2HashMask)/sizeof(mTpm2HashMask[0]); Index++) {
- if (CompareGuid (HashGuid, &mTpm2HashMask[Index].Guid)) {
- return mTpm2HashMask[Index].Mask;
- }
- }
- return 0;
-}
-
-/**
- The function set digest to digest list.
-
- @param DigestList digest list
- @param Digest digest data
-**/
-VOID
-EFIAPI
-Tpm2SetHashToDigestList (
- IN OUT TPML_DIGEST_VALUES *DigestList,
- IN TPML_DIGEST_VALUES *Digest
- )
-{
- CopyMem (
- &DigestList->digests[DigestList->count],
- &Digest->digests[0],
- sizeof(Digest->digests[0])
- );
- DigestList->count ++;
-}
diff --git a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterCommon.h b/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterCommon.h
deleted file mode 100644
index f0ea3ca212..0000000000
--- a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterCommon.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/** @file
- Ihis is BaseCrypto router support function definition.
-
-Copyright (c) 2013, Intel Corporation. All rights reserved. <BR>
-This program and the accompanying materials
-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
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-#ifndef _HASH_LIB_BASE_CRYPTO_ROUTER_COMMON_H_
-#define _HASH_LIB_BASE_CRYPTO_ROUTER_COMMON_H_
-
-/**
- The function get hash mask info from algorithm.
-
- @param HashGuid Hash Guid
-
- @return HashMask
-**/
-UINT32
-EFIAPI
-Tpm2GetHashMaskFromAlgo (
- IN EFI_GUID *HashGuid
- );
-
-/**
- The function set digest to digest list.
-
- @param DigestList digest list
- @param Digest digest data
-**/
-VOID
-EFIAPI
-Tpm2SetHashToDigestList (
- IN OUT TPML_DIGEST_VALUES *DigestList,
- IN TPML_DIGEST_VALUES *Digest
- );
-
-#endif
diff --git a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.c b/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.c
deleted file mode 100644
index 89673373c4..0000000000
--- a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.c
+++ /dev/null
@@ -1,236 +0,0 @@
-/** @file
- Ihis library is BaseCrypto router. It will redirect hash request to each individual
- hash handler registerd, such as SHA1, SHA256.
- Platform can use PcdTpm2HashMask to mask some hash engines.
-
-Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved. <BR>
-This program and the accompanying materials
-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
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-#include <PiPei.h>
-#include <Library/BaseLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/Tpm2CommandLib.h>
-#include <Library/DebugLib.h>
-#include <Library/MemoryAllocationLib.h>
-#include <Library/PcdLib.h>
-#include <Library/HashLib.h>
-
-#include "HashLibBaseCryptoRouterCommon.h"
-
-HASH_INTERFACE mHashInterface[HASH_COUNT] = {{{0}, NULL, NULL, NULL}};
-UINTN mHashInterfaceCount = 0;
-
-/**
- Start hash sequence.
-
- @param HashHandle Hash handle.
-
- @retval EFI_SUCCESS Hash sequence start and HandleHandle returned.
- @retval EFI_OUT_OF_RESOURCES No enough resource to start hash.
-**/
-EFI_STATUS
-EFIAPI
-HashStart (
- OUT HASH_HANDLE *HashHandle
- )
-{
- HASH_HANDLE *HashCtx;
- UINTN Index;
- UINT32 HashMask;
-
- if (mHashInterfaceCount == 0) {
- return EFI_UNSUPPORTED;
- }
-
- HashCtx = AllocatePool (sizeof(*HashCtx) * mHashInterfaceCount);
- ASSERT (HashCtx != NULL);
-
- for (Index = 0; Index < mHashInterfaceCount; Index++) {
- HashMask = Tpm2GetHashMaskFromAlgo (&mHashInterface[Index].HashGuid);
- if ((HashMask & PcdGet32 (PcdTpm2HashMask)) != 0) {
- mHashInterface[Index].HashInit (&HashCtx[Index]);
- }
- }
-
- *HashHandle = (HASH_HANDLE)HashCtx;
-
- return EFI_SUCCESS;
-}
-
-/**
- Update hash sequence data.
-
- @param HashHandle Hash handle.
- @param DataToHash Data to be hashed.
- @param DataToHashLen Data size.
-
- @retval EFI_SUCCESS Hash sequence updated.
-**/
-EFI_STATUS
-EFIAPI
-HashUpdate (
- IN HASH_HANDLE HashHandle,
- IN VOID *DataToHash,
- IN UINTN DataToHashLen
- )
-{
- HASH_HANDLE *HashCtx;
- UINTN Index;
- UINT32 HashMask;
-
- if (mHashInterfaceCount == 0) {
- return EFI_UNSUPPORTED;
- }
-
- HashCtx = (HASH_HANDLE *)HashHandle;
-
- for (Index = 0; Index < mHashInterfaceCount; Index++) {
- HashMask = Tpm2GetHashMaskFromAlgo (&mHashInterface[Index].HashGuid);
- if ((HashMask & PcdGet32 (PcdTpm2HashMask)) != 0) {
- mHashInterface[Index].HashUpdate (HashCtx[Index], DataToHash, DataToHashLen);
- }
- }
-
- return EFI_SUCCESS;
-}
-
-/**
- Hash sequence complete and extend to PCR.
-
- @param HashHandle Hash handle.
- @param PcrIndex PCR to be extended.
- @param DataToHash Data to be hashed.
- @param DataToHashLen Data size.
- @param DigestList Digest list.
-
- @retval EFI_SUCCESS Hash sequence complete and DigestList is returned.
-**/
-EFI_STATUS
-EFIAPI
-HashCompleteAndExtend (
- IN HASH_HANDLE HashHandle,
- IN TPMI_DH_PCR PcrIndex,
- IN VOID *DataToHash,
- IN UINTN DataToHashLen,
- OUT TPML_DIGEST_VALUES *DigestList
- )
-{
- TPML_DIGEST_VALUES Digest;
- HASH_HANDLE *HashCtx;
- UINTN Index;
- EFI_STATUS Status;
- UINT32 HashMask;
-
- if (mHashInterfaceCount == 0) {
- return EFI_UNSUPPORTED;
- }
-
- HashCtx = (HASH_HANDLE *)HashHandle;
- ZeroMem (DigestList, sizeof(*DigestList));
-
- for (Index = 0; Index < mHashInterfaceCount; Index++) {
- HashMask = Tpm2GetHashMaskFromAlgo (&mHashInterface[Index].HashGuid);
- if ((HashMask & PcdGet32 (PcdTpm2HashMask)) != 0) {
- mHashInterface[Index].HashUpdate (HashCtx[Index], DataToHash, DataToHashLen);
- mHashInterface[Index].HashFinal (HashCtx[Index], &Digest);
- Tpm2SetHashToDigestList (DigestList, &Digest);
- }
- }
-
- FreePool (HashCtx);
-
- Status = Tpm2PcrExtend (
- PcrIndex,
- DigestList
- );
- return Status;
-}
-
-/**
- Hash data and extend to PCR.
-
- @param PcrIndex PCR to be extended.
- @param DataToHash Data to be hashed.
- @param DataToHashLen Data size.
- @param DigestList Digest list.
-
- @retval EFI_SUCCESS Hash data and DigestList is returned.
-**/
-EFI_STATUS
-EFIAPI
-HashAndExtend (
- IN TPMI_DH_PCR PcrIndex,
- IN VOID *DataToHash,
- IN UINTN DataToHashLen,
- OUT TPML_DIGEST_VALUES *DigestList
- )
-{
- HASH_HANDLE HashHandle;
- EFI_STATUS Status;
-
- if (mHashInterfaceCount == 0) {
- return EFI_UNSUPPORTED;
- }
-
- HashStart (&HashHandle);
- HashUpdate (HashHandle, DataToHash, DataToHashLen);
- Status = HashCompleteAndExtend (HashHandle, PcrIndex, NULL, 0, DigestList);
-
- return Status;
-}
-
-/**
- This service register Hash.
-
- @param HashInterface Hash interface
-
- @retval EFI_SUCCESS This hash interface is registered successfully.
- @retval EFI_UNSUPPORTED System does not support register this interface.
- @retval EFI_ALREADY_STARTED System already register this interface.
-**/
-EFI_STATUS
-EFIAPI
-RegisterHashInterfaceLib (
- IN HASH_INTERFACE *HashInterface
- )
-{
- UINTN Index;
- UINT32 HashMask;
- UINT32 BiosSupportedHashMask;
-
- //
- // Check allow
- //
- HashMask = Tpm2GetHashMaskFromAlgo (&HashInterface->HashGuid);
- if ((HashMask & PcdGet32 (PcdTpm2HashMask)) == 0) {
- return EFI_UNSUPPORTED;
- }
-
- if (mHashInterfaceCount >= sizeof(mHashInterface)/sizeof(mHashInterface[0])) {
- return EFI_OUT_OF_RESOURCES;
- }
- BiosSupportedHashMask = PcdGet32 (PcdTcg2HashAlgorithmBitmap);
- PcdSet32 (PcdTcg2HashAlgorithmBitmap, BiosSupportedHashMask | HashMask);
-
- //
- // Check duplication
- //
- for (Index = 0; Index < mHashInterfaceCount; Index++) {
- if (CompareGuid (&mHashInterface[Index].HashGuid, &HashInterface->HashGuid)) {
- return EFI_ALREADY_STARTED;
- }
- }
-
- CopyMem (&mHashInterface[mHashInterfaceCount], HashInterface, sizeof(*HashInterface));
- mHashInterfaceCount ++;
-
- return EFI_SUCCESS;
-} \ No newline at end of file
diff --git a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.inf b/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.inf
deleted file mode 100644
index 7c38ea6bc2..0000000000
--- a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.inf
+++ /dev/null
@@ -1,53 +0,0 @@
-## @file
-# Provides hash service by registered hash handler
-#
-# Ihis library is BaseCrypto router. It will redirect hash request to each individual
-# hash handler registered, such as SHA1, SHA256. Platform can use PcdTpm2HashMask to
-# mask some hash engines.
-#
-# Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# 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
-# http://opensource.org/licenses/bsd-license.php
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-##
-
-[Defines]
- INF_VERSION = 0x00010005
- BASE_NAME = HashLibBaseCryptoRouterDxe
- MODULE_UNI_FILE = HashLibBaseCryptoRouterDxe.uni
- FILE_GUID = 158DC712-F15A-44dc-93BB-1675045BE066
- MODULE_TYPE = DXE_DRIVER
- VERSION_STRING = 1.0
- LIBRARY_CLASS = HashLib|DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER
-
-#
-# The following information is for reference only and not required by the build tools.
-#
-# VALID_ARCHITECTURES = IA32 X64 IPF
-#
-
-[Sources]
- HashLibBaseCryptoRouterCommon.h
- HashLibBaseCryptoRouterCommon.c
- HashLibBaseCryptoRouterDxe.c
-
-[Packages]
- MdePkg/MdePkg.dec
- SecurityPkg/SecurityPkg.dec
-
-[LibraryClasses]
- BaseLib
- BaseMemoryLib
- DebugLib
- Tpm2CommandLib
- MemoryAllocationLib
- PcdLib
-
-[Pcd]
- gEfiSecurityPkgTokenSpaceGuid.PcdTpm2HashMask ## CONSUMES
- gEfiSecurityPkgTokenSpaceGuid.PcdTcg2HashAlgorithmBitmap ## CONSUMES
-
diff --git a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.uni b/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.uni
deleted file mode 100644
index 06b7a2f859..0000000000
--- a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.uni
+++ /dev/null
Binary files differ
diff --git a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterPei.c b/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterPei.c
deleted file mode 100644
index 98c07933d8..0000000000
--- a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterPei.c
+++ /dev/null
@@ -1,303 +0,0 @@
-/** @file
- Ihis library is BaseCrypto router. It will redirect hash request to each individual
- hash handler registerd, such as SHA1, SHA256.
- Platform can use PcdTpm2HashMask to mask some hash engines.
-
-Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved. <BR>
-This program and the accompanying materials
-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
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-#include <PiPei.h>
-#include <Library/BaseLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/Tpm2CommandLib.h>
-#include <Library/DebugLib.h>
-#include <Library/MemoryAllocationLib.h>
-#include <Library/PcdLib.h>
-#include <Library/HobLib.h>
-#include <Library/HashLib.h>
-
-#include "HashLibBaseCryptoRouterCommon.h"
-
-#define HASH_LIB_PEI_ROUTER_GUID \
- { 0x84681c08, 0x6873, 0x46f3, { 0x8b, 0xb7, 0xab, 0x66, 0x18, 0x95, 0xa1, 0xb3 } }
-
-EFI_GUID mHashLibPeiRouterGuid = HASH_LIB_PEI_ROUTER_GUID;
-
-typedef struct {
- UINTN HashInterfaceCount;
- HASH_INTERFACE HashInterface[HASH_COUNT];
-} HASH_INTERFACE_HOB;
-
-/**
- This function get hash interface.
-
- @retval hash interface.
-**/
-HASH_INTERFACE_HOB *
-InternalGetHashInterface (
- VOID
- )
-{
- EFI_HOB_GUID_TYPE *Hob;
-
- Hob = GetFirstGuidHob (&mHashLibPeiRouterGuid);
- if (Hob == NULL) {
- return NULL;
- }
- return (HASH_INTERFACE_HOB *)(Hob + 1);
-}
-
-/**
- Start hash sequence.
-
- @param HashHandle Hash handle.
-
- @retval EFI_SUCCESS Hash sequence start and HandleHandle returned.
- @retval EFI_OUT_OF_RESOURCES No enough resource to start hash.
-**/
-EFI_STATUS
-EFIAPI
-HashStart (
- OUT HASH_HANDLE *HashHandle
- )
-{
- HASH_INTERFACE_HOB *HashInterfaceHob;
- HASH_HANDLE *HashCtx;
- UINTN Index;
- UINT32 HashMask;
-
- HashInterfaceHob = InternalGetHashInterface ();
- if (HashInterfaceHob == NULL) {
- return EFI_UNSUPPORTED;
- }
-
- if (HashInterfaceHob->HashInterfaceCount == 0) {
- return EFI_UNSUPPORTED;
- }
-
- HashCtx = AllocatePool (sizeof(*HashCtx) * HashInterfaceHob->HashInterfaceCount);
- ASSERT (HashCtx != NULL);
-
- for (Index = 0; Index < HashInterfaceHob->HashInterfaceCount; Index++) {
- HashMask = Tpm2GetHashMaskFromAlgo (&HashInterfaceHob->HashInterface[Index].HashGuid);
- if ((HashMask & PcdGet32 (PcdTpm2HashMask)) != 0) {
- HashInterfaceHob->HashInterface[Index].HashInit (&HashCtx[Index]);
- }
- }
-
- *HashHandle = (HASH_HANDLE)HashCtx;
-
- return EFI_SUCCESS;
-}
-
-/**
- Update hash sequence data.
-
- @param HashHandle Hash handle.
- @param DataToHash Data to be hashed.
- @param DataToHashLen Data size.
-
- @retval EFI_SUCCESS Hash sequence updated.
-**/
-EFI_STATUS
-EFIAPI
-HashUpdate (
- IN HASH_HANDLE HashHandle,
- IN VOID *DataToHash,
- IN UINTN DataToHashLen
- )
-{
- HASH_INTERFACE_HOB *HashInterfaceHob;
- HASH_HANDLE *HashCtx;
- UINTN Index;
- UINT32 HashMask;
-
- HashInterfaceHob = InternalGetHashInterface ();
- if (HashInterfaceHob == NULL) {
- return EFI_UNSUPPORTED;
- }
-
- if (HashInterfaceHob->HashInterfaceCount == 0) {
- return EFI_UNSUPPORTED;
- }
-
- HashCtx = (HASH_HANDLE *)HashHandle;
-
- for (Index = 0; Index < HashInterfaceHob->HashInterfaceCount; Index++) {
- HashMask = Tpm2GetHashMaskFromAlgo (&HashInterfaceHob->HashInterface[Index].HashGuid);
- if ((HashMask & PcdGet32 (PcdTpm2HashMask)) != 0) {
- HashInterfaceHob->HashInterface[Index].HashUpdate (HashCtx[Index], DataToHash, DataToHashLen);
- }
- }
-
- return EFI_SUCCESS;
-}
-
-/**
- Hash sequence complete and extend to PCR.
-
- @param HashHandle Hash handle.
- @param PcrIndex PCR to be extended.
- @param DataToHash Data to be hashed.
- @param DataToHashLen Data size.
- @param DigestList Digest list.
-
- @retval EFI_SUCCESS Hash sequence complete and DigestList is returned.
-**/
-EFI_STATUS
-EFIAPI
-HashCompleteAndExtend (
- IN HASH_HANDLE HashHandle,
- IN TPMI_DH_PCR PcrIndex,
- IN VOID *DataToHash,
- IN UINTN DataToHashLen,
- OUT TPML_DIGEST_VALUES *DigestList
- )
-{
- TPML_DIGEST_VALUES Digest;
- HASH_INTERFACE_HOB *HashInterfaceHob;
- HASH_HANDLE *HashCtx;
- UINTN Index;
- EFI_STATUS Status;
- UINT32 HashMask;
-
- HashInterfaceHob = InternalGetHashInterface ();
- if (HashInterfaceHob == NULL) {
- return EFI_UNSUPPORTED;
- }
-
- if (HashInterfaceHob->HashInterfaceCount == 0) {
- return EFI_UNSUPPORTED;
- }
-
- HashCtx = (HASH_HANDLE *)HashHandle;
- ZeroMem (DigestList, sizeof(*DigestList));
-
- for (Index = 0; Index < HashInterfaceHob->HashInterfaceCount; Index++) {
- HashMask = Tpm2GetHashMaskFromAlgo (&HashInterfaceHob->HashInterface[Index].HashGuid);
- if ((HashMask & PcdGet32 (PcdTpm2HashMask)) != 0) {
- HashInterfaceHob->HashInterface[Index].HashUpdate (HashCtx[Index], DataToHash, DataToHashLen);
- HashInterfaceHob->HashInterface[Index].HashFinal (HashCtx[Index], &Digest);
- Tpm2SetHashToDigestList (DigestList, &Digest);
- }
- }
-
- FreePool (HashCtx);
-
- Status = Tpm2PcrExtend (
- PcrIndex,
- DigestList
- );
- return Status;
-}
-
-/**
- Hash data and extend to PCR.
-
- @param PcrIndex PCR to be extended.
- @param DataToHash Data to be hashed.
- @param DataToHashLen Data size.
- @param DigestList Digest list.
-
- @retval EFI_SUCCESS Hash data and DigestList is returned.
-**/
-EFI_STATUS
-EFIAPI
-HashAndExtend (
- IN TPMI_DH_PCR PcrIndex,
- IN VOID *DataToHash,
- IN UINTN DataToHashLen,
- OUT TPML_DIGEST_VALUES *DigestList
- )
-{
- HASH_INTERFACE_HOB *HashInterfaceHob;
- HASH_HANDLE HashHandle;
- EFI_STATUS Status;
-
- HashInterfaceHob = InternalGetHashInterface ();
- if (HashInterfaceHob == NULL) {
- return EFI_UNSUPPORTED;
- }
-
- if (HashInterfaceHob->HashInterfaceCount == 0) {
- return EFI_UNSUPPORTED;
- }
-
- HashStart (&HashHandle);
- HashUpdate (HashHandle, DataToHash, DataToHashLen);
- Status = HashCompleteAndExtend (HashHandle, PcrIndex, NULL, 0, DigestList);
-
- return Status;
-}
-
-/**
- This service register Hash.
-
- @param HashInterface Hash interface
-
- @retval EFI_SUCCESS This hash interface is registered successfully.
- @retval EFI_UNSUPPORTED System does not support register this interface.
- @retval EFI_ALREADY_STARTED System already register this interface.
-**/
-EFI_STATUS
-EFIAPI
-RegisterHashInterfaceLib (
- IN HASH_INTERFACE *HashInterface
- )
-{
- UINTN Index;
- HASH_INTERFACE_HOB *HashInterfaceHob;
- HASH_INTERFACE_HOB LocalHashInterfaceHob;
- UINT32 HashMask;
- UINT32 BiosSupportedHashMask;
-
- //
- // Check allow
- //
- HashMask = Tpm2GetHashMaskFromAlgo (&HashInterface->HashGuid);
- if ((HashMask & PcdGet32 (PcdTpm2HashMask)) == 0) {
- return EFI_UNSUPPORTED;
- }
-
- HashInterfaceHob = InternalGetHashInterface ();
- if (HashInterfaceHob == NULL) {
- ZeroMem (&LocalHashInterfaceHob, sizeof(LocalHashInterfaceHob));
- HashInterfaceHob = BuildGuidDataHob (&mHashLibPeiRouterGuid, &LocalHashInterfaceHob, sizeof(LocalHashInterfaceHob));
- if (HashInterfaceHob == NULL) {
- return EFI_OUT_OF_RESOURCES;
- }
- }
-
- if (HashInterfaceHob->HashInterfaceCount >= HASH_COUNT) {
- return EFI_OUT_OF_RESOURCES;
- }
- BiosSupportedHashMask = PcdGet32 (PcdTcg2HashAlgorithmBitmap);
- PcdSet32 (PcdTcg2HashAlgorithmBitmap, BiosSupportedHashMask | HashMask);
-
- //
- // Check duplication
- //
- for (Index = 0; Index < HashInterfaceHob->HashInterfaceCount; Index++) {
- if (CompareGuid (&HashInterfaceHob->HashInterface[Index].HashGuid, &HashInterface->HashGuid)) {
- //
- // In PEI phase, there will be shadow driver dispatched again.
- //
- DEBUG ((EFI_D_INFO, "RegisterHashInterfaceLib - Override\n"));
- CopyMem (&HashInterfaceHob->HashInterface[Index], HashInterface, sizeof(*HashInterface));
- return EFI_SUCCESS;
- }
- }
-
- CopyMem (&HashInterfaceHob->HashInterface[HashInterfaceHob->HashInterfaceCount], HashInterface, sizeof(*HashInterface));
- HashInterfaceHob->HashInterfaceCount ++;
-
- return EFI_SUCCESS;
-} \ No newline at end of file
diff --git a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterPei.inf b/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterPei.inf
deleted file mode 100644
index c1a699fd0f..0000000000
--- a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterPei.inf
+++ /dev/null
@@ -1,54 +0,0 @@
-## @file
-# Provides hash service by registered hash handler
-#
-# Ihis library is BaseCrypto router. It will redirect hash request to each individual
-# hash handler registered, such as SHA1, SHA256. Platform can use PcdTpm2HashMask to
-# mask some hash engines.
-#
-# Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# 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
-# http://opensource.org/licenses/bsd-license.php
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-##
-
-[Defines]
- INF_VERSION = 0x00010005
- BASE_NAME = HashLibBaseCryptoRouterPei
- MODULE_UNI_FILE = HashLibBaseCryptoRouterPei.uni
- FILE_GUID = DDCBCFBA-8EEB-488a-96D6-097831A6E50B
- MODULE_TYPE = PEIM
- VERSION_STRING = 1.0
- LIBRARY_CLASS = HashLib|PEIM
-
-#
-# The following information is for reference only and not required by the build tools.
-#
-# VALID_ARCHITECTURES = IA32 X64 IPF
-#
-
-[Sources]
- HashLibBaseCryptoRouterCommon.h
- HashLibBaseCryptoRouterCommon.c
- HashLibBaseCryptoRouterPei.c
-
-[Packages]
- MdePkg/MdePkg.dec
- SecurityPkg/SecurityPkg.dec
-
-[LibraryClasses]
- BaseLib
- BaseMemoryLib
- DebugLib
- Tpm2CommandLib
- MemoryAllocationLib
- PcdLib
- HobLib
-
-[Pcd]
- gEfiSecurityPkgTokenSpaceGuid.PcdTpm2HashMask ## CONSUMES
- gEfiSecurityPkgTokenSpaceGuid.PcdTcg2HashAlgorithmBitmap ## CONSUMES
-
diff --git a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterPei.uni b/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterPei.uni
deleted file mode 100644
index 8d2c0ed01e..0000000000
--- a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterPei.uni
+++ /dev/null
Binary files differ