## @file
#  Provides Unified API for Hash Calculation
#
#  This library is BaseHashApiLib. It will redirect hash request to
#  each individual hash API, such as SHA1, SHA256, SHA384, SM3 based
#  on hashing algorithm specified by PcdHashApiLibPolicy.
#
# Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = BaseHashApiLib
  MODULE_UNI_FILE                = BaseHashApiLib.uni
  FILE_GUID                      = B1E566DD-DE7C-4F04-BDA0-B1295D3BE927
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = HashApiLib

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources]
  BaseHashApiLib.c

[Packages]
  MdePkg/MdePkg.dec
  CryptoPkg/CryptoPkg.dec

[LibraryClasses]
  BaseLib
  BaseMemoryLib
  DebugLib
  MemoryAllocationLib
  BaseCryptLib
  PcdLib

[Pcd]
  gEfiCryptoPkgTokenSpaceGuid.PcdHashApiLibPolicy    ## CONSUMES
