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