## @file
#  Dxe Crc32 Guided Section Extract library.
#
#  This library doesn't produce any library class. The constructor function uses
#  ExtractGuidedSectionLib service to register CRC32 guided section handler
#  that parses CRC32 encapsulation section and extracts raw data.
#
#  It uses UEFI boot service CalculateCrc32 to authenticate 32 bit CRC value.
#
# Copyright (c) 2006 - 2018, 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                      = DxeCrc32GuidedSectionExtractLib
  MODULE_UNI_FILE                = DxeCrc32GuidedSectionExtractLib.uni
  FILE_GUID                      = 387A2490-81FC-4E7C-8E0A-3E58C30FCD0B
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = NULL|DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER

  CONSTRUCTOR                    = DxeCrc32GuidedSectionExtractLibConstructor

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 EBC
#

[Sources]
  DxeCrc32GuidedSectionExtractLib.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  ExtractGuidedSectionLib
  UefiBootServicesTableLib
  DebugLib
  BaseMemoryLib

[Guids]
  gEfiCrc32GuidedSectionExtractionGuid             ## PRODUCES ## UNDEFINED

[Protocols]
  gEfiSecurityPolicyProtocolGuid                   ## SOMETIMES_CONSUMES # Set platform override AUTH status if exist
