[edk2-devel] [PATCH v4 11/28] SecurityPkg: Add new KeyService types and defines

Judah Vang judah.vang at intel.com
Thu Aug 11 06:53:20 UTC 2022


REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2594

V4: revert copyright date change.

V1: Add new KeyService types and defines.

Cc: Jian J Wang <jian.j.wang at intel.com>
Cc: Jiewen Yao <jiewen.yao at intel.com>
Cc: Nishant C Mistry <nishant.c.mistry at intel.com>
Signed-off-by: Jian J Wang <jian.j.wang at intel.com>
Signed-off-by: Nishant C Mistry <nishant.c.mistry at intel.com>
Signed-off-by: Judah Vang <judah.vang at intel.com>
---
 SecurityPkg/Include/Ppi/KeyServicePpi.h | 57 ++++++++++++++++++++
 1 file changed, 57 insertions(+)

diff --git a/SecurityPkg/Include/Ppi/KeyServicePpi.h b/SecurityPkg/Include/Ppi/KeyServicePpi.h
new file mode 100644
index 000000000000..8cfec04f96e5
--- /dev/null
+++ b/SecurityPkg/Include/Ppi/KeyServicePpi.h
@@ -0,0 +1,57 @@
+/** @file
+  Provides Key Services.
+
+Copyright (c) 2008 - 2022, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ at par Specification Reference:
+**/
+
+#ifndef PEI_KEY_SERVICE_PPI_H_
+#define PEI_KEY_SERVICE_PPI_H_
+///
+/// KEY SERVICE PPI GUID
+///
+extern EFI_GUID  gKeyServicePpiGuid;
+
+/**
+  Generate a new key from root key.
+
+  @param[in]   Salt                     Pointer to the salt(non-secret) value.
+  @param[in]   SaltSize                 Salt size in bytes.
+  @param[out]  NewKey                   Pointer to buffer to receive new key.
+  @param[in]   NewKeySize               Size of new key bytes to generate.
+
+  @retval EFI_SUCCESS                   The function completed successfully
+  @retval OTHER                         The function completed with failure.
+**/
+typedef
+EFI_STATUS
+(EFIAPI *KEY_SERVICE_GEN_KEY)(
+  IN   UINT8        *Salt,
+  IN   UINTN        SaltSize,
+  OUT  UINT8        *NewKey,
+  IN   UINTN        NewKeySize
+  );
+
+#define KEY_SERVICE_PPI_REVISION  1
+#define ROOT_KEY_LEN              64
+#define SALT_SIZE_MIN_LEN         64
+#define KEY_SERVICE_KEY_NAME      L"KEY_SERVICE_KEY"
+
+typedef struct {
+  UINT8    RootKey[ROOT_KEY_LEN];
+  UINT8    PreviousRootKey[ROOT_KEY_LEN];
+} KEY_SERVICE_DATA;
+
+typedef struct _KEY_SERVICE_PPI KEY_SERVICE_PPI;
+
+///
+/// KEY SERVICE PPI
+/// The interface functions are for Key Service in PEI Phase
+///
+struct _KEY_SERVICE_PPI {
+  KEY_SERVICE_GEN_KEY    GenerateKey; /// Generate Key
+};
+
+#endif
-- 
2.35.1.windows.2



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92355): https://edk2.groups.io/g/devel/message/92355
Mute This Topic: https://groups.io/mt/92953536/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