## @file
#  Provides BaseCrypto SHA256 hash service
#
#  This library can be registered to BaseCrypto router, to serve as hash engine.
#
# Copyright (c) 2013 - 2014, 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.
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = HashInstanceLibSha256
  MODULE_UNI_FILE                = HashInstanceLibSha256.uni
  FILE_GUID                      = 5810798A-ED30-4080-8DD7-B9667A748C02
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = NULL
  CONSTRUCTOR                    = HashInstanceLibSha256Constructor

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF
#

[Sources]
  HashInstanceLibSha256.c

[Packages]
  MdePkg/MdePkg.dec
  SecurityPkg/SecurityPkg.dec
  CryptoPkg/CryptoPkg.dec

[LibraryClasses]
  BaseLib
  BaseMemoryLib
  DebugLib
  Tpm2CommandLib
  MemoryAllocationLib
  BaseCryptLib
