SecurityPkg: Update PlatformSecureLibNull with PCD to get physical presence.

This is an incompatible change. It uses PcdUserPhysicalPresence value instead
of hard code TRUE. Because PcdUserPhysicalPresence default value is FALSE,
this patch changes UserPhysicalPresent() return value from TRUE to FALSE.

From Security point, it is not safe to always return TRUE. If user wants this
behavior, he can still configure PcdUserPhysicalPresence value to TRUE in
the platform DSC file.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Giri P Mudusuru <giri.p.mudusuru@intel.com>
This commit is contained in:
Liming Gao 2016-06-23 17:52:33 +08:00
parent e2b083de91
commit c99bcf3d8a
2 changed files with 34 additions and 4 deletions

View File

@ -4,7 +4,7 @@
related features during platform enabling and development. It should be replaced
by a platform-specific method(e.g. Button pressed) in a real platform for product.
Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2011 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@ -15,6 +15,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
BOOLEAN mUserPhysicalPresence = FALSE;
/**
This function provides a platform-specific method to detect whether the platform
@ -38,5 +40,28 @@ UserPhysicalPresent (
VOID
)
{
return TRUE;
return mUserPhysicalPresence;
}
/**
Save user physical presence state from a PCD to mUserPhysicalPresence.
@param ImageHandle ImageHandle of the loaded driver.
@param SystemTable Pointer to the EFI System Table.
@retval EFI_SUCCESS PcdUserPhysicalPresence is got successfully.
**/
EFI_STATUS
EFIAPI
PlatformSecureLibNullConstructor (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
)
{
mUserPhysicalPresence = PcdGetBool(PcdUserPhysicalPresence);
return EFI_SUCCESS;
}

View File

@ -6,7 +6,7 @@
# related features during platform enabling and development. It should be replaced
# by a platform-specific method(e.g. Button pressed) in a real platform for product.
#
# Copyright (c) 2011 - 2014, Intel Corporation. All rights reserved.<BR>
# Copyright (c) 2011 - 2016, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution. The full text of the license may be found at
@ -24,7 +24,7 @@
MODULE_TYPE = DXE_DRIVER
VERSION_STRING = 1.0
LIBRARY_CLASS = PlatformSecureLib|DXE_RUNTIME_DRIVER DXE_SMM_DRIVER DXE_DRIVER
CONSTRUCTOR = PlatformSecureLibNullConstructor
#
# The following information is for reference only and not required by the build tools.
@ -37,3 +37,8 @@
[Packages]
MdePkg/MdePkg.dec
SecurityPkg/SecurityPkg.dec
[Pcd]
gEfiSecurityPkgTokenSpaceGuid.PcdUserPhysicalPresence ## CONSUMES