]> git.proxmox.com Git - mirror_edk2.git/blobdiff - SecurityPkg/Library/Tpm2CommandLib/Tpm2Capability.c
SecurityPkg: Apply uncrustify changes
[mirror_edk2.git] / SecurityPkg / Library / Tpm2CommandLib / Tpm2Capability.c
index dcbdf72cac6f09b61898d8b606a6f28b7f9008e6..9db301ec9a90eafba7c93b037559129b6ccb1a16 100644 (file)
@@ -16,25 +16,25 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 #pragma pack(1)\r
 \r
 typedef struct {\r
-  TPM2_COMMAND_HEADER       Header;\r
-  TPM_CAP                   Capability;\r
-  UINT32                    Property;\r
-  UINT32                    PropertyCount;\r
+  TPM2_COMMAND_HEADER    Header;\r
+  TPM_CAP                Capability;\r
+  UINT32                 Property;\r
+  UINT32                 PropertyCount;\r
 } TPM2_GET_CAPABILITY_COMMAND;\r
 \r
 typedef struct {\r
-  TPM2_RESPONSE_HEADER      Header;\r
-  TPMI_YES_NO               MoreData;\r
-  TPMS_CAPABILITY_DATA      CapabilityData;\r
+  TPM2_RESPONSE_HEADER    Header;\r
+  TPMI_YES_NO             MoreData;\r
+  TPMS_CAPABILITY_DATA    CapabilityData;\r
 } TPM2_GET_CAPABILITY_RESPONSE;\r
 \r
 typedef struct {\r
-  TPM2_COMMAND_HEADER       Header;\r
-  TPMT_PUBLIC_PARMS         Parameters;\r
+  TPM2_COMMAND_HEADER    Header;\r
+  TPMT_PUBLIC_PARMS      Parameters;\r
 } TPM2_TEST_PARMS_COMMAND;\r
 \r
 typedef struct {\r
-  TPM2_RESPONSE_HEADER       Header;\r
+  TPM2_RESPONSE_HEADER    Header;\r
 } TPM2_TEST_PARMS_RESPONSE;\r
 \r
 #pragma pack()\r
