]> git.proxmox.com Git - mirror_edk2.git/commitdiff
SecurityPkg/TcgDxe: Use updated Tpm12CommandLib APIs
authorMichael Kinney <michael.d.kinney@intel.com>
Thu, 21 Jan 2016 19:30:21 +0000 (19:30 +0000)
committermdkinney <mdkinney@Edk2>
Thu, 21 Jan 2016 19:30:21 +0000 (19:30 +0000)
Use the following new APIs in Tpm12CommandLib and remove duplicate
code from TcgPei and TcgDxe:
  Tpm12Extend()
  Tpm12PhysicalPresence()
  Tpm12ContinueSelfTest()
  Tpm12GetCapabilityFlagPermanent()
  Tpm12GetCapabilityFlagVolatile()

Cc: Chao Zhang <chao.b.zhang@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
Reviewed-by: Chao Zhang <chao.b.zhang@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19729 6f19259b-4bc3-4df7-8a09-765794883524

SecurityPkg/Tcg/TcgDxe/TcgDxe.c
SecurityPkg/Tcg/TcgDxe/TcgDxe.inf
SecurityPkg/Tcg/TcgDxe/TisDxe.c [deleted file]
SecurityPkg/Tcg/TcgDxe/TpmComm.c [deleted file]
SecurityPkg/Tcg/TcgDxe/TpmComm.h [deleted file]

index 39cf38b300428ed46f77958dee333ad6cc4c2e07..690f356bbb0304d4988090828e170541f9707e96 100644 (file)
@@ -50,8 +50,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Library/PcdLib.h>\r
 #include <Library/UefiLib.h>\r
 #include <Library/ReportStatusCodeLib.h>\r
-\r
-#include "TpmComm.h"\r
+#include <Library/Tpm12CommandLib.h>\r
+#include <Library/BaseCryptLib.h>\r
 \r
 #define TCG_DXE_DATA_FROM_THIS(this)  \\r
   BASE_CR (this, TCG_DXE_DATA, TcgProtocol)\r
@@ -270,6 +270,40 @@ TcgDxeStatusCheck (
   return EFI_SUCCESS;\r
 }\r
 \r
