xref: /dpdk/drivers/crypto/nitrox/nitrox_sym_capabilities.c (revision 1cde1b9a9b4dbf31cb5e5ccdfc5da3cb079f43a2)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(C) 2019 Marvell International Ltd.
3  */
4 
5 #include "nitrox_sym_capabilities.h"
6 
7 static const struct rte_cryptodev_capabilities nitrox_capabilities[] = {
8 	{	/* SHA1 HMAC */
9 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
10 		{.sym = {
11 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
12 			{.auth = {
13 				.algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
14 				.block_size = 64,
15 				.key_size = {
16 					.min = 1,
17 					.max = 64,
18 					.increment = 1
19 				},
20 				.digest_size = {
21 					.min = 1,
22 					.max = 20,
23 					.increment = 1
24 				},
25 				.iv_size = { 0 }
26 			}, }
27 		}, }
28 	},
29 	{	/* SHA224 HMAC */
30 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
31 		{.sym = {
32 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
33 			{.auth = {
34 				.algo = RTE_CRYPTO_AUTH_SHA224_HMAC,
35 				.block_size = 64,
36 				.key_size = {
37 					.min = 1,
38 					.max = 64,
39 					.increment = 1
40 				},
41 				.digest_size = {
42 					.min = 1,
43 					.max = 28,
44 					.increment = 1
45 				},
46 				.iv_size = { 0 }
47 			}, }
48 		}, }
49 	},
50 	{	/* SHA256 HMAC */
51 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
52 		{.sym = {
53 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
54 			{.auth = {
55 				.algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
56 				.block_size = 64,
57 				.key_size = {
58 					.min = 1,
59 					.max = 64,
60 					.increment = 1
61 				},
62 				.digest_size = {
63 					.min = 1,
64 					.max = 32,
65 					.increment = 1
66 				},
67 				.iv_size = { 0 }
68 			}, }
69 		}, }
70 	},
71 	{	/* AES CBC */
72 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
73 		{.sym = {
74 			.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
75 			{.cipher = {
76 				.algo = RTE_CRYPTO_CIPHER_AES_CBC,
77 				.block_size = 16,
78 				.key_size = {
79 					.min = 16,
80 					.max = 32,
81 					.increment = 8
82 				},
83 				.iv_size = {
84 					.min = 16,
85 					.max = 16,
86 					.increment = 0
87 				}
88 			}, }
89 		}, }
90 	},
91 
92 	RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()
93 };
94 
95 const struct rte_cryptodev_capabilities *
96 nitrox_get_sym_capabilities(void)
97 {
98 	return nitrox_capabilities;
99 }
100