What to do: 1. Add AuthVariableLib LibraryClass definitions. 2. Implement a NULL AuthVariableLib library instance. 3. Add VARIABLE_ENTRY_PROPERTY definition to VarCheck.h. 4. Add VARIABLE_ENTRY_CONSISTENCY and variable attribute combinations definitions to VariableFormat.h. Why to do: 1. Share code. 1.1. Separate auth variable service from Auth Variable driver in SecurityPkg to AuthVariableLib. Then the AuthVariableLib could benefit and be used by different implementation of Auth Variable drivers. 1.2 The VARIABLE_ENTRY_PROPERTY definition to VarCheck.h, VARIABLE_ENTRY_CONSISTENCY and variable attribute combinations definitions to VariableFormat.h will be shared by merged Variable driver and AuthVariableLib. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17757 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			79 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   Implements NULL authenticated variable services.
 | |
| 
 | |
| Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
 | |
| This program and the accompanying materials
 | |
| are licensed and made available under the terms and conditions of the BSD License
 | |
| which accompanies this distribution.  The full text of the license may be found at
 | |
| http://opensource.org/licenses/bsd-license.php
 | |
| 
 | |
| THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 | |
| WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 | |
| 
 | |
| **/
 | |
| 
 | |
| #include <Library/AuthVariableLib.h>
 | |
| #include <Library/DebugLib.h>
 | |
| 
 | |
| /**
 | |
|   Initialization for authenticated varibale services.
 | |
|   If this initialization returns error status, other APIs will not work
 | |
|   and expect to be not called then.
 | |
| 
 | |
|   @param[in]  AuthVarLibContextIn   Pointer to input auth variable lib context.
 | |
|   @param[out] AuthVarLibContextOut  Pointer to output auth variable lib context.
 | |
| 
 | |
|   @retval EFI_SUCCESS               Function successfully executed.
 | |
|   @retval EFI_INVALID_PARAMETER     If AuthVarLibContextIn == NULL or AuthVarLibContextOut == NULL.
 | |
|   @retval EFI_OUT_OF_RESOURCES      Fail to allocate enough resource.
 | |
|   @retval EFI_UNSUPPORTED           Unsupported to process authenticated variable.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| AuthVariableLibInitialize (
 | |
|   IN  AUTH_VAR_LIB_CONTEXT_IN   *AuthVarLibContextIn,
 | |
|   OUT AUTH_VAR_LIB_CONTEXT_OUT  *AuthVarLibContextOut
 | |
|   )
 | |
| {
 | |
|   //
 | |
|   // Do nothing, just return EFI_UNSUPPORTED.
 | |
|   //
 | |
|   return EFI_UNSUPPORTED;
 | |
| }
 | |
| 
 | |
| /**
 | |
|   Process variable with EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS/EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS set.
 | |
| 
 | |
|   @param[in] VariableName           Name of the variable.
 | |
|   @param[in] VendorGuid             Variable vendor GUID.
 | |
|   @param[in] Data                   Data pointer.
 | |
|   @param[in] DataSize               Size of Data.
 | |
|   @param[in] Attributes             Attribute value of the variable.
 | |
| 
 | |
|   @retval EFI_SUCCESS               The firmware has successfully stored the variable and its data as
 | |
|                                     defined by the Attributes.
 | |
|   @retval EFI_INVALID_PARAMETER     Invalid parameter.
 | |
|   @retval EFI_WRITE_PROTECTED       Variable is write-protected.
 | |
|   @retval EFI_OUT_OF_RESOURCES      There is not enough resource.
 | |
|   @retval EFI_SECURITY_VIOLATION    The variable is with EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS
 | |
|                                     or EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACESS
 | |
|                                     set, but the AuthInfo does NOT pass the validation
 | |
|                                     check carried out by the firmware.
 | |
|   @retval EFI_UNSUPPORTED           Unsupported to process authenticated variable.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| AuthVariableLibProcessVariable (
 | |
|   IN CHAR16         *VariableName,
 | |
|   IN EFI_GUID       *VendorGuid,
 | |
|   IN VOID           *Data,
 | |
|   IN UINTN          DataSize,
 | |
|   IN UINT32         Attributes
 | |
|   )
 | |
| {
 | |
|   ASSERT (FALSE);
 | |
|   return EFI_UNSUPPORTED;
 | |
| }
 |