@@ -69,37 +69,37 @@ typedef struct {
 EFI_STATUS\r
 EFIAPI\r
 Tpm2GetCapability (\r
-  IN      TPM_CAP                   Capability,\r
-  IN      UINT32                    Property,\r
-  IN      UINT32                    PropertyCount,\r
-  OUT     TPMI_YES_NO               *MoreData,\r
-  OUT     TPMS_CAPABILITY_DATA      *CapabilityData\r
+  IN      TPM_CAP               Capability,\r
+  IN      UINT32                Property,\r
+  IN      UINT32                PropertyCount,\r
+  OUT     TPMI_YES_NO           *MoreData,\r
+  OUT     TPMS_CAPABILITY_DATA  *CapabilityData\r
   )\r
 {\r
-  EFI_STATUS                        Status;\r
-  TPM2_GET_CAPABILITY_COMMAND       SendBuffer;\r
-  TPM2_GET_CAPABILITY_RESPONSE      RecvBuffer;\r
-  UINT32                            SendBufferSize;\r
-  UINT32                            RecvBufferSize;\r
+  EFI_STATUS                    Status;\r
+  TPM2_GET_CAPABILITY_COMMAND   SendBuffer;\r
+  TPM2_GET_CAPABILITY_RESPONSE  RecvBuffer;\r
+  UINT32                        SendBufferSize;\r
+  UINT32                        RecvBufferSize;\r
 \r
   //\r
   // Construct command\r
   //\r
-  SendBuffer.Header.tag = SwapBytes16(TPM_ST_NO_SESSIONS);\r
-  SendBuffer.Header.commandCode = SwapBytes32(TPM_CC_GetCapability);\r
+  SendBuffer.Header.tag         = SwapBytes16 (TPM_ST_NO_SESSIONS);\r
+  SendBuffer.Header.commandCode = SwapBytes32 (TPM_CC_GetCapability);\r
 \r
-  SendBuffer.Capability = SwapBytes32 (Capability);\r
-  SendBuffer.Property = SwapBytes32 (Property);\r
+  SendBuffer.Capability    = SwapBytes32 (Capability);\r
+  SendBuffer.Property      = SwapBytes32 (Property);\r
   SendBuffer.PropertyCount = SwapBytes32 (PropertyCount);\r
 \r
-  SendBufferSize = (UINT32) sizeof (SendBuffer);\r
+  SendBufferSize              = (UINT32)sizeof (SendBuffer);\r
   SendBuffer.Header.paramSize = SwapBytes32 (SendBufferSize);\r
 \r
   //\r
   // send Tpm command\r
   //\r
   RecvBufferSize = sizeof (RecvBuffer);\r
-  Status = Tpm2SubmitCommand (SendBufferSize, (UINT8 *)&SendBuffer, &RecvBufferSize, (UINT8 *)&RecvBuffer );\r
+  Status         = Tpm2SubmitCommand (SendBufferSize, (UINT8 *)&SendBuffer, &RecvBufferSize, (UINT8 *)&RecvBuffer);\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
@@ -111,8 +111,8 @@ Tpm2GetCapability (
   //\r
   // Fail if command failed\r
   //\r
-  if (SwapBytes32(RecvBuffer.Header.responseCode) != TPM_RC_SUCCESS) {\r
-    DEBUG ((DEBUG_ERROR, "Tpm2GetCapability: Response Code error! 0x%08x\r\n", SwapBytes32(RecvBuffer.Header.responseCode)));\r
+  if (SwapBytes32 (RecvBuffer.Header.responseCode) != TPM_RC_SUCCESS) {\r
+    DEBUG ((DEBUG_ERROR, "Tpm2GetCapability: Response Code error! 0x%08x\r\n", SwapBytes32 (RecvBuffer.Header.responseCode)));\r
     return EFI_DEVICE_ERROR;\r
   }\r
 \r
@@ -141,12 +141,12 @@ Tpm2GetCapability (
 EFI_STATUS\r
 EFIAPI\r
 Tpm2GetCapabilityFamily (\r
-  OUT     CHAR8                     *Family\r
+  OUT     CHAR8  *Family\r
   )\r
 {\r
-  TPMS_CAPABILITY_DATA    TpmCap;\r
-  TPMI_YES_NO             MoreData;\r
-  EFI_STATUS              Status;\r
+  TPMS_CAPABILITY_DATA  TpmCap;\r
+  TPMI_YES_NO           MoreData;\r
+  EFI_STATUS            Status;\r
 \r
   Status = Tpm2GetCapability (\r
              TPM_CAP_TPM_PROPERTIES,\r
@@ -158,6 +158,7 @@ Tpm2GetCapabilityFamily (
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
+\r
   CopyMem (Family, &TpmCap.data.tpmProperties.tpmProperty->value, 4);\r
 \r
   return EFI_SUCCESS;\r
@@ -176,12 +177,12 @@ Tpm2GetCapabilityFamily (
 EFI_STATUS\r
 EFIAPI\r
 Tpm2GetCapabilityManufactureID (\r
-  OUT     UINT32                    *ManufactureId\r
+  OUT     UINT32  *ManufactureId\r
   )\r
 {\r
-  TPMS_CAPABILITY_DATA    TpmCap;\r
-  TPMI_YES_NO             MoreData;\r
-  EFI_STATUS              Status;\r
+  TPMS_CAPABILITY_DATA  TpmCap;\r
+  TPMI_YES_NO           MoreData;\r
+  EFI_STATUS            Status;\r
 \r
   Status = Tpm2GetCapability (\r
              TPM_CAP_TPM_PROPERTIES,\r
@@ -193,6 +194,7 @@ Tpm2GetCapabilityManufactureID (
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
+\r
   *ManufactureId = TpmCap.data.tpmProperties.tpmProperty->value;\r
 \r
   return EFI_SUCCESS;\r
@@ -212,13 +214,13 @@ Tpm2GetCapabilityManufactureID (
 EFI_STATUS\r
 EFIAPI\r
 Tpm2GetCapabilityFirmwareVersion (\r
-  OUT     UINT32                    *FirmwareVersion1,\r
-  OUT     UINT32                    *FirmwareVersion2\r
+  OUT     UINT32  *FirmwareVersion1,\r
+  OUT     UINT32  *FirmwareVersion2\r
   )\r
 {\r
-  TPMS_CAPABILITY_DATA    TpmCap;\r
-  TPMI_YES_NO             MoreData;\r
-  EFI_STATUS              Status;\r
+  TPMS_CAPABILITY_DATA  TpmCap;\r
+  TPMI_YES_NO           MoreData;\r
+  EFI_STATUS            Status;\r
 \r
   Status = Tpm2GetCapability (\r
              TPM_CAP_TPM_PROPERTIES,\r
@@ -230,6 +232,7 @@ Tpm2GetCapabilityFirmwareVersion (
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
+\r
   *FirmwareVersion1 = SwapBytes32 (TpmCap.data.tpmProperties.tpmProperty->value);\r
 \r
   Status = Tpm2GetCapability (\r
@@ -242,6 +245,7 @@ Tpm2GetCapabilityFirmwareVersion (
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
+\r
   *FirmwareVersion2 = SwapBytes32 (TpmCap.data.tpmProperties.tpmProperty->value);\r
 \r
   return EFI_SUCCESS;\r
@@ -261,13 +265,13 @@ Tpm2GetCapabilityFirmwareVersion (
 EFI_STATUS\r
 EFIAPI\r
 Tpm2GetCapabilityMaxCommandResponseSize (\r
-  OUT UINT32                    *MaxCommandSize,\r
-  OUT UINT32                    *MaxResponseSize\r
+  OUT UINT32  *MaxCommandSize,\r
+  OUT UINT32  *MaxResponseSize\r
   )\r
 {\r
-  TPMS_CAPABILITY_DATA    TpmCap;\r
-  TPMI_YES_NO             MoreData;\r
-  EFI_STATUS              Status;\r
+  TPMS_CAPABILITY_DATA  TpmCap;\r
+  TPMI_YES_NO           MoreData;\r
+  EFI_STATUS            Status;\r
 \r
   Status = Tpm2GetCapability (\r
              TPM_CAP_TPM_PROPERTIES,\r
@@ -311,13 +315,13 @@ Tpm2GetCapabilityMaxCommandResponseSize (
 EFI_STATUS\r
 EFIAPI\r
 Tpm2GetCapabilitySupportedAlg (\r
-  OUT TPML_ALG_PROPERTY      *AlgList\r
+  OUT TPML_ALG_PROPERTY  *AlgList\r
   )\r
 {\r
-  TPMS_CAPABILITY_DATA    TpmCap;\r
-  TPMI_YES_NO             MoreData;\r
-  UINTN                   Index;\r
-  EFI_STATUS              Status;\r
+  TPMS_CAPABILITY_DATA  TpmCap;\r
+  TPMI_YES_NO           MoreData;\r
+  UINTN                 Index;\r
+  EFI_STATUS            Status;\r
 \r
   Status = Tpm2GetCapability (\r
              TPM_CAP_ALGS,\r
@@ -359,12 +363,12 @@ Tpm2GetCapabilitySupportedAlg (
 EFI_STATUS\r
 EFIAPI\r
 Tpm2GetCapabilityLockoutCounter (\r
-  OUT     UINT32                    *LockoutCounter\r
+  OUT     UINT32  *LockoutCounter\r
   )\r
 {\r
-  TPMS_CAPABILITY_DATA    TpmCap;\r
-  TPMI_YES_NO             MoreData;\r
-  EFI_STATUS              Status;\r
+  TPMS_CAPABILITY_DATA  TpmCap;\r
+  TPMI_YES_NO           MoreData;\r
+  EFI_STATUS            Status;\r
 \r
   Status = Tpm2GetCapability (\r
              TPM_CAP_TPM_PROPERTIES,\r
@@ -376,6 +380,7 @@ Tpm2GetCapabilityLockoutCounter (
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
+\r
   *LockoutCounter = SwapBytes32 (TpmCap.data.tpmProperties.tpmProperty->value);\r
 \r
   return EFI_SUCCESS;\r
@@ -394,12 +399,12 @@ Tpm2GetCapabilityLockoutCounter (
 EFI_STATUS\r
 EFIAPI\r
 Tpm2GetCapabilityLockoutInterval (\r
-  OUT     UINT32                    *LockoutInterval\r
+  OUT     UINT32  *LockoutInterval\r
   )\r
 {\r
-  TPMS_CAPABILITY_DATA    TpmCap;\r
-  TPMI_YES_NO             MoreData;\r
-  EFI_STATUS              Status;\r
+  TPMS_CAPABILITY_DATA  TpmCap;\r
+  TPMI_YES_NO           MoreData;\r
+  EFI_STATUS            Status;\r
 \r
   Status = Tpm2GetCapability (\r
              TPM_CAP_TPM_PROPERTIES,\r
@@ -411,6 +416,7 @@ Tpm2GetCapabilityLockoutInterval (
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
+\r
   *LockoutInterval = SwapBytes32 (TpmCap.data.tpmProperties.tpmProperty->value);\r
 \r
   return EFI_SUCCESS;\r
@@ -430,12 +436,12 @@ Tpm2GetCapabilityLockoutInterval (
 EFI_STATUS\r
 EFIAPI\r
 Tpm2GetCapabilityInputBufferSize (\r
-  OUT     UINT32                    *InputBufferSize\r
+  OUT     UINT32  *InputBufferSize\r
   )\r
 {\r
-  TPMS_CAPABILITY_DATA    TpmCap;\r
-  TPMI_YES_NO             MoreData;\r
-  EFI_STATUS              Status;\r
+  TPMS_CAPABILITY_DATA  TpmCap;\r
+  TPMI_YES_NO           MoreData;\r
+  EFI_STATUS            Status;\r
 \r
   Status = Tpm2GetCapability (\r
              TPM_CAP_TPM_PROPERTIES,\r
@@ -447,6 +453,7 @@ Tpm2GetCapabilityInputBufferSize (
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
+\r
   *InputBufferSize = SwapBytes32 (TpmCap.data.tpmProperties.tpmProperty->value);\r
 \r
   return EFI_SUCCESS;\r
@@ -465,13 +472,13 @@ Tpm2GetCapabilityInputBufferSize (
 EFI_STATUS\r
 EFIAPI\r
 Tpm2GetCapabilityPcrs (\r
-  OUT TPML_PCR_SELECTION      *Pcrs\r
+  OUT TPML_PCR_SELECTION  *Pcrs\r
   )\r
 {\r
-  TPMS_CAPABILITY_DATA    TpmCap;\r
-  TPMI_YES_NO             MoreData;\r
-  EFI_STATUS              Status;\r
-  UINTN                   Index;\r
+  TPMS_CAPABILITY_DATA  TpmCap;\r
+  TPMI_YES_NO           MoreData;\r
+  EFI_STATUS            Status;\r
+  UINTN                 Index;\r
 \r
   Status = Tpm2GetCapability (\r
              TPM_CAP_PCRS,\r
@@ -491,12 +498,13 @@ Tpm2GetCapabilityPcrs (
   }\r
 \r
   for (Index = 0; Index < Pcrs->count; Index++) {\r
-    Pcrs->pcrSelections[Index].hash = SwapBytes16 (TpmCap.data.assignedPCR.pcrSelections[Index].hash);\r
+    Pcrs->pcrSelections[Index].hash         = SwapBytes16 (TpmCap.data.assignedPCR.pcrSelections[Index].hash);\r
     Pcrs->pcrSelections[Index].sizeofSelect = TpmCap.data.assignedPCR.pcrSelections[Index].sizeofSelect;\r
     if (Pcrs->pcrSelections[Index].sizeofSelect > PCR_SELECT_MAX) {\r
       DEBUG ((DEBUG_ERROR, "Tpm2GetCapabilityPcrs - sizeofSelect error %x\n", Pcrs->pcrSelections[Index].sizeofSelect));\r
       return EFI_DEVICE_ERROR;\r
     }\r
+\r
     CopyMem (Pcrs->pcrSelections[Index].pcrSelect, TpmCap.data.assignedPCR.pcrSelections[Index].pcrSelect, Pcrs->pcrSelections[Index].sizeofSelect);\r
   }\r
 \r
@@ -517,14 +525,14 @@ Tpm2GetCapabilityPcrs (
 EFI_STATUS\r
 EFIAPI\r
 Tpm2GetCapabilitySupportedAndActivePcrs (\r
-  OUT UINT32                            *TpmHashAlgorithmBitmap,\r
-  OUT UINT32                            *ActivePcrBanks\r
+  OUT UINT32  *TpmHashAlgorithmBitmap,\r
+  OUT UINT32  *ActivePcrBanks\r
   )\r
 {\r
-  EFI_STATUS            Status;\r
-  TPML_PCR_SELECTION    Pcrs;\r
-  UINTN                 Index;\r
-  UINT8                 ActivePcrBankCount;\r
+  EFI_STATUS          Status;\r
+  TPML_PCR_SELECTION  Pcrs;\r
+  UINTN               Index;\r
+  UINT8               ActivePcrBankCount;\r
 \r
   //\r
   // Get supported PCR\r
@@ -539,7 +547,7 @@ Tpm2GetCapabilitySupportedAndActivePcrs (
     DEBUG ((DEBUG_ERROR, "GetSupportedAndActivePcrs - Tpm2GetCapabilityPcrs fail!\n"));\r
     *TpmHashAlgorithmBitmap = HASH_ALG_SHA1;\r
     *ActivePcrBanks         = HASH_ALG_SHA1;\r
-    ActivePcrBankCount = 1;\r
+    ActivePcrBankCount      = 1;\r
   }\r
   //\r
   // Otherwise, process the return data to determine what algorithms are supported\r
@@ -550,55 +558,60 @@ Tpm2GetCapabilitySupportedAndActivePcrs (
     *ActivePcrBanks         = 0;\r
     for (Index = 0; Index < Pcrs.count; Index++) {\r
       switch (Pcrs.pcrSelections[Index].hash) {\r
-      case TPM_ALG_SHA1:\r
-        DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA1 present.\n"));\r
-        *TpmHashAlgorithmBitmap |= HASH_ALG_SHA1;\r
-        if (!IsZeroBuffer (Pcrs.pcrSelections[Index].pcrSelect, Pcrs.pcrSelections[Index].sizeofSelect)) {\r
-          DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA1 active.\n"));\r
-          *ActivePcrBanks |= HASH_ALG_SHA1;\r
-          ActivePcrBankCount++;\r
-        }\r
-        break;\r
-      case TPM_ALG_SHA256:\r
-        DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA256 present.\n"));\r
-        *TpmHashAlgorithmBitmap |= HASH_ALG_SHA256;\r
-        if (!IsZeroBuffer (Pcrs.pcrSelections[Index].pcrSelect, Pcrs.pcrSelections[Index].sizeofSelect)) {\r
-          DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA256 active.\n"));\r
-          *ActivePcrBanks |= HASH_ALG_SHA256;\r
-          ActivePcrBankCount++;\r
-        }\r
-        break;\r
-      case TPM_ALG_SHA384:\r
-        DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA384 present.\n"));\r
-        *TpmHashAlgorithmBitmap |= HASH_ALG_SHA384;\r
-        if (!IsZeroBuffer (Pcrs.pcrSelections[Index].pcrSelect, Pcrs.pcrSelections[Index].sizeofSelect)) {\r
-          DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA384 active.\n"));\r
-          *ActivePcrBanks |= HASH_ALG_SHA384;\r
-          ActivePcrBankCount++;\r
-        }\r
-        break;\r
-      case TPM_ALG_SHA512:\r
-        DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA512 present.\n"));\r
-        *TpmHashAlgorithmBitmap |= HASH_ALG_SHA512;\r
-        if (!IsZeroBuffer (Pcrs.pcrSelections[Index].pcrSelect, Pcrs.pcrSelections[Index].sizeofSelect)) {\r
-          DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA512 active.\n"));\r
-          *ActivePcrBanks |= HASH_ALG_SHA512;\r
-          ActivePcrBankCount++;\r
-        }\r
-        break;\r
-      case TPM_ALG_SM3_256:\r
-        DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SM3_256 present.\n"));\r
-        *TpmHashAlgorithmBitmap |= HASH_ALG_SM3_256;\r
-        if (!IsZeroBuffer (Pcrs.pcrSelections[Index].pcrSelect, Pcrs.pcrSelections[Index].sizeofSelect)) {\r
-          DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SM3_256 active.\n"));\r
-          *ActivePcrBanks |= HASH_ALG_SM3_256;\r
-          ActivePcrBankCount++;\r
-        }\r
-        break;\r
-      default:\r
-        DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - Unsupported bank 0x%04x.\n", Pcrs.pcrSelections[Index].hash));\r
-        continue;\r
-        break;\r
+        case TPM_ALG_SHA1:\r
+          DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA1 present.\n"));\r
+          *TpmHashAlgorithmBitmap |= HASH_ALG_SHA1;\r
+          if (!IsZeroBuffer (Pcrs.pcrSelections[Index].pcrSelect, Pcrs.pcrSelections[Index].sizeofSelect)) {\r
+            DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA1 active.\n"));\r
+            *ActivePcrBanks |= HASH_ALG_SHA1;\r
+            ActivePcrBankCount++;\r
+          }\r
+\r
+          break;\r
+        case TPM_ALG_SHA256:\r
+          DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA256 present.\n"));\r
+          *TpmHashAlgorithmBitmap |= HASH_ALG_SHA256;\r
+          if (!IsZeroBuffer (Pcrs.pcrSelections[Index].pcrSelect, Pcrs.pcrSelections[Index].sizeofSelect)) {\r
+            DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA256 active.\n"));\r
+            *ActivePcrBanks |= HASH_ALG_SHA256;\r
+            ActivePcrBankCount++;\r
+          }\r
+\r
+          break;\r
+        case TPM_ALG_SHA384:\r
+          DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA384 present.\n"));\r
+          *TpmHashAlgorithmBitmap |= HASH_ALG_SHA384;\r
+          if (!IsZeroBuffer (Pcrs.pcrSelections[Index].pcrSelect, Pcrs.pcrSelections[Index].sizeofSelect)) {\r
+            DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA384 active.\n"));\r
+            *ActivePcrBanks |= HASH_ALG_SHA384;\r
+            ActivePcrBankCount++;\r
+          }\r
+\r
+          break;\r
+        case TPM_ALG_SHA512:\r
+          DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA512 present.\n"));\r
+          *TpmHashAlgorithmBitmap |= HASH_ALG_SHA512;\r
+          if (!IsZeroBuffer (Pcrs.pcrSelections[Index].pcrSelect, Pcrs.pcrSelections[Index].sizeofSelect)) {\r
+            DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SHA512 active.\n"));\r
+            *ActivePcrBanks |= HASH_ALG_SHA512;\r
+            ActivePcrBankCount++;\r
+          }\r
+\r
+          break;\r
+        case TPM_ALG_SM3_256:\r
+          DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SM3_256 present.\n"));\r
+          *TpmHashAlgorithmBitmap |= HASH_ALG_SM3_256;\r
+          if (!IsZeroBuffer (Pcrs.pcrSelections[Index].pcrSelect, Pcrs.pcrSelections[Index].sizeofSelect)) {\r
+            DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - HASH_ALG_SM3_256 active.\n"));\r
+            *ActivePcrBanks |= HASH_ALG_SM3_256;\r
+            ActivePcrBankCount++;\r
+          }\r
+\r
+          break;\r
+        default:\r
+          DEBUG ((DEBUG_VERBOSE, "GetSupportedAndActivePcrs - Unsupported bank 0x%04x.\n", Pcrs.pcrSelections[Index].hash));\r
+          continue;\r
+          break;\r
       }\r
     }\r
   }\r
@@ -620,12 +633,12 @@ Tpm2GetCapabilitySupportedAndActivePcrs (
 EFI_STATUS\r
 EFIAPI\r
 Tpm2GetCapabilityAlgorithmSet (\r
-  OUT     UINT32      *AlgorithmSet\r
+  OUT     UINT32  *AlgorithmSet\r
   )\r
 {\r
-  TPMS_CAPABILITY_DATA    TpmCap;\r
-  TPMI_YES_NO             MoreData;\r
-  EFI_STATUS              Status;\r
+  TPMS_CAPABILITY_DATA  TpmCap;\r
+  TPMI_YES_NO           MoreData;\r
+  EFI_STATUS            Status;\r
 \r
   Status = Tpm2GetCapability (\r
              TPM_CAP_TPM_PROPERTIES,\r
@@ -637,6 +650,7 @@ Tpm2GetCapabilityAlgorithmSet (
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
+\r
   *AlgorithmSet = SwapBytes32 (TpmCap.data.tpmProperties.tpmProperty->value);\r
 \r
   return EFI_SUCCESS;\r
@@ -654,14 +668,14 @@ Tpm2GetCapabilityAlgorithmSet (
 EFI_STATUS\r
 EFIAPI\r
 Tpm2GetCapabilityIsCommandImplemented (\r
-  IN      TPM_CC      Command,\r
-  OUT     BOOLEAN     *IsCmdImpl\r
+  IN      TPM_CC   Command,\r
+  OUT     BOOLEAN  *IsCmdImpl\r
   )\r
 {\r
-  TPMS_CAPABILITY_DATA    TpmCap;\r
-  TPMI_YES_NO             MoreData;\r
-  EFI_STATUS              Status;\r
-  UINT32                  Attribute;\r
+  TPMS_CAPABILITY_DATA  TpmCap;\r
+  TPMI_YES_NO           MoreData;\r
+  EFI_STATUS            Status;\r
+  UINT32                Attribute;\r
 \r
   Status = Tpm2GetCapability (\r
              TPM_CAP_COMMANDS,\r
@@ -675,7 +689,7 @@ Tpm2GetCapabilityIsCommandImplemented (
   }\r
 \r
   CopyMem (&Attribute, &TpmCap.data.command.commandAttributes[0], sizeof (UINT32));\r
-  *IsCmdImpl = (Command == (SwapBytes32(Attribute) & TPMA_CC_COMMANDINDEX_MASK));\r
+  *IsCmdImpl = (Command == (SwapBytes32 (Attribute) & TPMA_CC_COMMANDINDEX_MASK));\r
 \r
   return EFI_SUCCESS;\r
 }\r
@@ -691,199 +705,206 @@ Tpm2GetCapabilityIsCommandImplemented (
 EFI_STATUS\r
 EFIAPI\r
 Tpm2TestParms (\r
-  IN  TPMT_PUBLIC_PARMS           *Parameters\r
+  IN  TPMT_PUBLIC_PARMS  *Parameters\r
   )\r
 {\r
-  EFI_STATUS                        Status;\r
-  TPM2_TEST_PARMS_COMMAND           SendBuffer;\r
-  TPM2_TEST_PARMS_RESPONSE          RecvBuffer;\r
-  UINT32                            SendBufferSize;\r
-  UINT32                            RecvBufferSize;\r
-  UINT8                             *Buffer;\r
+  EFI_STATUS                Status;\r
+  TPM2_TEST_PARMS_COMMAND   SendBuffer;\r
+  TPM2_TEST_PARMS_RESPONSE  RecvBuffer;\r
+  UINT32                    SendBufferSize;\r
+  UINT32                    RecvBufferSize;\r
+  UINT8                     *Buffer;\r
 \r
   //\r
   // Construct command\r
   //\r
-  SendBuffer.Header.tag = SwapBytes16(TPM_ST_NO_SESSIONS);\r
-  SendBuffer.Header.commandCode = SwapBytes32(TPM_CC_TestParms);\r
+  SendBuffer.Header.tag         = SwapBytes16 (TPM_ST_NO_SESSIONS);\r
+  SendBuffer.Header.commandCode = SwapBytes32 (TPM_CC_TestParms);\r
 \r
   Buffer = (UINT8 *)&SendBuffer.Parameters;\r
   WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->type));\r
-  Buffer += sizeof(UINT16);\r
+  Buffer += sizeof (UINT16);\r
   switch (Parameters->type) {\r
-  case TPM_ALG_KEYEDHASH:\r
-    WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.keyedHashDetail.scheme.scheme));\r
-    Buffer += sizeof(UINT16);\r
-    switch (Parameters->parameters.keyedHashDetail.scheme.scheme) {\r
-    case TPM_ALG_HMAC:\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.keyedHashDetail.scheme.details.hmac.hashAlg));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_XOR:\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.keyedHashDetail.scheme.details.xor.hashAlg));\r
-      Buffer += sizeof(UINT16);\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.keyedHashDetail.scheme.details.xor.kdf));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    default:\r
-      return EFI_INVALID_PARAMETER;\r
-    }\r
-  case TPM_ALG_SYMCIPHER:\r
-    WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.symDetail.algorithm));\r
-    Buffer += sizeof(UINT16);\r
-    switch (Parameters->parameters.symDetail.algorithm) {\r
-    case TPM_ALG_AES:\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.symDetail.keyBits.aes));\r
-      Buffer += sizeof(UINT16);\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.symDetail.mode.aes));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_SM4:\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.symDetail.keyBits.SM4));\r
-      Buffer += sizeof(UINT16);\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.symDetail.mode.SM4));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_XOR:\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.symDetail.keyBits.xor));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_NULL:\r
-      break;\r
-    default:\r
-      return EFI_INVALID_PARAMETER;\r
-    }\r
-    break;\r
-  case TPM_ALG_RSA:\r
-    WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.symmetric.algorithm));\r
-    Buffer += sizeof(UINT16);\r
-    switch (Parameters->parameters.rsaDetail.symmetric.algorithm) {\r
-    case TPM_ALG_AES:\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.symmetric.keyBits.aes));\r
-      Buffer += sizeof(UINT16);\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.symmetric.mode.aes));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_SM4:\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.symmetric.keyBits.SM4));\r
-      Buffer += sizeof(UINT16);\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.symmetric.mode.SM4));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_NULL:\r
-      break;\r
-    default:\r
-      return EFI_INVALID_PARAMETER;\r
-    }\r
-    WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.scheme.scheme));\r
-    Buffer += sizeof(UINT16);\r
-    switch (Parameters->parameters.rsaDetail.scheme.scheme) {\r
-    case TPM_ALG_RSASSA:\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.scheme.details.rsassa.hashAlg));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_RSAPSS:\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.scheme.details.rsapss.hashAlg));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_RSAES:\r
-      break;\r
-    case TPM_ALG_OAEP:\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.scheme.details.oaep.hashAlg));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_NULL:\r
-      break;\r
-    default:\r
-      return EFI_INVALID_PARAMETER;\r
-    }\r
-    WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.keyBits));\r
-    Buffer += sizeof(UINT16);\r
-    WriteUnaligned32 ((UINT32 *)Buffer, SwapBytes32 (Parameters->parameters.rsaDetail.exponent));\r
-    Buffer += sizeof(UINT32);\r
-    break;\r
-  case TPM_ALG_ECC:\r
-    WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.symmetric.algorithm));\r
-    Buffer += sizeof(UINT16);\r
-    switch (Parameters->parameters.eccDetail.symmetric.algorithm) {\r
-    case TPM_ALG_AES:\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.symmetric.keyBits.aes));\r
-      Buffer += sizeof(UINT16);\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.symmetric.mode.aes));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_SM4:\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.symmetric.keyBits.SM4));\r
-      Buffer += sizeof(UINT16);\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.symmetric.mode.SM4));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_NULL:\r
-      break;\r
-    default:\r
-      return EFI_INVALID_PARAMETER;\r
-    }\r
-    WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.scheme.scheme));\r
-    Buffer += sizeof(UINT16);\r
-    switch (Parameters->parameters.eccDetail.scheme.scheme) {\r
-    case TPM_ALG_ECDSA:\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.scheme.details.ecdsa.hashAlg));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_ECDAA:\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.scheme.details.ecdaa.hashAlg));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_ECSCHNORR:\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.scheme.details.ecSchnorr.hashAlg));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_ECDH:\r
-      break;\r
-    case TPM_ALG_NULL:\r
-      break;\r
-    default:\r
-      return EFI_INVALID_PARAMETER;\r
-    }\r
-    WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.curveID));\r
-    Buffer += sizeof(UINT16);\r
-    WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.kdf.scheme));\r
-    Buffer += sizeof(UINT16);\r
-    switch (Parameters->parameters.eccDetail.kdf.scheme) {\r
-    case TPM_ALG_MGF1:\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.kdf.details.mgf1.hashAlg));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_KDF1_SP800_108:\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.kdf.details.kdf1_sp800_108.hashAlg));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_KDF1_SP800_56a:\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.kdf.details.kdf1_SP800_56a.hashAlg));\r
-      Buffer += sizeof(UINT16);\r
+    case TPM_ALG_KEYEDHASH:\r
+      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.keyedHashDetail.scheme.scheme));\r
+      Buffer += sizeof (UINT16);\r
+      switch (Parameters->parameters.keyedHashDetail.scheme.scheme) {\r
+        case TPM_ALG_HMAC:\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.keyedHashDetail.scheme.details.hmac.hashAlg));\r
+          Buffer += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_XOR:\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.keyedHashDetail.scheme.details.xor.hashAlg));\r
+          Buffer += sizeof (UINT16);\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.keyedHashDetail.scheme.details.xor.kdf));\r
+          Buffer += sizeof (UINT16);\r
+          break;\r
+        default:\r
+          return EFI_INVALID_PARAMETER;\r
+      }\r
+\r
+    case TPM_ALG_SYMCIPHER:\r
+      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.symDetail.algorithm));\r
+      Buffer += sizeof (UINT16);\r
+      switch (Parameters->parameters.symDetail.algorithm) {\r
+        case TPM_ALG_AES:\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.symDetail.keyBits.aes));\r
+          Buffer += sizeof (UINT16);\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.symDetail.mode.aes));\r
+          Buffer += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_SM4:\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.symDetail.keyBits.SM4));\r
+          Buffer += sizeof (UINT16);\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.symDetail.mode.SM4));\r
+          Buffer += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_XOR:\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.symDetail.keyBits.xor));\r
+          Buffer += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_NULL:\r
+          break;\r
+        default:\r
+          return EFI_INVALID_PARAMETER;\r
+      }\r
+\r
       break;\r
