]> git.proxmox.com Git - mirror_edk2.git/blobdiff - SecurityPkg/Library/Tpm2CommandLib/Tpm2Object.c
SecurityPkg: Apply uncrustify changes
[mirror_edk2.git] / SecurityPkg / Library / Tpm2CommandLib / Tpm2Object.c
index f5301f04d8c2d7d13ee1c977c861f1cff23c3489..335957d6cedcbf10daceb77013ce0e53ff1b932e 100644 (file)
@@ -16,15 +16,15 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 #pragma pack(1)\r
 \r
 typedef struct {\r
-  TPM2_COMMAND_HEADER       Header;\r
-  TPMI_DH_OBJECT            ObjectHandle;\r
+  TPM2_COMMAND_HEADER    Header;\r
+  TPMI_DH_OBJECT         ObjectHandle;\r
 } TPM2_READ_PUBLIC_COMMAND;\r
 \r
 typedef struct {\r
-  TPM2_RESPONSE_HEADER       Header;\r
-  TPM2B_PUBLIC               OutPublic;\r
-  TPM2B_NAME                 Name;\r
-  TPM2B_NAME                 QualifiedName;\r
+  TPM2_RESPONSE_HEADER    Header;\r
+  TPM2B_PUBLIC            OutPublic;\r
+  TPM2B_NAME              Name;\r
+  TPM2B_NAME              QualifiedName;\r
 } TPM2_READ_PUBLIC_RESPONSE;\r
 \r
 #pragma pack()\r
