]> git.proxmox.com Git - mirror_edk2.git/blame - SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterCommon.c
SecurityPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / SecurityPkg / Library / HashLibBaseCryptoRouter / HashLibBaseCryptoRouterCommon.c
CommitLineData
c1d93242 1/** @file\r
07309c3d 2 This is BaseCrypto router support function.\r
c1d93242 3\r
07309c3d 4Copyright (c) 2013 - 2016, Intel Corporation. All rights reserved. <BR>\r
289b714b 5SPDX-License-Identifier: BSD-2-Clause-Patent\r
c1d93242
JY
6\r
7**/\r
8\r
9#include <PiPei.h>\r
10#include <Library/BaseLib.h>\r
11#include <Library/BaseMemoryLib.h>\r
12#include <Library/Tpm2CommandLib.h>\r
13#include <Library/DebugLib.h>\r
14#include <Library/MemoryAllocationLib.h>\r
15#include <Library/HashLib.h>\r
1abfa4ce 16#include <Protocol/Tcg2Protocol.h>\r
c1d93242
JY
17\r
18typedef struct {\r
19 EFI_GUID Guid;\r
20 UINT32 Mask;\r
21} TPM2_HASH_MASK;\r
22\r
23TPM2_HASH_MASK mTpm2HashMask[] = {\r
1abfa4ce
JY
24 {HASH_ALGORITHM_SHA1_GUID, HASH_ALG_SHA1},\r
25 {HASH_ALGORITHM_SHA256_GUID, HASH_ALG_SHA256},\r
26 {HASH_ALGORITHM_SHA384_GUID, HASH_ALG_SHA384},\r
27 {HASH_ALGORITHM_SHA512_GUID, HASH_ALG_SHA512},\r
c1d93242
JY
28};\r
29\r
30/**\r
31 The function get hash mask info from algorithm.\r
32\r
33 @param HashGuid Hash Guid\r
34\r
35 @return HashMask\r
36**/\r
37UINT32\r
38EFIAPI\r
39Tpm2GetHashMaskFromAlgo (\r
40 IN EFI_GUID *HashGuid\r
41 )\r
42{\r
43 UINTN Index;\r
44 for (Index = 0; Index < sizeof(mTpm2HashMask)/sizeof(mTpm2HashMask[0]); Index++) {\r
45 if (CompareGuid (HashGuid, &mTpm2HashMask[Index].Guid)) {\r
46 return mTpm2HashMask[Index].Mask;\r
47 }\r
48 }\r
49 return 0;\r
50}\r
51\r
52/**\r
53 The function set digest to digest list.\r
54\r
55 @param DigestList digest list\r
56 @param Digest digest data\r
57**/\r
58VOID\r
59EFIAPI\r
60Tpm2SetHashToDigestList (\r
61 IN OUT TPML_DIGEST_VALUES *DigestList,\r
62 IN TPML_DIGEST_VALUES *Digest\r
63 )\r
64{\r
65 CopyMem (\r
66 &DigestList->digests[DigestList->count],\r
67 &Digest->digests[0],\r
68 sizeof(Digest->digests[0])\r
69 );\r
70 DigestList->count ++;\r
71}\r