-    case TPM_ALG_KDF2:\r
-      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.kdf.details.kdf2.hashAlg));\r
-      Buffer += sizeof(UINT16);\r
+    case TPM_ALG_RSA:\r
+      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.symmetric.algorithm));\r
+      Buffer += sizeof (UINT16);\r
+      switch (Parameters->parameters.rsaDetail.symmetric.algorithm) {\r
+        case TPM_ALG_AES:\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.symmetric.keyBits.aes));\r
+          Buffer += sizeof (UINT16);\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.symmetric.mode.aes));\r
+          Buffer += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_SM4:\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.symmetric.keyBits.SM4));\r
+          Buffer += sizeof (UINT16);\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.symmetric.mode.SM4));\r
+          Buffer += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_NULL:\r
+          break;\r
+        default:\r
+          return EFI_INVALID_PARAMETER;\r
+      }\r
+\r
+      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.scheme.scheme));\r
+      Buffer += sizeof (UINT16);\r
+      switch (Parameters->parameters.rsaDetail.scheme.scheme) {\r
+        case TPM_ALG_RSASSA:\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.scheme.details.rsassa.hashAlg));\r
+          Buffer += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_RSAPSS:\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.scheme.details.rsapss.hashAlg));\r
+          Buffer += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_RSAES:\r
+          break;\r
+        case TPM_ALG_OAEP:\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.scheme.details.oaep.hashAlg));\r
+          Buffer += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_NULL:\r
+          break;\r
+        default:\r
+          return EFI_INVALID_PARAMETER;\r
+      }\r
+\r
+      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.rsaDetail.keyBits));\r
+      Buffer += sizeof (UINT16);\r
+      WriteUnaligned32 ((UINT32 *)Buffer, SwapBytes32 (Parameters->parameters.rsaDetail.exponent));\r
+      Buffer += sizeof (UINT32);\r
       break;\r
