## @file
# Implements the BaseCryptLib and TlsLib using the services of the EDK II Crypto
# SMM Protocol.
#
# Copyright (C) Microsoft Corporation. All rights reserved.
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[Defines]
  INF_VERSION                    = 0x0001001B
  BASE_NAME                      = SmmCryptLib
  MODULE_UNI_FILE                = CryptLib.uni
  FILE_GUID                      = 5CC6ECC9-E961-46A9-8D5C-6581A060DC0D
  VERSION_STRING                 = 1.0
  MODULE_TYPE                    = DXE_SMM_DRIVER
  LIBRARY_CLASS                  = BaseCryptLib | DXE_SMM_DRIVER
  LIBRARY_CLASS                  = TlsLib       | DXE_SMM_DRIVER
  CONSTRUCTOR                    = SmmCryptLibConstructor

#
# The following information is for reference only and not required by the build tools.
#
# VALID_ARCHITECTURES = IA32 X64 ARM AARCH64
#

[Packages]
  MdePkg/MdePkg.dec
  CryptoPkg/CryptoPkg.dec

[LibraryClasses]
  BaseLib
  DebugLib
  SmmServicesTableLib

[Sources]
  SmmCryptLib.c
  CryptLib.c

[Protocols]
  gEdkiiSmmCryptoProtocolGuid  ## CONSUMES

[Depex]
  gEdkiiSmmCryptoProtocolGuid
