switch (TpmAlgHash) {\r
case TPM_ALG_SHA1:\r
if (Buffer[0] != 0) {\r
- StrnCat (Buffer, L", ", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
}\r
- StrnCat (Buffer, L"SHA1", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SHA1");\r
break;\r
case TPM_ALG_SHA256:\r
if (Buffer[0] != 0) {\r
- StrnCat (Buffer, L", ", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
}\r
- StrnCat (Buffer, L"SHA256", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SHA256");\r
break;\r
case TPM_ALG_SHA384:\r
if (Buffer[0] != 0) {\r
- StrnCat (Buffer, L", ", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
}\r
- StrnCat (Buffer, L"SHA384", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SHA384");\r
break;\r
case TPM_ALG_SHA512:\r
if (Buffer[0] != 0) {\r
- StrnCat (Buffer, L", ", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
}\r
- StrnCat (Buffer, L"SHA512", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SHA512");\r
break;\r
case TPM_ALG_SM3_256:\r
if (Buffer[0] != 0) {\r
- StrnCat (Buffer, L", ", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
}\r
- StrnCat (Buffer, L"SM3_256", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SM3_256");\r
break;\r
}\r
}\r
Buffer[0] = 0;\r
if ((BootHashAlg & EFI_TCG2_BOOT_HASH_ALG_SHA1) != 0) {\r
if (Buffer[0] != 0) {\r
- StrnCat (Buffer, L", ", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
}\r
- StrnCat (Buffer, L"SHA1", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SHA1");\r
}\r
if ((BootHashAlg & EFI_TCG2_BOOT_HASH_ALG_SHA256) != 0) {\r
if (Buffer[0] != 0) {\r
- StrnCat (Buffer, L", ", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
}\r
- StrnCat (Buffer, L"SHA256", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SHA256");\r
}\r
if ((BootHashAlg & EFI_TCG2_BOOT_HASH_ALG_SHA384) != 0) {\r
if (Buffer[0] != 0) {\r
- StrnCat (Buffer, L", ", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
}\r
- StrnCat (Buffer, L"SHA384", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SHA384");\r
}\r
if ((BootHashAlg & EFI_TCG2_BOOT_HASH_ALG_SHA512) != 0) {\r
if (Buffer[0] != 0) {\r
- StrnCat (Buffer, L", ", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
}\r
- StrnCat (Buffer, L"SHA512", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SHA512");\r
}\r
if ((BootHashAlg & EFI_TCG2_BOOT_HASH_ALG_SM3_256) != 0) {\r
if (Buffer[0] != 0) {\r
- StrnCat (Buffer, L", ", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
}\r
- StrnCat (Buffer, L"SM3_256", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"SM3_256");\r
+ }\r
+}\r
+\r
+/**\r
+ Set ConfigInfo according to TpmAlgHash.\r
+\r
+ @param[in,out] Tcg2ConfigInfo TCG2 config info.\r
+ @param[in] TpmAlgHash TpmAlgHash.\r
+\r
+**/\r
+VOID\r
+SetConfigInfo (\r
+ IN OUT TCG2_CONFIGURATION_INFO *Tcg2ConfigInfo,\r
+ IN UINT32 TpmAlgHash\r
+ )\r
+{\r
+ switch (TpmAlgHash) {\r
+ case TPM_ALG_SHA1:\r
+ Tcg2ConfigInfo->Sha1Supported = TRUE;\r
+ break;\r
+ case TPM_ALG_SHA256:\r
+ Tcg2ConfigInfo->Sha256Supported = TRUE;\r
+ break;\r
+ case TPM_ALG_SHA384:\r
+ Tcg2ConfigInfo->Sha384Supported = TRUE;\r
+ break;\r
+ case TPM_ALG_SHA512:\r
+ Tcg2ConfigInfo->Sha512Supported = TRUE;\r
+ break;\r
+ case TPM_ALG_SM3_256:\r
+ Tcg2ConfigInfo->Sm3Supported = TRUE;\r
+ break;\r
}\r
}\r
\r
Buffer[0] = 0;\r
if ((TCG2EventLogFormat & EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2) != 0) {\r
if (Buffer[0] != 0) {\r
- StrnCat (Buffer, L", ", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
}\r
- StrnCat (Buffer, L"TCG_1_2", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"TCG_1_2");\r
}\r
if ((TCG2EventLogFormat & EFI_TCG2_EVENT_LOG_FORMAT_TCG_2) != 0) {\r
if (Buffer[0] != 0) {\r
- StrnCat (Buffer, L", ", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
}\r
- StrnCat (Buffer, L"TCG_2", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"TCG_2");\r
}\r
if ((TCG2EventLogFormat & (~EFI_TCG2_EVENT_LOG_FORMAT_ALL)) != 0) {\r
if (Buffer[0] != 0) {\r
- StrnCat (Buffer, L", ", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L", ");\r
}\r
- StrnCat (Buffer, L"UNKNOWN", (BufferSize / sizeof (CHAR16)) - StrLen (Buffer) - 1);\r
+ StrCatS (Buffer, BufferSize / sizeof (CHAR16), L"UNKNOWN");\r
}\r
}\r
\r
UINTN Index;\r
TPML_PCR_SELECTION Pcrs;\r
CHAR16 TempBuffer[1024];\r
+ TCG2_CONFIGURATION_INFO Tcg2ConfigInfo;\r
\r
DriverHandle = NULL;\r
ConfigAccess = &PrivateData->ConfigAccess;\r
break;\r
}\r
\r
+ ZeroMem (&Tcg2ConfigInfo, sizeof(Tcg2ConfigInfo));\r
Status = Tpm2GetCapabilityPcrs (&Pcrs);\r
if (EFI_ERROR (Status)) {\r
HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TPM2_ACTIVE_HASH_ALGO_CONTENT), L"[Unknown]", NULL);\r
TempBuffer[0] = 0;\r
for (Index = 0; Index < Pcrs.count; Index++) {\r
AppendBufferWithTpmAlgHash (TempBuffer, sizeof(TempBuffer), Pcrs.pcrSelections[Index].hash);\r
+ SetConfigInfo (&Tcg2ConfigInfo, Pcrs.pcrSelections[Index].hash);\r
}\r
HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TPM2_SUPPORTED_HASH_ALGO_CONTENT), TempBuffer, NULL);\r
}\r
FillBufferWithBootHashAlg (TempBuffer, sizeof(TempBuffer), PrivateData->ProtocolCapability.ActivePcrBanks);\r
HiiSetString (PrivateData->HiiHandle, STRING_TOKEN (STR_TCG2_ACTIVE_PCR_BANKS_CONTENT), TempBuffer, NULL);\r
\r
+ //\r
+ // Set ConfigInfo, to control the check box.\r
+ //\r
+ Status = gRT->SetVariable (\r
+ TCG2_STORAGE_INFO_NAME,\r
+ &gTcg2ConfigFormSetGuid,\r
+ EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
+ sizeof(Tcg2ConfigInfo),\r
+ &Tcg2ConfigInfo\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((EFI_D_ERROR, "Tcg2ConfigDriver: Fail to set TCG2_STORAGE_INFO_NAME\n"));\r
+ }\r
return EFI_SUCCESS; \r
}\r
\r