]> git.proxmox.com Git - mirror_edk2.git/blame - CryptoPkg/Include/Pcd/PcdCryptoServiceFamilyEnable.h
ArmVirtPkg: Apply uncrustify changes
[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
5 Copyright (c) 2019 - 2020, Intel Corporation. All rights reserved.<BR>\r
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
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
34 } Services;\r
35 UINT32 Family;\r
36 } HmacMd5;\r
37 union {\r
38 struct {\r
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
45 } Services;\r
46 UINT32 Family;\r
47 } HmacSha1;\r
48 union {\r
49 struct {\r
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
56 } Services;\r
57 UINT32 Family;\r
58 } HmacSha256;\r
59 union {\r
60 struct {\r
61 UINT8 GetContextSize:1;\r
62 UINT8 Init:1;\r
63 UINT8 Duplicate:1;\r
64 UINT8 Update:1;\r
65 UINT8 Final:1;\r
66 UINT8 HashAll:1;\r
67 } Services;\r
68 UINT32 Family;\r
69 } Md4;\r
70 union {\r
71 struct {\r
72 UINT8 GetContextSize:1;\r
73 UINT8 Init:1;\r
74 UINT8 Duplicate:1;\r
75 UINT8 Update:1;\r
76 UINT8 Final:1;\r
77 UINT8 HashAll:1;\r
78 } Services;\r
79 UINT32 Family;\r
80 } Md5;\r
81 union {\r
82 struct {\r
83 UINT8 Pkcs1v2Encrypt:1;\r
84 UINT8 Pkcs5HashPassword:1;\r
85 UINT8 Pkcs7Verify:1;\r
86 UINT8 VerifyEKUsInPkcs7Signature:1;\r
87 UINT8 Pkcs7GetSigners:1;\r
88 UINT8 Pkcs7FreeSigners:1;\r
89 UINT8 Pkcs7Sign:1;\r
90 UINT8 Pkcs7GetAttachedContent:1;\r
91 UINT8 Pkcs7GetCertificatesList:1;\r
92 UINT8 AuthenticodeVerify:1;\r
93 UINT8 ImageTimestampVerify:1;\r
94 } Services;\r
95 UINT32 Family;\r
96 } Pkcs;\r
97 union {\r
98 struct {\r
99 UINT8 New:1;\r
100 UINT8 Free:1;\r
101 UINT8 GenerateParameter:1;\r
102 UINT8 SetParameter:1;\r
103 UINT8 GenerateKey:1;\r
104 UINT8 ComputeKey:1;\r
105 } Services;\r
106 UINT32 Family;\r
107 } Dh;\r
108 union {\r
109 struct {\r
110 UINT8 Seed:1;\r
111 UINT8 Bytes:1;\r
112 } Services;\r
113 UINT32 Family;\r
114 } Random;\r
115 union {\r
116 struct {\r
117 UINT8 VerifyPkcs1:1;\r
118 UINT8 New:1;\r
119 UINT8 Free:1;\r
120 UINT8 SetKey:1;\r
121 UINT8 GetKey:1;\r
122 UINT8 GenerateKey:1;\r
123 UINT8 CheckKey:1;\r
124 UINT8 Pkcs1Sign:1;\r
125 UINT8 Pkcs1Verify:1;\r
126 UINT8 GetPrivateKeyFromPem:1;\r
127 UINT8 GetPublicKeyFromX509:1;\r
128 } Services;\r
129 UINT32 Family;\r
130 } Rsa;\r
131 union {\r
132 struct {\r
133 UINT8 GetContextSize:1;\r
134 UINT8 Init:1;\r
135 UINT8 Duplicate:1;\r
136 UINT8 Update:1;\r
137 UINT8 Final:1;\r
138 UINT8 HashAll:1;\r
139 } Services;\r
140 UINT32 Family;\r
141 } Sha1;\r
142 union {\r
143 struct {\r
144 UINT8 GetContextSize:1;\r
145 UINT8 Init:1;\r
146 UINT8 Duplicate:1;\r
147 UINT8 Update:1;\r
148 UINT8 Final:1;\r
149 UINT8 HashAll:1;\r
150 } Services;\r
151 UINT32 Family;\r
152 } Sha256;\r
153 union {\r
154 struct {\r
155 UINT8 GetContextSize:1;\r
156 UINT8 Init:1;\r
157 UINT8 Duplicate:1;\r
158 UINT8 Update:1;\r
159 UINT8 Final:1;\r
160 UINT8 HashAll:1;\r
161 } Services;\r
162 UINT32 Family;\r
163 } Sha384;\r
164 union {\r
165 struct {\r
166 UINT8 GetContextSize:1;\r
167 UINT8 Init:1;\r
168 UINT8 Duplicate:1;\r
169 UINT8 Update:1;\r
170 UINT8 Final:1;\r
171 UINT8 HashAll:1;\r
172 } Services;\r
173 UINT32 Family;\r
174 } Sha512;\r
175 union {\r
176 struct {\r
177 UINT8 GetSubjectName:1;\r
178 UINT8 GetCommonName:1;\r
179 UINT8 GetOrganizationName:1;\r
180 UINT8 VerifyCert:1;\r
181 UINT8 ConstructCertificate:1;\r
182 UINT8 ConstructCertificateStack:1;\r
183 UINT8 ConstructCertificateStackV:1;\r
184 UINT8 Free:1;\r
185 UINT8 StackFree:1;\r
186 UINT8 GetTBSCert:1;\r
187 } Services;\r
188 UINT32 Family;\r
189 } X509;\r
190 union {\r
191 struct {\r
192 UINT8 GetContextSize:1;\r
193 UINT8 Init:1;\r
194 UINT8 EcbEncrypt:1;\r
195 UINT8 EcbDecrypt:1;\r
196 UINT8 CbcEncrypt:1;\r
197 UINT8 CbcDecrypt:1;\r
198 } Services;\r
199 UINT32 Family;\r
200 } Tdes;\r
201 union {\r
202 struct {\r
203 UINT8 GetContextSize:1;\r
204 UINT8 Init:1;\r
205 UINT8 EcbEncrypt:1;\r
206 UINT8 EcbDecrypt:1;\r
207 UINT8 CbcEncrypt:1;\r
208 UINT8 CbcDecrypt:1;\r
209 } Services;\r
210 UINT32 Family;\r
211 } Aes;\r
212 union {\r
213 struct {\r
214 UINT8 GetContextSize:1;\r
215 UINT8 Init:1;\r
216 UINT8 Encrypt:1;\r
217 UINT8 Decrypt:1;\r
218 UINT8 Reset:1;\r
219 } Services;\r
220 UINT32 Family;\r
221 } Arc4;\r
222 union {\r
223 struct {\r
224 UINT8 GetContextSize:1;\r
225 UINT8 Init:1;\r
226 UINT8 Duplicate:1;\r
227 UINT8 Update:1;\r
228 UINT8 Final:1;\r
229 UINT8 HashAll:1;\r
230 } Services;\r
231 UINT32 Family;\r
232 } Sm3;\r
233 union {\r
234 struct {\r
235 UINT8 Sha256ExtractAndExpand;\r
236 } Services;\r
237 UINT32 Family;\r
238 } Hkdf;\r
239 union {\r
240 struct {\r
241 UINT8 Initialize:1;\r
242 UINT8 CtxFree:1;\r
243 UINT8 CtxNew:1;\r
244 UINT8 Free:1;\r
245 UINT8 New:1;\r
246 UINT8 InHandshake:1;\r
247 UINT8 DoHandshake:1;\r
248 UINT8 HandleAlert:1;\r
249 UINT8 CloseNotify:1;\r
250 UINT8 CtrlTrafficOut:1;\r
251 UINT8 CtrlTrafficIn:1;\r
252 UINT8 Read:1;\r
253 UINT8 Write:1;\r
254 } Services;\r
255 UINT32 Family;\r
256 } Tls;\r
257 union {\r
258 struct {\r
259 UINT8 Version:1;\r
260 UINT8 ConnectionEnd:1;\r
261 UINT8 CipherList:1;\r
262 UINT8 CompressionMethod:1;\r
263 UINT8 Verify:1;\r
264 UINT8 VerifyHost:1;\r
265 UINT8 SessionId:1;\r
266 UINT8 CaCertificate:1;\r
267 UINT8 HostPublicCert:1;\r
268 UINT8 HostPrivateKey:1;\r
269 UINT8 CertRevocationList:1;\r
270 } Services;\r
271 UINT32 Family;\r
272 } TlsSet;\r
273 union {\r
274 struct {\r
275 UINT8 Version:1;\r
276 UINT8 ConnectionEnd:1;\r
277 UINT8 CurrentCipher:1;\r
278 UINT8 CurrentCompressionId:1;\r
279 UINT8 Verify:1;\r
280 UINT8 SessionId:1;\r
281 UINT8 ClientRandom:1;\r
282 UINT8 ServerRandom:1;\r
283 UINT8 KeyMaterial:1;\r
284 UINT8 CaCertificate:1;\r
285 UINT8 HostPublicCert:1;\r
286 UINT8 HostPrivateKey:1;\r
287 UINT8 CertRevocationList:1;\r
288 } Services;\r
289 UINT32 Family;\r
290 } TlsGet;\r
291} PCD_CRYPTO_SERVICE_FAMILY_ENABLE;\r
292\r
293#endif\r