xref: /dpdk/drivers/crypto/bcmfs/bcmfs_sym_capabilities.c (revision 4ed19f0db5d970af39f6cb9a70fd690d0e62646b)
1*4ed19f0dSVikas Gupta /* SPDX-License-Identifier: BSD-3-Clause
2*4ed19f0dSVikas Gupta  * Copyright(c) 2020 Broadcom
3*4ed19f0dSVikas Gupta  * All rights reserved.
4*4ed19f0dSVikas Gupta  */
5*4ed19f0dSVikas Gupta 
6*4ed19f0dSVikas Gupta #include <rte_cryptodev.h>
7*4ed19f0dSVikas Gupta 
8*4ed19f0dSVikas Gupta #include "bcmfs_sym_capabilities.h"
9*4ed19f0dSVikas Gupta 
10*4ed19f0dSVikas Gupta static const struct rte_cryptodev_capabilities bcmfs_sym_capabilities[] = {
11*4ed19f0dSVikas Gupta 	{
12*4ed19f0dSVikas Gupta 		/* SHA1 */
13*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
14*4ed19f0dSVikas Gupta 		{.sym = {
15*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
16*4ed19f0dSVikas Gupta 			{.auth = {
17*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AUTH_SHA1,
18*4ed19f0dSVikas Gupta 				.block_size = 64,
19*4ed19f0dSVikas Gupta 				.key_size = {
20*4ed19f0dSVikas Gupta 					.min = 0,
21*4ed19f0dSVikas Gupta 					.max = 0,
22*4ed19f0dSVikas Gupta 					.increment = 0
23*4ed19f0dSVikas Gupta 				},
24*4ed19f0dSVikas Gupta 				.digest_size = {
25*4ed19f0dSVikas Gupta 					.min = 20,
26*4ed19f0dSVikas Gupta 					.max = 20,
27*4ed19f0dSVikas Gupta 					.increment = 0
28*4ed19f0dSVikas Gupta 				},
29*4ed19f0dSVikas Gupta 				.aad_size = { 0 }
30*4ed19f0dSVikas Gupta 			}, }
31*4ed19f0dSVikas Gupta 		}, }
32*4ed19f0dSVikas Gupta 	},
33*4ed19f0dSVikas Gupta 	{
34*4ed19f0dSVikas Gupta 		/* MD5 */
35*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
36*4ed19f0dSVikas Gupta 		{.sym = {
37*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
38*4ed19f0dSVikas Gupta 			{.auth = {
39*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AUTH_MD5,
40*4ed19f0dSVikas Gupta 				.block_size = 64,
41*4ed19f0dSVikas Gupta 				.key_size = {
42*4ed19f0dSVikas Gupta 					.min = 0,
43*4ed19f0dSVikas Gupta 					.max = 0,
44*4ed19f0dSVikas Gupta 					.increment = 0
45*4ed19f0dSVikas Gupta 				},
46*4ed19f0dSVikas Gupta 				.digest_size = {
47*4ed19f0dSVikas Gupta 					.min = 16,
48*4ed19f0dSVikas Gupta 					.max = 16,
49*4ed19f0dSVikas Gupta 					.increment = 0
50*4ed19f0dSVikas Gupta 				},
51*4ed19f0dSVikas Gupta 			}, }
52*4ed19f0dSVikas Gupta 		}, }
53*4ed19f0dSVikas Gupta 	},
54*4ed19f0dSVikas Gupta 	{
55*4ed19f0dSVikas Gupta 		/* SHA224 */
56*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
57*4ed19f0dSVikas Gupta 		{.sym = {
58*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
59*4ed19f0dSVikas Gupta 			{.auth = {
60*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AUTH_SHA224,
61*4ed19f0dSVikas Gupta 				.block_size = 64,
62*4ed19f0dSVikas Gupta 				.key_size = {
63*4ed19f0dSVikas Gupta 					.min = 0,
64*4ed19f0dSVikas Gupta 					.max = 0,
65*4ed19f0dSVikas Gupta 					.increment = 0
66*4ed19f0dSVikas Gupta 				},
67*4ed19f0dSVikas Gupta 				.digest_size = {
68*4ed19f0dSVikas Gupta 					.min = 28,
69*4ed19f0dSVikas Gupta 					.max = 28,
70*4ed19f0dSVikas Gupta 					.increment = 0
71*4ed19f0dSVikas Gupta 				},
72*4ed19f0dSVikas Gupta 				.aad_size = { 0 }
73*4ed19f0dSVikas Gupta 			}, }
74*4ed19f0dSVikas Gupta 		}, }
75*4ed19f0dSVikas Gupta 	},
76*4ed19f0dSVikas Gupta 	{
77*4ed19f0dSVikas Gupta 		/* SHA256 */
78*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
79*4ed19f0dSVikas Gupta 		{.sym = {
80*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
81*4ed19f0dSVikas Gupta 			{.auth = {
82*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AUTH_SHA256,
83*4ed19f0dSVikas Gupta 				.block_size = 64,
84*4ed19f0dSVikas Gupta 				.key_size = {
85*4ed19f0dSVikas Gupta 					.min = 0,
86*4ed19f0dSVikas Gupta 					.max = 0,
87*4ed19f0dSVikas Gupta 					.increment = 0
88*4ed19f0dSVikas Gupta 				},
89*4ed19f0dSVikas Gupta 				.digest_size = {
90*4ed19f0dSVikas Gupta 					.min = 32,
91*4ed19f0dSVikas Gupta 					.max = 32,
92*4ed19f0dSVikas Gupta 					.increment = 0
93*4ed19f0dSVikas Gupta 				},
94*4ed19f0dSVikas Gupta 				.aad_size = { 0 }
95*4ed19f0dSVikas Gupta 			}, }
96*4ed19f0dSVikas Gupta 		}, }
97*4ed19f0dSVikas Gupta 	},
98*4ed19f0dSVikas Gupta 	{
99*4ed19f0dSVikas Gupta 		/* SHA384 */
100*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
101*4ed19f0dSVikas Gupta 		{.sym = {
102*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
103*4ed19f0dSVikas Gupta 			{.auth = {
104*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AUTH_SHA384,
105*4ed19f0dSVikas Gupta 				.block_size = 64,
106*4ed19f0dSVikas Gupta 				.key_size = {
107*4ed19f0dSVikas Gupta 					.min = 0,
108*4ed19f0dSVikas Gupta 					.max = 0,
109*4ed19f0dSVikas Gupta 					.increment = 0
110*4ed19f0dSVikas Gupta 				},
111*4ed19f0dSVikas Gupta 				.digest_size = {
112*4ed19f0dSVikas Gupta 					.min = 48,
113*4ed19f0dSVikas Gupta 					.max = 48,
114*4ed19f0dSVikas Gupta 					.increment = 0
115*4ed19f0dSVikas Gupta 				},
116*4ed19f0dSVikas Gupta 				.aad_size = { 0 }
117*4ed19f0dSVikas Gupta 			}, }
118*4ed19f0dSVikas Gupta 		}, }
119*4ed19f0dSVikas Gupta 	},
120*4ed19f0dSVikas Gupta 	{
121*4ed19f0dSVikas Gupta 		/* SHA512 */
122*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
123*4ed19f0dSVikas Gupta 		{.sym = {
124*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
125*4ed19f0dSVikas Gupta 			{.auth = {
126*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AUTH_SHA512,
127*4ed19f0dSVikas Gupta 				.block_size = 64,
128*4ed19f0dSVikas Gupta 				.key_size = {
129*4ed19f0dSVikas Gupta 					.min = 0,
130*4ed19f0dSVikas Gupta 					.max = 0,
131*4ed19f0dSVikas Gupta 					.increment = 0
132*4ed19f0dSVikas Gupta 				},
133*4ed19f0dSVikas Gupta 				.digest_size = {
134*4ed19f0dSVikas Gupta 					.min = 64,
135*4ed19f0dSVikas Gupta 					.max = 64,
136*4ed19f0dSVikas Gupta 					.increment = 0
137*4ed19f0dSVikas Gupta 				},
138*4ed19f0dSVikas Gupta 				.aad_size = { 0 }
139*4ed19f0dSVikas Gupta 			}, }
140*4ed19f0dSVikas Gupta 		}, }
141*4ed19f0dSVikas Gupta 	},
142*4ed19f0dSVikas Gupta 	{
143*4ed19f0dSVikas Gupta 		/* SHA3_224 */
144*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
145*4ed19f0dSVikas Gupta 		{.sym = {
146*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
147*4ed19f0dSVikas Gupta 			{.auth = {
148*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AUTH_SHA3_224,
149*4ed19f0dSVikas Gupta 				.block_size = 144,
150*4ed19f0dSVikas Gupta 				.key_size = {
151*4ed19f0dSVikas Gupta 					.min = 0,
152*4ed19f0dSVikas Gupta 					.max = 0,
153*4ed19f0dSVikas Gupta 					.increment = 0
154*4ed19f0dSVikas Gupta 				},
155*4ed19f0dSVikas Gupta 				.digest_size = {
156*4ed19f0dSVikas Gupta 					.min = 28,
157*4ed19f0dSVikas Gupta 					.max = 28,
158*4ed19f0dSVikas Gupta 					.increment = 0
159*4ed19f0dSVikas Gupta 				},
160*4ed19f0dSVikas Gupta 				.aad_size = { 0 }
161*4ed19f0dSVikas Gupta 			}, }
162*4ed19f0dSVikas Gupta 		}, }
163*4ed19f0dSVikas Gupta 	},
164*4ed19f0dSVikas Gupta 	{
165*4ed19f0dSVikas Gupta 		/* SHA3_256 */
166*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
167*4ed19f0dSVikas Gupta 		{.sym = {
168*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
169*4ed19f0dSVikas Gupta 			{.auth = {
170*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AUTH_SHA3_256,
171*4ed19f0dSVikas Gupta 				.block_size = 136,
172*4ed19f0dSVikas Gupta 				.key_size = {
173*4ed19f0dSVikas Gupta 					.min = 0,
174*4ed19f0dSVikas Gupta 					.max = 0,
175*4ed19f0dSVikas Gupta 					.increment = 0
176*4ed19f0dSVikas Gupta 				},
177*4ed19f0dSVikas Gupta 				.digest_size = {
178*4ed19f0dSVikas Gupta 					.min = 32,
179*4ed19f0dSVikas Gupta 					.max = 32,
180*4ed19f0dSVikas Gupta 					.increment = 0
181*4ed19f0dSVikas Gupta 				},
182*4ed19f0dSVikas Gupta 				.aad_size = { 0 }
183*4ed19f0dSVikas Gupta 			}, }
184*4ed19f0dSVikas Gupta 		}, }
185*4ed19f0dSVikas Gupta 	},
186*4ed19f0dSVikas Gupta 	{
187*4ed19f0dSVikas Gupta 		/* SHA3_384 */
188*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
189*4ed19f0dSVikas Gupta 		{.sym = {
190*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
191*4ed19f0dSVikas Gupta 			{.auth = {
192*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AUTH_SHA3_384,
193*4ed19f0dSVikas Gupta 				.block_size = 104,
194*4ed19f0dSVikas Gupta 				.key_size = {
195*4ed19f0dSVikas Gupta 					.min = 0,
196*4ed19f0dSVikas Gupta 					.max = 0,
197*4ed19f0dSVikas Gupta 					.increment = 0
198*4ed19f0dSVikas Gupta 				},
199*4ed19f0dSVikas Gupta 				.digest_size = {
200*4ed19f0dSVikas Gupta 					.min = 48,
201*4ed19f0dSVikas Gupta 					.max = 48,
202*4ed19f0dSVikas Gupta 					.increment = 0
203*4ed19f0dSVikas Gupta 				},
204*4ed19f0dSVikas Gupta 				.aad_size = { 0 }
205*4ed19f0dSVikas Gupta 			}, }
206*4ed19f0dSVikas Gupta 		}, }
207*4ed19f0dSVikas Gupta 	},
208*4ed19f0dSVikas Gupta 	{
209*4ed19f0dSVikas Gupta 		/* SHA3_512 */
210*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
211*4ed19f0dSVikas Gupta 		{.sym = {
212*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
213*4ed19f0dSVikas Gupta 			{.auth = {
214*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AUTH_SHA3_512,
215*4ed19f0dSVikas Gupta 				.block_size = 72,
216*4ed19f0dSVikas Gupta 				.key_size = {
217*4ed19f0dSVikas Gupta 					.min = 0,
218*4ed19f0dSVikas Gupta 					.max = 0,
219*4ed19f0dSVikas Gupta 					.increment = 0
220*4ed19f0dSVikas Gupta 				},
221*4ed19f0dSVikas Gupta 				.digest_size = {
222*4ed19f0dSVikas Gupta 					.min = 64,
223*4ed19f0dSVikas Gupta 					.max = 64,
224*4ed19f0dSVikas Gupta 					.increment = 0
225*4ed19f0dSVikas Gupta 				},
226*4ed19f0dSVikas Gupta 				.aad_size = { 0 }
227*4ed19f0dSVikas Gupta 			}, }
228*4ed19f0dSVikas Gupta 		}, }
229*4ed19f0dSVikas Gupta 	},
230*4ed19f0dSVikas Gupta 	{
231*4ed19f0dSVikas Gupta 		/* SHA1 HMAC */
232*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
233*4ed19f0dSVikas Gupta 		{.sym = {
234*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
235*4ed19f0dSVikas Gupta 			{.auth = {
236*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
237*4ed19f0dSVikas Gupta 				.block_size = 64,
238*4ed19f0dSVikas Gupta 				.key_size = {
239*4ed19f0dSVikas Gupta 					.min = 1,
240*4ed19f0dSVikas Gupta 					.max = 64,
241*4ed19f0dSVikas Gupta 					.increment = 1
242*4ed19f0dSVikas Gupta 				},
243*4ed19f0dSVikas Gupta 				.digest_size = {
244*4ed19f0dSVikas Gupta 					.min = 20,
245*4ed19f0dSVikas Gupta 					.max = 20,
246*4ed19f0dSVikas Gupta 					.increment = 0
247*4ed19f0dSVikas Gupta 				},
248*4ed19f0dSVikas Gupta 				.aad_size = { 0 }
249*4ed19f0dSVikas Gupta 			}, }
250*4ed19f0dSVikas Gupta 		}, }
251*4ed19f0dSVikas Gupta 	},
252*4ed19f0dSVikas Gupta 	{
253*4ed19f0dSVikas Gupta 		/* MD5 HMAC */
254*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
255*4ed19f0dSVikas Gupta 		{.sym = {
256*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
257*4ed19f0dSVikas Gupta 			{.auth = {
258*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AUTH_MD5_HMAC,
259*4ed19f0dSVikas Gupta 				.block_size = 64,
260*4ed19f0dSVikas Gupta 				.key_size = {
261*4ed19f0dSVikas Gupta 					.min = 1,
262*4ed19f0dSVikas Gupta 					.max = 64,
263*4ed19f0dSVikas Gupta 					.increment = 1
264*4ed19f0dSVikas Gupta 				},
265*4ed19f0dSVikas Gupta 				.digest_size = {
266*4ed19f0dSVikas Gupta 					.min = 16,
267*4ed19f0dSVikas Gupta 					.max = 16,
268*4ed19f0dSVikas Gupta 					.increment = 0
269*4ed19f0dSVikas Gupta 				},
270*4ed19f0dSVikas Gupta 				.aad_size = { 0 }
271*4ed19f0dSVikas Gupta 			}, }
272*4ed19f0dSVikas Gupta 		}, }
273*4ed19f0dSVikas Gupta 	},
274*4ed19f0dSVikas Gupta 	{
275*4ed19f0dSVikas Gupta 		/* SHA224 HMAC */
276*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
277*4ed19f0dSVikas Gupta 		{.sym = {
278*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
279*4ed19f0dSVikas Gupta 			{.auth = {
280*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AUTH_SHA224_HMAC,
281*4ed19f0dSVikas Gupta 				.block_size = 64,
282*4ed19f0dSVikas Gupta 				.key_size = {
283*4ed19f0dSVikas Gupta 					.min = 1,
284*4ed19f0dSVikas Gupta 					.max = 64,
285*4ed19f0dSVikas Gupta 					.increment = 1
286*4ed19f0dSVikas Gupta 				},
287*4ed19f0dSVikas Gupta 				.digest_size = {
288*4ed19f0dSVikas Gupta 					.min = 28,
289*4ed19f0dSVikas Gupta 					.max = 28,
290*4ed19f0dSVikas Gupta 					.increment = 0
291*4ed19f0dSVikas Gupta 				},
292*4ed19f0dSVikas Gupta 				.aad_size = { 0 }
293*4ed19f0dSVikas Gupta 			}, }
294*4ed19f0dSVikas Gupta 		}, }
295*4ed19f0dSVikas Gupta 	},
296*4ed19f0dSVikas Gupta 	{
297*4ed19f0dSVikas Gupta 		/* SHA256 HMAC */
298*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
299*4ed19f0dSVikas Gupta 		{.sym = {
300*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
301*4ed19f0dSVikas Gupta 			{.auth = {
302*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
303*4ed19f0dSVikas Gupta 				.block_size = 64,
304*4ed19f0dSVikas Gupta 				.key_size = {
305*4ed19f0dSVikas Gupta 					.min = 1,
306*4ed19f0dSVikas Gupta 					.max = 64,
307*4ed19f0dSVikas Gupta 					.increment = 1
308*4ed19f0dSVikas Gupta 				},
309*4ed19f0dSVikas Gupta 				.digest_size = {
310*4ed19f0dSVikas Gupta 					.min = 32,
311*4ed19f0dSVikas Gupta 					.max = 32,
312*4ed19f0dSVikas Gupta 					.increment = 0
313*4ed19f0dSVikas Gupta 				},
314*4ed19f0dSVikas Gupta 				.aad_size = { 0 }
315*4ed19f0dSVikas Gupta 			}, }
316*4ed19f0dSVikas Gupta 		}, }
317*4ed19f0dSVikas Gupta 	},
318*4ed19f0dSVikas Gupta 	{
319*4ed19f0dSVikas Gupta 		/* SHA384 HMAC */
320*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
321*4ed19f0dSVikas Gupta 		{.sym = {
322*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
323*4ed19f0dSVikas Gupta 			{.auth = {
324*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AUTH_SHA384_HMAC,
325*4ed19f0dSVikas Gupta 				.block_size = 128,
326*4ed19f0dSVikas Gupta 				.key_size = {
327*4ed19f0dSVikas Gupta 					.min = 1,
328*4ed19f0dSVikas Gupta 					.max = 128,
329*4ed19f0dSVikas Gupta 					.increment = 1
330*4ed19f0dSVikas Gupta 				},
331*4ed19f0dSVikas Gupta 				.digest_size = {
332*4ed19f0dSVikas Gupta 					.min = 48,
333*4ed19f0dSVikas Gupta 					.max = 48,
334*4ed19f0dSVikas Gupta 					.increment = 0
335*4ed19f0dSVikas Gupta 				},
336*4ed19f0dSVikas Gupta 				.aad_size = { 0 }
337*4ed19f0dSVikas Gupta 			}, }
338*4ed19f0dSVikas Gupta 		}, }
339*4ed19f0dSVikas Gupta 	},
340*4ed19f0dSVikas Gupta 	{
341*4ed19f0dSVikas Gupta 		/* SHA512 HMAC*/
342*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
343*4ed19f0dSVikas Gupta 		{.sym = {
344*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
345*4ed19f0dSVikas Gupta 			{.auth = {
346*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AUTH_SHA512_HMAC,
347*4ed19f0dSVikas Gupta 				.block_size = 128,
348*4ed19f0dSVikas Gupta 				.key_size = {
349*4ed19f0dSVikas Gupta 					.min = 1,
350*4ed19f0dSVikas Gupta 					.max = 128,
351*4ed19f0dSVikas Gupta 					.increment = 1
352*4ed19f0dSVikas Gupta 				},
353*4ed19f0dSVikas Gupta 				.digest_size = {
354*4ed19f0dSVikas Gupta 					.min = 64,
355*4ed19f0dSVikas Gupta 					.max = 64,
356*4ed19f0dSVikas Gupta 					.increment = 0
357*4ed19f0dSVikas Gupta 				},
358*4ed19f0dSVikas Gupta 				.aad_size = { 0 }
359*4ed19f0dSVikas Gupta 			}, }
360*4ed19f0dSVikas Gupta 		}, }
361*4ed19f0dSVikas Gupta 	},
362*4ed19f0dSVikas Gupta 	{
363*4ed19f0dSVikas Gupta 		/* SHA3_224 HMAC */
364*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
365*4ed19f0dSVikas Gupta 		{.sym = {
366*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
367*4ed19f0dSVikas Gupta 			{.auth = {
368*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AUTH_SHA3_224_HMAC,
369*4ed19f0dSVikas Gupta 				.block_size = 144,
370*4ed19f0dSVikas Gupta 				.key_size = {
371*4ed19f0dSVikas Gupta 					.min = 1,
372*4ed19f0dSVikas Gupta 					.max = 144,
373*4ed19f0dSVikas Gupta 					.increment = 1
374*4ed19f0dSVikas Gupta 				},
375*4ed19f0dSVikas Gupta 				.digest_size = {
376*4ed19f0dSVikas Gupta 					.min = 28,
377*4ed19f0dSVikas Gupta 					.max = 28,
378*4ed19f0dSVikas Gupta 					.increment = 0
379*4ed19f0dSVikas Gupta 				},
380*4ed19f0dSVikas Gupta 				.aad_size = { 0 }
381*4ed19f0dSVikas Gupta 			}, }
382*4ed19f0dSVikas Gupta 		}, }
383*4ed19f0dSVikas Gupta 	},
384*4ed19f0dSVikas Gupta 	{
385*4ed19f0dSVikas Gupta 		/* SHA3_256 HMAC */
386*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
387*4ed19f0dSVikas Gupta 		{.sym = {
388*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
389*4ed19f0dSVikas Gupta 			{.auth = {
390*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AUTH_SHA3_256_HMAC,
391*4ed19f0dSVikas Gupta 				.block_size = 136,
392*4ed19f0dSVikas Gupta 				.key_size = {
393*4ed19f0dSVikas Gupta 					.min = 1,
394*4ed19f0dSVikas Gupta 					.max = 136,
395*4ed19f0dSVikas Gupta 					.increment = 1
396*4ed19f0dSVikas Gupta 				},
397*4ed19f0dSVikas Gupta 				.digest_size = {
398*4ed19f0dSVikas Gupta 					.min = 32,
399*4ed19f0dSVikas Gupta 					.max = 32,
400*4ed19f0dSVikas Gupta 					.increment = 0
401*4ed19f0dSVikas Gupta 				},
402*4ed19f0dSVikas Gupta 				.aad_size = { 0 }
403*4ed19f0dSVikas Gupta 			}, }
404*4ed19f0dSVikas Gupta 		}, }
405*4ed19f0dSVikas Gupta 	},
406*4ed19f0dSVikas Gupta 	{
407*4ed19f0dSVikas Gupta 		/* SHA3_384 HMAC */
408*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
409*4ed19f0dSVikas Gupta 		{.sym = {
410*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
411*4ed19f0dSVikas Gupta 			{.auth = {
412*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AUTH_SHA3_384_HMAC,
413*4ed19f0dSVikas Gupta 				.block_size = 104,
414*4ed19f0dSVikas Gupta 				.key_size = {
415*4ed19f0dSVikas Gupta 					.min = 1,
416*4ed19f0dSVikas Gupta 					.max = 104,
417*4ed19f0dSVikas Gupta 					.increment = 1
418*4ed19f0dSVikas Gupta 				},
419*4ed19f0dSVikas Gupta 				.digest_size = {
420*4ed19f0dSVikas Gupta 					.min = 48,
421*4ed19f0dSVikas Gupta 					.max = 48,
422*4ed19f0dSVikas Gupta 					.increment = 0
423*4ed19f0dSVikas Gupta 				},
424*4ed19f0dSVikas Gupta 				.aad_size = { 0 }
425*4ed19f0dSVikas Gupta 			}, }
426*4ed19f0dSVikas Gupta 		}, }
427*4ed19f0dSVikas Gupta 	},
428*4ed19f0dSVikas Gupta 	{
429*4ed19f0dSVikas Gupta 		/* SHA3_512 HMAC */
430*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
431*4ed19f0dSVikas Gupta 		{.sym = {
432*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
433*4ed19f0dSVikas Gupta 			{.auth = {
434*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AUTH_SHA3_512_HMAC,
435*4ed19f0dSVikas Gupta 				.block_size = 72,
436*4ed19f0dSVikas Gupta 				.key_size = {
437*4ed19f0dSVikas Gupta 					.min = 1,
438*4ed19f0dSVikas Gupta 					.max = 72,
439*4ed19f0dSVikas Gupta 					.increment = 1
440*4ed19f0dSVikas Gupta 				},
441*4ed19f0dSVikas Gupta 				.digest_size = {
442*4ed19f0dSVikas Gupta 					.min = 64,
443*4ed19f0dSVikas Gupta 					.max = 64,
444*4ed19f0dSVikas Gupta 					.increment = 0
445*4ed19f0dSVikas Gupta 				},
446*4ed19f0dSVikas Gupta 				.aad_size = { 0 }
447*4ed19f0dSVikas Gupta 			}, }
448*4ed19f0dSVikas Gupta 		}, }
449*4ed19f0dSVikas Gupta 	},
450*4ed19f0dSVikas Gupta 	{
451*4ed19f0dSVikas Gupta 		/* AES XCBC MAC */
452*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
453*4ed19f0dSVikas Gupta 		{.sym = {
454*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
455*4ed19f0dSVikas Gupta 			{.auth = {
456*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC,
457*4ed19f0dSVikas Gupta 				.block_size = 16,
458*4ed19f0dSVikas Gupta 				.key_size = {
459*4ed19f0dSVikas Gupta 					.min = 1,
460*4ed19f0dSVikas Gupta 					.max = 16,
461*4ed19f0dSVikas Gupta 					.increment = 1
462*4ed19f0dSVikas Gupta 				},
463*4ed19f0dSVikas Gupta 				.digest_size = {
464*4ed19f0dSVikas Gupta 					.min = 16,
465*4ed19f0dSVikas Gupta 					.max = 16,
466*4ed19f0dSVikas Gupta 					.increment = 0
467*4ed19f0dSVikas Gupta 				},
468*4ed19f0dSVikas Gupta 				.aad_size = { 0 }
469*4ed19f0dSVikas Gupta 			}, }
470*4ed19f0dSVikas Gupta 		}, }
471*4ed19f0dSVikas Gupta 	},
472*4ed19f0dSVikas Gupta 	{
473*4ed19f0dSVikas Gupta 		/* AES GMAC */
474*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
475*4ed19f0dSVikas Gupta 		{.sym = {
476*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
477*4ed19f0dSVikas Gupta 			{.auth = {
478*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AUTH_AES_GMAC,
479*4ed19f0dSVikas Gupta 				.block_size = 16,
480*4ed19f0dSVikas Gupta 				.key_size = {
481*4ed19f0dSVikas Gupta 					.min = 16,
482*4ed19f0dSVikas Gupta 					.max = 32,
483*4ed19f0dSVikas Gupta 					.increment = 8
484*4ed19f0dSVikas Gupta 				},
485*4ed19f0dSVikas Gupta 				.digest_size = {
486*4ed19f0dSVikas Gupta 					.min = 16,
487*4ed19f0dSVikas Gupta 					.max = 16,
488*4ed19f0dSVikas Gupta 					.increment = 0
489*4ed19f0dSVikas Gupta 				},
490*4ed19f0dSVikas Gupta 				.aad_size = {
491*4ed19f0dSVikas Gupta 					.min = 0,
492*4ed19f0dSVikas Gupta 					.max = 65535,
493*4ed19f0dSVikas Gupta 					.increment = 1
494*4ed19f0dSVikas Gupta 				},
495*4ed19f0dSVikas Gupta 				.iv_size = {
496*4ed19f0dSVikas Gupta 					.min = 12,
497*4ed19f0dSVikas Gupta 					.max = 16,
498*4ed19f0dSVikas Gupta 					.increment = 4
499*4ed19f0dSVikas Gupta 				},
500*4ed19f0dSVikas Gupta 			}, }
501*4ed19f0dSVikas Gupta 		}, }
502*4ed19f0dSVikas Gupta 	},
503*4ed19f0dSVikas Gupta 	{
504*4ed19f0dSVikas Gupta 		/* AES CMAC */
505*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
506*4ed19f0dSVikas Gupta 		{.sym = {
507*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
508*4ed19f0dSVikas Gupta 			{.auth = {
509*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AUTH_AES_CMAC,
510*4ed19f0dSVikas Gupta 				.block_size = 16,
511*4ed19f0dSVikas Gupta 				.key_size = {
512*4ed19f0dSVikas Gupta 					.min = 1,
513*4ed19f0dSVikas Gupta 					.max = 16,
514*4ed19f0dSVikas Gupta 					.increment = 1
515*4ed19f0dSVikas Gupta 				},
516*4ed19f0dSVikas Gupta 				.digest_size = {
517*4ed19f0dSVikas Gupta 					.min = 16,
518*4ed19f0dSVikas Gupta 					.max = 16,
519*4ed19f0dSVikas Gupta 					.increment = 0
520*4ed19f0dSVikas Gupta 				},
521*4ed19f0dSVikas Gupta 				.aad_size = { 0 }
522*4ed19f0dSVikas Gupta 			}, }
523*4ed19f0dSVikas Gupta 		}, }
524*4ed19f0dSVikas Gupta 	},
525*4ed19f0dSVikas Gupta 	{
526*4ed19f0dSVikas Gupta 		/* AES CBC MAC */
527*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
528*4ed19f0dSVikas Gupta 		{.sym = {
529*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
530*4ed19f0dSVikas Gupta 			{.auth = {
531*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AUTH_AES_CBC_MAC,
532*4ed19f0dSVikas Gupta 				.block_size = 16,
533*4ed19f0dSVikas Gupta 				.key_size = {
534*4ed19f0dSVikas Gupta 					.min = 1,
535*4ed19f0dSVikas Gupta 					.max = 16,
536*4ed19f0dSVikas Gupta 					.increment = 1
537*4ed19f0dSVikas Gupta 				},
538*4ed19f0dSVikas Gupta 				.digest_size = {
539*4ed19f0dSVikas Gupta 					.min = 16,
540*4ed19f0dSVikas Gupta 					.max = 16,
541*4ed19f0dSVikas Gupta 					.increment = 0
542*4ed19f0dSVikas Gupta 				},
543*4ed19f0dSVikas Gupta 				.aad_size = { 0 }
544*4ed19f0dSVikas Gupta 			}, }
545*4ed19f0dSVikas Gupta 		}, }
546*4ed19f0dSVikas Gupta 	},
547*4ed19f0dSVikas Gupta 	{
548*4ed19f0dSVikas Gupta 		/* AES ECB */
549*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
550*4ed19f0dSVikas Gupta 		{.sym = {
551*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
552*4ed19f0dSVikas Gupta 			{.cipher = {
553*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_CIPHER_AES_ECB,
554*4ed19f0dSVikas Gupta 				.block_size = 16,
555*4ed19f0dSVikas Gupta 				.key_size = {
556*4ed19f0dSVikas Gupta 					.min = 16,
557*4ed19f0dSVikas Gupta 					.max = 32,
558*4ed19f0dSVikas Gupta 					.increment = 8
559*4ed19f0dSVikas Gupta 				},
560*4ed19f0dSVikas Gupta 				.iv_size = {
561*4ed19f0dSVikas Gupta 					.min = 0,
562*4ed19f0dSVikas Gupta 					.max = 0,
563*4ed19f0dSVikas Gupta 					.increment = 0
564*4ed19f0dSVikas Gupta 				}
565*4ed19f0dSVikas Gupta 			}, }
566*4ed19f0dSVikas Gupta 		}, }
567*4ed19f0dSVikas Gupta 	},
568*4ed19f0dSVikas Gupta 	{
569*4ed19f0dSVikas Gupta 		/* AES CBC */
570*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
571*4ed19f0dSVikas Gupta 		{.sym = {
572*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
573*4ed19f0dSVikas Gupta 			{.cipher = {
574*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_CIPHER_AES_CBC,
575*4ed19f0dSVikas Gupta 				.block_size = 16,
576*4ed19f0dSVikas Gupta 				.key_size = {
577*4ed19f0dSVikas Gupta 					.min = 16,
578*4ed19f0dSVikas Gupta 					.max = 32,
579*4ed19f0dSVikas Gupta 					.increment = 8
580*4ed19f0dSVikas Gupta 				},
581*4ed19f0dSVikas Gupta 				.iv_size = {
582*4ed19f0dSVikas Gupta 					.min = 16,
583*4ed19f0dSVikas Gupta 					.max = 16,
584*4ed19f0dSVikas Gupta 					.increment = 0
585*4ed19f0dSVikas Gupta 				}
586*4ed19f0dSVikas Gupta 			}, }
587*4ed19f0dSVikas Gupta 		}, }
588*4ed19f0dSVikas Gupta 	},
589*4ed19f0dSVikas Gupta 	{
590*4ed19f0dSVikas Gupta 		/* AES CTR */
591*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
592*4ed19f0dSVikas Gupta 		{.sym = {
593*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
594*4ed19f0dSVikas Gupta 			{.cipher = {
595*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_CIPHER_AES_CTR,
596*4ed19f0dSVikas Gupta 				.block_size = 16,
597*4ed19f0dSVikas Gupta 				.key_size = {
598*4ed19f0dSVikas Gupta 					.min = 16,
599*4ed19f0dSVikas Gupta 					.max = 32,
600*4ed19f0dSVikas Gupta 					.increment = 8
601*4ed19f0dSVikas Gupta 				},
602*4ed19f0dSVikas Gupta 				.iv_size = {
603*4ed19f0dSVikas Gupta 					.min = 16,
604*4ed19f0dSVikas Gupta 					.max = 16,
605*4ed19f0dSVikas Gupta 					.increment = 0
606*4ed19f0dSVikas Gupta 				}
607*4ed19f0dSVikas Gupta 			}, }
608*4ed19f0dSVikas Gupta 		}, }
609*4ed19f0dSVikas Gupta 	},
610*4ed19f0dSVikas Gupta 	{
611*4ed19f0dSVikas Gupta 		/* AES XTS */
612*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
613*4ed19f0dSVikas Gupta 		{.sym = {
614*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
615*4ed19f0dSVikas Gupta 			{.cipher = {
616*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_CIPHER_AES_XTS,
617*4ed19f0dSVikas Gupta 				.block_size = 16,
618*4ed19f0dSVikas Gupta 				.key_size = {
619*4ed19f0dSVikas Gupta 					.min = 32,
620*4ed19f0dSVikas Gupta 					.max = 64,
621*4ed19f0dSVikas Gupta 					.increment = 32
622*4ed19f0dSVikas Gupta 				},
623*4ed19f0dSVikas Gupta 				.iv_size = {
624*4ed19f0dSVikas Gupta 					.min = 16,
625*4ed19f0dSVikas Gupta 					.max = 16,
626*4ed19f0dSVikas Gupta 					.increment = 0
627*4ed19f0dSVikas Gupta 				}
628*4ed19f0dSVikas Gupta 			}, }
629*4ed19f0dSVikas Gupta 		}, }
630*4ed19f0dSVikas Gupta 	},
631*4ed19f0dSVikas Gupta 	{
632*4ed19f0dSVikas Gupta 		/* DES CBC */
633*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
634*4ed19f0dSVikas Gupta 		{.sym = {
635*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
636*4ed19f0dSVikas Gupta 			{.cipher = {
637*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_CIPHER_DES_CBC,
638*4ed19f0dSVikas Gupta 				.block_size = 8,
639*4ed19f0dSVikas Gupta 				.key_size = {
640*4ed19f0dSVikas Gupta 					.min = 8,
641*4ed19f0dSVikas Gupta 					.max = 8,
642*4ed19f0dSVikas Gupta 					.increment = 0
643*4ed19f0dSVikas Gupta 				},
644*4ed19f0dSVikas Gupta 				.iv_size = {
645*4ed19f0dSVikas Gupta 					.min = 16,
646*4ed19f0dSVikas Gupta 					.max = 16,
647*4ed19f0dSVikas Gupta 					.increment = 0
648*4ed19f0dSVikas Gupta 				}
649*4ed19f0dSVikas Gupta 			}, }
650*4ed19f0dSVikas Gupta 		}, }
651*4ed19f0dSVikas Gupta 	},
652*4ed19f0dSVikas Gupta 	{
653*4ed19f0dSVikas Gupta 		/* 3DES CBC */
654*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
655*4ed19f0dSVikas Gupta 		{.sym = {
656*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
657*4ed19f0dSVikas Gupta 			{.cipher = {
658*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_CIPHER_3DES_CBC,
659*4ed19f0dSVikas Gupta 				.block_size = 8,
660*4ed19f0dSVikas Gupta 				.key_size = {
661*4ed19f0dSVikas Gupta 					.min = 24,
662*4ed19f0dSVikas Gupta 					.max = 24,
663*4ed19f0dSVikas Gupta 					.increment = 0
664*4ed19f0dSVikas Gupta 				},
665*4ed19f0dSVikas Gupta 				.iv_size = {
666*4ed19f0dSVikas Gupta 					.min = 16,
667*4ed19f0dSVikas Gupta 					.max = 16,
668*4ed19f0dSVikas Gupta 					.increment = 0
669*4ed19f0dSVikas Gupta 				}
670*4ed19f0dSVikas Gupta 			}, }
671*4ed19f0dSVikas Gupta 		}, }
672*4ed19f0dSVikas Gupta 	},
673*4ed19f0dSVikas Gupta 	{
674*4ed19f0dSVikas Gupta 		/* 3DES ECB */
675*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
676*4ed19f0dSVikas Gupta 		{.sym = {
677*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
678*4ed19f0dSVikas Gupta 			{.cipher = {
679*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_CIPHER_3DES_ECB,
680*4ed19f0dSVikas Gupta 				.block_size = 8,
681*4ed19f0dSVikas Gupta 				.key_size = {
682*4ed19f0dSVikas Gupta 					.min = 24,
683*4ed19f0dSVikas Gupta 					.max = 24,
684*4ed19f0dSVikas Gupta 					.increment = 0
685*4ed19f0dSVikas Gupta 				},
686*4ed19f0dSVikas Gupta 				.iv_size = {
687*4ed19f0dSVikas Gupta 					.min = 0,
688*4ed19f0dSVikas Gupta 					.max = 0,
689*4ed19f0dSVikas Gupta 					.increment = 0
690*4ed19f0dSVikas Gupta 				}
691*4ed19f0dSVikas Gupta 			}, }
692*4ed19f0dSVikas Gupta 		}, }
693*4ed19f0dSVikas Gupta 	},
694*4ed19f0dSVikas Gupta 	{
695*4ed19f0dSVikas Gupta 		/* AES GCM */
696*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
697*4ed19f0dSVikas Gupta 		{.sym = {
698*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AEAD,
699*4ed19f0dSVikas Gupta 			{.aead = {
700*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AEAD_AES_GCM,
701*4ed19f0dSVikas Gupta 				.block_size = 16,
702*4ed19f0dSVikas Gupta 				.key_size = {
703*4ed19f0dSVikas Gupta 					.min = 16,
704*4ed19f0dSVikas Gupta 					.max = 32,
705*4ed19f0dSVikas Gupta 					.increment = 8
706*4ed19f0dSVikas Gupta 				},
707*4ed19f0dSVikas Gupta 				.digest_size = {
708*4ed19f0dSVikas Gupta 					.min = 16,
709*4ed19f0dSVikas Gupta 					.max = 16,
710*4ed19f0dSVikas Gupta 					.increment = 0
711*4ed19f0dSVikas Gupta 				},
712*4ed19f0dSVikas Gupta 				.aad_size = {
713*4ed19f0dSVikas Gupta 					.min = 0,
714*4ed19f0dSVikas Gupta 					.max = 65535,
715*4ed19f0dSVikas Gupta 					.increment = 1
716*4ed19f0dSVikas Gupta 				},
717*4ed19f0dSVikas Gupta 				.iv_size = {
718*4ed19f0dSVikas Gupta 					.min = 12,
719*4ed19f0dSVikas Gupta 					.max = 16,
720*4ed19f0dSVikas Gupta 					.increment = 4
721*4ed19f0dSVikas Gupta 				},
722*4ed19f0dSVikas Gupta 			}, }
723*4ed19f0dSVikas Gupta 		}, }
724*4ed19f0dSVikas Gupta 	},
725*4ed19f0dSVikas Gupta 	{
726*4ed19f0dSVikas Gupta 		/* AES CCM */
727*4ed19f0dSVikas Gupta 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
728*4ed19f0dSVikas Gupta 		{.sym = {
729*4ed19f0dSVikas Gupta 			.xform_type = RTE_CRYPTO_SYM_XFORM_AEAD,
730*4ed19f0dSVikas Gupta 			{.aead = {
731*4ed19f0dSVikas Gupta 				.algo = RTE_CRYPTO_AEAD_AES_CCM,
732*4ed19f0dSVikas Gupta 				.block_size = 16,
733*4ed19f0dSVikas Gupta 				.key_size = {
734*4ed19f0dSVikas Gupta 					.min = 16,
735*4ed19f0dSVikas Gupta 					.max = 32,
736*4ed19f0dSVikas Gupta 					.increment = 8
737*4ed19f0dSVikas Gupta 				},
738*4ed19f0dSVikas Gupta 				.digest_size = {
739*4ed19f0dSVikas Gupta 					.min = 4,
740*4ed19f0dSVikas Gupta 					.max = 16,
741*4ed19f0dSVikas Gupta 					.increment = 2
742*4ed19f0dSVikas Gupta 				},
743*4ed19f0dSVikas Gupta 				.aad_size = {
744*4ed19f0dSVikas Gupta 					.min = 0,
745*4ed19f0dSVikas Gupta 					.max = 65535,
746*4ed19f0dSVikas Gupta 					.increment = 1
747*4ed19f0dSVikas Gupta 				},
748*4ed19f0dSVikas Gupta 				.iv_size = {
749*4ed19f0dSVikas Gupta 					.min = 7,
750*4ed19f0dSVikas Gupta 					.max = 13,
751*4ed19f0dSVikas Gupta 					.increment = 1
752*4ed19f0dSVikas Gupta 				},
753*4ed19f0dSVikas Gupta 			}, }
754*4ed19f0dSVikas Gupta 		}, }
755*4ed19f0dSVikas Gupta 	},
756*4ed19f0dSVikas Gupta 
757*4ed19f0dSVikas Gupta 	RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()
758*4ed19f0dSVikas Gupta };
759*4ed19f0dSVikas Gupta 
760*4ed19f0dSVikas Gupta const struct rte_cryptodev_capabilities *
bcmfs_sym_get_capabilities(void)761*4ed19f0dSVikas Gupta bcmfs_sym_get_capabilities(void)
762*4ed19f0dSVikas Gupta {
763*4ed19f0dSVikas Gupta 	return bcmfs_sym_capabilities;
764*4ed19f0dSVikas Gupta }
765