1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright (C) 2019 Marvell International Ltd.
5 #include <rte_cryptodev.h>
7 #include "otx2_cryptodev_capabilities.h"
10 rte_cryptodev_capabilities otx2_cpt_capabilities[] = {
11 /* Symmetric capabilities */
13 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
15 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
17 .algo = RTE_CRYPTO_AUTH_NULL,
32 { /* AES GMAC (AUTH) */
33 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
35 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
37 .algo = RTE_CRYPTO_AUTH_AES_GMAC,
58 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
60 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
62 .algo = RTE_CRYPTO_AUTH_KASUMI_F9,
78 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
80 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
82 .algo = RTE_CRYPTO_AUTH_MD5,
98 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
100 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
102 .algo = RTE_CRYPTO_AUTH_MD5_HMAC,
118 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
120 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
122 .algo = RTE_CRYPTO_AUTH_SHA1,
138 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
140 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
142 .algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
158 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
160 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
162 .algo = RTE_CRYPTO_AUTH_SHA224,
178 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
180 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
182 .algo = RTE_CRYPTO_AUTH_SHA224_HMAC,
198 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
200 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
202 .algo = RTE_CRYPTO_AUTH_SHA256,
218 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
220 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
222 .algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
238 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
240 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
242 .algo = RTE_CRYPTO_AUTH_SHA384,
258 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
260 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
262 .algo = RTE_CRYPTO_AUTH_SHA384_HMAC,
278 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
280 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
282 .algo = RTE_CRYPTO_AUTH_SHA512,
298 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
300 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
302 .algo = RTE_CRYPTO_AUTH_SHA512_HMAC,
317 { /* SNOW 3G (UIA2) */
318 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
320 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
322 .algo = RTE_CRYPTO_AUTH_SNOW3G_UIA2,
343 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
345 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
347 .algo = RTE_CRYPTO_AUTH_ZUC_EIA3,
367 { /* NULL (CIPHER) */
368 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
370 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
372 .algo = RTE_CRYPTO_CIPHER_NULL,
388 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
390 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
392 .algo = RTE_CRYPTO_CIPHER_3DES_CBC,
408 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
410 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
412 .algo = RTE_CRYPTO_CIPHER_3DES_ECB,
428 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
430 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
432 .algo = RTE_CRYPTO_CIPHER_AES_CBC,
448 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
450 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
452 .algo = RTE_CRYPTO_CIPHER_AES_CTR,
468 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
470 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
472 .algo = RTE_CRYPTO_CIPHER_AES_XTS,
488 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
490 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
492 .algo = RTE_CRYPTO_CIPHER_DES_CBC,
508 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
510 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
512 .algo = RTE_CRYPTO_CIPHER_KASUMI_F8,
527 { /* SNOW 3G (UEA2) */
528 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
530 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
532 .algo = RTE_CRYPTO_CIPHER_SNOW3G_UEA2,
548 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
550 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
552 .algo = RTE_CRYPTO_CIPHER_ZUC_EEA3,
568 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
570 .xform_type = RTE_CRYPTO_SYM_XFORM_AEAD,
572 .algo = RTE_CRYPTO_AEAD_AES_GCM,
597 /* End of symmetric capabilities */
599 /* Asymmetric capabilities */
601 .op = RTE_CRYPTO_OP_TYPE_ASYMMETRIC,
604 .xform_type = RTE_CRYPTO_ASYM_XFORM_RSA,
605 .op_types = ((1 << RTE_CRYPTO_ASYM_OP_SIGN) |
606 (1 << RTE_CRYPTO_ASYM_OP_VERIFY) |
607 (1 << RTE_CRYPTO_ASYM_OP_ENCRYPT) |
608 (1 << RTE_CRYPTO_ASYM_OP_DECRYPT)),
618 .op = RTE_CRYPTO_OP_TYPE_ASYMMETRIC,
621 .xform_type = RTE_CRYPTO_ASYM_XFORM_MODEX,
631 /* End of asymmetric capabilities */
632 RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()
635 const struct rte_cryptodev_capabilities *
636 otx2_cpt_capabilities_get(void)
638 return otx2_cpt_capabilities;