[edk2-devel] [RFC PATCH 1/3] ArmVirtPkg/TPM: Add a NULL implementation of TpmPlatformHierarchyLib

Stefan Berger stefanb at linux.ibm.com
Sat Sep 18 11:53:57 UTC 2021


On 9/18/21 3:55 AM, Ard Biesheuvel wrote:
> On Thu, 16 Sept 2021 at 23:18, Stefan Berger <stefanb at linux.ibm.com> wrote:
>> From: Stefan Berger <stefanb at linux.vnet.ibm.com>
>>
>> Add a NULL implementation of the library class TpmPlatformHierarchyLib.
>>
> This patch introduces both the library class and the NULL
> implementation, right?

No, we already added the library class when adding the 'foundation' for 
x86 support: 
https://github.com/tianocore/edk2/tree/master/SecurityPkg/Library/PeiDxeTpmPlatformHierarchyLib


>
>> Cc: Ard Biesheuvel <ardb+tianocore at kernel.org>
>> Cc: Leif Lindholm <leif at nuviainc.com>
>> Cc: Sami Mujawar <sami.mujawar at arm.com>
>> Cc: Gerd Hoffmann <kraxel at redhat.com>
>> Signed-off-by: Stefan Berger <stefanb at linux.ibm.com>
>> ---
>>   ArmVirtPkg/ArmVirtPkg.dec                     |  1 +
>>   .../Include/Library/TpmPlatformHierarchyLib.h | 27 +++++++++++++++++
>>   .../PeiDxeTpmPlatformHierarchyLib.c           | 22 ++++++++++++++
>>   .../PeiDxeTpmPlatformHierarchyLib.inf         | 30 +++++++++++++++++++
>>   4 files changed, 80 insertions(+)
>>   create mode 100644 ArmVirtPkg/Include/Library/TpmPlatformHierarchyLib.h
>>   create mode 100644 ArmVirtPkg/Library/PeiDxeTpmPlatformHierarchyLibNull/PeiDxeTpmPlatformHierarchyLib.c
>>   create mode 100644 ArmVirtPkg/Library/PeiDxeTpmPlatformHierarchyLibNull/PeiDxeTpmPlatformHierarchyLib.inf
>>
>> diff --git a/ArmVirtPkg/ArmVirtPkg.dec b/ArmVirtPkg/ArmVirtPkg.dec
>> index 4e4d758015..f3bdca118b 100644
>> --- a/ArmVirtPkg/ArmVirtPkg.dec
>> +++ b/ArmVirtPkg/ArmVirtPkg.dec
>> @@ -27,6 +27,7 @@
>>
>>   [LibraryClasses]
>>     ArmVirtMemInfoLib|Include/Library/ArmVirtMemInfoLib.h
>> +  TpmPlatformHierarchyLib|Include/Library/TpmPlatformHierarchyLib.h
>>
>>   [Guids.common]
>>     gArmVirtTokenSpaceGuid = { 0x0B6F5CA7, 0x4F53, 0x445A, { 0xB7, 0x6E, 0x2E, 0x36, 0x5B, 0x80, 0x63, 0x66 } }
>> diff --git a/ArmVirtPkg/Include/Library/TpmPlatformHierarchyLib.h b/ArmVirtPkg/Include/Library/TpmPlatformHierarchyLib.h
>> new file mode 100644
>> index 0000000000..8d61a4867b
>> --- /dev/null
>> +++ b/ArmVirtPkg/Include/Library/TpmPlatformHierarchyLib.h
>> @@ -0,0 +1,27 @@
>> +/** @file
>> +    TPM Platform Hierarchy configuration library.
>> +
>> +    This library provides functions for customizing the TPM's Platform Hierarchy
>> +    Authorization Value (platformAuth) and Platform Hierarchy Authorization
>> +    Policy (platformPolicy) can be defined through this function.
>> +
>> +Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
>> +Copyright (c) Microsoft Corporation.<BR>
>> +SPDX-License-Identifier: BSD-2-Clause-Patent
>> +
>> +**/
>> +
>> +#ifndef TPM_PLATFORM_HIERARCHY_LIB_H_
>> +#define TPM_PLATFORM_HIERARCHY_LIB_H_
>> +
>> +/**
>> +   This service will perform the TPM Platform Hierarchy configuration at the SmmReadyToLock event.
>> +
>> +**/
>> +VOID
>> +EFIAPI
>> +ConfigureTpmPlatformHierarchy (
>> +  VOID
>> +  );
>> +
>> +#endif
>> diff --git a/ArmVirtPkg/Library/PeiDxeTpmPlatformHierarchyLibNull/PeiDxeTpmPlatformHierarchyLib.c b/ArmVirtPkg/Library/PeiDxeTpmPlatformHierarchyLibNull/PeiDxeTpmPlatformHierarchyLib.c
>> new file mode 100644
>> index 0000000000..bac1efda63
>> --- /dev/null
>> +++ b/ArmVirtPkg/Library/PeiDxeTpmPlatformHierarchyLibNull/PeiDxeTpmPlatformHierarchyLib.c
>> @@ -0,0 +1,22 @@
>> +/** @file
>> +    Null TPM Platform Hierarchy configuration library.
>> +
>> +    This library provides stub functions for customizing the TPM's Platform Hierarchy.
>> +
>> +    Copyright (c) 2021, IBM Corporation.
>> +    SPDX-License-Identifier: BSD-2-Clause-Patent
>> +
>> +**/
>> +
>> +#include <Uefi.h>
>> +
>> +/**
>> +  A NULL implementation of ConfigureTpmPlatformHierarchy.
>> +**/
>> +VOID
>> +EFIAPI
>> +ConfigureTpmPlatformHierarchy (
> VOID
Ok , had copied signature 1:1 from here: 
https://github.com/tianocore/edk2/blob/master/SecurityPkg/Library/PeiDxeTpmPlatformHierarchyLib/PeiDxeTpmPlatformHierarchyLib.c#L239
>
>> +  )
>> +{
>> +  /* no nothing */
> double negative :-)


