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

Stefan Berger posted 3 patches 4 years, 4 months ago
There is a newer version of this series
[edk2-devel] [RFC PATCH 1/3] ArmVirtPkg/TPM: Add a NULL implementation of TpmPlatformHierarchyLib
Posted by Stefan Berger 4 years, 4 months ago
From: Stefan Berger <stefanb@linux.vnet.ibm.com>

Add a NULL implementation of the library class TpmPlatformHierarchyLib.

Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Stefan Berger <stefanb@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 (
+  )
+{
+  /* no nothing */
+}
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
+  BASE_NAME                      = PeiDxeTpmPlatformHierarchyLibNull
+  FILE_GUID                      = 8947A3F2-BfB4-45EF-968D-5C40C1CE6A58
+  MODULE_TYPE                    = PEIM
+  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/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [RFC PATCH 1/3] ArmVirtPkg/TPM: Add a NULL implementation of TpmPlatformHierarchyLib
Posted by Ard Biesheuvel 4 years, 4 months ago
On Thu, 16 Sept 2021 at 23:18, Stefan Berger <stefanb@linux.ibm.com> wrote:
>
> From: Stefan Berger <stefanb@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?

> Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
> Cc: Leif Lindholm <leif@nuviainc.com>
> Cc: Sami Mujawar <sami.mujawar@arm.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Signed-off-by: Stefan Berger <stefanb@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

> +  )
> +{
> +  /* no nothing */

double negative :-)

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

> +  BASE_NAME                      = PeiDxeTpmPlatformHierarchyLibNull

Make this BasePlatform....

> +  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@edk2.groups.io
> Unsubscribe: https://edk2.groups.io/g/devel/unsub [ardb+tianocore@kernel.org]
> ------------
>
>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#80852): https://edk2.groups.io/g/devel/message/80852
Mute This Topic: https://groups.io/mt/85662429/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [RFC PATCH 1/3] ArmVirtPkg/TPM: Add a NULL implementation of TpmPlatformHierarchyLib
Posted by Stefan Berger 4 years, 4 months ago
On 9/18/21 3:55 AM, Ard Biesheuvel wrote:
> On Thu, 16 Sept 2021 at 23:18, Stefan Berger <stefanb@linux.ibm.com> wrote:
>> From: Stefan Berger <stefanb@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@kernel.org>
>> Cc: Leif Lindholm <leif@nuviainc.com>
>> Cc: Sami Mujawar <sami.mujawar@arm.com>
>> Cc: Gerd Hoffmann <kraxel@redhat.com>
>> Signed-off-by: Stefan Berger <stefanb@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@edk2.groups.io
>> Unsubscribe: https://edk2.groups.io/g/devel/unsub [ardb+tianocore@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/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [RFC PATCH 1/3] ArmVirtPkg/TPM: Add a NULL implementation of TpmPlatformHierarchyLib
Posted by Ard Biesheuvel 4 years, 4 months ago
On Sat, 18 Sept 2021 at 13:54, Stefan Berger <stefanb@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@linux.ibm.com> wrote:
> >> From: Stefan Berger <stefanb@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@kernel.org>
> >> Cc: Leif Lindholm <leif@nuviainc.com>
> >> Cc: Sami Mujawar <sami.mujawar@arm.com>
> >> Cc: Gerd Hoffmann <kraxel@redhat.com>
> >> Signed-off-by: Stefan Berger <stefanb@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@edk2.groups.io
> >> Unsubscribe: https://edk2.groups.io/g/devel/unsub [ardb+tianocore@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/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [RFC PATCH 1/3] ArmVirtPkg/TPM: Add a NULL implementation of TpmPlatformHierarchyLib
Posted by Stefan Berger 4 years, 4 months ago
On 9/22/21 7:39 AM, Ard Biesheuvel wrote:

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



Fixed in upcoming v3.


    Stefan




-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#80982): https://edk2.groups.io/g/devel/message/80982
Mute This Topic: https://groups.io/mt/85662429/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [RFC PATCH 1/3] ArmVirtPkg/TPM: Add a NULL implementation of TpmPlatformHierarchyLib
Posted by Sami Mujawar 4 years, 4 months ago
Hi Stefan,

