xref: /dpdk/drivers/crypto/nitrox/nitrox_sym_capabilities.c (revision 60531a2c53f4d2b4b96ebb10ca813f62d0a5508d)
1cafd2703SNagadheeraj Rottela /* SPDX-License-Identifier: BSD-3-Clause
2cafd2703SNagadheeraj Rottela  * Copyright(C) 2019 Marvell International Ltd.
3cafd2703SNagadheeraj Rottela  */
4cafd2703SNagadheeraj Rottela 
5cafd2703SNagadheeraj Rottela #include "nitrox_sym_capabilities.h"
6cafd2703SNagadheeraj Rottela 
7cafd2703SNagadheeraj Rottela static const struct rte_cryptodev_capabilities nitrox_capabilities[] = {
8cafd2703SNagadheeraj Rottela 	{	/* SHA1 HMAC */
9cafd2703SNagadheeraj Rottela 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
10cafd2703SNagadheeraj Rottela 		{.sym = {
11cafd2703SNagadheeraj Rottela 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
12cafd2703SNagadheeraj Rottela 			{.auth = {
13cafd2703SNagadheeraj Rottela 				.algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
14cafd2703SNagadheeraj Rottela 				.block_size = 64,
15cafd2703SNagadheeraj Rottela 				.key_size = {
16cafd2703SNagadheeraj Rottela 					.min = 1,
17cafd2703SNagadheeraj Rottela 					.max = 64,
18cafd2703SNagadheeraj Rottela 					.increment = 1
19cafd2703SNagadheeraj Rottela 				},
20cafd2703SNagadheeraj Rottela 				.digest_size = {
21cafd2703SNagadheeraj Rottela 					.min = 1,
22cafd2703SNagadheeraj Rottela 					.max = 20,
23cafd2703SNagadheeraj Rottela 					.increment = 1
24cafd2703SNagadheeraj Rottela 				},
25cafd2703SNagadheeraj Rottela 				.iv_size = { 0 }
26cafd2703SNagadheeraj Rottela 			}, }
27cafd2703SNagadheeraj Rottela 		}, }
28cafd2703SNagadheeraj Rottela 	},
29cafd2703SNagadheeraj Rottela 	{	/* SHA224 HMAC */
30cafd2703SNagadheeraj Rottela 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
31cafd2703SNagadheeraj Rottela 		{.sym = {
32cafd2703SNagadheeraj Rottela 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
33cafd2703SNagadheeraj Rottela 			{.auth = {
34cafd2703SNagadheeraj Rottela 				.algo = RTE_CRYPTO_AUTH_SHA224_HMAC,
35cafd2703SNagadheeraj Rottela 				.block_size = 64,
36cafd2703SNagadheeraj Rottela 				.key_size = {
37cafd2703SNagadheeraj Rottela 					.min = 1,
38cafd2703SNagadheeraj Rottela 					.max = 64,
39cafd2703SNagadheeraj Rottela 					.increment = 1
40cafd2703SNagadheeraj Rottela 				},
41cafd2703SNagadheeraj Rottela 				.digest_size = {
42cafd2703SNagadheeraj Rottela 					.min = 1,
43cafd2703SNagadheeraj Rottela 					.max = 28,
44cafd2703SNagadheeraj Rottela 					.increment = 1
45cafd2703SNagadheeraj Rottela 				},
46cafd2703SNagadheeraj Rottela 				.iv_size = { 0 }
47cafd2703SNagadheeraj Rottela 			}, }
48cafd2703SNagadheeraj Rottela 		}, }
49cafd2703SNagadheeraj Rottela 	},
50cafd2703SNagadheeraj Rottela 	{	/* SHA256 HMAC */
51cafd2703SNagadheeraj Rottela 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
52cafd2703SNagadheeraj Rottela 		{.sym = {
53cafd2703SNagadheeraj Rottela 			.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
54cafd2703SNagadheeraj Rottela 			{.auth = {
55cafd2703SNagadheeraj Rottela 				.algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
56cafd2703SNagadheeraj Rottela 				.block_size = 64,
57cafd2703SNagadheeraj Rottela 				.key_size = {
58cafd2703SNagadheeraj Rottela 					.min = 1,
59cafd2703SNagadheeraj Rottela 					.max = 64,
60cafd2703SNagadheeraj Rottela 					.increment = 1
61cafd2703SNagadheeraj Rottela 				},
62cafd2703SNagadheeraj Rottela 				.digest_size = {
63cafd2703SNagadheeraj Rottela 					.min = 1,
64cafd2703SNagadheeraj Rottela 					.max = 32,
65cafd2703SNagadheeraj Rottela 					.increment = 1
66cafd2703SNagadheeraj Rottela 				},
67cafd2703SNagadheeraj Rottela 				.iv_size = { 0 }
68cafd2703SNagadheeraj Rottela 			}, }
69cafd2703SNagadheeraj Rottela 		}, }
70cafd2703SNagadheeraj Rottela 	},
71cafd2703SNagadheeraj Rottela 	{	/* AES CBC */
72cafd2703SNagadheeraj Rottela 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
73cafd2703SNagadheeraj Rottela 		{.sym = {
74cafd2703SNagadheeraj Rottela 			.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
75cafd2703SNagadheeraj Rottela 			{.cipher = {
76cafd2703SNagadheeraj Rottela 				.algo = RTE_CRYPTO_CIPHER_AES_CBC,
77cafd2703SNagadheeraj Rottela 				.block_size = 16,
78cafd2703SNagadheeraj Rottela 				.key_size = {
79cafd2703SNagadheeraj Rottela 					.min = 16,
80cafd2703SNagadheeraj Rottela 					.max = 32,
81cafd2703SNagadheeraj Rottela 					.increment = 8
82cafd2703SNagadheeraj Rottela 				},
83cafd2703SNagadheeraj Rottela 				.iv_size = {
84cafd2703SNagadheeraj Rottela 					.min = 16,
85cafd2703SNagadheeraj Rottela 					.max = 16,
86cafd2703SNagadheeraj Rottela 					.increment = 0
87cafd2703SNagadheeraj Rottela 				}
88cafd2703SNagadheeraj Rottela 			}, }
89cafd2703SNagadheeraj Rottela 		}, }
90cafd2703SNagadheeraj Rottela 	},
912a41db75SNagadheeraj Rottela 	{	/* 3DES CBC */
922a41db75SNagadheeraj Rottela 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
932a41db75SNagadheeraj Rottela 		{.sym = {
942a41db75SNagadheeraj Rottela 			.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
952a41db75SNagadheeraj Rottela 			{.cipher = {
962a41db75SNagadheeraj Rottela 				.algo = RTE_CRYPTO_CIPHER_3DES_CBC,
972a41db75SNagadheeraj Rottela 				.block_size = 8,
982a41db75SNagadheeraj Rottela 				.key_size = {
992a41db75SNagadheeraj Rottela 					.min = 24,
1002a41db75SNagadheeraj Rottela 					.max = 24,
1012a41db75SNagadheeraj Rottela 					.increment = 0
1022a41db75SNagadheeraj Rottela 				},
1032a41db75SNagadheeraj Rottela 				.iv_size = {
1042a41db75SNagadheeraj Rottela 					.min = 8,
1052a41db75SNagadheeraj Rottela 					.max = 8,
1062a41db75SNagadheeraj Rottela 					.increment = 0
1072a41db75SNagadheeraj Rottela 				}
1082a41db75SNagadheeraj Rottela 			}, }
1092a41db75SNagadheeraj Rottela 		}, }
1102a41db75SNagadheeraj Rottela 	},
11193ba4a6eSNagadheeraj Rottela 	{	/* AES GCM */
11293ba4a6eSNagadheeraj Rottela 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
11393ba4a6eSNagadheeraj Rottela 		{.sym = {
11493ba4a6eSNagadheeraj Rottela 			.xform_type = RTE_CRYPTO_SYM_XFORM_AEAD,
11593ba4a6eSNagadheeraj Rottela 			{.aead = {
11693ba4a6eSNagadheeraj Rottela 				.algo = RTE_CRYPTO_AEAD_AES_GCM,
11793ba4a6eSNagadheeraj Rottela 				.block_size = 16,
11893ba4a6eSNagadheeraj Rottela 				.key_size = {
11993ba4a6eSNagadheeraj Rottela 					.min = 16,
12093ba4a6eSNagadheeraj Rottela 					.max = 32,
12193ba4a6eSNagadheeraj Rottela 					.increment = 8
12293ba4a6eSNagadheeraj Rottela 				},
12393ba4a6eSNagadheeraj Rottela 				.digest_size = {
12493ba4a6eSNagadheeraj Rottela 					.min = 1,
12593ba4a6eSNagadheeraj Rottela 					.max = 16,
12693ba4a6eSNagadheeraj Rottela 					.increment = 1
12793ba4a6eSNagadheeraj Rottela 				},
12893ba4a6eSNagadheeraj Rottela 				.aad_size = {
12993ba4a6eSNagadheeraj Rottela 					.min = 0,
13093ba4a6eSNagadheeraj Rottela 					.max = 512,
13193ba4a6eSNagadheeraj Rottela 					.increment = 1
13293ba4a6eSNagadheeraj Rottela 				},
13393ba4a6eSNagadheeraj Rottela 				.iv_size = {
13493ba4a6eSNagadheeraj Rottela 					.min = 12,
13593ba4a6eSNagadheeraj Rottela 					.max = 16,
13693ba4a6eSNagadheeraj Rottela 					.increment = 4
13793ba4a6eSNagadheeraj Rottela 				},
13893ba4a6eSNagadheeraj Rottela 			}, }
13993ba4a6eSNagadheeraj Rottela 		}, }
14093ba4a6eSNagadheeraj Rottela 	},
141*60531a2cSNagadheeraj Rottela 	{	/* AES CCM */
142*60531a2cSNagadheeraj Rottela 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
143*60531a2cSNagadheeraj Rottela 		{.sym = {
144*60531a2cSNagadheeraj Rottela 			.xform_type = RTE_CRYPTO_SYM_XFORM_AEAD,
145*60531a2cSNagadheeraj Rottela 			{.aead = {
146*60531a2cSNagadheeraj Rottela 				.algo = RTE_CRYPTO_AEAD_AES_CCM,
147*60531a2cSNagadheeraj Rottela 				.block_size = 16,
148*60531a2cSNagadheeraj Rottela 				.key_size = {
149*60531a2cSNagadheeraj Rottela 					.min = 16,
150*60531a2cSNagadheeraj Rottela 					.max = 32,
151*60531a2cSNagadheeraj Rottela 					.increment = 8
152*60531a2cSNagadheeraj Rottela 				},
153*60531a2cSNagadheeraj Rottela 				.digest_size = {
154*60531a2cSNagadheeraj Rottela 					.min = 4,
155*60531a2cSNagadheeraj Rottela 					.max = 16,
156*60531a2cSNagadheeraj Rottela 					.increment = 2
157*60531a2cSNagadheeraj Rottela 				},
158*60531a2cSNagadheeraj Rottela 				.aad_size = {
159*60531a2cSNagadheeraj Rottela 					.min = 0,
160*60531a2cSNagadheeraj Rottela 					.max = 512,
161*60531a2cSNagadheeraj Rottela 					.increment = 1
162*60531a2cSNagadheeraj Rottela 				},
163*60531a2cSNagadheeraj Rottela 				.iv_size = {
164*60531a2cSNagadheeraj Rottela 					.min = 7,
165*60531a2cSNagadheeraj Rottela 					.max = 13,
166*60531a2cSNagadheeraj Rottela 					.increment = 1
167*60531a2cSNagadheeraj Rottela 				},
168*60531a2cSNagadheeraj Rottela 			}, }
169*60531a2cSNagadheeraj Rottela 		}, }
170*60531a2cSNagadheeraj Rottela 	},
171cafd2703SNagadheeraj Rottela 	RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()
172cafd2703SNagadheeraj Rottela };
173cafd2703SNagadheeraj Rottela 
174cafd2703SNagadheeraj Rottela const struct rte_cryptodev_capabilities *
nitrox_get_sym_capabilities(void)175cafd2703SNagadheeraj Rottela nitrox_get_sym_capabilities(void)
176cafd2703SNagadheeraj Rottela {
177cafd2703SNagadheeraj Rottela 	return nitrox_capabilities;
178cafd2703SNagadheeraj Rottela }
179