VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/Firmware/CryptoPkg/CryptoPkg.dsc

Last change on this file was 105670, checked in by vboxsync, 6 months ago

Devices/EFI/FirmwareNew: Merge edk2-stable-202405 and make it build on aarch64, bugref:4643

  • Property svn:eol-style set to native
File size: 29.6 KB
Line 
1## @file
2# Cryptographic Library Package for UEFI Security Implementation.
3# PEIM, DXE Driver, and SMM Driver with all crypto services enabled.
4#
5# Copyright (c) 2009 - 2022, Intel Corporation. All rights reserved.<BR>
6# Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
7# Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.<BR>
8# SPDX-License-Identifier: BSD-2-Clause-Patent
9#
10##
11
12################################################################################
13#
14# Defines Section - statements that will be processed to create a Makefile.
15#
16################################################################################
17[Defines]
18 PLATFORM_NAME = CryptoPkg
19 PLATFORM_GUID = E1063286-6C8C-4c25-AEF0-67A9A5B6E6B6
20 PLATFORM_VERSION = 0.98
21 DSC_SPECIFICATION = 0x00010005
22 SUPPORTED_ARCHITECTURES = IA32|X64|ARM|AARCH64|RISCV64|LOONGARCH64
23 BUILD_TARGETS = DEBUG|RELEASE|NOOPT
24 SKUID_IDENTIFIER = DEFAULT
25
26 #
27 # Flavor of PEI, DXE, SMM modules to build.
28 # Must be one of ALL, NONE, MIN_PEI, MIN_DXE_MIN_SMM, TARGET_UINT_TESTS.
29 # Default is ALL that is used for package build verification.
30 # ALL - Build PEIM, DXE, and SMM drivers. Protocols and PPIs
31 # publish all services.
32 # NONE - Build PEIM, DXE, and SMM drivers. Protocols and PPIs
33 # publish no services. Used to verify compiler/linker
34 # optimizations are working correctly.
35 # MIN_PEI - Build PEIM with PPI that publishes minimum required
36 # services.
37 # MIN_DXE_MIN_SMM - Build DXE and SMM drivers with Protocols that publish
38 # minimum required services.
39 # TARGET_UNIT_TESTS - Build target-based unit tests
40 #
41 DEFINE CRYPTO_SERVICES = ALL
42!if $(CRYPTO_SERVICES) IN "ALL NONE MIN_PEI MIN_DXE_MIN_SMM TARGET_UNIT_TESTS"
43!else
44 !error CRYPTO_SERVICES must be set to one of ALL NONE MIN_PEI MIN_DXE_MIN_SMM TARGET_UNIT_TESTS.
45!endif
46
47#
48# Define different OUTPUT_DIRECTORY for each CRYPTO_SERVICES profile
49#
50!if $(CRYPTO_SERVICES) == ALL
51 OUTPUT_DIRECTORY = Build/CryptoPkg/All
52!endif
53!if $(CRYPTO_SERVICES) == NONE
54 OUTPUT_DIRECTORY = Build/CryptoPkg/None
55!endif
56!if $(CRYPTO_SERVICES) == MIN_PEI
57 OUTPUT_DIRECTORY = Build/CryptoPkg/MinPei
58!endif
59!if $(CRYPTO_SERVICES) == MIN_DXE_MIN_SMM
60 OUTPUT_DIRECTORY = Build/CryptoPkg/MinDxeMinSmm
61!endif
62!if $(CRYPTO_SERVICES) == TARGET_UNIT_TESTS
63 OUTPUT_DIRECTORY = Build/CryptoPkg/TagetUnitTests
64!endif
65
66#
67# Define FILE_GUID names/values for CryptoPei, CryptopDxe, and CryptoSmm
68# drivers that are linked with different OpensslLib instances
69#
70 DEFINE PEI_CRYPTO_GUID = C693A250-6B36-49B9-B7F3-7283F8136A72
71 DEFINE PEI_STD_GUID = EBD49F5C-6D8B-40D1-A56D-9AFA485A8661
72 DEFINE PEI_FULL_GUID = D51FCE59-6860-49C0-9B35-984470735D17
73 DEFINE PEI_STD_ACCEL_GUID = DCC9CB49-7BE2-47C6-864E-6DCC932360F9
74 DEFINE PEI_FULL_ACCEL_GUID = A10827AD-7598-4955-B661-52EE2B62B057
75 DEFINE DXE_CRYPTO_GUID = 31C17C54-325D-47D5-8622-888098F10E44
76 DEFINE DXE_STD_GUID = ADD6D05A-52A2-437B-98E7-DBFDA89352CD
77 DEFINE DXE_FULL_GUID = AA83B296-F6EA-447F-B013-E80E98629CF8
78 DEFINE DXE_STD_ACCEL_GUID = 9FBDAD27-910C-4229-9EFF-A93BB5FE18C6
79 DEFINE DXE_FULL_ACCEL_GUID = 41A491D1-A972-468B-A299-DABF415A43B7
80 DEFINE SMM_CRYPTO_GUID = 1A1C9E13-5722-4636-AB73-31328EDE8BAF
81 DEFINE SMM_STD_GUID = E4D7D1E3-E886-4412-A442-EFD6F2502DD3
82 DEFINE SMM_FULL_GUID = 1930CE7E-6598-48ED-8AB1-EBE7E85EC254
83 DEFINE SMM_STD_ACCEL_GUID = 828959D3-CEA6-4B79-B1FC-5AFA0D7F2144
84 DEFINE SMM_FULL_ACCEL_GUID = C1760694-AB3A-4532-8C6D-52D8F86EB1AA
85
86!if $(CRYPTO_SERVICES) == TARGET_UNIT_TESTS
87!include UnitTestFrameworkPkg/UnitTestFrameworkPkgTarget.dsc.inc
88!endif
89
90################################################################################
91#
92# Library Class section - list of all Library Classes needed by this Platform.
93#
94################################################################################
95
96!include MdePkg/MdeLibs.dsc.inc
97
98[LibraryClasses]
99 BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
100 BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
101 DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
102 SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf
103 SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf
104 TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
105 RngLib|MdePkg/Library/BaseRngLibNull/BaseRngLibNull.inf
106 PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
107 DebugLib|MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
108 DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
109 OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
110 HashApiLib|CryptoPkg/Library/BaseHashApiLib/BaseHashApiLib.inf
111 OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf
112 IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
113
114[LibraryClasses.IA32, LibraryClasses.X64, LibraryClasses.AARCH64]
115 RngLib|MdePkg/Library/BaseRngLib/BaseRngLib.inf
116
117[LibraryClasses.ARM, LibraryClasses.AARCH64]
118 ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
119 #
120 # It is not possible to prevent the ARM compiler for generic intrinsic functions.
121 # This library provides the instrinsic functions generate by a given compiler.
122 # [LibraryClasses.ARM, LibraryClasses.AARCH64] and NULL mean link this library
123 # into all ARM and AARCH64 images.
124 #
125 NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
126
127 # Add support for stack protector
128 NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf
129
130[LibraryClasses.ARM]
131 ArmSoftFloatLib|ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf
132
133[LibraryClasses.common.SEC]
134 BaseCryptLib|CryptoPkg/Library/BaseCryptLib/SecCryptLib.inf
135 TlsLib|CryptoPkg/Library/TlsLibNull/TlsLibNull.inf
136
137[LibraryClasses.common.PEIM]
138 PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf
139 PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
140 PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
141 MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
142 HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
143 PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
144 ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
145 BaseCryptLib|CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf
146 TlsLib|CryptoPkg/Library/TlsLibNull/TlsLibNull.inf
147
148[LibraryClasses.IA32.PEIM, LibraryClasses.X64.PEIM]
149 PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointerLibIdt.inf
150
151[LibraryClasses.common.DXE_DRIVER]
152 UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
153 UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
154 UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
155 MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
156 ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
157 PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
158 BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
159 TlsLib|CryptoPkg/Library/TlsLib/TlsLib.inf
160
161[LibraryClasses.common.DXE_SMM_DRIVER]
162 UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
163 UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
164 SmmServicesTableLib|MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.inf
165 MmServicesTableLib|MdePkg/Library/MmServicesTableLib/MmServicesTableLib.inf
166 MemoryAllocationLib|MdePkg/Library/SmmMemoryAllocationLib/SmmMemoryAllocationLib.inf
167 ReportStatusCodeLib|MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCodeLib.inf
168 PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
169 BaseCryptLib|CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf
170 TlsLib|CryptoPkg/Library/TlsLibNull/TlsLibNull.inf
171
172[LibraryClasses.common.UEFI_APPLICATION]
173 UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
174 UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
175 UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
176 MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
177 ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf
178 PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
179
180################################################################################
181#
182# Pcd Section - list of all EDK II PCD Entries defined by this Platform
183#
184################################################################################
185[PcdsFixedAtBuild]
186 gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x0f
187 gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000000
188 gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x06
189
190#
191# For ALL and TARGET_UINT_TESTS profiles, enable all non-deprecated families
192# and services in PcdCryptoServiceFamilyEnable.
193#
194!if $(CRYPTO_SERVICES) IN "ALL TARGET_UINT_TESTS"
195[PcdsFixedAtBuild]
196 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.HmacSha256.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
197 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.HmacSha384.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
198 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Pkcs.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
199 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Dh.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
200 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Random.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
201 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Rsa.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
202 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Sha1.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
203 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Sha256.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
204 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Sha384.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
205 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Sha512.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
206 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.X509.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
207 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Aes.Services.GetContextSize | TRUE
208 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Aes.Services.Init | TRUE
209 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Aes.Services.CbcEncrypt | TRUE
210 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Aes.Services.CbcDecrypt | TRUE
211 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Arc4.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
212 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Sm3.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
213 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Hkdf.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
214 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Tls.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
215 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.TlsSet.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
216 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.TlsGet.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
217 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.RsaPss.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
218 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.ParallelHash.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
219 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.AeadAesGcm.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
220 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Bn.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
221 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Ec.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
222!endif
223
224#
225# Enable minimum set of families/services in PcdCryptoServiceFamilyEnable
226# required by typical PEI phase.
227#
228!if $(CRYPTO_SERVICES) == MIN_PEI
229[PcdsFixedAtBuild]
230 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.HmacSha256.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
231 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.HmacSha384.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
232 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Sha1.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
233 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Sha256.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
234 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Sha384.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
235 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Sha512.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
236 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Sm3.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
237 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Rsa.Services.Pkcs1Verify | TRUE
238 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Rsa.Services.New | TRUE
239 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Rsa.Services.Free | TRUE
240 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Rsa.Services.SetKey | TRUE
241 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Pkcs.Services.Pkcs5HashPassword | TRUE
242 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Aes.Services.GetContextSize | TRUE
243 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Aes.Services.Init | TRUE
244 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Aes.Services.CbcEncrypt | TRUE
245 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Aes.Services.CbcDecrypt | TRUE
246 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Hkdf.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
247!endif
248
249#
250# Enable minimum set of families/services in PcdCryptoServiceFamilyEnable
251# required by typical DXE and SMM phases.
252#
253!if $(CRYPTO_SERVICES) == MIN_DXE_MIN_SMM
254[PcdsFixedAtBuild]
255 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.HmacSha256.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
256 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.HmacSha384.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
257 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Pkcs.Services.Pkcs1v2Encrypt | TRUE
258 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Pkcs.Services.Pkcs5HashPassword | TRUE
259 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Pkcs.Services.Pkcs7Verify | TRUE
260 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Pkcs.Services.VerifyEKUsInPkcs7Signature | TRUE
261 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Pkcs.Services.Pkcs7GetSigners | TRUE
262 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Pkcs.Services.Pkcs7FreeSigners | TRUE
263 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Pkcs.Services.AuthenticodeVerify | TRUE
264 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Random.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
265 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Rsa.Services.Pkcs1Verify | TRUE
266 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Rsa.Services.New | TRUE
267 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Rsa.Services.Free | TRUE
268 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Rsa.Services.SetKey | TRUE
269 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Rsa.Services.GetPublicKeyFromX509 | TRUE
270 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Sha1.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
271 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Sha256.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
272 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Sha256.Services.HashAll | FALSE
273 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.X509.Services.GetSubjectName | TRUE
274 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.X509.Services.GetCommonName | TRUE
275 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.X509.Services.GetOrganizationName | TRUE
276 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.X509.Services.GetTBSCert | TRUE
277 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Tls.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
278 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.TlsSet.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
279 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.TlsGet.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
280 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Aes.Services.GetContextSize | TRUE
281 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Aes.Services.Init | TRUE
282 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Aes.Services.CbcEncrypt | TRUE
283 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Aes.Services.CbcDecrypt | TRUE
284 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.AeadAesGcm.Services.Encrypt | TRUE
285 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.AeadAesGcm.Services.Decrypt | TRUE
286 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Hkdf.Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY
287!endif
288
289###################################################################################################
290#
291# Components Section - list of the modules and components that will be processed by compilation
292# tools and the EDK II tools to generate PE32/PE32+/Coff image files.
293#
294# Note: The EDK II DSC file is not used to specify how compiled binary images get placed
295# into firmware volume images. This section is just a list of modules to compile from
296# source into UEFI-compliant binaries.
297# It is the FDF file that contains information on combining binary files into firmware
298# volume images, whose concept is beyond UEFI and is described in PI specification.
299# Binary modules do not need to be listed in this section, as they should be
300# specified in the FDF file. For example: Shell binary (Shell_Full.efi), FAT binary (Fat.efi),
301# Logo (Logo.bmp), and etc.
302# There may also be modules listed in this section that are not required in the FDF file,
303# When a module listed here is excluded from FDF file, then UEFI-compliant binary will be
304# generated for it, but the binary will not be put into any firmware volume.
305#
306###################################################################################################
307
308#
309# If profile is TARGET_UNIT_TESTS, then build target-based unit tests
310# using the OpensslLib, BaseCryptLib, and TlsLib with the largest set of
311# available services.
312#
313!if $(CRYPTO_SERVICES) == TARGET_UNIT_TESTS
314[Components.IA32, Components.X64, Components.ARM, Components.AARCH64]
315 #
316 # Target based unit tests
317 #
318 CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLibShell.inf {
319 <LibraryClasses>
320 OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
321 BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
322 TlsLib|CryptoPkg/Library/TlsLib/TlsLib.inf
323 <BuildOptions>
324 MSFT:*_*_*_DLINK_FLAGS = /ALIGN:4096 /FILEALIGN:4096 /SUBSYSTEM:CONSOLE
325 MSFT:DEBUG_*_*_DLINK_FLAGS = /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT) /BASE:0x10000
326 MSFT:DEBUG_*_*_DLINK_FLAGS = /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT) /BASE:0x10000
327 MSFT:NOOPT_*_*_DLINK_FLAGS = /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT) /BASE:0x10000
328 }
329
330[Components.IA32, Components.X64]
331 CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLibShell.inf {
332 <Defines>
333 FILE_GUID = B91B9A95-4D52-4501-A98F-A1711C14ED93
334 <LibraryClasses>
335 OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
336 BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
337 TlsLib|CryptoPkg/Library/TlsLib/TlsLib.inf
338 <BuildOptions>
339 MSFT:*_*_*_DLINK_FLAGS = /ALIGN:4096 /FILEALIGN:4096 /SUBSYSTEM:CONSOLE
340 MSFT:DEBUG_*_*_DLINK_FLAGS = /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT) /BASE:0x10000
341 MSFT:DEBUG_*_*_DLINK_FLAGS = /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT) /BASE:0x10000
342 MSFT:NOOPT_*_*_DLINK_FLAGS = /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT) /BASE:0x10000
343 }
344
345[Components.RISCV64]
346 CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLibShell.inf {
347 <LibraryClasses>
348 OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf
349 BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
350 TlsLib|CryptoPkg/Library/TlsLib/TlsLib.inf
351 }
352!endif
353
354#
355# If profile is ALL, then do verification build of all library instances.
356#
357!if $(CRYPTO_SERVICES) == ALL
358[Components]
359 #
360 # Build verification of all library instances
361 #
362 CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
363 CryptoPkg/Library/BaseCryptLib/SecCryptLib.inf
364 CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf
365 CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf
366 CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
367 CryptoPkg/Library/BaseCryptLibMbedTls/BaseCryptLib.inf
368 CryptoPkg/Library/BaseCryptLibMbedTls/SecCryptLib.inf
369 CryptoPkg/Library/BaseCryptLibMbedTls/PeiCryptLib.inf
370 CryptoPkg/Library/BaseCryptLibMbedTls/SmmCryptLib.inf
371 CryptoPkg/Library/BaseCryptLibMbedTls/RuntimeCryptLib.inf
372 CryptoPkg/Library/BaseCryptLibMbedTls/TestBaseCryptLib.inf
373 CryptoPkg/Library/MbedTlsLib/MbedTlsLib.inf
374 CryptoPkg/Library/MbedTlsLib/MbedTlsLibFull.inf
375 CryptoPkg/Library/BaseCryptLibNull/BaseCryptLibNull.inf
376 CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
377 CryptoPkg/Library/TlsLib/TlsLib.inf
378 CryptoPkg/Library/TlsLibNull/TlsLibNull.inf
379 CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
380 CryptoPkg/Library/OpensslLib/OpensslLib.inf
381 CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
382 CryptoPkg/Library/BaseHashApiLib/BaseHashApiLib.inf
383 CryptoPkg/Library/BaseCryptLibOnProtocolPpi/PeiCryptLib.inf
384 CryptoPkg/Library/BaseCryptLibOnProtocolPpi/DxeCryptLib.inf
385 CryptoPkg/Library/BaseCryptLibOnProtocolPpi/SmmCryptLib.inf
386 #
387 # Build verification of target-based unit tests
388 #
389 CryptoPkg/Test/UnitTest/Library/BaseCryptLib/TestBaseCryptLibShell.inf {
390 <LibraryClasses>
391 UnitTestLib|UnitTestFrameworkPkg/Library/UnitTestLib/UnitTestLib.inf
392 UnitTestPersistenceLib|UnitTestFrameworkPkg/Library/UnitTestPersistenceLibNull/UnitTestPersistenceLibNull.inf
393 UnitTestResultReportLib|UnitTestFrameworkPkg/Library/UnitTestResultReportLib/UnitTestResultReportLibConOut.inf
394 OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf
395 BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
396 TlsLib|CryptoPkg/Library/TlsLib/TlsLib.inf
397 }
398
399[Components.IA32, Components.X64]
400 #
401 # Build verification of IA32/X64 specific libraries
402 #
403 CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf
404 CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
405!endif
406
407#
408# If profile is ALL or NONE or MIN_PEI, then build CryptoPei with all supported
409# OpensslLib instances.
410#
411!if $(CRYPTO_SERVICES) in "ALL NONE MIN_PEI"
412[Components]
413 #
414 # CryptoPei with OpensslLib instance without SSL or EC services
415 #
416 CryptoPkg/Driver/CryptoPei.inf {
417 <Defines>
418 FILE_GUID = $(PEI_CRYPTO_GUID)
419 <LibraryClasses>
420 OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
421 }
422 #
423 # CryptoPei with OpensslLib instance without EC services
424 #
425 CryptoPkg/Driver/CryptoPei.inf {
426 <Defines>
427 FILE_GUID = $(PEI_STD_GUID)
428 <LibraryClasses>
429 OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf
430 }
431[Components.IA32, Components.X64, Components.ARM, Components.AARCH64]
432 #
433 # CryptoPei with OpensslLib instance with all services
434 #
435 CryptoPkg/Driver/CryptoPei.inf {
436 <Defines>
437 FILE_GUID = $(PEI_FULL_GUID)
438 <LibraryClasses>
439 OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
440 }
441
442[Components.IA32, Components.X64]
443 #
444 # CryptoPei with IA32/X64 performance optimized OpensslLib instance without EC services
445 # IA32/X64 assembly optimizations required larger alignments
446 #
447 CryptoPkg/Driver/CryptoPei.inf {
448 <Defines>
449 FILE_GUID = $(PEI_STD_ACCEL_GUID)
450 <LibraryClasses>
451 OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf
452 <BuildOptions>
453 MSFT:*_*_IA32_DLINK_FLAGS = /ALIGN:64
454 MSFT:*_*_X64_DLINK_FLAGS = /ALIGN:256
455 }
456
457 #
458 # CryptoPei with IA32/X64 performance optimized OpensslLib instance all services
459 # IA32/X64 assembly optimizations required larger alignments
460 #
461 CryptoPkg/Driver/CryptoPei.inf {
462 <Defines>
463 FILE_GUID = $(PEI_FULL_ACCEL_GUID)
464 <LibraryClasses>
465 OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
466 <BuildOptions>
467 MSFT:*_*_IA32_DLINK_FLAGS = /ALIGN:4096
468 MSFT:*_*_X64_DLINK_FLAGS = /ALIGN:4096
469 }
470!endif
471
472#
473# If profile is ALL or NONE or MIN_DXE_MIN_SMM, then build CryptoDxe and
474# CryptoSmm using all supported OpensslLib instances.
475#
476!if $(CRYPTO_SERVICES) in "ALL NONE MIN_DXE_MIN_SMM"
477[Components]
478 #
479 # CryptoDxe with OpensslLib instance with no SSL or EC services
480 #
481 CryptoPkg/Driver/CryptoDxe.inf {
482 <Defines>
483 FILE_GUID = $(DXE_CRYPTO_GUID)
484 <LibraryClasses>
485 OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
486 TlsLib|CryptoPkg/Library/TlsLibNull/TlsLibNull.inf
487 }
488 #
489 # CryptoDxe with OpensslLib instance with no EC services
490 #
491 CryptoPkg/Driver/CryptoDxe.inf {
492 <Defines>
493 FILE_GUID = $(DXE_STD_GUID)
494 <LibraryClasses>
495 OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf
496 }
497[Components.IA32, Components.X64, Components.ARM, Components.AARCH64]
498 #
499 # CryptoDxe with OpensslLib instance with all services
500 #
501 CryptoPkg/Driver/CryptoDxe.inf {
502 <Defines>
503 FILE_GUID = $(DXE_FULL_GUID)
504 <LibraryClasses>
505 OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
506 }
507
508[Components.IA32, Components.X64]
509 #
510 # CryptoDxe with IA32/X64 performance optimized OpensslLib instance with no EC services
511 # with TLS feature enabled.
512 # IA32/X64 assembly optimizations required larger alignments
513 #
514 CryptoPkg/Driver/CryptoDxe.inf {
515 <Defines>
516 FILE_GUID = $(DXE_STD_ACCEL_GUID)
517 <LibraryClasses>
518 OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf
519 <BuildOptions>
520 MSFT:*_*_IA32_DLINK_FLAGS = /ALIGN:64
521 MSFT:*_*_X64_DLINK_FLAGS = /ALIGN:256
522 }
523 #
524 # CryptoDxe with IA32/X64 performance optimized OpensslLib instance with all services.
525 # IA32/X64 assembly optimizations required larger alignments
526 #
527 CryptoPkg/Driver/CryptoDxe.inf {
528 <Defines>
529 FILE_GUID = $(DXE_FULL_ACCEL_GUID)
530 <LibraryClasses>
531 OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
532 <BuildOptions>
533 MSFT:*_*_IA32_DLINK_FLAGS = /ALIGN:4096
534 MSFT:*_*_X64_DLINK_FLAGS = /ALIGN:4096
535 }
536 #
537 # CryptoSmm with OpensslLib instance with no SSL or EC services
538 #
539 CryptoPkg/Driver/CryptoSmm.inf {
540 <Defines>
541 FILE_GUID = $(SMM_CRYPTO_GUID)
542 <LibraryClasses>
543 OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
544 }
545 #
546 # CryptoSmm with OpensslLib instance with no SSL services
547 #
548 CryptoPkg/Driver/CryptoSmm.inf {
549 <Defines>
550 FILE_GUID = $(SMM_STD_GUID)
551 <LibraryClasses>
552 OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf
553 }
554 #
555 # CryptoSmm with OpensslLib instance with no all services
556 #
557 CryptoPkg/Driver/CryptoSmm.inf {
558 <Defines>
559 FILE_GUID = $(SMM_FULL_GUID)
560 <LibraryClasses>
561 OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibFull.inf
562 }
563 #
564 # CryptoSmm with IA32/X64 performance optimized OpensslLib instance with no EC services
565 # IA32/X64 assembly optimizations required larger alignments
566 #
567 CryptoPkg/Driver/CryptoSmm.inf {
568 <Defines>
569 FILE_GUID = $(SMM_STD_ACCEL_GUID)
570 <LibraryClasses>
571 OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibAccel.inf
572 <BuildOptions>
573 MSFT:*_*_IA32_DLINK_FLAGS = /ALIGN:64
574 MSFT:*_*_X64_DLINK_FLAGS = /ALIGN:256
575 }
576 #
577 # CryptoSmm with IA32/X64 performance optimized OpensslLib instance with all services
578 # IA32/X64 assembly optimizations required larger alignments
579 #
580 CryptoPkg/Driver/CryptoSmm.inf {
581 <Defines>
582 FILE_GUID = $(SMM_FULL_ACCEL_GUID)
583 <LibraryClasses>
584 OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLibFullAccel.inf
585 <BuildOptions>
586 MSFT:*_*_IA32_DLINK_FLAGS = /ALIGN:4096
587 MSFT:*_*_X64_DLINK_FLAGS = /ALIGN:4096
588 }
589!endif
590
591[BuildOptions]
592 RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
593 *_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette