## @file
#  Cryptographic Library Instance for host based unit tests
#
#  Copyright (c) 2009 - 2019, Intel Corporation. All rights reserved.<BR>
#  Copyright (c) Microsoft Corporation.
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = BaseCryptLib
  FILE_GUID                      = c97d34aa-caf8-42cd-8261-8705f46304b3
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = BaseCryptLib|HOST_APPLICATION

#
# 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/CryptSha512.c
  Hash/CryptSm3.c
  Hmac/CryptHmacSha256.c
  Kdf/CryptHkdf.c
  Cipher/CryptAes.c
  Pk/CryptRsaBasic.c
  Pk/CryptRsaExt.c
  Pk/CryptPkcs1Oaep.c
  Pk/CryptPkcs5Pbkdf2.c
  Pk/CryptPkcs7Sign.c
  Pk/CryptPkcs7VerifyCommon.c
  Pk/CryptPkcs7VerifyBase.c
  Pk/CryptPkcs7VerifyEku.c
  Pk/CryptDh.c
  Pk/CryptX509.c
  Pk/CryptAuthenticode.c
  Pk/CryptTs.c
  Pem/CryptPem.c

  SysCall/UnitTestHostCrtWrapper.c

[Sources.Ia32]
  Rand/CryptRandTsc.c

[Sources.X64]
  Rand/CryptRandTsc.c

[Sources.ARM]
  Rand/CryptRand.c

[Sources.AARCH64]
  Rand/CryptRand.c

[Packages]
  MdePkg/MdePkg.dec
  CryptoPkg/CryptoPkg.dec

[LibraryClasses]
  BaseLib
  BaseMemoryLib
  MemoryAllocationLib
  DebugLib
  OpensslLib

#
# 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
  # C4018: '>': signed/unsigned mismatch
  MSFT:*_*_*_CC_FLAGS = /wd4090 /wd4018

  # -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

  XCODE:*_*_*_CC_FLAGS = -std=c99
