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 * 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