-    case TPM_ALG_NULL:\r
+    case TPM_ALG_ECC:\r
+      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.symmetric.algorithm));\r
+      Buffer += sizeof (UINT16);\r
+      switch (Parameters->parameters.eccDetail.symmetric.algorithm) {\r
+        case TPM_ALG_AES:\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.symmetric.keyBits.aes));\r
+          Buffer += sizeof (UINT16);\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.symmetric.mode.aes));\r
+          Buffer += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_SM4:\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.symmetric.keyBits.SM4));\r
+          Buffer += sizeof (UINT16);\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.symmetric.mode.SM4));\r
+          Buffer += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_NULL:\r
+          break;\r
+        default:\r
+          return EFI_INVALID_PARAMETER;\r
+      }\r
+\r
+      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.scheme.scheme));\r
+      Buffer += sizeof (UINT16);\r
+      switch (Parameters->parameters.eccDetail.scheme.scheme) {\r
+        case TPM_ALG_ECDSA:\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.scheme.details.ecdsa.hashAlg));\r
+          Buffer += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_ECDAA:\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.scheme.details.ecdaa.hashAlg));\r
+          Buffer += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_ECSCHNORR:\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.scheme.details.ecSchnorr.hashAlg));\r
+          Buffer += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_ECDH:\r
+          break;\r
+        case TPM_ALG_NULL:\r
+          break;\r
+        default:\r
+          return EFI_INVALID_PARAMETER;\r
+      }\r
+\r
+      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.curveID));\r
+      Buffer += sizeof (UINT16);\r
+      WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.kdf.scheme));\r
+      Buffer += sizeof (UINT16);\r
+      switch (Parameters->parameters.eccDetail.kdf.scheme) {\r
+        case TPM_ALG_MGF1:\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.kdf.details.mgf1.hashAlg));\r
+          Buffer += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_KDF1_SP800_108:\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.kdf.details.kdf1_sp800_108.hashAlg));\r
+          Buffer += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_KDF1_SP800_56a:\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.kdf.details.kdf1_SP800_56a.hashAlg));\r
+          Buffer += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_KDF2:\r
+          WriteUnaligned16 ((UINT16 *)Buffer, SwapBytes16 (Parameters->parameters.eccDetail.kdf.details.kdf2.hashAlg));\r
+          Buffer += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_NULL:\r
+          break;\r
+        default:\r
+          return EFI_INVALID_PARAMETER;\r
+      }\r
+\r
       break;\r
     default:\r
       return EFI_INVALID_PARAMETER;\r
