]> git.proxmox.com Git - ceph.git/blob - ceph/src/seastar/dpdk/drivers/crypto/octeontx/otx_cryptodev_capabilities.c
import 15.2.0 Octopus source
[ceph.git] / ceph / src / seastar / dpdk / drivers / crypto / octeontx / otx_cryptodev_capabilities.c
1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2018 Cavium, Inc
3 */
4
5 #include <rte_cryptodev.h>
6
7 #include "otx_cryptodev_capabilities.h"
8
9 static const struct rte_cryptodev_capabilities otx_capabilities[] = {
10 /* Symmetric capabilities */
11 { /* NULL (AUTH) */
12 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
13 {.sym = {
14 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
15 {.auth = {
16 .algo = RTE_CRYPTO_AUTH_NULL,
17 .block_size = 1,
18 .key_size = {
19 .min = 0,
20 .max = 0,
21 .increment = 0
22 },
23 .digest_size = {
24 .min = 0,
25 .max = 0,
26 .increment = 0
27 },
28 }, },
29 }, },
30 },
31 { /* AES GMAC (AUTH) */
32 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
33 {.sym = {
34 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
35 {.auth = {
36 .algo = RTE_CRYPTO_AUTH_AES_GMAC,
37 .block_size = 16,
38 .key_size = {
39 .min = 16,
40 .max = 32,
41 .increment = 8
42 },
43 .digest_size = {
44 .min = 8,
45 .max = 16,
46 .increment = 4
47 },
48 .iv_size = {
49 .min = 12,
50 .max = 12,
51 .increment = 0
52 }
53 }, }
54 }, }
55 },
56 { /* KASUMI (F9) */
57 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
58 {.sym = {
59 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
60 {.auth = {
61 .algo = RTE_CRYPTO_AUTH_KASUMI_F9,
62 .block_size = 8,
63 .key_size = {
64 .min = 16,
65 .max = 16,
66 .increment = 0
67 },
68 .digest_size = {
69 .min = 4,
70 .max = 4,
71 .increment = 0
72 },
73 }, }
74 }, }
75 },
76 { /* MD5 */
77 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
78 {.sym = {
79 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
80 {.auth = {
81 .algo = RTE_CRYPTO_AUTH_MD5,
82 .block_size = 64,
83 .key_size = {
84 .min = 0,
85 .max = 0,
86 .increment = 0
87 },
88 .digest_size = {
89 .min = 1,
90 .max = 16,
91 .increment = 1
92 },
93 }, }
94 }, }
95 },
96 { /* MD5 HMAC */
97 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
98 {.sym = {
99 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
100 {.auth = {
101 .algo = RTE_CRYPTO_AUTH_MD5_HMAC,
102 .block_size = 64,
103 .key_size = {
104 .min = 8,
105 .max = 64,
106 .increment = 8
107 },
108 .digest_size = {
109 .min = 1,
110 .max = 16,
111 .increment = 1
112 },
113 }, }
114 }, }
115 },
116 { /* SHA1 */
117 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
118 {.sym = {
119 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
120 {.auth = {
121 .algo = RTE_CRYPTO_AUTH_SHA1,
122 .block_size = 64,
123 .key_size = {
124 .min = 0,
125 .max = 0,
126 .increment = 0
127 },
128 .digest_size = {
129 .min = 1,
130 .max = 20,
131 .increment = 1
132 },
133 }, }
134 }, }
135 },
136 { /* SHA1 HMAC */
137 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
138 {.sym = {
139 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
140 {.auth = {
141 .algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
142 .block_size = 64,
143 .key_size = {
144 .min = 64,
145 .max = 64,
146 .increment = 0
147 },
148 .digest_size = {
149 .min = 1,
150 .max = 20,
151 .increment = 1
152 },
153 }, }
154 }, }
155 },
156 { /* SHA224 */
157 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
158 {.sym = {
159 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
160 {.auth = {
161 .algo = RTE_CRYPTO_AUTH_SHA224,
162 .block_size = 64,
163 .key_size = {
164 .min = 0,
165 .max = 0,
166 .increment = 0
167 },
168 .digest_size = {
169 .min = 1,
170 .max = 28,
171 .increment = 1
172 },
173 }, }
174 }, }
175 },
176 { /* SHA224 HMAC */
177 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
178 {.sym = {
179 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
180 {.auth = {
181 .algo = RTE_CRYPTO_AUTH_SHA224_HMAC,
182 .block_size = 64,
183 .key_size = {
184 .min = 64,
185 .max = 64,
186 .increment = 0
187 },
188 .digest_size = {
189 .min = 1,
190 .max = 28,
191 .increment = 1
192 },
193 }, }
194 }, }
195 },
196 { /* SHA256 */
197 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
198 {.sym = {
199 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
200 {.auth = {
201 .algo = RTE_CRYPTO_AUTH_SHA256,
202 .block_size = 64,
203 .key_size = {
204 .min = 0,
205 .max = 0,
206 .increment = 0
207 },
208 .digest_size = {
209 .min = 1,
210 .max = 32,
211 .increment = 1
212 },
213 }, }
214 }, }
215 },
216 { /* SHA256 HMAC */
217 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
218 {.sym = {
219 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
220 {.auth = {
221 .algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
222 .block_size = 64,
223 .key_size = {
224 .min = 64,
225 .max = 64,
226 .increment = 0
227 },
228 .digest_size = {
229 .min = 1,
230 .max = 32,
231 .increment = 1
232 },
233 }, }
234 }, }
235 },
236 { /* SHA384 */
237 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
238 {.sym = {
239 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
240 {.auth = {
241 .algo = RTE_CRYPTO_AUTH_SHA384,
242 .block_size = 64,
243 .key_size = {
244 .min = 0,
245 .max = 0,
246 .increment = 0
247 },
248 .digest_size = {
249 .min = 1,
250 .max = 48,
251 .increment = 1
252 },
253 }, }
254 }, }
255 },
256 { /* SHA384 HMAC */
257 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
258 {.sym = {
259 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
260 {.auth = {
261 .algo = RTE_CRYPTO_AUTH_SHA384_HMAC,
262 .block_size = 64,
263 .key_size = {
264 .min = 64,
265 .max = 64,
266 .increment = 0
267 },
268 .digest_size = {
269 .min = 1,
270 .max = 48,
271 .increment = 1
272 },
273 }, }
274 }, }
275 },
276 { /* SHA512 */
277 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
278 {.sym = {
279 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
280 {.auth = {
281 .algo = RTE_CRYPTO_AUTH_SHA512,
282 .block_size = 128,
283 .key_size = {
284 .min = 0,
285 .max = 0,
286 .increment = 0
287 },
288 .digest_size = {
289 .min = 1,
290 .max = 64,
291 .increment = 1
292 },
293 }, }
294 }, }
295 },
296 { /* SHA512 HMAC */
297 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
298 {.sym = {
299 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
300 {.auth = {
301 .algo = RTE_CRYPTO_AUTH_SHA512_HMAC,
302 .block_size = 128,
303 .key_size = {
304 .min = 64,
305 .max = 64,
306 .increment = 0
307 },
308 .digest_size = {
309 .min = 1,
310 .max = 64,
311 .increment = 1
312 },
313 }, }
314 }, }
315 },
316 { /* SNOW 3G (UIA2) */
317 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
318 {.sym = {
319 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
320 {.auth = {
321 .algo = RTE_CRYPTO_AUTH_SNOW3G_UIA2,
322 .block_size = 16,
323 .key_size = {
324 .min = 16,
325 .max = 16,
326 .increment = 0
327 },
328 .digest_size = {
329 .min = 4,
330 .max = 4,
331 .increment = 0
332 },
333 .iv_size = {
334 .min = 16,
335 .max = 16,
336 .increment = 0
337 }
338 }, }
339 }, }
340 },
341 { /* ZUC (EIA3) */
342 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
343 {.sym = {
344 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
345 {.auth = {
346 .algo = RTE_CRYPTO_AUTH_ZUC_EIA3,
347 .block_size = 16,
348 .key_size = {
349 .min = 16,
350 .max = 16,
351 .increment = 0
352 },
353 .digest_size = {
354 .min = 4,
355 .max = 4,
356 .increment = 0
357 },
358 .iv_size = {
359 .min = 16,
360 .max = 16,
361 .increment = 0
362 }
363 }, }
364 }, }
365 },
366 { /* NULL (CIPHER) */
367 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
368 {.sym = {
369 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
370 {.cipher = {
371 .algo = RTE_CRYPTO_CIPHER_NULL,
372 .block_size = 1,
373 .key_size = {
374 .min = 0,
375 .max = 0,
376 .increment = 0
377 },
378 .iv_size = {
379 .min = 0,
380 .max = 0,
381 .increment = 0
382 }
383 }, },
384 }, }
385 },
386 { /* 3DES CBC */
387 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
388 {.sym = {
389 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
390 {.cipher = {
391 .algo = RTE_CRYPTO_CIPHER_3DES_CBC,
392 .block_size = 8,
393 .key_size = {
394 .min = 24,
395 .max = 24,
396 .increment = 0
397 },
398 .iv_size = {
399 .min = 8,
400 .max = 16,
401 .increment = 8
402 }
403 }, }
404 }, }
405 },
406 { /* 3DES ECB */
407 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
408 {.sym = {
409 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
410 {.cipher = {
411 .algo = RTE_CRYPTO_CIPHER_3DES_ECB,
412 .block_size = 8,
413 .key_size = {
414 .min = 24,
415 .max = 24,
416 .increment = 0
417 },
418 .iv_size = {
419 .min = 0,
420 .max = 0,
421 .increment = 0
422 }
423 }, }
424 }, }
425 },
426 { /* AES CBC */
427 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
428 {.sym = {
429 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
430 {.cipher = {
431 .algo = RTE_CRYPTO_CIPHER_AES_CBC,
432 .block_size = 16,
433 .key_size = {
434 .min = 16,
435 .max = 32,
436 .increment = 8
437 },
438 .iv_size = {
439 .min = 16,
440 .max = 16,
441 .increment = 0
442 }
443 }, }
444 }, }
445 },
446 { /* AES CTR */
447 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
448 {.sym = {
449 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
450 {.cipher = {
451 .algo = RTE_CRYPTO_CIPHER_AES_CTR,
452 .block_size = 16,
453 .key_size = {
454 .min = 16,
455 .max = 32,
456 .increment = 8
457 },
458 .iv_size = {
459 .min = 12,
460 .max = 16,
461 .increment = 4
462 }
463 }, }
464 }, }
465 },
466 { /* AES XTS */
467 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
468 {.sym = {
469 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
470 {.cipher = {
471 .algo = RTE_CRYPTO_CIPHER_AES_XTS,
472 .block_size = 16,
473 .key_size = {
474 .min = 32,
475 .max = 64,
476 .increment = 0
477 },
478 .iv_size = {
479 .min = 16,
480 .max = 16,
481 .increment = 0
482 }
483 }, }
484 }, }
485 },
486 { /* DES CBC */
487 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
488 {.sym = {
489 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
490 {.cipher = {
491 .algo = RTE_CRYPTO_CIPHER_DES_CBC,
492 .block_size = 8,
493 .key_size = {
494 .min = 8,
495 .max = 8,
496 .increment = 0
497 },
498 .iv_size = {
499 .min = 8,
500 .max = 8,
501 .increment = 0
502 }
503 }, }
504 }, }
505 },
506 { /* KASUMI (F8) */
507 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
508 {.sym = {
509 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
510 {.cipher = {
511 .algo = RTE_CRYPTO_CIPHER_KASUMI_F8,
512 .block_size = 8,
513 .key_size = {
514 .min = 16,
515 .max = 16,
516 .increment = 0
517 },
518 .iv_size = {
519 .min = 8,
520 .max = 8,
521 .increment = 0
522 }
523 }, }
524 }, }
525 },
526 { /* SNOW 3G (UEA2) */
527 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
528 {.sym = {
529 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
530 {.cipher = {
531 .algo = RTE_CRYPTO_CIPHER_SNOW3G_UEA2,
532 .block_size = 16,
533 .key_size = {
534 .min = 16,
535 .max = 16,
536 .increment = 0
537 },
538 .iv_size = {
539 .min = 16,
540 .max = 16,
541 .increment = 0
542 }
543 }, }
544 }, }
545 },
546 { /* ZUC (EEA3) */
547 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
548 {.sym = {
549 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
550 {.cipher = {
551 .algo = RTE_CRYPTO_CIPHER_ZUC_EEA3,
552 .block_size = 16,
553 .key_size = {
554 .min = 16,
555 .max = 16,
556 .increment = 0
557 },
558 .iv_size = {
559 .min = 16,
560 .max = 16,
561 .increment = 0
562 }
563 }, }
564 }, }
565 },
566 { /* AES GCM */
567 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
568 {.sym = {
569 .xform_type = RTE_CRYPTO_SYM_XFORM_AEAD,
570 {.aead = {
571 .algo = RTE_CRYPTO_AEAD_AES_GCM,
572 .block_size = 16,
573 .key_size = {
574 .min = 16,
575 .max = 32,
576 .increment = 8
577 },
578 .digest_size = {
579 .min = 8,
580 .max = 16,
581 .increment = 4
582 },
583 .aad_size = {
584 .min = 0,
585 .max = 1024,
586 .increment = 1
587 },
588 .iv_size = {
589 .min = 12,
590 .max = 12,
591 .increment = 0
592 }
593 }, }
594 }, }
595 },
596 /* End of symmetric capabilities */
597 RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()
598 };
599
600 const struct rte_cryptodev_capabilities *
601 otx_get_capabilities(void)
602 {
603 return otx_capabilities;
604 }