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

Ard Biesheuvel ardb at kernel.org
Wed Sep 22 11:39:55 UTC 2021


On Sat, 18 Sept 2021 at 13:54, Stefan Berger <stefanb at linux.ibm.com> wrote:
>
>
> 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
>

Doesn't matter. New INFs use the latest version

>
> >> +  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
>

Yes.

>
>
> >
> >> +  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 (#80957): https://edk2.groups.io/g/devel/message/80957
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