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
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