Thank you for this patch.

I have a few minor comments marked inline as [SAMI].

Regards,

Sami Mujawar


On 16/09/2021 10:17 PM, Stefan Berger wrote:
> From: Stefan Berger <stefanb@linux.vnet.ibm.com>
>
> Add a NULL implementation of the library class TpmPlatformHierarchyLib.
[SAMI] Is it possible to add a link to the bugzilla
(https://bugzilla.tianocore.org/show_bug.cgi?id=3510), please?
Also, would it be possible to place 'PeiDxeTpmPlatformHierarchyLibNull'
in SecurityPkg (i.e. if this library can be useful for other
architectures).
> Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
> Cc: Leif Lindholm <leif@nuviainc.com>
> Cc: Sami Mujawar <sami.mujawar@arm.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Signed-off-by: Stefan Berger <stefanb@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
[SAMI] The file 'ArmVirtPkg/Include/Library/TpmPlatformHierarchyLib.h'
appears to be a copy of the header file
SecurityPkg/Include/Library/TpmPlatformHierarchyLib.h. Is this needed
here or we could reference the one from SecurityPkg?
>
>
>
>   [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 (
>
> +  )
>
> +{
>
> +  /* no nothing */
>
> +}
>
> 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
>
> +  BASE_NAME                      = PeiDxeTpmPlatformHierarchyLibNull
>
> +  FILE_GUID                      = 8947A3F2-BfB4-45EF-968D-5C40C1CE6A58
>
> +  MODULE_TYPE                    = PEIM
>
> +  VERSION_STRING                 = 1.0
>
> +  LIBRARY_CLASS                  = TpmPlatformHierarchyLib|PEIM DXE_DRIVER
>
> +
>
> +[LibraryClasses]
>
> +  BaseLib
>
> +
>
> +[Packages]
>
> +  MdePkg/MdePkg.dec
>
> +
>
> +[Sources]
>
> +  PeiDxeTpmPlatformHierarchyLib.c
>

IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#80854): https://edk2.groups.io/g/devel/message/80854
Mute This Topic: https://groups.io/mt/85662429/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [RFC PATCH 1/3] ArmVirtPkg/TPM: Add a NULL implementation of TpmPlatformHierarchyLib
Posted by Stefan Berger 4 years, 4 months ago
On 9/18/21 4:48 AM, Sami Mujawar wrote:
> Hi Stefan,
>
> Thank you for this patch.
>
> I have a few minor comments marked inline as [SAMI].
>
> Regards,
>
> Sami Mujawar
>
>
> On 16/09/2021 10:17 PM, Stefan Berger wrote:
>> From: Stefan Berger <stefanb@linux.vnet.ibm.com>
>>
>> Add a NULL implementation of the library class TpmPlatformHierarchyLib.
> [SAMI] Is it possible to add a link to the bugzilla
> (https://bugzilla.tianocore.org/show_bug.cgi?id=3510), please?
> Also, would it be possible to place 'PeiDxeTpmPlatformHierarchyLibNull'
> in SecurityPkg (i.e. if this library can be useful for other
> architectures).


Yes. I didn't put it there because it was 'specialized' for ARM, but I 
don't mind moving it there on next round.


>> Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
>> Cc: Leif Lindholm <leif@nuviainc.com>
>> Cc: Sami Mujawar <sami.mujawar@arm.com>
>> Cc: Gerd Hoffmann <kraxel@redhat.com>
>> Signed-off-by: Stefan Berger <stefanb@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
> [SAMI] The file 'ArmVirtPkg/Include/Library/TpmPlatformHierarchyLib.h'
> appears to be a copy of the header file
> SecurityPkg/Include/Library/TpmPlatformHierarchyLib.h. Is this needed
> here or we could reference the one from SecurityPkg?

I added it since one of the test builds complaint about a missing header 
file. This silenced it. If we move the NULL implementation to 
SecruityPkg, then we won't need this anymore.




-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#80859): https://edk2.groups.io/g/devel/message/80859
Mute This Topic: https://groups.io/mt/85662429/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-