-    }\r
-    break;\r
-  default:\r
-    return EFI_INVALID_PARAMETER;\r
   }\r
 \r
-  SendBufferSize = (UINT32)((UINTN)Buffer - (UINTN)&SendBuffer);\r
+  SendBufferSize              = (UINT32)((UINTN)Buffer - (UINTN)&SendBuffer);\r
   SendBuffer.Header.paramSize = SwapBytes32 (SendBufferSize);\r
 \r
   //\r
   // send Tpm command\r
   //\r
   RecvBufferSize = sizeof (RecvBuffer);\r
-  Status = Tpm2SubmitCommand (SendBufferSize, (UINT8 *)&SendBuffer, &RecvBufferSize, (UINT8 *)&RecvBuffer);\r
+  Status         = Tpm2SubmitCommand (SendBufferSize, (UINT8 *)&SendBuffer, &RecvBufferSize, (UINT8 *)&RecvBuffer);\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
@@ -892,8 +913,9 @@ Tpm2TestParms (
     DEBUG ((DEBUG_ERROR, "Tpm2TestParms - RecvBufferSize Error - %x\n", RecvBufferSize));\r
     return EFI_DEVICE_ERROR;\r
   }\r
-  if (SwapBytes32(RecvBuffer.Header.responseCode) != TPM_RC_SUCCESS) {\r
-    DEBUG ((DEBUG_ERROR, "Tpm2TestParms - responseCode - %x\n", SwapBytes32(RecvBuffer.Header.responseCode)));\r
+\r
+  if (SwapBytes32 (RecvBuffer.Header.responseCode) != TPM_RC_SUCCESS) {\r
+    DEBUG ((DEBUG_ERROR, "Tpm2TestParms - responseCode - %x\n", SwapBytes32 (RecvBuffer.Header.responseCode)));\r
     return EFI_UNSUPPORTED;\r
   }\r
 \r