]> git.proxmox.com Git - mirror_edk2.git/blame - CryptoPkg/Include/Pcd/PcdCryptoServiceFamilyEnable.h
CryptoPkg: Add BigNum API to DXE and protocol
[mirror_edk2.git] / CryptoPkg / Include / Pcd / PcdCryptoServiceFamilyEnable.h
CommitLineData
3b0e0430
MK
1/** @file\r
2 Defines the PCD_CRYPTO_SERVICE_FAMILY_ENABLE structure associated with\r
3 gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.\r
4\r
c1e66210 5 Copyright (c) 2019 - 2022, Intel Corporation. All rights reserved.<BR>\r
3b0e0430
MK
6 SPDX-License-Identifier: BSD-2-Clause-Patent\r
7\r
8**/\r
9\r
10#ifndef __PCD_CRYPTO_SERVICE_FAMILY_ENABLE_H__\r
11#define __PCD_CRYPTO_SERVICE_FAMILY_ENABLE_H__\r
12\r
13///\r
14/// Define used to enable all the crypto services in a family\r
15///\r
16#define PCD_CRYPTO_SERVICE_ENABLE_FAMILY 0xFFFFFFFF\r
17\r
18///\r
19/// PCD_CRYPTO_SERVICE_FAMILY_ENABLE structure. Each field in this structure\r
20/// is associated with a service in the EDK II Crypto Protocol/PPI. This allows\r
21/// each individual service to be enabled/disabled in a DSC file. Services are\r
22/// also grouped into families. Unions are used to support enabling or\r
23/// disabling an entire family in a single DSC statement.\r
24///\r
25typedef struct {\r
26 union {\r
27 struct {\r
7c342378
MK
28 UINT8 New : 1;\r
29 UINT8 Free : 1;\r
30 UINT8 SetKey : 1;\r
31 UINT8 Duplicate : 1;\r
32 UINT8 Update : 1;\r
33 UINT8 Final : 1;\r
3b0e0430
MK
34 } Services;\r
35 UINT32 Family;\r
36 } HmacMd5;\r
37 union {\r
38 struct {\r
7c342378
MK
39 UINT8 New : 1;\r
40 UINT8 Free : 1;\r
41 UINT8 SetKey : 1;\r
42 UINT8 Duplicate : 1;\r
43 UINT8 Update : 1;\r
44 UINT8 Final : 1;\r
3b0e0430
MK
45 } Services;\r
46 UINT32 Family;\r
47 } HmacSha1;\r
48 union {\r
49 struct {\r
7c342378
MK
50 UINT8 New : 1;\r
51 UINT8 Free : 1;\r
52 UINT8 SetKey : 1;\r
53 UINT8 Duplicate : 1;\r
54 UINT8 Update : 1;\r
55 UINT8 Final : 1;\r
7bb42e32 56 UINT8 All : 1;\r
3b0e0430
MK
57 } Services;\r
58 UINT32 Family;\r
59 } HmacSha256;\r
7bb42e32
QZ
60 union {\r
61 struct {\r
62 UINT8 New : 1;\r
63 UINT8 Free : 1;\r
64 UINT8 SetKey : 1;\r
65 UINT8 Duplicate : 1;\r
66 UINT8 Update : 1;\r
67 UINT8 Final : 1;\r
68 UINT8 All : 1;\r
69 } Services;\r
70 UINT32 Family;\r
71 } HmacSha384;\r
3b0e0430
MK
72 union {\r
73 struct {\r
7c342378
MK
74 UINT8 GetContextSize : 1;\r
75 UINT8 Init : 1;\r
76 UINT8 Duplicate : 1;\r
77 UINT8 Update : 1;\r
78 UINT8 Final : 1;\r
79 UINT8 HashAll : 1;\r
3b0e0430
MK
80 } Services;\r
81 UINT32 Family;\r
82 } Md4;\r
83 union {\r
84 struct {\r
7c342378
MK
85 UINT8 GetContextSize : 1;\r
86 UINT8 Init : 1;\r
87 UINT8 Duplicate : 1;\r
88 UINT8 Update : 1;\r
89 UINT8 Final : 1;\r
90 UINT8 HashAll : 1;\r
3b0e0430
MK
91 } Services;\r
92 UINT32 Family;\r
93 } Md5;\r
94 union {\r
95 struct {\r
7c342378
MK
96 UINT8 Pkcs1v2Encrypt : 1;\r
97 UINT8 Pkcs5HashPassword : 1;\r
98 UINT8 Pkcs7Verify : 1;\r
99 UINT8 VerifyEKUsInPkcs7Signature : 1;\r
100 UINT8 Pkcs7GetSigners : 1;\r
101 UINT8 Pkcs7FreeSigners : 1;\r
102 UINT8 Pkcs7Sign : 1;\r
103 UINT8 Pkcs7GetAttachedContent : 1;\r
104 UINT8 Pkcs7GetCertificatesList : 1;\r
105 UINT8 AuthenticodeVerify : 1;\r
106 UINT8 ImageTimestampVerify : 1;\r
3b0e0430
MK
107 } Services;\r
108 UINT32 Family;\r
109 } Pkcs;\r
110 union {\r
111 struct {\r
7c342378
MK
112 UINT8 New : 1;\r
113 UINT8 Free : 1;\r
114 UINT8 GenerateParameter : 1;\r
115 UINT8 SetParameter : 1;\r
116 UINT8 GenerateKey : 1;\r
117 UINT8 ComputeKey : 1;\r
3b0e0430
MK
118 } Services;\r
119 UINT32 Family;\r
120 } Dh;\r
121 union {\r
122 struct {\r
7c342378
MK
123 UINT8 Seed : 1;\r
124 UINT8 Bytes : 1;\r
3b0e0430
MK
125 } Services;\r
126 UINT32 Family;\r
127 } Random;\r
128 union {\r
129 struct {\r
7c342378
MK
130 UINT8 VerifyPkcs1 : 1;\r
131 UINT8 New : 1;\r
132 UINT8 Free : 1;\r
133 UINT8 SetKey : 1;\r
134 UINT8 GetKey : 1;\r
135 UINT8 GenerateKey : 1;\r
136 UINT8 CheckKey : 1;\r
137 UINT8 Pkcs1Sign : 1;\r
138 UINT8 Pkcs1Verify : 1;\r
139 UINT8 GetPrivateKeyFromPem : 1;\r
140 UINT8 GetPublicKeyFromX509 : 1;\r
3b0e0430
MK
141 } Services;\r
142 UINT32 Family;\r
143 } Rsa;\r
144 union {\r
145 struct {\r
7c342378
MK
146 UINT8 GetContextSize : 1;\r
147 UINT8 Init : 1;\r
148 UINT8 Duplicate : 1;\r
149 UINT8 Update : 1;\r
150 UINT8 Final : 1;\r
151 UINT8 HashAll : 1;\r
3b0e0430
MK
152 } Services;\r
153 UINT32 Family;\r
154 } Sha1;\r
155 union {\r
156 struct {\r
7c342378
MK
157 UINT8 GetContextSize : 1;\r
158 UINT8 Init : 1;\r
159 UINT8 Duplicate : 1;\r
160 UINT8 Update : 1;\r
161 UINT8 Final : 1;\r
162 UINT8 HashAll : 1;\r
3b0e0430
MK
163 } Services;\r
164 UINT32 Family;\r
165 } Sha256;\r
166 union {\r
167 struct {\r
7c342378
MK
168 UINT8 GetContextSize : 1;\r
169 UINT8 Init : 1;\r
170 UINT8 Duplicate : 1;\r
171 UINT8 Update : 1;\r
172 UINT8 Final : 1;\r
173 UINT8 HashAll : 1;\r
3b0e0430
MK
174 } Services;\r
175 UINT32 Family;\r
176 } Sha384;\r
177 union {\r
178 struct {\r
7c342378
MK
179 UINT8 GetContextSize : 1;\r
180 UINT8 Init : 1;\r
181 UINT8 Duplicate : 1;\r
182 UINT8 Update : 1;\r
183 UINT8 Final : 1;\r
184 UINT8 HashAll : 1;\r
3b0e0430
MK
185 } Services;\r
186 UINT32 Family;\r
187 } Sha512;\r
188 union {\r
189 struct {\r
7c342378
MK
190 UINT8 GetSubjectName : 1;\r
191 UINT8 GetCommonName : 1;\r
192 UINT8 GetOrganizationName : 1;\r
193 UINT8 VerifyCert : 1;\r
194 UINT8 ConstructCertificate : 1;\r
195 UINT8 ConstructCertificateStack : 1;\r
196 UINT8 ConstructCertificateStackV : 1;\r
197 UINT8 Free : 1;\r
198 UINT8 StackFree : 1;\r
199 UINT8 GetTBSCert : 1;\r
3b0e0430
MK
200 } Services;\r
201 UINT32 Family;\r
202 } X509;\r
203 union {\r
204 struct {\r
7c342378
MK
205 UINT8 GetContextSize : 1;\r
206 UINT8 Init : 1;\r
207 UINT8 EcbEncrypt : 1;\r
208 UINT8 EcbDecrypt : 1;\r
209 UINT8 CbcEncrypt : 1;\r
210 UINT8 CbcDecrypt : 1;\r
3b0e0430
MK
211 } Services;\r
212 UINT32 Family;\r
213 } Tdes;\r
214 union {\r
215 struct {\r
7c342378
MK
216 UINT8 GetContextSize : 1;\r
217 UINT8 Init : 1;\r
218 UINT8 EcbEncrypt : 1;\r
219 UINT8 EcbDecrypt : 1;\r
220 UINT8 CbcEncrypt : 1;\r
221 UINT8 CbcDecrypt : 1;\r
3b0e0430
MK
222 } Services;\r
223 UINT32 Family;\r
224 } Aes;\r
225 union {\r
226 struct {\r
7c342378
MK
227 UINT8 GetContextSize : 1;\r
228 UINT8 Init : 1;\r
229 UINT8 Encrypt : 1;\r
230 UINT8 Decrypt : 1;\r
231 UINT8 Reset : 1;\r
3b0e0430
MK
232 } Services;\r
233 UINT32 Family;\r
234 } Arc4;\r
235 union {\r
236 struct {\r
7c342378
MK
237 UINT8 GetContextSize : 1;\r
238 UINT8 Init : 1;\r
239 UINT8 Duplicate : 1;\r
240 UINT8 Update : 1;\r
241 UINT8 Final : 1;\r
242 UINT8 HashAll : 1;\r
3b0e0430
MK
243 } Services;\r
244 UINT32 Family;\r
245 } Sm3;\r
246 union {\r
247 struct {\r
13364762
QZ
248 UINT8 Sha256ExtractAndExpand : 1;\r
249 UINT8 Sha256Extract : 1;\r
250 UINT8 Sha256Expand : 1;\r
251 UINT8 Sha384ExtractAndExpand : 1;\r
252 UINT8 Sha384Extract : 1;\r
253 UINT8 Sha384Expand : 1;\r
3b0e0430
MK
254 } Services;\r
255 UINT32 Family;\r
256 } Hkdf;\r
257 union {\r
258 struct {\r
7c342378
MK
259 UINT8 Initialize : 1;\r
260 UINT8 CtxFree : 1;\r
261 UINT8 CtxNew : 1;\r
262 UINT8 Free : 1;\r
263 UINT8 New : 1;\r
264 UINT8 InHandshake : 1;\r
265 UINT8 DoHandshake : 1;\r
266 UINT8 HandleAlert : 1;\r
267 UINT8 CloseNotify : 1;\r
268 UINT8 CtrlTrafficOut : 1;\r
269 UINT8 CtrlTrafficIn : 1;\r
270 UINT8 Read : 1;\r
271 UINT8 Write : 1;\r
3b0e0430
MK
272 } Services;\r
273 UINT32 Family;\r
274 } Tls;\r
275 union {\r
276 struct {\r
7c342378
MK
277 UINT8 Version : 1;\r
278 UINT8 ConnectionEnd : 1;\r
279 UINT8 CipherList : 1;\r
280 UINT8 CompressionMethod : 1;\r
281 UINT8 Verify : 1;\r
282 UINT8 VerifyHost : 1;\r
283 UINT8 SessionId : 1;\r
284 UINT8 CaCertificate : 1;\r
285 UINT8 HostPublicCert : 1;\r
286 UINT8 HostPrivateKey : 1;\r
287 UINT8 CertRevocationList : 1;\r
3b0e0430
MK
288 } Services;\r
289 UINT32 Family;\r
290 } TlsSet;\r
291 union {\r
292 struct {\r
7c342378
MK
293 UINT8 Version : 1;\r
294 UINT8 ConnectionEnd : 1;\r
295 UINT8 CurrentCipher : 1;\r
296 UINT8 CurrentCompressionId : 1;\r
297 UINT8 Verify : 1;\r
298 UINT8 SessionId : 1;\r
299 UINT8 ClientRandom : 1;\r
300 UINT8 ServerRandom : 1;\r
301 UINT8 KeyMaterial : 1;\r
302 UINT8 CaCertificate : 1;\r
303 UINT8 HostPublicCert : 1;\r
304 UINT8 HostPrivateKey : 1;\r
305 UINT8 CertRevocationList : 1;\r
3b0e0430
MK
306 } Services;\r
307 UINT32 Family;\r
308 } TlsGet;\r
c1e66210
ZL
309 union {\r
310 struct {\r
311 UINT8 Sign : 1;\r
312 UINT8 Verify : 1;\r
313 } Services;\r
314 UINT32 Family;\r
315 } RsaPss;\r
316 union {\r
317 struct {\r
318 UINT8 HashAll : 1;\r
319 } Services;\r
320 UINT32 Family;\r
321 } ParallelHash;\r
022787f8
QZ
322 union {\r
323 struct {\r
324 UINT8 Encrypt : 1;\r
325 UINT8 Decrypt : 1;\r
326 } Services;\r
327 UINT32 Family;\r
328 } AeadAesGcm;\r
42951543
YL
329 union {\r
330 struct {\r
331 UINT8 Init : 1;\r
332 UINT8 FromBin : 1;\r
333 UINT8 ToBin : 1;\r
334 UINT8 Free : 1;\r
335 UINT8 Add : 1;\r
336 UINT8 Sub : 1;\r
337 UINT8 Mod : 1;\r
338 UINT8 ExpMod : 1;\r
339 UINT8 InverseMod : 1;\r
340 UINT8 Div : 1;\r
341 UINT8 MulMod : 1;\r
342 UINT8 Cmp : 1;\r
343 UINT8 Bits : 1;\r
344 UINT8 Bytes : 1;\r
345 UINT8 IsWord : 1;\r
346 UINT8 IsOdd : 1;\r
347 UINT8 Copy : 1;\r
348 UINT8 ValueOne : 1;\r
349 UINT8 RShift : 1;\r
350 UINT8 ConstTime : 1;\r
351 UINT8 SqrMod : 1;\r
352 UINT8 NewContext : 1;\r
353 UINT8 ContextFree : 1;\r
354 UINT8 SetUint : 1;\r
355 UINT8 AddMod : 1;\r
356 } Services;\r
357 UINT32 Family;\r
358 } Bn;\r
3b0e0430
MK
359} PCD_CRYPTO_SERVICE_FAMILY_ENABLE;\r
360\r
361#endif\r