]> git.proxmox.com Git - mirror_edk2.git/commitdiff
SecurityPkg: Add a PCD to skip Opal password prompt
authorChu, Maggie <maggie.chu@intel.com>
Wed, 30 Jan 2019 06:40:51 +0000 (14:40 +0800)
committerEric Dong <eric.dong@intel.com>
Thu, 31 Jan 2019 02:49:16 +0000 (10:49 +0800)
https://bugzilla.tianocore.org/show_bug.cgi?id=1484
Add a PCD for skipping password prompt and device unlock flow.
so that other pre-OS applications are able to take over Opal
devices unlock flow.

Cc: Chao Zhang <chao.b.zhang@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Maggie Chu <maggie.chu@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
SecurityPkg/SecurityPkg.dec
SecurityPkg/Tcg/Opal/OpalPassword/OpalDriver.c
SecurityPkg/Tcg/Opal/OpalPassword/OpalPasswordDxe.inf

index 7ae42ea150c2c23ad838087c7d983c033020045c..a46d88d392323ffc111881a6b14045befaf2d091 100644 (file)
   # @Prompt Possible TPM2 Interrupt Number buffer\r
   gEfiSecurityPkgTokenSpaceGuid.PcdTpm2PossibleIrqNumBuf|{0x00, 0x00, 0x00, 0x00}|VOID*|0x0001001D\r
 \r
+  ## Indicates if Opal DXE driver skip unlock device flow.<BR><BR>\r
+  #   TRUE  - Skip unlock device flow.<BR>\r
+  #   FALSE - Does not skip unlock device flow.<BR>\r
+  # @Prompt Skip Opal DXE driver unlock device flow.\r
+  gEfiSecurityPkgTokenSpaceGuid.PcdSkipOpalDxeUnlock|FALSE|BOOLEAN|0x00010020\r
+\r
 [PcdsDynamic, PcdsDynamicEx]\r
 \r
   ## This PCD indicates Hash mask for TPM 2.0. Bit definition strictly follows TCG Algorithm Registry.<BR><BR>\r
index 38268539fb055b9ddb51f693e3cfc144bf06cbf1..734c5f06ff054fe35c1377c96d70784537d2c820 100644 (file)
@@ -988,6 +988,10 @@ OpalDriverRequestPassword (
 \r
     IsLocked = OpalDeviceLocked (&Dev->OpalDisk.SupportedAttributes, &Dev->OpalDisk.LockingFeature);\r
 \r
+    if (IsLocked && PcdGetBool (PcdSkipOpalDxeUnlock)) {\r
+      return;\r
+    }\r
+\r
     while (Count < MAX_PASSWORD_TRY_COUNT) {\r
       Password = OpalDriverPopUpPasswordInput (Dev, PopUpString, NULL, &PressEsc);\r
       if (PressEsc) {\r
index cfa55dded7871b71e3c17a36404aaee7fe5b22fc..11e58b95cde74420b1a3981390ff389d9d65225b 100644 (file)
@@ -75,5 +75,8 @@
 [Guids]\r
   gEfiEndOfDxeEventGroupGuid                    ## CONSUMES             ## Event\r
 \r
+[Pcd]\r
+  gEfiSecurityPkgTokenSpaceGuid.PcdSkipOpalDxeUnlock  ## CONSUMES\r
+\r
 [Depex]\r
   gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid\r