xref: /dpdk/drivers/crypto/ionic/ionic_crypto_caps.c (revision 80518852e2f52bbe27b5763fb05031caf8da4788)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright 2021-2024 Advanced Micro Devices, Inc.
3  */
4 
5 #include <rte_cryptodev.h>
6 
7 #include "ionic_crypto.h"
8 
9 static const struct rte_cryptodev_capabilities iocpt_sym_caps[] = {
10 	{	/* AES GCM */
11 		.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
12 		{.sym = {
13 			.xform_type = RTE_CRYPTO_SYM_XFORM_AEAD,
14 			{.aead = {
15 				.algo = RTE_CRYPTO_AEAD_AES_GCM,
16 				.block_size = 16,
17 				.key_size = {
18 					.min = 16,
19 					.max = 32,
20 					.increment = 16
21 				},
22 				.digest_size = {
23 					.min = 16,
24 					.max = 16,
25 					.increment = 0
26 				},
27 				.aad_size = {
28 					.min = 0,
29 					.max = 1024,
30 					.increment = 1
31 				},
32 				.iv_size = {
33 					.min = 12,
34 					.max = 12,
35 					.increment = 0
36 				}
37 			}, }
38 		}, }
39 	},
40 	RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()
41 };
42 
43 static const struct rte_cryptodev_capabilities iocpt_asym_caps[] = {
44 	/* None */
45 	RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()
46 };
47 
48 const struct rte_cryptodev_capabilities *
iocpt_get_caps(uint64_t flags)49 iocpt_get_caps(uint64_t flags)
50 {
51 	if (flags & RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO)
52 		return iocpt_asym_caps;
53 	else
54 		return iocpt_sym_caps;
55 }
56