+/**\r
+Single function calculates SHA1 digest value for all raw data. It\r
+combines Sha1Init(), Sha1Update() and Sha1Final().\r
+\r
+@param[in]  Data          Raw data to be digested.\r
+@param[in]  DataLen       Size of the raw data.\r
+@param[out] Digest        Pointer to a buffer that stores the final digest.\r
+\r
+@retval     EFI_SUCCESS   Always successfully calculate the final digest.\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+TpmCommHashAll (\r
+  IN  CONST UINT8       *Data,\r
+  IN        UINTN       DataLen,\r
+  OUT       TPM_DIGEST  *Digest\r
+  )\r
+{\r
+  VOID   *Sha1Ctx;\r
+  UINTN  CtxSize;\r
+\r
+  CtxSize = Sha1GetContextSize ();\r
+  Sha1Ctx = AllocatePool (CtxSize);\r
+  ASSERT (Sha1Ctx != NULL);\r
+\r
+  Sha1Init (Sha1Ctx);\r
+  Sha1Update (Sha1Ctx, Data, DataLen);\r
+  Sha1Final (Sha1Ctx, (UINT8 *)Digest);\r
+\r
+  FreePool (Sha1Ctx);\r
+\r
+  return EFI_SUCCESS;\r
+}\r
+\r
 /**\r
   This service abstracts the capability to do a hash operation on a data buffer.\r
   \r
@@ -333,6 +367,53 @@ TcgDxeHashAll (
   }\r
 }\r
 \r
+/**\r
+Add a new entry to the Event Log.\r
+\r
+@param[in, out] EventLogPtr   Pointer to the Event Log data.\r
+@param[in, out] LogSize       Size of the Event Log.\r
+@param[in]      MaxSize       Maximum size of the Event Log.\r
+@param[in]      NewEventHdr   Pointer to a TCG_PCR_EVENT_HDR data structure.\r
+@param[in]      NewEventData  Pointer to the new event data.\r
+\r
+@retval EFI_SUCCESS           The new event log entry was added.\r
+@retval EFI_OUT_OF_RESOURCES  No enough memory to log the new event.\r
+\r
+**/\r
+EFI_STATUS\r
+TpmCommLogEvent (\r
+  IN OUT  UINT8                     **EventLogPtr,\r
+  IN OUT  UINTN                     *LogSize,\r
+  IN      UINTN                     MaxSize,\r
+  IN      TCG_PCR_EVENT_HDR         *NewEventHdr,\r
+  IN      UINT8                     *NewEventData\r
+  )\r
+{\r
+  UINTN                            NewLogSize;\r
+\r
+  //\r
+  // Prevent Event Overflow\r
+  //\r
+  if (NewEventHdr->EventSize > (UINTN)(~0) - sizeof (*NewEventHdr)) {\r
+    return EFI_OUT_OF_RESOURCES;\r
+  }\r
+\r
+  NewLogSize = sizeof (*NewEventHdr) + NewEventHdr->EventSize;\r
+  if (NewLogSize > MaxSize - *LogSize) {\r
+    return EFI_OUT_OF_RESOURCES;\r
+  }\r
+\r
+  *EventLogPtr += *LogSize;\r
+  *LogSize += NewLogSize;\r
+  CopyMem (*EventLogPtr, NewEventHdr, sizeof (*NewEventHdr));\r
+  CopyMem (\r
+    *EventLogPtr + sizeof (*NewEventHdr),\r
+    NewEventData,\r
+    NewEventHdr->EventSize\r
+    );\r
+  return EFI_SUCCESS;\r
+}\r
+\r
 /**\r
   Add a new entry to the Event Log.\r
 \r
@@ -442,8 +523,6 @@ TcgDxePassThroughToTpm (
   IN      UINT8                     *TpmOutputParameterBlock\r
   )\r
 {\r
-  TCG_DXE_DATA                      *TcgData;\r
-\r
   if (TpmInputParameterBlock == NULL || \r
       TpmOutputParameterBlock == NULL || \r
       TpmInputParameterBlockSize == 0 ||\r
@@ -451,14 +530,11 @@ TcgDxePassThroughToTpm (
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
-  TcgData = TCG_DXE_DATA_FROM_THIS (This);\r
-\r
-  return TisPcExecute (\r
-           "%r%/%r",\r
+  return Tpm12SubmitCommand (\r
+           TpmInputParameterBlockSize,\r
            TpmInputParameterBlock,\r
-           (UINTN) TpmInputParameterBlockSize,\r
-           TpmOutputParameterBlock,\r
-           (UINTN) TpmOutputParameterBlockSize\r
+           &TpmOutputParameterBlockSize,\r
+           TpmOutputParameterBlock\r
            );\r
 }\r
 \r
@@ -506,7 +582,7 @@ TcgDxeHashLogExtendEventI (
     }\r
   }\r
 \r
-  Status = TpmCommExtend (\r
+  Status = Tpm12Extend (\r
              &NewEventHdr->Digest,\r
              NewEventHdr->PCRIndex,\r
              NULL\r
@@ -1272,19 +1348,15 @@ OnExitBootServicesFailed (
 **/\r
 EFI_STATUS\r
 GetTpmStatus (\r
-     OUT  BOOLEAN                   *TPMDeactivatedFlag\r
+  OUT BOOLEAN  *TPMDeactivatedFlag\r
   )\r
 {\r
-  EFI_STATUS                        Status;\r
-  TPM_STCLEAR_FLAGS                 VFlags;\r
+  EFI_STATUS         Status;\r
+  TPM_STCLEAR_FLAGS  VolatileFlags;\r
 \r
-  Status = TpmCommGetFlags (\r
-             TPM_CAP_FLAG_VOLATILE,\r
-             &VFlags,\r
-             sizeof (VFlags)\r
-             );\r
+  Status = Tpm12GetCapabilityFlagVolatile (&VolatileFlags);\r
   if (!EFI_ERROR (Status)) {\r
-    *TPMDeactivatedFlag = VFlags.deactivated;\r
+    *TPMDeactivatedFlag = VolatileFlags.deactivated;\r
   }\r
 \r
   return Status;\r
index 03fb5c713c6dee95bc68bf8d406548a30c688e2d..1b96ecbe2a77db9d6cb1e9f47455bae070c3bd77 100644 (file)
@@ -29,9 +29,6 @@
 \r
 [Sources]\r
   TcgDxe.c\r
-  TisDxe.c\r
-  TpmComm.c\r
-  TpmComm.h\r
 \r
 [Packages]\r
   MdePkg/MdePkg.dec\r
@@ -54,6 +51,7 @@
   UefiLib\r
   PcdLib\r
   ReportStatusCodeLib\r
+  Tpm12CommandLib\r
 \r
 [Guids]\r
   gEfiGlobalVariableGuid                             ## SOMETIMES_CONSUMES  ## Variable:L"BootXXXX"\r
diff --git a/SecurityPkg/Tcg/TcgDxe/TisDxe.c b/SecurityPkg/Tcg/TcgDxe/TisDxe.c
deleted file mode 100644 (file)
index da6d03b..0000000
+++ /dev/null
@@ -1,298 +0,0 @@
-/** @file  \r
-  TIS (TPM Interface Specification) functions used by TPM Dxe driver.\r
-  \r
-Copyright (c) 2005 - 2016, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution.  The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-**/\r
-\r
-#include <IndustryStandard/Tpm12.h>\r
-#include <Library/TimerLib.h>\r
-#include <Library/Tpm12DeviceLib.h>\r
-#include <Library/DebugLib.h>\r
-#include <Library/BaseLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
-\r
-//\r
-// Max TPM command/reponse length\r
-//\r
-#define TPMCMDBUFLENGTH             SIZE_1KB\r
-\r
-STATIC UINT8                        TpmCommandBuf[TPMCMDBUFLENGTH];\r
-STATIC UINT8                        TpmResponseBuf[TPMCMDBUFLENGTH];\r
-\r
-/**\r
-  Format TPM command data according to the format control character.\r
-\r
-  @param[in]      FmtChar       Format control character.  \r
-  @param[in, out] ap            List of arguments.  \r
-  @param[in]      TpmBuffer     Buffer for TPM command data.  \r
-  @param[out]     DataLength    TPM command data length. \r
\r
-  @retval EFI_SUCCESS           Operation completed successfully.\r
-  @retval EFI_INVALID_PARAMETER Invalid format control character.\r
-  @retval EFI_BUFFER_TOO_SMALL  Buffer too small for command data.\r
-\r
-**/\r
-EFI_STATUS\r
-TisPcSendV (\r
-  IN      UINT8                     FmtChar,\r
-  IN OUT  VA_LIST                   *ap,\r
-  UINT8                             *TpmBuffer,\r
-  UINT32                            *DataLength\r
-  )\r
-{\r
-  UINT8                             DataByte;\r
-  UINT16                            DataWord;\r
-  UINT32                            DataDword;\r
-  TPM_RQU_COMMAND_HDR               TpmCmdHdr;\r
-  TPM_RQU_COMMAND_HDR               *TpmCmdPtr;\r
-  UINTN                             Size;\r
-  UINT8                             *Raw;\r
-\r
-  switch (FmtChar) {\r
-\r
-    case 'b':\r
-      DataByte  = VA_ARG (*ap, UINT8);\r
-      Raw = &DataByte;\r
-      Size = sizeof (DataByte);\r
-      break;\r
-\r
-    case 'w':\r
-      DataWord  = VA_ARG (*ap, UINT16);\r
-      DataWord  = SwapBytes16 (DataWord);\r
-      Raw = (UINT8*)&DataWord;\r
-      Size = sizeof (DataWord);\r
-      break;\r
-\r
-    case 'd':\r
-      DataDword  = VA_ARG (*ap, UINT32);\r
-      DataDword  = SwapBytes32 (DataDword);\r
-      Raw = (UINT8*)&DataDword;\r
-      Size = sizeof (DataDword);\r
-      break;\r
-\r
-    case 'h':\r
-      TpmCmdPtr           = VA_ARG (*ap, TPM_RQU_COMMAND_HDR*);\r
-      TpmCmdHdr.tag       = SwapBytes16 (TpmCmdPtr->tag);\r
-      TpmCmdHdr.paramSize = SwapBytes32 (TpmCmdPtr->paramSize);\r
-      TpmCmdHdr.ordinal   = SwapBytes32 (TpmCmdPtr->ordinal);\r
-      Raw                 = (UINT8*) &TpmCmdHdr;\r
-      Size                = sizeof (TpmCmdHdr);\r
-      break;\r
-\r
-    case 'r':\r
-      Raw  = VA_ARG (*ap, UINT8*);\r
-      Size = VA_ARG (*ap, UINTN);\r
-      break;\r
-\r
-    case '\0':\r
-      return EFI_INVALID_PARAMETER;\r
-\r
-    default:\r
-      return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  //\r
-  // Check input to avoid overflow.\r
-  //\r
-  if ((UINT32) (~0)- *DataLength < (UINT32)Size) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  if(*DataLength + (UINT32) Size > TPMCMDBUFLENGTH) {\r
-    return EFI_BUFFER_TOO_SMALL;\r
-  }\r
-  CopyMem (TpmBuffer + *DataLength, Raw, Size);\r
-  *DataLength += (UINT32) Size;\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-/**\r
-  Format reponse data according to the format control character.\r
-\r
-  @param[in]      FmtChar       Format control character.  \r
-  @param[in, out] ap            List of arguments.  \r
-  @param[out]     TpmBuffer     Buffer for reponse data.  \r
-  @param[in, out] DataIndex     Data offset in reponse data buffer. \r
-  @param[in]      RespSize      Response data length.  \r
-  @param[out]     DataFinished  Reach the end of Response data.  \r
\r
-  @retval EFI_SUCCESS           Operation completed successfully.\r
-  @retval EFI_INVALID_PARAMETER Invalid format control character.\r
-  @retval EFI_BUFFER_TOO_SMALL  Buffer too small for command data.\r
-\r
-**/\r
-EFI_STATUS\r
-TisPcReceiveV (\r
-  IN      UINT8                     FmtChar,\r
-  IN OUT  VA_LIST                   *ap,\r
-     OUT  UINT8                     *TpmBuffer,\r
-  IN OUT  UINT32                    *DataIndex,\r
-  IN      UINT32                    RespSize,\r
-     OUT  BOOLEAN                   *DataFinished\r
-  )\r
-{\r
-  UINT8                             *Raw;\r
-  TPM_RSP_COMMAND_HDR               *TpmRspPtr;\r
-  UINTN                             Size;\r
-\r
-  Raw = VA_ARG (*ap, UINT8*);\r
-  switch (FmtChar) {\r
-\r
-    case 'b':\r
-      Size = sizeof (UINT8);\r
-      break;\r
-\r
-    case 'w':\r
-      Size = sizeof (UINT16);\r
-      break;\r
-\r
-    case 'd':\r
-      Size = sizeof (UINT32);\r
-      break;\r
-\r
-    case 'h':\r
-      Size = sizeof (*TpmRspPtr);\r
-      break;\r
-\r
-    case 'r':\r
-      Size = VA_ARG (*ap, UINTN);\r
-      //\r
-      // If overflowed, which means Size is big enough for Response data. \r
-      // skip this check. Copy the whole data \r
-      //\r
-      if ((UINT32) (~0)- *DataIndex >= (UINT32)Size) {\r
-        if(*DataIndex + (UINT32) Size <= RespSize) {\r
-          break;\r
-        }\r
-      }\r
-\r
-      *DataFinished = TRUE;\r
-      if (*DataIndex >= RespSize) {\r
-        return EFI_SUCCESS;\r
-      }\r
-      CopyMem (Raw, TpmBuffer + *DataIndex, RespSize - *DataIndex);\r
-      *DataIndex += RespSize - *DataIndex;\r
-      return EFI_SUCCESS;\r
-\r
-    case '\0':\r
-      return EFI_INVALID_PARAMETER;\r
-\r
-    default:\r
-      return EFI_WARN_UNKNOWN_GLYPH;\r
-  }\r
-\r
-  if(*DataIndex + (UINT32) Size > RespSize) {\r
-    *DataFinished = TRUE;\r
-    return EFI_SUCCESS;\r
-  }\r
-\r
-  if( *DataIndex + (UINT32) Size > TPMCMDBUFLENGTH )\r
-    return EFI_BUFFER_TOO_SMALL;\r
-\r
-  CopyMem (Raw, TpmBuffer + *DataIndex, Size);\r
-  *DataIndex += (UINT32) Size;\r
-\r
-  switch (FmtChar) {\r
-\r
-    case 'w':\r
-      *(UINT16*)Raw = SwapBytes16 (*(UINT16*) Raw);\r
-      break;\r
-\r
-    case 'd':\r
-      *(UINT32*)Raw = SwapBytes32 (*(UINT32*) Raw);\r
-      break;\r
-\r
-    case 'h':\r
-      TpmRspPtr = (TPM_RSP_COMMAND_HDR*) Raw;\r
-      TpmRspPtr->tag = SwapBytes16 (TpmRspPtr->tag);\r
-      TpmRspPtr->paramSize = SwapBytes32 (TpmRspPtr->paramSize);\r
-      TpmRspPtr->returnCode = SwapBytes32 (TpmRspPtr->returnCode);\r
-      break;\r
-  }\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-/**\r
-  Send formatted command to TPM for execution and return formatted data from response.\r
-\r
-  @param[in] TisReg    TPM Handle.  \r
-  @param[in] Fmt       Format control string.  \r
-  @param[in] ...       The variable argument list.\r
\r
-  @retval EFI_SUCCESS  Operation completed successfully.\r
-  @retval EFI_TIMEOUT  The register can't run into the expected status in time.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-TisPcExecute (\r
-  IN      CONST CHAR8               *Fmt,\r
-  ...\r
-  )\r
-{\r
-  EFI_STATUS                        Status;\r
-  VA_LIST                           Ap;\r
-  UINT32                            BufSize;\r
-  UINT32                            ResponseSize;\r
-  BOOLEAN                           DataFinished;\r
-\r
-  VA_START (Ap, Fmt);\r
-\r
-  //\r
-  // Put the formatted command to the TpmCommandBuf\r
-  //\r
-  BufSize = 0;\r
-  while (*Fmt != '\0') {\r
-    if (*Fmt == '%') Fmt++;\r
-    if (*Fmt == '/') break;\r
-    Status = TisPcSendV (*Fmt, &Ap, TpmCommandBuf, &BufSize);\r
-    if (EFI_ERROR( Status )) {\r
-      goto Error;\r
-    }\r
-    Fmt++;\r
-  }\r
-\r
-  //\r
-  // Send the command to TPM\r
-  //\r
-  ZeroMem (TpmResponseBuf, sizeof (TpmResponseBuf));\r
-  ResponseSize = sizeof (TpmResponseBuf);\r
-  Status = Tpm12SubmitCommand (BufSize, TpmCommandBuf, &ResponseSize, TpmResponseBuf);\r
-  if (EFI_ERROR (Status)) {\r
-    goto Error;\r
-  }\r
-  Fmt++;\r
-\r
-  //\r
-  // Get the formatted data from the TpmResponseBuf.\r
-  //\r
-  BufSize =0;\r
-  DataFinished = FALSE;\r
-  while (*Fmt != '\0') {\r
-    if (*Fmt == '%') {\r
-      Fmt++;\r
-    }\r
-    Status = TisPcReceiveV (*Fmt, &Ap, TpmResponseBuf, &BufSize, ResponseSize, &DataFinished);\r
-    if (EFI_ERROR (Status)) {\r
-      goto Error;\r
-    }\r
-    if (DataFinished) {\r
-      VA_END (Ap);\r
-      return EFI_SUCCESS;\r
-    }\r
-    Fmt++;\r
-  }\r
-\r
-Error:\r
-  VA_END (Ap);\r
-  return Status;\r
-}\r
-\r
diff --git a/SecurityPkg/Tcg/TcgDxe/TpmComm.c b/SecurityPkg/Tcg/TcgDxe/TpmComm.c
deleted file mode 100644 (file)
index 28b8acd..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-/** @file  \r
-  Utility functions used by TPM Dxe driver.\r
-\r
-Copyright (c) 2005 - 2016, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution.  The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-**/\r
-\r
-#include <IndustryStandard/Tpm12.h>\r
-#include <IndustryStandard/UefiTcgPlatform.h>\r
-#include <Library/DebugLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
-#include <Library/MemoryAllocationLib.h>\r
-#include <Library/BaseCryptLib.h>\r
-\r
-#include "TpmComm.h"\r
-\r
-/**\r
-  Extend a TPM PCR.\r
-\r
-  @param[in]  DigestToExtend  The 160 bit value representing the event to be recorded.  \r
-  @param[in]  PcrIndex        The PCR to be updated.\r
-  @param[out] NewPcrValue     New PCR value after extend.  \r
-  \r
-  @retval EFI_SUCCESS         Operation completed successfully.\r
-  @retval EFI_DEVICE_ERROR    The command was unsuccessful.\r
-\r
-**/\r
-EFI_STATUS\r
-TpmCommExtend (\r
-  IN      TPM_DIGEST                *DigestToExtend,\r
-  IN      TPM_PCRINDEX              PcrIndex,\r
-     OUT  TPM_DIGEST                *NewPcrValue\r
-  )\r
-{\r
-  EFI_STATUS                        Status;\r
-  TPM_DIGEST                        NewValue;\r
-  TPM_RQU_COMMAND_HDR               CmdHdr;\r
-  TPM_RSP_COMMAND_HDR               RspHdr;\r
-\r
-  if (NewPcrValue == NULL) {\r
-    NewPcrValue = &NewValue;\r
-  }\r
-\r
-  CmdHdr.tag = TPM_TAG_RQU_COMMAND;\r
-  CmdHdr.paramSize =\r
-    sizeof (CmdHdr) + sizeof (PcrIndex) + sizeof (*DigestToExtend);\r
-  CmdHdr.ordinal = TPM_ORD_Extend;\r
-  Status = TisPcExecute (\r
-             "%h%d%r%/%h%r",\r
-             &CmdHdr,\r
-             PcrIndex,\r
-             DigestToExtend,\r
-             (UINTN)sizeof (*DigestToExtend),\r
-             &RspHdr,\r
-             NewPcrValue,\r
-             (UINTN)sizeof (*NewPcrValue)\r
-             );\r
-  if (EFI_ERROR (Status)) {\r
-    return Status;\r
-  }\r
-  if (RspHdr.returnCode != 0) {\r
-    return EFI_DEVICE_ERROR;\r
-  }\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-/**\r
-  Get TPM capability flags.\r
-\r
-  @param[in]  FlagSubcap   Flag subcap.  \r
-  @param[out] FlagBuffer   Pointer to the buffer for returned flag structure.\r
-  @param[in]  FlagSize     Size of the buffer.  \r
-  \r
-  @retval EFI_SUCCESS      Operation completed successfully.\r
-  @retval EFI_DEVICE_ERROR The command was unsuccessful.\r
-\r
-**/\r
-EFI_STATUS\r
-TpmCommGetFlags (\r
-  IN      UINT32                    FlagSubcap,\r
-     OUT  VOID                      *FlagBuffer,\r
-  IN      UINTN                     FlagSize\r
-  )\r
-{\r
-  EFI_STATUS                        Status;\r
-  TPM_RQU_COMMAND_HDR               CmdHdr;\r
-  TPM_RSP_COMMAND_HDR               RspHdr;\r
-  UINT32                            Size;\r
-\r
-  CmdHdr.tag = TPM_TAG_RQU_COMMAND;\r
-  CmdHdr.paramSize = sizeof (CmdHdr) + sizeof (UINT32) * 3;\r
-  CmdHdr.ordinal = TPM_ORD_GetCapability;\r
-\r
-  Status = TisPcExecute (\r
-             "%h%d%d%d%/%h%d%r",\r
-             &CmdHdr,\r
-             TPM_CAP_FLAG,\r
-             sizeof (FlagSubcap),\r
-             FlagSubcap,\r
-             &RspHdr,\r
-             &Size,\r
-             FlagBuffer,\r
-             FlagSize\r
-             );\r
-  if (EFI_ERROR (Status)) {\r
-    return Status;\r
-  }\r
-  if (RspHdr.returnCode != 0) {\r
-    return EFI_DEVICE_ERROR;\r
-  }\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-/**\r
-  Add a new entry to the Event Log.\r
-\r
-  @param[in, out] EventLogPtr   Pointer to the Event Log data.  \r
-  @param[in, out] LogSize       Size of the Event Log.  \r
-  @param[in]      MaxSize       Maximum size of the Event Log.\r
-  @param[in]      NewEventHdr   Pointer to a TCG_PCR_EVENT_HDR data structure.  \r
-  @param[in]      NewEventData  Pointer to the new event data.  \r
-  \r
-  @retval EFI_SUCCESS           The new event log entry was added.\r
-  @retval EFI_OUT_OF_RESOURCES  No enough memory to log the new event.\r
-\r
-**/\r
-EFI_STATUS\r
-TpmCommLogEvent (\r
-  IN OUT  UINT8                     **EventLogPtr,\r
-  IN OUT  UINTN                     *LogSize,\r
-  IN      UINTN                     MaxSize,\r
-  IN      TCG_PCR_EVENT_HDR         *NewEventHdr,\r
-  IN      UINT8                     *NewEventData\r
-  )\r
-{\r
-  UINTN                            NewLogSize;\r
-\r
-  //\r
-  // Prevent Event Overflow\r
-  //\r
-  if (NewEventHdr->EventSize > (UINTN)(~0) - sizeof (*NewEventHdr)) {\r
-    return EFI_OUT_OF_RESOURCES;\r
-  }\r
-\r
-  NewLogSize = sizeof (*NewEventHdr) + NewEventHdr->EventSize;\r
-  if (NewLogSize > MaxSize - *LogSize) {\r
-    return EFI_OUT_OF_RESOURCES;\r
-  }\r
-\r
-  *EventLogPtr += *LogSize;\r
-  *LogSize += NewLogSize;\r
-  CopyMem (*EventLogPtr, NewEventHdr, sizeof (*NewEventHdr));\r
-  CopyMem (\r
-    *EventLogPtr + sizeof (*NewEventHdr),\r
-    NewEventData,\r
-    NewEventHdr->EventSize\r
-    );\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-/**\r
-  Single function calculates SHA1 digest value for all raw data. It\r
-  combines Sha1Init(), Sha1Update() and Sha1Final().\r
-\r
-  @param[in]  Data          Raw data to be digested.\r
-  @param[in]  DataLen       Size of the raw data.\r
-  @param[out] Digest        Pointer to a buffer that stores the final digest.\r
-\r
-  @retval     EFI_SUCCESS   Always successfully calculate the final digest.\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-TpmCommHashAll (\r
-  IN  CONST UINT8                   *Data,\r
-  IN        UINTN                   DataLen,\r
-  OUT       TPM_DIGEST              *Digest\r
-  )\r
-{\r
-  VOID     *Sha1Ctx;\r
-  UINTN    CtxSize;\r
-\r
-  CtxSize = Sha1GetContextSize ();\r
-  Sha1Ctx = AllocatePool (CtxSize);\r
-  ASSERT (Sha1Ctx != NULL);\r
-\r
-  Sha1Init (Sha1Ctx);\r
-  Sha1Update (Sha1Ctx, Data, DataLen);\r
-  Sha1Final (Sha1Ctx, (UINT8 *)Digest);\r
-\r
-  FreePool (Sha1Ctx);\r
-\r
-  return EFI_SUCCESS;\r
-}\r
diff --git a/SecurityPkg/Tcg/TcgDxe/TpmComm.h b/SecurityPkg/Tcg/TcgDxe/TpmComm.h
deleted file mode 100644 (file)
index a0d0d60..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-/** @file  \r
-  Definitions and function prototypes used by TPM DXE driver.\r
-\r
-Copyright (c) 2005 - 2016, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution.  The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-**/\r
-\r
-#ifndef _TPM_COMM_H_\r
-#define _TPM_COMM_H_\r
-\r
-/**\r
-  Add a new entry to the Event Log.\r
-\r
-  @param[in, out] EventLogPtr   Pointer to the Event Log data.  \r
-  @param[in, out] LogSize       Size of the Event Log.  \r
-  @param[in]      MaxSize       Maximum size of the Event Log.\r
-  @param[in]      NewEventHdr   Pointer to a TCG_PCR_EVENT_HDR data structure.  \r
-  @param[in]      NewEventData  Pointer to the new event data.  \r
-  \r
-  @retval EFI_SUCCESS           The new event log entry was added.\r
-  @retval EFI_OUT_OF_RESOURCES  No enough memory to log the new event.\r
-\r
-**/\r
-EFI_STATUS\r
-TpmCommLogEvent (\r
-  IN OUT  UINT8                     **EventLogPtr,\r
-  IN OUT  UINTN                     *LogSize,\r
-  IN      UINTN                     MaxSize,\r
-  IN      TCG_PCR_EVENT_HDR         *NewEventHdr,\r
-  IN      UINT8                     *NewEventData\r
-  );\r
-\r
-/**\r
-  Extend a TPM PCR.\r
-\r
-  @param[in]  DigestToExtend  The 160 bit value representing the event to be recorded.  \r
-  @param[in]  PcrIndex        The PCR to be updated.\r
-  @param[out] NewPcrValue     New PCR value after extend.  \r
-  \r
-  @retval EFI_SUCCESS         Operation completed successfully.\r
-  @retval EFI_DEVICE_ERROR    The command was unsuccessful.\r
-\r
-**/\r
-EFI_STATUS\r
-TpmCommExtend (\r
-  IN      TPM_DIGEST                *DigestToExtend,\r
-  IN      TPM_PCRINDEX              PcrIndex,\r
-     OUT  TPM_DIGEST                *NewPcrValue\r
-  );\r
-\r
-/**\r
-  Get TPM capability flags.\r
-\r
-  @param[in]  FlagSubcap   Flag subcap.  \r
-  @param[out] FlagBuffer   Pointer to the buffer for returned flag structure.\r
-  @param[in]  FlagSize     Size of the buffer.  \r
-  \r
-  @retval EFI_SUCCESS      Operation completed successfully.\r
-  @retval EFI_DEVICE_ERROR The command was unsuccessful.\r
-\r
-**/\r
-EFI_STATUS\r
-TpmCommGetFlags (\r
-  IN      UINT32                    FlagSubcap,\r
-     OUT  VOID                      *Buffer,\r
-  IN      UINTN                     Size\r
-  );\r
-\r
-/**\r
-  Send formatted command to TPM for execution and return formatted data from response.\r
-\r
-  @param[in] TisReg    TPM Handle.  \r
-  @param[in] Fmt       Format control string.  \r
-  @param[in] ...       The variable argument list.\r
-\r
-  @retval EFI_SUCCESS  Operation completed successfully.\r
-  @retval EFI_TIMEOUT  The register can't run into the expected status in time.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-TisPcExecute (\r
-  IN      CONST CHAR8               *Fmt,\r
-  ...\r
-  );\r
-\r
-/**\r
-  Single function calculates SHA1 digest value for all raw data. It\r
-  combines Sha1Init(), Sha1Update() and Sha1Final().\r
-\r
-  @param[in]  Data          Raw data to be digested.\r
-  @param[in]  DataLen       Size of the raw data.\r
-  @param[out] Digest        Pointer to a buffer that stores the final digest.\r
-\r
-  @retval     EFI_SUCCESS   Always successfully calculate the final digest.\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-TpmCommHashAll (\r
-  IN  CONST UINT8                   *Data,\r
-  IN        UINTN                   DataLen,\r
-  OUT       TPM_DIGEST              *Digest\r
-  );\r
-\r
-#endif  // _TPM_COMM_H_\r