SecurityPkg DxeTcgPhysicalPresenceLib: Enable Storage actions.

After enable storage related actions in the
TcgPhysicalPresenceStorageLib, use this library to support
storage related actions in this library.

Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Chao Zhang <chao.b.zhang@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
diff --git a/SecurityPkg/Library/DxeTcgPhysicalPresenceLib/DxeTcgPhysicalPresenceLib.c b/SecurityPkg/Library/DxeTcgPhysicalPresenceLib/DxeTcgPhysicalPresenceLib.c
index 4f35be8..ca8de26 100644
--- a/SecurityPkg/Library/DxeTcgPhysicalPresenceLib/DxeTcgPhysicalPresenceLib.c
+++ b/SecurityPkg/Library/DxeTcgPhysicalPresenceLib/DxeTcgPhysicalPresenceLib.c
@@ -35,6 +35,7 @@
 #include <Guid/EventGroup.h>

 #include <Guid/PhysicalPresenceData.h>

 #include <Library/TcgPpVendorLib.h>

+#include <Library/TcgPhysicalPresenceStorageLib.h>

 

 #define CONFIRM_BUFFER_SIZE         4096

 

@@ -1172,7 +1173,12 @@
   EFI_TCG_PROTOCOL                  *TcgProtocol;

   EDKII_VARIABLE_LOCK_PROTOCOL      *VariableLockProtocol;

   EFI_PHYSICAL_PRESENCE_FLAGS       PpiFlags;

-  

+

+  //

+  // Process the storage related action first.

+  //

+  TcgPhysicalPresenceStorageLibProcessRequest();

+

   Status = gBS->LocateProtocol (&gEfiTcgProtocolGuid, NULL, (VOID **)&TcgProtocol);

   if (EFI_ERROR (Status)) {

     return ;

@@ -1317,7 +1323,16 @@
   BOOLEAN                      CmdEnable;

   EFI_TCG_PROTOCOL             *TcgProtocol;

   EFI_PHYSICAL_PRESENCE_FLAGS  PpiFlags;

-  

+

+  //

+  // Process the storage related action first.

+  // If confirm need user confirm, just return TRUE.

+  // else continue check other actions.

+  //

+  if (TcgPhysicalPresenceStorageLibNeedUserConfirm()) {

+    return TRUE;

+  }

+

   Status = gBS->LocateProtocol (&gEfiTcgProtocolGuid, NULL, (VOID **)&TcgProtocol);

   if (EFI_ERROR (Status)) {

     return FALSE;

diff --git a/SecurityPkg/Library/DxeTcgPhysicalPresenceLib/DxeTcgPhysicalPresenceLib.inf b/SecurityPkg/Library/DxeTcgPhysicalPresenceLib/DxeTcgPhysicalPresenceLib.inf
index 3aacba5..8421dfa 100644
--- a/SecurityPkg/Library/DxeTcgPhysicalPresenceLib/DxeTcgPhysicalPresenceLib.inf
+++ b/SecurityPkg/Library/DxeTcgPhysicalPresenceLib/DxeTcgPhysicalPresenceLib.inf
@@ -55,6 +55,7 @@
   PrintLib

   HiiLib

   TcgPpVendorLib

+  TcgPhysicalPresenceStorageLib

 

 [Protocols]

   gEfiTcgProtocolGuid                   ## SOMETIMES_CONSUMES