14418919fSjohnjiang /* SPDX-License-Identifier: BSD-3-Clause
24418919fSjohnjiang * Copyright(C) 2019 Marvell International Ltd.
34418919fSjohnjiang */
44418919fSjohnjiang
54418919fSjohnjiang #include "nitrox_sym_capabilities.h"
64418919fSjohnjiang
74418919fSjohnjiang static const struct rte_cryptodev_capabilities nitrox_capabilities[] = {
84418919fSjohnjiang { /* SHA1 HMAC */
94418919fSjohnjiang .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
104418919fSjohnjiang {.sym = {
114418919fSjohnjiang .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
124418919fSjohnjiang {.auth = {
134418919fSjohnjiang .algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
144418919fSjohnjiang .block_size = 64,
154418919fSjohnjiang .key_size = {
164418919fSjohnjiang .min = 1,
174418919fSjohnjiang .max = 64,
184418919fSjohnjiang .increment = 1
194418919fSjohnjiang },
204418919fSjohnjiang .digest_size = {
214418919fSjohnjiang .min = 1,
224418919fSjohnjiang .max = 20,
234418919fSjohnjiang .increment = 1
244418919fSjohnjiang },
254418919fSjohnjiang .iv_size = { 0 }
264418919fSjohnjiang }, }
274418919fSjohnjiang }, }
284418919fSjohnjiang },
294418919fSjohnjiang { /* SHA224 HMAC */
304418919fSjohnjiang .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
314418919fSjohnjiang {.sym = {
324418919fSjohnjiang .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
334418919fSjohnjiang {.auth = {
344418919fSjohnjiang .algo = RTE_CRYPTO_AUTH_SHA224_HMAC,
354418919fSjohnjiang .block_size = 64,
364418919fSjohnjiang .key_size = {
374418919fSjohnjiang .min = 1,
384418919fSjohnjiang .max = 64,
394418919fSjohnjiang .increment = 1
404418919fSjohnjiang },
414418919fSjohnjiang .digest_size = {
424418919fSjohnjiang .min = 1,
434418919fSjohnjiang .max = 28,
444418919fSjohnjiang .increment = 1
454418919fSjohnjiang },
464418919fSjohnjiang .iv_size = { 0 }
474418919fSjohnjiang }, }
484418919fSjohnjiang }, }
494418919fSjohnjiang },
504418919fSjohnjiang { /* SHA256 HMAC */
514418919fSjohnjiang .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
524418919fSjohnjiang {.sym = {
534418919fSjohnjiang .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
544418919fSjohnjiang {.auth = {
554418919fSjohnjiang .algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
564418919fSjohnjiang .block_size = 64,
574418919fSjohnjiang .key_size = {
584418919fSjohnjiang .min = 1,
594418919fSjohnjiang .max = 64,
604418919fSjohnjiang .increment = 1
614418919fSjohnjiang },
624418919fSjohnjiang .digest_size = {
634418919fSjohnjiang .min = 1,
644418919fSjohnjiang .max = 32,
654418919fSjohnjiang .increment = 1
664418919fSjohnjiang },
674418919fSjohnjiang .iv_size = { 0 }
684418919fSjohnjiang }, }
694418919fSjohnjiang }, }
704418919fSjohnjiang },
714418919fSjohnjiang { /* AES CBC */
724418919fSjohnjiang .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
734418919fSjohnjiang {.sym = {
744418919fSjohnjiang .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
754418919fSjohnjiang {.cipher = {
764418919fSjohnjiang .algo = RTE_CRYPTO_CIPHER_AES_CBC,
774418919fSjohnjiang .block_size = 16,
784418919fSjohnjiang .key_size = {
794418919fSjohnjiang .min = 16,
804418919fSjohnjiang .max = 32,
814418919fSjohnjiang .increment = 8
824418919fSjohnjiang },
834418919fSjohnjiang .iv_size = {
844418919fSjohnjiang .min = 16,
854418919fSjohnjiang .max = 16,
864418919fSjohnjiang .increment = 0
874418919fSjohnjiang }
884418919fSjohnjiang }, }
894418919fSjohnjiang }, }
904418919fSjohnjiang },
91*2d9fd380Sjfb8856606 { /* 3DES CBC */
92*2d9fd380Sjfb8856606 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
93*2d9fd380Sjfb8856606 {.sym = {
94*2d9fd380Sjfb8856606 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
95*2d9fd380Sjfb8856606 {.cipher = {
96*2d9fd380Sjfb8856606 .algo = RTE_CRYPTO_CIPHER_3DES_CBC,
97*2d9fd380Sjfb8856606 .block_size = 8,
98*2d9fd380Sjfb8856606 .key_size = {
99*2d9fd380Sjfb8856606 .min = 24,
100*2d9fd380Sjfb8856606 .max = 24,
101*2d9fd380Sjfb8856606 .increment = 0
102*2d9fd380Sjfb8856606 },
103*2d9fd380Sjfb8856606 .iv_size = {
104*2d9fd380Sjfb8856606 .min = 8,
105*2d9fd380Sjfb8856606 .max = 8,
106*2d9fd380Sjfb8856606 .increment = 0
107*2d9fd380Sjfb8856606 }
108*2d9fd380Sjfb8856606 }, }
109*2d9fd380Sjfb8856606 }, }
110*2d9fd380Sjfb8856606 },
111*2d9fd380Sjfb8856606 { /* AES GCM */
112*2d9fd380Sjfb8856606 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
113*2d9fd380Sjfb8856606 {.sym = {
114*2d9fd380Sjfb8856606 .xform_type = RTE_CRYPTO_SYM_XFORM_AEAD,
115*2d9fd380Sjfb8856606 {.aead = {
116*2d9fd380Sjfb8856606 .algo = RTE_CRYPTO_AEAD_AES_GCM,
117*2d9fd380Sjfb8856606 .block_size = 16,
118*2d9fd380Sjfb8856606 .key_size = {
119*2d9fd380Sjfb8856606 .min = 16,
120*2d9fd380Sjfb8856606 .max = 32,
121*2d9fd380Sjfb8856606 .increment = 8
122*2d9fd380Sjfb8856606 },
123*2d9fd380Sjfb8856606 .digest_size = {
124*2d9fd380Sjfb8856606 .min = 1,
125*2d9fd380Sjfb8856606 .max = 16,
126*2d9fd380Sjfb8856606 .increment = 1
127*2d9fd380Sjfb8856606 },
128*2d9fd380Sjfb8856606 .aad_size = {
129*2d9fd380Sjfb8856606 .min = 0,
130*2d9fd380Sjfb8856606 .max = 512,
131*2d9fd380Sjfb8856606 .increment = 1
132*2d9fd380Sjfb8856606 },
133*2d9fd380Sjfb8856606 .iv_size = {
134*2d9fd380Sjfb8856606 .min = 12,
135*2d9fd380Sjfb8856606 .max = 16,
136*2d9fd380Sjfb8856606 .increment = 4
137*2d9fd380Sjfb8856606 },
138*2d9fd380Sjfb8856606 }, }
139*2d9fd380Sjfb8856606 }, }
140*2d9fd380Sjfb8856606 },
1414418919fSjohnjiang RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()
1424418919fSjohnjiang };
1434418919fSjohnjiang
1444418919fSjohnjiang const struct rte_cryptodev_capabilities *
nitrox_get_sym_capabilities(void)1454418919fSjohnjiang nitrox_get_sym_capabilities(void)
1464418919fSjohnjiang {
1474418919fSjohnjiang return nitrox_capabilities;
1484418919fSjohnjiang }
149