xref: /dpdk/drivers/crypto/nitrox/nitrox_sym_capabilities.c (revision 60531a2c53f4d2b4b96ebb10ca813f62d0a5508d)
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 	{	/* 3DES CBC */
92 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
93 		{.sym = {
94 			.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
95 			{.cipher = {
96 				.algo = RTE_CRYPTO_CIPHER_3DES_CBC,
97 				.block_size = 8,
98 				.key_size = {
99 					.min = 24,
100 					.max = 24,
101 					.increment = 0
102 				},
103 				.iv_size = {
104 					.min = 8,
105 					.max = 8,
106 					.increment = 0
107 				}
108 			}, }
109 		}, }
110 	},
111 	{	/* AES GCM */
112 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
113 		{.sym = {
114 			.xform_type = RTE_CRYPTO_SYM_XFORM_AEAD,
115 			{.aead = {
116 				.algo = RTE_CRYPTO_AEAD_AES_GCM,
117 				.block_size = 16,
118 				.key_size = {
119 					.min = 16,
120 					.max = 32,
121 					.increment = 8
122 				},
123 				.digest_size = {
124 					.min = 1,
125 					.max = 16,
126 					.increment = 1
127 				},
128 				.aad_size = {
129 					.min = 0,
130 					.max = 512,
131 					.increment = 1
132 				},
133 				.iv_size = {
134 					.min = 12,
135 					.max = 16,
136 					.increment = 4
137 				},
138 			}, }
139 		}, }
140 	},
141 	{	/* AES CCM */
142 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
143 		{.sym = {
144 			.xform_type = RTE_CRYPTO_SYM_XFORM_AEAD,
145 			{.aead = {
146 				.algo = RTE_CRYPTO_AEAD_AES_CCM,
147 				.block_size = 16,
148 				.key_size = {
149 					.min = 16,
150 					.max = 32,
151 					.increment = 8
152 				},
153 				.digest_size = {
154 					.min = 4,
155 					.max = 16,
156 					.increment = 2
157 				},
158 				.aad_size = {
159 					.min = 0,
160 					.max = 512,
161 					.increment = 1
162 				},
163 				.iv_size = {
164 					.min = 7,
165 					.max = 13,
166 					.increment = 1
167 				},
168 			}, }
169 		}, }
170 	},
171 	RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()
172 };
173 
174 const struct rte_cryptodev_capabilities *
nitrox_get_sym_capabilities(void)175 nitrox_get_sym_capabilities(void)
176 {
177 	return nitrox_capabilities;
178 }
179