## @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.<BR>
#  (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>
#  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
