REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2594 Crypto algorithms, hkdf-sha256/hmac-sha256/aes, are needed to verify integrity of variable data, derive hmac and encryption keys, and encrypt/decrypt varible. Replacing null version source code with real implementations makes sure we can enable full functionalities of protected variable later. Cc: Xiaoyu Lu <xiaoyux.lu@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Guomin Jiang <guomin.jiang@intel.com> Cc: Nishant C Mistry <nishant.c.mistry@intel.com> Signed-off-by: Jian J Wang <jian.j.wang@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
		
			
				
	
	
		
			112 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			INI
		
	
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			INI
		
	
	
	
	
	
## @file
 | 
						|
#  Cryptographic Library Instance for DXE_RUNTIME_DRIVER.
 | 
						|
#
 | 
						|
#  Caution: This module requires additional review when modified.
 | 
						|
#  This library will have external input - signature.
 | 
						|
#  This external input must be validated carefully to avoid security issues such as
 | 
						|
#  buffer overflow or integer overflow.
 | 
						|
#
 | 
						|
#  Note: SHA-384 Digest functions, SHA-512 Digest functions,
 | 
						|
#  HMAC-SHA256 functions, AES functions, RSA external
 | 
						|
#  functions, PKCS#7 SignedData sign functions, Diffie-Hellman functions, and
 | 
						|
#  authenticode signature verification functions are not supported in this instance.
 | 
						|
#
 | 
						|
#  Copyright (c) 2009 - 2020, Intel Corporation. All rights reserved.<BR>
 | 
						|
#  Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
 | 
						|
#  SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
#
 | 
						|
##
 | 
						|
 | 
						|
[Defines]
 | 
						|
  INF_VERSION                    = 0x00010005
 | 
						|
  BASE_NAME                      = RuntimeCryptLib
 | 
						|
  MODULE_UNI_FILE                = RuntimeCryptLib.uni
 | 
						|
  FILE_GUID                      = 78189cc0-727d-46a4-84ea-f7dd860de64a
 | 
						|
  MODULE_TYPE                    = DXE_RUNTIME_DRIVER
 | 
						|
  VERSION_STRING                 = 1.0
 | 
						|
  LIBRARY_CLASS                  = BaseCryptLib|DXE_RUNTIME_DRIVER
 | 
						|
  CONSTRUCTOR                    = RuntimeCryptLibConstructor
 | 
						|
 | 
						|
#
 | 
						|
# The following information is for reference only and not required by the build tools.
 | 
						|
#
 | 
						|
#  VALID_ARCHITECTURES           = IA32 X64 ARM AARCH64
 | 
						|
#
 | 
						|
 | 
						|
[Sources]
 | 
						|
  InternalCryptLib.h
 | 
						|
  Hash/CryptMd5.c
 | 
						|
  Hash/CryptSha1.c
 | 
						|
  Hash/CryptSha256.c
 | 
						|
  Hash/CryptSm3.c
 | 
						|
  Hash/CryptSha512Null.c
 | 
						|
  Hmac/CryptHmacSha256.c
 | 
						|
  Kdf/CryptHkdf.c
 | 
						|
  Cipher/CryptAes.c
 | 
						|
  Pk/CryptRsaBasic.c
 | 
						|
  Pk/CryptRsaExtNull.c
 | 
						|
  Pk/CryptPkcs1OaepNull.c
 | 
						|
  Pk/CryptPkcs5Pbkdf2Null.c
 | 
						|
  Pk/CryptPkcs7SignNull.c
 | 
						|
  Pk/CryptPkcs7VerifyCommon.c
 | 
						|
  Pk/CryptPkcs7VerifyRuntime.c
 | 
						|
  Pk/CryptPkcs7VerifyEkuRuntime.c
 | 
						|
  Pk/CryptDhNull.c
 | 
						|
  Pk/CryptX509.c
 | 
						|
  Pk/CryptAuthenticodeNull.c
 | 
						|
  Pk/CryptTsNull.c
 | 
						|
  Pem/CryptPem.c
 | 
						|
 | 
						|
  SysCall/CrtWrapper.c
 | 
						|
  SysCall/TimerWrapper.c
 | 
						|
  SysCall/RuntimeMemAllocation.c
 | 
						|
 | 
						|
[Sources.Ia32]
 | 
						|
  Rand/CryptRandTsc.c
 | 
						|
 | 
						|
[Sources.X64]
 | 
						|
  Rand/CryptRandTsc.c
 | 
						|
 | 
						|
[Sources.ARM]
 | 
						|
  Rand/CryptRand.c
 | 
						|
 | 
						|
[Sources.AARCH64]
 | 
						|
  Rand/CryptRand.c
 | 
						|
 | 
						|
[Sources.RISCV64]
 | 
						|
  Rand/CryptRand.c
 | 
						|
 | 
						|
[Packages]
 | 
						|
  MdePkg/MdePkg.dec
 | 
						|
  CryptoPkg/CryptoPkg.dec
 | 
						|
 | 
						|
[LibraryClasses]
 | 
						|
  BaseLib
 | 
						|
  BaseMemoryLib
 | 
						|
  UefiBootServicesTableLib
 | 
						|
  UefiRuntimeServicesTableLib
 | 
						|
  DebugLib
 | 
						|
  OpensslLib
 | 
						|
  IntrinsicLib
 | 
						|
  PrintLib
 | 
						|
 | 
						|
#
 | 
						|
# Remove these [BuildOptions] after this library is cleaned up
 | 
						|
#
 | 
						|
[BuildOptions]
 | 
						|
  #
 | 
						|
  # suppress the following warnings so we do not break the build with warnings-as-errors:
 | 
						|
  # C4090: 'function' : different 'const' qualifiers
 | 
						|
  #
 | 
						|
  MSFT:*_*_*_CC_FLAGS = /wd4090
 | 
						|
 | 
						|
  # -JCryptoPkg/Include : To disable the use of the system includes provided by RVCT
 | 
						|
  # --diag_remark=1     : Reduce severity of "#1-D: last line of file ends without a newline"
 | 
						|
  RVCT:*_*_ARM_CC_FLAGS = -JCryptoPkg/Include --diag_remark=1
 | 
						|
 | 
						|
  GCC:*_CLANG35_*_CC_FLAGS = -std=c99
 | 
						|
  GCC:*_CLANG38_*_CC_FLAGS = -std=c99
 | 
						|
  GCC:*_CLANGPDB_*_CC_FLAGS = -std=c99 -Wno-error=incompatible-pointer-types
 | 
						|
 | 
						|
  XCODE:*_*_*_CC_FLAGS = -std=c99
 |