Home | History | Annotate | Download | only in DxeImageVerificationLib
      1 ## @file

      2 #  Provides security service of image verification

      3 #

      4 #  This library hooks LoadImage() API to verify every image by the verification policy.

      5 #

      6 #  Caution: This module requires additional review when modified.

      7 #  This library will have external input - PE/COFF image.

      8 #  This external input must be validated carefully to avoid security issues such as

      9 #  buffer overflow or integer overflow.

     10 #

     11 # Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>

     12 # This program and the accompanying materials

     13 # are licensed and made available under the terms and conditions of the BSD License

     14 # which accompanies this distribution. The full text of the license may be found at

     15 # http://opensource.org/licenses/bsd-license.php

     16 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,

     17 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

     18 #

     19 ##

     20 
     21 [Defines]
     22   INF_VERSION                    = 0x00010005
     23   BASE_NAME                      = DxeImageVerificationLib
     24   MODULE_UNI_FILE                = DxeImageVerificationLib.uni
     25   FILE_GUID                      = 0CA970E1-43FA-4402-BC0A-81AF336BFFD6
     26   MODULE_TYPE                    = DXE_DRIVER
     27   VERSION_STRING                 = 1.0
     28   LIBRARY_CLASS                  = NULL|DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER
     29   CONSTRUCTOR                    = DxeImageVerificationLibConstructor
     30 
     31 #

     32 # The following information is for reference only and not required by the build tools.

     33 #

     34 #  VALID_ARCHITECTURES           = IA32 X64 IPF EBC

     35 #

     36 
     37 [Sources]
     38   DxeImageVerificationLib.c
     39   DxeImageVerificationLib.h
     40   Measurement.c
     41 
     42 [Packages]
     43   MdePkg/MdePkg.dec
     44   MdeModulePkg/MdeModulePkg.dec
     45   CryptoPkg/CryptoPkg.dec
     46   SecurityPkg/SecurityPkg.dec
     47 
     48 [LibraryClasses]
     49   MemoryAllocationLib
     50   BaseLib
     51   UefiLib
     52   UefiBootServicesTableLib
     53   UefiRuntimeServicesTableLib
     54   BaseMemoryLib
     55   DebugLib
     56   DevicePathLib
     57   BaseCryptLib
     58   SecurityManagementLib
     59   PeCoffLib
     60   TpmMeasurementLib
     61 
     62 [Protocols]
     63   gEfiFirmwareVolume2ProtocolGuid       ## SOMETIMES_CONSUMES

     64   gEfiBlockIoProtocolGuid               ## SOMETIMES_CONSUMES

     65   gEfiSimpleFileSystemProtocolGuid      ## SOMETIMES_CONSUMES

     66 
     67 [Guids]
     68   ## SOMETIMES_CONSUMES   ## Variable:L"DB"

     69   ## SOMETIMES_CONSUMES   ## Variable:L"DBX"

     70   ## SOMETIMES_CONSUMES   ## Variable:L"DBT"

     71   ## PRODUCES             ## SystemTable

     72   ## CONSUMES             ## SystemTable

     73   gEfiImageSecurityDatabaseGuid
     74 
     75   ## SOMETIMES_CONSUMES   ## GUID       # Unique ID for the type of the signature.

     76   ## SOMETIMES_PRODUCES   ## GUID       # Unique ID for the type of the signature.

     77   gEfiCertSha1Guid
     78 
     79   ## SOMETIMES_CONSUMES   ## GUID       # Unique ID for the type of the signature.

     80   ## SOMETIMES_PRODUCES   ## GUID       # Unique ID for the type of the signature.

     81   gEfiCertSha256Guid
     82 
     83   ## SOMETIMES_CONSUMES   ## GUID       # Unique ID for the type of the signature.

     84   ## SOMETIMES_PRODUCES   ## GUID       # Unique ID for the type of the signature.

     85   gEfiCertSha384Guid
     86 
     87   ## SOMETIMES_CONSUMES   ## GUID       # Unique ID for the type of the signature.

     88   ## SOMETIMES_PRODUCES   ## GUID       # Unique ID for the type of the signature.

     89   gEfiCertSha512Guid
     90 
     91   gEfiCertX509Guid                      ## SOMETIMES_CONSUMES    ## GUID     # Unique ID for the type of the signature.

     92   gEfiCertX509Sha256Guid                ## SOMETIMES_CONSUMES    ## GUID     # Unique ID for the type of the signature.

     93   gEfiCertX509Sha384Guid                ## SOMETIMES_CONSUMES    ## GUID     # Unique ID for the type of the signature.

     94   gEfiCertX509Sha512Guid                ## SOMETIMES_CONSUMES    ## GUID     # Unique ID for the type of the signature.

     95   gEfiCertPkcs7Guid                     ## SOMETIMES_CONSUMES    ## GUID     # Unique ID for the type of the certificate.

     96 
     97 [Pcd]
     98   gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy          ## SOMETIMES_CONSUMES

     99   gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy     ## SOMETIMES_CONSUMES

    100   gEfiSecurityPkgTokenSpaceGuid.PcdFixedMediaImageVerificationPolicy         ## SOMETIMES_CONSUMES

    101