From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web10.1041.1648250921590027422 for ; Fri, 25 Mar 2022 16:28:42 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=OssMC9QY; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: judah.vang@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1648250922; x=1679786922; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=XiRq89mdHY2CWiD9K9/35vyom4VbKrmEfmyq9qYGnDs=; b=OssMC9QY7AQTHlEQTwwRQnfIjy5ROgkBI3le4X4C43xtkUjpWLyVYlEb sZ6XRAxEBlq3vl5dpoL9nOAgULUJLud2fFUXUDyr8AwbR08F+wV0Ahro2 enzjfnQQ8QD5SmwVYFN3ZzqfHB3Rt5QzcuLTpzAy73KfuisuR7hcT/pVa JcsERoEyKXl3/7Q0N0itLvoHlOvkG7cywEGTJ94uDYelurrdzrporEqUZ DFr8SS6hzRzL66fwWKDnr4ct29PfZw9SvnKBNVGXrlruaUt6ViLwoLkJL XyOp+QiGj9gCnjhsfAdr8+XoXj2o/YkcPbxaUspunRMNI9rEXKf6EKBHl Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10297"; a="256309521" X-IronPort-AV: E=Sophos;i="5.90,211,1643702400"; d="scan'208";a="256309521" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Mar 2022 16:28:42 -0700 X-IronPort-AV: E=Sophos;i="5.90,211,1643702400"; d="scan'208";a="638366563" Received: from jvang-mobl.amr.corp.intel.com ([10.212.95.18]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Mar 2022 16:28:41 -0700 From: "Judah Vang" To: devel@edk2.groups.io Cc: Judah Vang , Jian J Wang , Jiewen Yao , Nishant C Mistry Subject: [PATCH v1 12/28] SecurityPkg: Add new variable types and functions Date: Fri, 25 Mar 2022 16:28:09 -0700 Message-Id: <20220325232825.2167-8-judah.vang@intel.com> X-Mailer: git-send-email 2.35.1.windows.2 In-Reply-To: <20220325232825.2167-1-judah.vang@intel.com> References: <20220325232825.2167-1-judah.vang@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2594 Add new variable encryption/decryption function prototypes. Add new variable digest structure. Add new Protected variable function prototypes. Update RPMC APIs to Add an index because there are more than one counter. Cc: Jian J Wang Cc: Jiewen Yao Cc: Nishant C Mistry Signed-off-by: Judah Vang --- SecurityPkg/Include/Library/RpmcLib.h | 15 +++++--- SecurityPkg/Include/Library/VariableKeyLib.h | 37 +++----------------- 2 files changed, 16 insertions(+), 36 deletions(-) diff --git a/SecurityPkg/Include/Library/RpmcLib.h b/SecurityPkg/Include/Library/RpmcLib.h index df4ba34ba8cf..cb71dfcd7e4d 100644 --- a/SecurityPkg/Include/Library/RpmcLib.h +++ b/SecurityPkg/Include/Library/RpmcLib.h @@ -1,19 +1,23 @@ /** @file Public definitions for the Replay Protected Monotonic Counter (RPMC) Library. -Copyright (c) 2020, Intel Corporation. All rights reserved.
+Copyright (c) 2020 - 2022, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ -#ifndef _RPMC_LIB_H_ -#define _RPMC_LIB_H_ +#ifndef RPMC_LIB_H_ +#define RPMC_LIB_H_ #include +#define RPMC_COUNTER_1 0 +#define RPMC_COUNTER_2 1 + /** Requests the monotonic counter from the designated RPMC counter. + @param[in] CounterIndex The RPMC index @param[out] CounterValue A pointer to a buffer to store the RPMC value. @retval EFI_SUCCESS The operation completed successfully. @@ -23,12 +27,15 @@ SPDX-License-Identifier: BSD-2-Clause-Patent EFI_STATUS EFIAPI RequestMonotonicCounter ( + IN UINT8 CounterIndex, OUT UINT32 *CounterValue ); /** Increments the monotonic counter in the SPI flash device by 1. + @param[in] CounterIndex The RPMC index + @retval EFI_SUCCESS The operation completed successfully. @retval EFI_DEVICE_ERROR A device error occurred while attempting to update the counter. @retval EFI_UNSUPPORTED The operation is un-supported. @@ -36,7 +43,7 @@ RequestMonotonicCounter ( EFI_STATUS EFIAPI IncrementMonotonicCounter ( - VOID + IN UINT8 CounterIndex ); #endif diff --git a/SecurityPkg/Include/Library/VariableKeyLib.h b/SecurityPkg/Include/Library/VariableKeyLib.h index 561ebad09da2..6076c4d4731b 100644 --- a/SecurityPkg/Include/Library/VariableKeyLib.h +++ b/SecurityPkg/Include/Library/VariableKeyLib.h @@ -1,13 +1,13 @@ /** @file Public definitions for Variable Key Library. -Copyright (c) 2020, Intel Corporation. All rights reserved.
+Copyright (c) 2020 - 2022, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ -#ifndef _VARIABLE_KEY_LIB_H_ -#define _VARIABLE_KEY_LIB_H_ +#ifndef VARIABLE_KEY_LIB_H_ +#define VARIABLE_KEY_LIB_H_ #include @@ -25,35 +25,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent EFI_STATUS EFIAPI GetVariableKey ( - OUT VOID **VariableKey, - IN OUT UINTN *VariableKeySize - ); - -/** - Regenerates the variable key. - - @retval EFI_SUCCESS The variable key was regenerated successfully. - @retval EFI_DEVICE_ERROR An error occurred while attempting to regenerate the key. - @retval EFI_ACCESS_DENIED The function was invoked after locking the key interface. - @retval EFI_UNSUPPORTED Key regeneration is not supported in the current boot configuration. -**/ -EFI_STATUS -EFIAPI -RegenerateVariableKey ( - VOID - ); - -/** - Locks the regenerate key interface. - - @retval EFI_SUCCESS The key interface was locked successfully. - @retval EFI_UNSUPPORTED Locking the key interface is not supported in the current boot configuration. - @retval Others An error occurred while attempting to lock the key interface. -**/ -EFI_STATUS -EFIAPI -LockVariableKeyInterface ( - VOID + OUT VOID *VariableKey, + IN UINTN VariableKeySize ); #endif -- 2.26.2.windows.1