@@ -43,39 +43,39 @@ typedef struct {
 EFI_STATUS\r
 EFIAPI\r
 Tpm2ReadPublic (\r
-  IN  TPMI_DH_OBJECT            ObjectHandle,\r
-  OUT TPM2B_PUBLIC              *OutPublic,\r
-  OUT TPM2B_NAME                *Name,\r
-  OUT TPM2B_NAME                *QualifiedName\r
+  IN  TPMI_DH_OBJECT  ObjectHandle,\r
+  OUT TPM2B_PUBLIC    *OutPublic,\r
+  OUT TPM2B_NAME      *Name,\r
+  OUT TPM2B_NAME      *QualifiedName\r
   )\r
 {\r
-  EFI_STATUS                                 Status;\r
-  TPM2_READ_PUBLIC_COMMAND                   SendBuffer;\r
-  TPM2_READ_PUBLIC_RESPONSE                  RecvBuffer;\r
-  UINT32                                     SendBufferSize;\r
-  UINT32                                     RecvBufferSize;\r
-  TPM_RC                                     ResponseCode;\r
-  UINT8                                      *Buffer;\r
-  UINT16                                     OutPublicSize;\r
-  UINT16                                     NameSize;\r
-  UINT16                                     QualifiedNameSize;\r
+  EFI_STATUS                 Status;\r
+  TPM2_READ_PUBLIC_COMMAND   SendBuffer;\r
+  TPM2_READ_PUBLIC_RESPONSE  RecvBuffer;\r
+  UINT32                     SendBufferSize;\r
+  UINT32                     RecvBufferSize;\r
+  TPM_RC                     ResponseCode;\r
+  UINT8                      *Buffer;\r
+  UINT16                     OutPublicSize;\r
+  UINT16                     NameSize;\r
+  UINT16                     QualifiedNameSize;\r
 \r
   //\r
   // Construct command\r
   //\r
-  SendBuffer.Header.tag = SwapBytes16(TPM_ST_NO_SESSIONS);\r
-  SendBuffer.Header.commandCode = SwapBytes32(TPM_CC_ReadPublic);\r
+  SendBuffer.Header.tag         = SwapBytes16 (TPM_ST_NO_SESSIONS);\r
+  SendBuffer.Header.commandCode = SwapBytes32 (TPM_CC_ReadPublic);\r
 \r
   SendBuffer.ObjectHandle = SwapBytes32 (ObjectHandle);\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
@@ -84,46 +84,56 @@ Tpm2ReadPublic (
     DEBUG ((DEBUG_ERROR, "Tpm2ReadPublic - RecvBufferSize Error - %x\n", RecvBufferSize));\r
     return EFI_DEVICE_ERROR;\r
   }\r
-  ResponseCode = SwapBytes32(RecvBuffer.Header.responseCode);\r
+\r
+  ResponseCode = SwapBytes32 (RecvBuffer.Header.responseCode);\r
   if (ResponseCode != TPM_RC_SUCCESS) {\r
-    DEBUG ((DEBUG_ERROR, "Tpm2ReadPublic - responseCode - %x\n", SwapBytes32(RecvBuffer.Header.responseCode)));\r
+    DEBUG ((DEBUG_ERROR, "Tpm2ReadPublic - responseCode - %x\n", SwapBytes32 (RecvBuffer.Header.responseCode)));\r
   }\r
+\r
   switch (ResponseCode) {\r
-  case TPM_RC_SUCCESS:\r
-    // return data\r
-    break;\r
-  case TPM_RC_SEQUENCE:\r
-    // objectHandle references a sequence object\r
-    return EFI_INVALID_PARAMETER;\r
-  default:\r
-    return EFI_DEVICE_ERROR;\r
+    case TPM_RC_SUCCESS:\r
+      // return data\r
+      break;\r
+    case TPM_RC_SEQUENCE:\r
+      // objectHandle references a sequence object\r
+      return EFI_INVALID_PARAMETER;\r
+    default:\r
+      return EFI_DEVICE_ERROR;\r
   }\r
 \r
   //\r
   // Basic check\r
   //\r
   OutPublicSize = SwapBytes16 (RecvBuffer.OutPublic.size);\r
-  if (OutPublicSize > sizeof(TPMT_PUBLIC)) {\r
+  if (OutPublicSize > sizeof (TPMT_PUBLIC)) {\r
     DEBUG ((DEBUG_ERROR, "Tpm2ReadPublic - OutPublicSize error %x\n", OutPublicSize));\r
     return EFI_DEVICE_ERROR;\r
   }\r
 \r
-  NameSize = SwapBytes16 (ReadUnaligned16 ((UINT16 *)((UINT8 *)&RecvBuffer + sizeof(TPM2_RESPONSE_HEADER) +\r
-                          sizeof(UINT16) + OutPublicSize)));\r
-  if (NameSize > sizeof(TPMU_NAME)) {\r
+  NameSize = SwapBytes16 (\r
+               ReadUnaligned16 (\r
+                 (UINT16 *)((UINT8 *)&RecvBuffer + sizeof (TPM2_RESPONSE_HEADER) +\r
+                            sizeof (UINT16) + OutPublicSize)\r
+                 )\r
+               );\r
+  if (NameSize > sizeof (TPMU_NAME)) {\r
     DEBUG ((DEBUG_ERROR, "Tpm2ReadPublic - NameSize error %x\n", NameSize));\r
     return EFI_DEVICE_ERROR;\r
   }\r
 \r
-  QualifiedNameSize = SwapBytes16 (ReadUnaligned16 ((UINT16 *)((UINT8 *)&RecvBuffer + sizeof(TPM2_RESPONSE_HEADER) +\r
-                                   sizeof(UINT16) + OutPublicSize +\r
-                                   sizeof(UINT16) + NameSize)));\r
-  if (QualifiedNameSize > sizeof(TPMU_NAME)) {\r
+  QualifiedNameSize = SwapBytes16 (\r
+                        ReadUnaligned16 (\r
+                          (UINT16 *)((UINT8 *)&RecvBuffer + sizeof (TPM2_RESPONSE_HEADER) +\r
+                                     sizeof (UINT16) + OutPublicSize +\r
+                                     sizeof (UINT16) + NameSize)\r
+                          )\r
+                        );\r
+  if (QualifiedNameSize > sizeof (TPMU_NAME)) {\r
     DEBUG ((DEBUG_ERROR, "Tpm2ReadPublic - QualifiedNameSize error %x\n", QualifiedNameSize));\r
     return EFI_DEVICE_ERROR;\r
   }\r
 \r
-  if (RecvBufferSize != sizeof(TPM2_RESPONSE_HEADER) + sizeof(UINT16) + OutPublicSize + sizeof(UINT16) + NameSize + sizeof(UINT16) + QualifiedNameSize) {\r
+  if (RecvBufferSize != sizeof (TPM2_RESPONSE_HEADER) + sizeof (UINT16) + OutPublicSize + sizeof (UINT16) + NameSize + sizeof (UINT16) + QualifiedNameSize) {\r
     DEBUG ((DEBUG_ERROR, "Tpm2ReadPublic - RecvBufferSize %x Error - OutPublicSize %x, NameSize %x, QualifiedNameSize %x\n", RecvBufferSize, OutPublicSize, NameSize, QualifiedNameSize));\r
     return EFI_DEVICE_ERROR;\r
   }\r
@@ -132,15 +142,15 @@ Tpm2ReadPublic (
   // Return the response\r
   //\r
   Buffer = (UINT8 *)&RecvBuffer.OutPublic;\r
-  CopyMem (OutPublic, &RecvBuffer.OutPublic, sizeof(UINT16) + OutPublicSize);\r
-  OutPublic->size = OutPublicSize;\r
-  OutPublic->publicArea.type = SwapBytes16 (OutPublic->publicArea.type);\r
+  CopyMem (OutPublic, &RecvBuffer.OutPublic, sizeof (UINT16) + OutPublicSize);\r
+  OutPublic->size               = OutPublicSize;\r
+  OutPublic->publicArea.type    = SwapBytes16 (OutPublic->publicArea.type);\r
   OutPublic->publicArea.nameAlg = SwapBytes16 (OutPublic->publicArea.nameAlg);\r
   WriteUnaligned32 ((UINT32 *)&OutPublic->publicArea.objectAttributes, SwapBytes32 (ReadUnaligned32 ((UINT32 *)&OutPublic->publicArea.objectAttributes)));\r
-  Buffer = (UINT8 *)&RecvBuffer.OutPublic.publicArea.authPolicy;\r
+  Buffer                                = (UINT8 *)&RecvBuffer.OutPublic.publicArea.authPolicy;\r
   OutPublic->publicArea.authPolicy.size = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-  Buffer += sizeof(UINT16);\r
-  if (OutPublic->publicArea.authPolicy.size > sizeof(TPMU_HA)) {\r
+  Buffer                               += sizeof (UINT16);\r
+  if (OutPublic->publicArea.authPolicy.size > sizeof (TPMU_HA)) {\r
     DEBUG ((DEBUG_ERROR, "Tpm2ReadPublic - authPolicy.size error %x\n", OutPublic->publicArea.authPolicy.size));\r
     return EFI_DEVICE_ERROR;\r
   }\r
@@ -150,229 +160,241 @@ Tpm2ReadPublic (
 \r
   // TPMU_PUBLIC_PARMS\r
   switch (OutPublic->publicArea.type) {\r
-  case TPM_ALG_KEYEDHASH:\r
-    OutPublic->publicArea.parameters.keyedHashDetail.scheme.scheme = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-    Buffer += sizeof(UINT16);\r
-    switch (OutPublic->publicArea.parameters.keyedHashDetail.scheme.scheme) {\r
-    case TPM_ALG_HMAC:\r
-      OutPublic->publicArea.parameters.keyedHashDetail.scheme.details.hmac.hashAlg = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_XOR:\r
-      OutPublic->publicArea.parameters.keyedHashDetail.scheme.details.xor.hashAlg = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
-      OutPublic->publicArea.parameters.keyedHashDetail.scheme.details.xor.kdf = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    default:\r
-      return EFI_UNSUPPORTED;\r
-    }\r
-  case TPM_ALG_SYMCIPHER:\r
-    OutPublic->publicArea.parameters.symDetail.algorithm = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-    Buffer += sizeof(UINT16);\r
-    switch (OutPublic->publicArea.parameters.symDetail.algorithm) {\r
-    case TPM_ALG_AES:\r
-      OutPublic->publicArea.parameters.symDetail.keyBits.aes = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
-      OutPublic->publicArea.parameters.symDetail.mode.aes = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_SM4:\r
-      OutPublic->publicArea.parameters.symDetail.keyBits.SM4 = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
-      OutPublic->publicArea.parameters.symDetail.mode.SM4 = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_XOR:\r
-      OutPublic->publicArea.parameters.symDetail.keyBits.xor = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_NULL:\r
-      break;\r
-    default:\r
-      return EFI_UNSUPPORTED;\r
-    }\r
-    break;\r
-  case TPM_ALG_RSA:\r
-    OutPublic->publicArea.parameters.rsaDetail.symmetric.algorithm = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-    Buffer += sizeof(UINT16);\r
-    switch (OutPublic->publicArea.parameters.rsaDetail.symmetric.algorithm) {\r
-    case TPM_ALG_AES:\r
-      OutPublic->publicArea.parameters.rsaDetail.symmetric.keyBits.aes = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
-      OutPublic->publicArea.parameters.rsaDetail.symmetric.mode.aes = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_SM4:\r
-      OutPublic->publicArea.parameters.rsaDetail.symmetric.keyBits.SM4 = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
-      OutPublic->publicArea.parameters.rsaDetail.symmetric.mode.SM4 = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_NULL:\r
-      break;\r
-    default:\r
-      return EFI_UNSUPPORTED;\r
-    }\r
-    OutPublic->publicArea.parameters.rsaDetail.scheme.scheme = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-    Buffer += sizeof(UINT16);\r
-    switch (OutPublic->publicArea.parameters.rsaDetail.scheme.scheme) {\r
-    case TPM_ALG_RSASSA:\r
-      OutPublic->publicArea.parameters.rsaDetail.scheme.details.rsassa.hashAlg = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_RSAPSS:\r
-      OutPublic->publicArea.parameters.rsaDetail.scheme.details.rsapss.hashAlg = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_RSAES:\r
-      break;\r
-    case TPM_ALG_OAEP:\r
-      OutPublic->publicArea.parameters.rsaDetail.scheme.details.oaep.hashAlg = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_NULL:\r
-      break;\r
-    default:\r
-      return EFI_UNSUPPORTED;\r
-    }\r
-    OutPublic->publicArea.parameters.rsaDetail.keyBits = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-    Buffer += sizeof(UINT16);\r
-    OutPublic->publicArea.parameters.rsaDetail.exponent = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-    Buffer += sizeof(UINT32);\r
-    break;\r
-  case TPM_ALG_ECC:\r
-    OutPublic->publicArea.parameters.eccDetail.symmetric.algorithm = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-    Buffer += sizeof(UINT16);\r
-    switch (OutPublic->publicArea.parameters.eccDetail.symmetric.algorithm) {\r
-    case TPM_ALG_AES:\r
-      OutPublic->publicArea.parameters.eccDetail.symmetric.keyBits.aes = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
-      OutPublic->publicArea.parameters.eccDetail.symmetric.mode.aes = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_SM4:\r
-      OutPublic->publicArea.parameters.eccDetail.symmetric.keyBits.SM4 = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
-      OutPublic->publicArea.parameters.eccDetail.symmetric.mode.SM4 = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_NULL:\r
-      break;\r
-    default:\r
-      return EFI_UNSUPPORTED;\r
-    }\r
-    OutPublic->publicArea.parameters.eccDetail.scheme.scheme = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-    Buffer += sizeof(UINT16);\r
-    switch (OutPublic->publicArea.parameters.eccDetail.scheme.scheme) {\r
-    case TPM_ALG_ECDSA:\r
-      OutPublic->publicArea.parameters.eccDetail.scheme.details.ecdsa.hashAlg = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_ECDAA:\r
-      OutPublic->publicArea.parameters.eccDetail.scheme.details.ecdaa.hashAlg = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_ECSCHNORR:\r
-      OutPublic->publicArea.parameters.eccDetail.scheme.details.ecSchnorr.hashAlg = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
+    case TPM_ALG_KEYEDHASH:\r
+      OutPublic->publicArea.parameters.keyedHashDetail.scheme.scheme = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+      Buffer                                                        += sizeof (UINT16);\r
+      switch (OutPublic->publicArea.parameters.keyedHashDetail.scheme.scheme) {\r
+        case TPM_ALG_HMAC:\r
+          OutPublic->publicArea.parameters.keyedHashDetail.scheme.details.hmac.hashAlg = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                                      += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_XOR:\r
+          OutPublic->publicArea.parameters.keyedHashDetail.scheme.details.xor.hashAlg = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                                     += sizeof (UINT16);\r
+          OutPublic->publicArea.parameters.keyedHashDetail.scheme.details.xor.kdf     = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                                     += sizeof (UINT16);\r
+          break;\r
+        default:\r
+          return EFI_UNSUPPORTED;\r
+      }\r
+\r
+    case TPM_ALG_SYMCIPHER:\r
+      OutPublic->publicArea.parameters.symDetail.algorithm = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+      Buffer                                              += sizeof (UINT16);\r
+      switch (OutPublic->publicArea.parameters.symDetail.algorithm) {\r
+        case TPM_ALG_AES:\r
+          OutPublic->publicArea.parameters.symDetail.keyBits.aes = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                += sizeof (UINT16);\r
+          OutPublic->publicArea.parameters.symDetail.mode.aes    = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_SM4:\r
+          OutPublic->publicArea.parameters.symDetail.keyBits.SM4 = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                += sizeof (UINT16);\r
+          OutPublic->publicArea.parameters.symDetail.mode.SM4    = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_XOR:\r
+          OutPublic->publicArea.parameters.symDetail.keyBits.xor = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_NULL:\r
+          break;\r
+        default:\r
+          return EFI_UNSUPPORTED;\r
+      }\r
+\r
       break;\r
-    case TPM_ALG_ECDH:\r
+    case TPM_ALG_RSA:\r
+      OutPublic->publicArea.parameters.rsaDetail.symmetric.algorithm = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+      Buffer                                                        += sizeof (UINT16);\r
+      switch (OutPublic->publicArea.parameters.rsaDetail.symmetric.algorithm) {\r
+        case TPM_ALG_AES:\r
+          OutPublic->publicArea.parameters.rsaDetail.symmetric.keyBits.aes = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                          += sizeof (UINT16);\r
+          OutPublic->publicArea.parameters.rsaDetail.symmetric.mode.aes    = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                          += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_SM4:\r
+          OutPublic->publicArea.parameters.rsaDetail.symmetric.keyBits.SM4 = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                          += sizeof (UINT16);\r
+          OutPublic->publicArea.parameters.rsaDetail.symmetric.mode.SM4    = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                          += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_NULL:\r
+          break;\r
+        default:\r
+          return EFI_UNSUPPORTED;\r
+      }\r
+\r
+      OutPublic->publicArea.parameters.rsaDetail.scheme.scheme = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+      Buffer                                                  += sizeof (UINT16);\r
+      switch (OutPublic->publicArea.parameters.rsaDetail.scheme.scheme) {\r
+        case TPM_ALG_RSASSA:\r
+          OutPublic->publicArea.parameters.rsaDetail.scheme.details.rsassa.hashAlg = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                                  += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_RSAPSS:\r
+          OutPublic->publicArea.parameters.rsaDetail.scheme.details.rsapss.hashAlg = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                                  += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_RSAES:\r
+          break;\r
+        case TPM_ALG_OAEP:\r
+          OutPublic->publicArea.parameters.rsaDetail.scheme.details.oaep.hashAlg = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                                += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_NULL:\r
+          break;\r
+        default:\r
+          return EFI_UNSUPPORTED;\r
+      }\r
+\r
+      OutPublic->publicArea.parameters.rsaDetail.keyBits  = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+      Buffer                                             += sizeof (UINT16);\r
+      OutPublic->publicArea.parameters.rsaDetail.exponent = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+      Buffer                                             += sizeof (UINT32);\r
       break;\r
-    case TPM_ALG_NULL:\r
+    case TPM_ALG_ECC:\r
+      OutPublic->publicArea.parameters.eccDetail.symmetric.algorithm = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+      Buffer                                                        += sizeof (UINT16);\r
+      switch (OutPublic->publicArea.parameters.eccDetail.symmetric.algorithm) {\r
+        case TPM_ALG_AES:\r
+          OutPublic->publicArea.parameters.eccDetail.symmetric.keyBits.aes = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                          += sizeof (UINT16);\r
+          OutPublic->publicArea.parameters.eccDetail.symmetric.mode.aes    = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                          += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_SM4:\r
+          OutPublic->publicArea.parameters.eccDetail.symmetric.keyBits.SM4 = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                          += sizeof (UINT16);\r
+          OutPublic->publicArea.parameters.eccDetail.symmetric.mode.SM4    = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                          += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_NULL:\r
+          break;\r
+        default:\r
+          return EFI_UNSUPPORTED;\r
+      }\r
+\r
+      OutPublic->publicArea.parameters.eccDetail.scheme.scheme = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+      Buffer                                                  += sizeof (UINT16);\r
+      switch (OutPublic->publicArea.parameters.eccDetail.scheme.scheme) {\r
+        case TPM_ALG_ECDSA:\r
+          OutPublic->publicArea.parameters.eccDetail.scheme.details.ecdsa.hashAlg = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                                 += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_ECDAA:\r
+          OutPublic->publicArea.parameters.eccDetail.scheme.details.ecdaa.hashAlg = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                                 += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_ECSCHNORR:\r
+          OutPublic->publicArea.parameters.eccDetail.scheme.details.ecSchnorr.hashAlg = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\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_UNSUPPORTED;\r
+      }\r
+\r
+      OutPublic->publicArea.parameters.eccDetail.curveID    = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+      Buffer                                               += sizeof (UINT16);\r
+      OutPublic->publicArea.parameters.eccDetail.kdf.scheme = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+      Buffer                                               += sizeof (UINT16);\r
+      switch (OutPublic->publicArea.parameters.eccDetail.kdf.scheme) {\r
+        case TPM_ALG_MGF1:\r
+          OutPublic->publicArea.parameters.eccDetail.kdf.details.mgf1.hashAlg = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                             += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_KDF1_SP800_108:\r
+          OutPublic->publicArea.parameters.eccDetail.kdf.details.kdf1_sp800_108.hashAlg = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                                       += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_KDF1_SP800_56a:\r
+          OutPublic->publicArea.parameters.eccDetail.kdf.details.kdf1_SP800_56a.hashAlg = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                                       += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_KDF2:\r
+          OutPublic->publicArea.parameters.eccDetail.kdf.details.kdf2.hashAlg = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+          Buffer                                                             += sizeof (UINT16);\r
+          break;\r
+        case TPM_ALG_NULL:\r
+          break;\r
+        default:\r
+          return EFI_UNSUPPORTED;\r
+      }\r
+\r
       break;\r
     default:\r
       return EFI_UNSUPPORTED;\r
-    }\r
-    OutPublic->publicArea.parameters.eccDetail.curveID = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-    Buffer += sizeof(UINT16);\r
-    OutPublic->publicArea.parameters.eccDetail.kdf.scheme = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-    Buffer += sizeof(UINT16);\r
-    switch (OutPublic->publicArea.parameters.eccDetail.kdf.scheme) {\r
-    case TPM_ALG_MGF1:\r
-      OutPublic->publicArea.parameters.eccDetail.kdf.details.mgf1.hashAlg = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
-      break;\r
-    case TPM_ALG_KDF1_SP800_108:\r
-      OutPublic->publicArea.parameters.eccDetail.kdf.details.kdf1_sp800_108.hashAlg = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
+  }\r
+\r
+  // TPMU_PUBLIC_ID\r
+  switch (OutPublic->publicArea.type) {\r
+    case TPM_ALG_KEYEDHASH:\r
+      OutPublic->publicArea.unique.keyedHash.size = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+      Buffer                                     += sizeof (UINT16);\r
+      if (OutPublic->publicArea.unique.keyedHash.size > sizeof (TPMU_HA)) {\r
+        DEBUG ((DEBUG_ERROR, "Tpm2ReadPublic - keyedHash.size error %x\n", OutPublic->publicArea.unique.keyedHash.size));\r
+        return EFI_DEVICE_ERROR;\r
+      }\r
+\r
+      CopyMem (OutPublic->publicArea.unique.keyedHash.buffer, Buffer, OutPublic->publicArea.unique.keyedHash.size);\r
+      Buffer += OutPublic->publicArea.unique.keyedHash.size;\r
       break;\r
-    case TPM_ALG_KDF1_SP800_56a:\r
-      OutPublic->publicArea.parameters.eccDetail.kdf.details.kdf1_SP800_56a.hashAlg = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
+    case TPM_ALG_SYMCIPHER:\r
+      OutPublic->publicArea.unique.sym.size = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+      Buffer                               += sizeof (UINT16);\r
+      if (OutPublic->publicArea.unique.sym.size > sizeof (TPMU_HA)) {\r
+        DEBUG ((DEBUG_ERROR, "Tpm2ReadPublic - sym.size error %x\n", OutPublic->publicArea.unique.sym.size));\r
+        return EFI_DEVICE_ERROR;\r
+      }\r
+\r
+      CopyMem (OutPublic->publicArea.unique.sym.buffer, Buffer, OutPublic->publicArea.unique.sym.size);\r
+      Buffer += OutPublic->publicArea.unique.sym.size;\r
       break;\r
-    case TPM_ALG_KDF2:\r
-      OutPublic->publicArea.parameters.eccDetail.kdf.details.kdf2.hashAlg = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-      Buffer += sizeof(UINT16);\r
+    case TPM_ALG_RSA:\r
+      OutPublic->publicArea.unique.rsa.size = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+      Buffer                               += sizeof (UINT16);\r
+      if (OutPublic->publicArea.unique.rsa.size > MAX_RSA_KEY_BYTES) {\r
+        DEBUG ((DEBUG_ERROR, "Tpm2ReadPublic - rsa.size error %x\n", OutPublic->publicArea.unique.rsa.size));\r
+        return EFI_DEVICE_ERROR;\r
+      }\r
+\r
+      CopyMem (OutPublic->publicArea.unique.rsa.buffer, Buffer, OutPublic->publicArea.unique.rsa.size);\r
+      Buffer += OutPublic->publicArea.unique.rsa.size;\r
       break;\r
-    case TPM_ALG_NULL:\r
+    case TPM_ALG_ECC:\r
+      OutPublic->publicArea.unique.ecc.x.size = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+      Buffer                                 += sizeof (UINT16);\r
+      if (OutPublic->publicArea.unique.ecc.x.size > MAX_ECC_KEY_BYTES) {\r
+        DEBUG ((DEBUG_ERROR, "Tpm2ReadPublic - ecc.x.size error %x\n", OutPublic->publicArea.unique.ecc.x.size));\r
+        return EFI_DEVICE_ERROR;\r
+      }\r
+\r
+      CopyMem (OutPublic->publicArea.unique.ecc.x.buffer, Buffer, OutPublic->publicArea.unique.ecc.x.size);\r
+      Buffer                                 += OutPublic->publicArea.unique.ecc.x.size;\r
+      OutPublic->publicArea.unique.ecc.y.size = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
+      Buffer                                 += sizeof (UINT16);\r
+      if (OutPublic->publicArea.unique.ecc.y.size > MAX_ECC_KEY_BYTES) {\r
+        DEBUG ((DEBUG_ERROR, "Tpm2ReadPublic - ecc.y.size error %x\n", OutPublic->publicArea.unique.ecc.y.size));\r
+        return EFI_DEVICE_ERROR;\r
+      }\r
+\r
+      CopyMem (OutPublic->publicArea.unique.ecc.y.buffer, Buffer, OutPublic->publicArea.unique.ecc.y.size);\r
+      Buffer += OutPublic->publicArea.unique.ecc.y.size;\r
       break;\r
     default:\r
       return EFI_UNSUPPORTED;\r
-    }\r
-    break;\r
-  default:\r
-    return EFI_UNSUPPORTED;\r
-  }\r
-\r
-  // TPMU_PUBLIC_ID\r
-  switch (OutPublic->publicArea.type) {\r
-  case TPM_ALG_KEYEDHASH:\r
-    OutPublic->publicArea.unique.keyedHash.size = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-    Buffer += sizeof(UINT16);\r
-    if(OutPublic->publicArea.unique.keyedHash.size > sizeof(TPMU_HA)) {\r
-      DEBUG ((DEBUG_ERROR, "Tpm2ReadPublic - keyedHash.size error %x\n", OutPublic->publicArea.unique.keyedHash.size));\r
-      return EFI_DEVICE_ERROR;\r
-    }\r
-    CopyMem (OutPublic->publicArea.unique.keyedHash.buffer, Buffer, OutPublic->publicArea.unique.keyedHash.size);\r
-    Buffer += OutPublic->publicArea.unique.keyedHash.size;\r
-    break;\r
-  case TPM_ALG_SYMCIPHER:\r
-    OutPublic->publicArea.unique.sym.size = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-    Buffer += sizeof(UINT16);\r
-    if(OutPublic->publicArea.unique.sym.size > sizeof(TPMU_HA)) {\r
-      DEBUG ((DEBUG_ERROR, "Tpm2ReadPublic - sym.size error %x\n", OutPublic->publicArea.unique.sym.size));\r
-      return EFI_DEVICE_ERROR;\r
-    }\r
-    CopyMem (OutPublic->publicArea.unique.sym.buffer, Buffer, OutPublic->publicArea.unique.sym.size);\r
-    Buffer += OutPublic->publicArea.unique.sym.size;\r
-    break;\r
-  case TPM_ALG_RSA:\r
-    OutPublic->publicArea.unique.rsa.size = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-    Buffer += sizeof(UINT16);\r
-    if(OutPublic->publicArea.unique.rsa.size > MAX_RSA_KEY_BYTES) {\r
-      DEBUG ((DEBUG_ERROR, "Tpm2ReadPublic - rsa.size error %x\n", OutPublic->publicArea.unique.rsa.size));\r
-      return EFI_DEVICE_ERROR;\r
-    }\r
-    CopyMem (OutPublic->publicArea.unique.rsa.buffer, Buffer, OutPublic->publicArea.unique.rsa.size);\r
-    Buffer += OutPublic->publicArea.unique.rsa.size;\r
-    break;\r
-  case TPM_ALG_ECC:\r
-    OutPublic->publicArea.unique.ecc.x.size = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-    Buffer += sizeof(UINT16);\r
-    if (OutPublic->publicArea.unique.ecc.x.size > MAX_ECC_KEY_BYTES) {\r
-      DEBUG ((DEBUG_ERROR, "Tpm2ReadPublic - ecc.x.size error %x\n", OutPublic->publicArea.unique.ecc.x.size));\r
-      return EFI_DEVICE_ERROR;\r
-    }\r
-    CopyMem (OutPublic->publicArea.unique.ecc.x.buffer, Buffer, OutPublic->publicArea.unique.ecc.x.size);\r
-    Buffer += OutPublic->publicArea.unique.ecc.x.size;\r
-    OutPublic->publicArea.unique.ecc.y.size = SwapBytes16 (ReadUnaligned16 ((UINT16 *)Buffer));\r
-    Buffer += sizeof(UINT16);\r
-    if (OutPublic->publicArea.unique.ecc.y.size > MAX_ECC_KEY_BYTES) {\r
-      DEBUG ((DEBUG_ERROR, "Tpm2ReadPublic - ecc.y.size error %x\n", OutPublic->publicArea.unique.ecc.y.size));\r
-      return EFI_DEVICE_ERROR;\r
-    }\r
-    CopyMem (OutPublic->publicArea.unique.ecc.y.buffer, Buffer, OutPublic->publicArea.unique.ecc.y.size);\r
-    Buffer += OutPublic->publicArea.unique.ecc.y.size;\r
-    break;\r
-  default:\r
-    return EFI_UNSUPPORTED;\r
   }\r
 \r
-  CopyMem (Name->name, (UINT8 *)&RecvBuffer + sizeof(TPM2_RESPONSE_HEADER) + sizeof(UINT16) + OutPublicSize + sizeof(UINT16), NameSize);\r
+  CopyMem (Name->name, (UINT8 *)&RecvBuffer + sizeof (TPM2_RESPONSE_HEADER) + sizeof (UINT16) + OutPublicSize + sizeof (UINT16), NameSize);\r
   Name->size = NameSize;\r
 \r
-  CopyMem (QualifiedName->name, (UINT8 *)&RecvBuffer + sizeof(TPM2_RESPONSE_HEADER) + sizeof(UINT16) + OutPublicSize + sizeof(UINT16) + NameSize + sizeof(UINT16), QualifiedNameSize);\r
+  CopyMem (QualifiedName->name, (UINT8 *)&RecvBuffer + sizeof (TPM2_RESPONSE_HEADER) + sizeof (UINT16) + OutPublicSize + sizeof (UINT16) + NameSize + sizeof (UINT16), QualifiedNameSize);\r
   QualifiedName->size = QualifiedNameSize;\r
 \r
   return EFI_SUCCESS;\r