Typo. Will fix.

>
>> +}
>> diff --git a/ArmVirtPkg/Library/PeiDxeTpmPlatformHierarchyLibNull/PeiDxeTpmPlatformHierarchyLib.inf b/ArmVirtPkg/Library/PeiDxeTpmPlatformHierarchyLibNull/PeiDxeTpmPlatformHierarchyLib.inf
>> new file mode 100644
>> index 0000000000..4f02818bbc
>> --- /dev/null
>> +++ b/ArmVirtPkg/Library/PeiDxeTpmPlatformHierarchyLibNull/PeiDxeTpmPlatformHierarchyLib.inf
>> @@ -0,0 +1,30 @@
>> +### @file
>> +#   NULL TPM Platform Hierarchy configuration library.
>> +#
>> +#   This library provides functions for customizing the TPM's Platform Hierarchy
>> +#   Authorization Value (platformAuth) and Platform Hierarchy Authorization
>> +#   Policy (platformPolicy) can be defined through this function.
>> +#
>> +# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
>> +# Copyright (c) Microsoft Corporation.<BR>
>> +#
>> +# SPDX-License-Identifier: BSD-2-Clause-Patent
>> +#
>> +###
>> +
>> +[Defines]
>> +  INF_VERSION                    = 0x00010005
> 1.27
Originally all comes from this file here: 
https://github.com/tianocore/edk2/blob/master/SecurityPkg/Library/PeiDxeTpmPlatformHierarchyLib/PeiDxeTpmPlatformHierarchyLib.inf#L16


>> +  BASE_NAME                      = PeiDxeTpmPlatformHierarchyLibNull
> Make this BasePlatform....

Even though it will be different than here? 
https://github.com/tianocore/edk2/blob/master/SecurityPkg/Library/PeiDxeTpmPlatformHierarchyLib/PeiDxeTpmPlatformHierarchyLib.inf#L17



>
>> +  FILE_GUID                      = 8947A3F2-BfB4-45EF-968D-5C40C1CE6A58
>> +  MODULE_TYPE                    = PEIM
> BASE
>
>> +  VERSION_STRING                 = 1.0
>> +  LIBRARY_CLASS                  = TpmPlatformHierarchyLib|PEIM DXE_DRIVER
>> +
>> +[LibraryClasses]
>> +  BaseLib
>> +
>> +[Packages]
>> +  MdePkg/MdePkg.dec
>> +
>> +[Sources]
>> +  PeiDxeTpmPlatformHierarchyLib.c
>> --
>> 2.31.1
>>
>>
>>
>> ------------
>> Groups.io Links: You receive all messages sent to this group.
>> View/Reply Online (#80830): https://edk2.groups.io/g/devel/message/80830
>> Mute This Topic: https://groups.io/mt/85662429/5717338
>> Group Owner: devel+owner at edk2.groups.io
>> Unsubscribe: https://edk2.groups.io/g/devel/unsub [ardb+tianocore at kernel.org]
>> ------------
>>
>>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#80858): https://edk2.groups.io/g/devel/message/80858
Mute This Topic: https://groups.io/mt/85662429/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-





More information about the edk2-devel-archive mailing list