## @file
#  Produces the UEFI Random Number Generator protocol
#
#  This module will leverage Intel Secure Key technology to produce the Random
#  Number Generator protocol, which is used to provide high-quality random numbers
#  for use in applications, or entropy for seeding other random number generators.
#  Refer to http://software.intel.com/en-us/articles/intel-digital-random-number
#  -generator-drng-software-implementation-guide/ for more information about Intel
#  Secure Key technology.
#
#  Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.
#  (C) Copyright 2015 Hewlett Packard Enterprise Development LP
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
##
[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = RngDxe
  FILE_GUID                      = B981A835-6EE8-4f4c-AE0B-210AA0BFBF01
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = RngDriverEntry
  MODULE_UNI_FILE                = RngDxe.uni
#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 AARCH64
#
[Sources.common]
  RngDxe.c
  RngDxeInternals.h
[Sources.IA32, Sources.X64]
  Rand/RngDxe.c
  Rand/RdRand.c
  Rand/RdRand.h
  Rand/AesCore.c
  Rand/AesCore.h
[Sources.AARCH64]
  AArch64/RngDxe.c
[Packages]
  MdePkg/MdePkg.dec
  SecurityPkg/SecurityPkg.dec
[LibraryClasses]
  UefiLib
  UefiBootServicesTableLib
  BaseLib
  DebugLib
  UefiDriverEntryPoint
  TimerLib
  RngLib
[Guids]
  gEfiRngAlgorithmSp80090Hash256Guid  ## SOMETIMES_PRODUCES    ## GUID        # Unique ID of the algorithm for RNG
  gEfiRngAlgorithmSp80090Hmac256Guid  ## SOMETIMES_PRODUCES    ## GUID        # Unique ID of the algorithm for RNG
  gEfiRngAlgorithmSp80090Ctr256Guid   ## SOMETIMES_PRODUCES    ## GUID        # Unique ID of the algorithm for RNG
  gEfiRngAlgorithmX9313DesGuid        ## SOMETIMES_PRODUCES    ## GUID        # Unique ID of the algorithm for RNG
  gEfiRngAlgorithmX931AesGuid         ## SOMETIMES_PRODUCES    ## GUID        # Unique ID of the algorithm for RNG
  gEfiRngAlgorithmRaw                 ## SOMETIMES_PRODUCES    ## GUID        # Unique ID of the algorithm for RNG
[Protocols]
  gEfiRngProtocolGuid                ## PRODUCES
[Pcd]
  gEfiSecurityPkgTokenSpaceGuid.PcdCpuRngSupportedAlgorithm      ## CONSUMES
[Depex]
  TRUE
[BuildOptions]
  XCODE:*_*_*_CC_FLAGS = -mmmx -msse
[UserExtensions.TianoCore."ExtraFiles"]
  RngDxeExtra.uni