]> git.proxmox.com Git - mirror_edk2.git/blobdiff - SecurityPkg/Library/Tpm2CommandLib/Tpm2Help.c
SecurityPkg TPM2: Add GetHashMaskFromAlgo() into Tpm2CommandLib
[mirror_edk2.git] / SecurityPkg / Library / Tpm2CommandLib / Tpm2Help.c
index 95d4f7c84ce965dc4f3091f6fe0a8cf926ca0da3..9aa77af97af172d3e069a3cf2278d6fe2a62374b 100644 (file)
@@ -22,14 +22,15 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 typedef struct {\r
   TPMI_ALG_HASH              HashAlgo;\r
   UINT16                     HashSize;\r
+  UINT32                     HashMask;\r
 } INTERNAL_HASH_INFO;\r
 \r
 STATIC INTERNAL_HASH_INFO mHashInfo[] = {\r
-  {TPM_ALG_SHA1,          SHA1_DIGEST_SIZE},\r
-  {TPM_ALG_SHA256,        SHA256_DIGEST_SIZE},\r
-  {TPM_ALG_SM3_256,       SM3_256_DIGEST_SIZE},\r
-  {TPM_ALG_SHA384,        SHA384_DIGEST_SIZE},\r
-  {TPM_ALG_SHA512,        SHA512_DIGEST_SIZE},\r
+  {TPM_ALG_SHA1,          SHA1_DIGEST_SIZE,     HASH_ALG_SHA1},\r
+  {TPM_ALG_SHA256,        SHA256_DIGEST_SIZE,   HASH_ALG_SHA256},\r
+  {TPM_ALG_SM3_256,       SM3_256_DIGEST_SIZE,  HASH_ALG_SM3_256},\r
+  {TPM_ALG_SHA384,        SHA384_DIGEST_SIZE,   HASH_ALG_SHA384},\r
+  {TPM_ALG_SHA512,        SHA512_DIGEST_SIZE,   HASH_ALG_SHA512},\r
 };\r
 \r
 /**\r
@@ -55,6 +56,29 @@ GetHashSizeFromAlgo (
   return 0;\r
 }\r
 \r
+/**\r
+  Get hash mask from algorithm.\r
+\r
+  @param[in] HashAlgo   Hash algorithm\r
+\r
+  @return Hash mask\r
+**/\r
+UINT32\r
+EFIAPI\r
+GetHashMaskFromAlgo (\r
+  IN TPMI_ALG_HASH     HashAlgo\r
+  )\r
+{\r
+  UINTN  Index;\r
+\r
+  for (Index = 0; Index < sizeof(mHashInfo)/sizeof(mHashInfo[0]); Index++) {\r
+    if (mHashInfo[Index].HashAlgo == HashAlgo) {\r
+      return mHashInfo[Index].HashMask;\r
+    }\r
+  }\r
+  return 0;\r
+}\r
+\r
 /**\r
   Copy AuthSessionIn to TPM2 command buffer.\r
 \r