1*4418919fSjohnjiang /* SPDX-License-Identifier: BSD-3-Clause 2*4418919fSjohnjiang * Copyright(C) 2019 Marvell International Ltd. 3*4418919fSjohnjiang */ 4*4418919fSjohnjiang 5*4418919fSjohnjiang #include "nitrox_sym_capabilities.h" 6*4418919fSjohnjiang 7*4418919fSjohnjiang static const struct rte_cryptodev_capabilities nitrox_capabilities[] = { 8*4418919fSjohnjiang { /* SHA1 HMAC */ 9*4418919fSjohnjiang .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 10*4418919fSjohnjiang {.sym = { 11*4418919fSjohnjiang .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, 12*4418919fSjohnjiang {.auth = { 13*4418919fSjohnjiang .algo = RTE_CRYPTO_AUTH_SHA1_HMAC, 14*4418919fSjohnjiang .block_size = 64, 15*4418919fSjohnjiang .key_size = { 16*4418919fSjohnjiang .min = 1, 17*4418919fSjohnjiang .max = 64, 18*4418919fSjohnjiang .increment = 1 19*4418919fSjohnjiang }, 20*4418919fSjohnjiang .digest_size = { 21*4418919fSjohnjiang .min = 1, 22*4418919fSjohnjiang .max = 20, 23*4418919fSjohnjiang .increment = 1 24*4418919fSjohnjiang }, 25*4418919fSjohnjiang .iv_size = { 0 } 26*4418919fSjohnjiang }, } 27*4418919fSjohnjiang }, } 28*4418919fSjohnjiang }, 29*4418919fSjohnjiang { /* SHA224 HMAC */ 30*4418919fSjohnjiang .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 31*4418919fSjohnjiang {.sym = { 32*4418919fSjohnjiang .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, 33*4418919fSjohnjiang {.auth = { 34*4418919fSjohnjiang .algo = RTE_CRYPTO_AUTH_SHA224_HMAC, 35*4418919fSjohnjiang .block_size = 64, 36*4418919fSjohnjiang .key_size = { 37*4418919fSjohnjiang .min = 1, 38*4418919fSjohnjiang .max = 64, 39*4418919fSjohnjiang .increment = 1 40*4418919fSjohnjiang }, 41*4418919fSjohnjiang .digest_size = { 42*4418919fSjohnjiang .min = 1, 43*4418919fSjohnjiang .max = 28, 44*4418919fSjohnjiang .increment = 1 45*4418919fSjohnjiang }, 46*4418919fSjohnjiang .iv_size = { 0 } 47*4418919fSjohnjiang }, } 48*4418919fSjohnjiang }, } 49*4418919fSjohnjiang }, 50*4418919fSjohnjiang { /* SHA256 HMAC */ 51*4418919fSjohnjiang .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 52*4418919fSjohnjiang {.sym = { 53*4418919fSjohnjiang .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, 54*4418919fSjohnjiang {.auth = { 55*4418919fSjohnjiang .algo = RTE_CRYPTO_AUTH_SHA256_HMAC, 56*4418919fSjohnjiang .block_size = 64, 57*4418919fSjohnjiang .key_size = { 58*4418919fSjohnjiang .min = 1, 59*4418919fSjohnjiang .max = 64, 60*4418919fSjohnjiang .increment = 1 61*4418919fSjohnjiang }, 62*4418919fSjohnjiang .digest_size = { 63*4418919fSjohnjiang .min = 1, 64*4418919fSjohnjiang .max = 32, 65*4418919fSjohnjiang .increment = 1 66*4418919fSjohnjiang }, 67*4418919fSjohnjiang .iv_size = { 0 } 68*4418919fSjohnjiang }, } 69*4418919fSjohnjiang }, } 70*4418919fSjohnjiang }, 71*4418919fSjohnjiang { /* AES CBC */ 72*4418919fSjohnjiang .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 73*4418919fSjohnjiang {.sym = { 74*4418919fSjohnjiang .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER, 75*4418919fSjohnjiang {.cipher = { 76*4418919fSjohnjiang .algo = RTE_CRYPTO_CIPHER_AES_CBC, 77*4418919fSjohnjiang .block_size = 16, 78*4418919fSjohnjiang .key_size = { 79*4418919fSjohnjiang .min = 16, 80*4418919fSjohnjiang .max = 32, 81*4418919fSjohnjiang .increment = 8 82*4418919fSjohnjiang }, 83*4418919fSjohnjiang .iv_size = { 84*4418919fSjohnjiang .min = 16, 85*4418919fSjohnjiang .max = 16, 86*4418919fSjohnjiang .increment = 0 87*4418919fSjohnjiang } 88*4418919fSjohnjiang }, } 89*4418919fSjohnjiang }, } 90*4418919fSjohnjiang }, 91*4418919fSjohnjiang 92*4418919fSjohnjiang RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST() 93*4418919fSjohnjiang }; 94*4418919fSjohnjiang 95*4418919fSjohnjiang const struct rte_cryptodev_capabilities * 96*4418919fSjohnjiang nitrox_get_sym_capabilities(void) 97*4418919fSjohnjiang { 98*4418919fSjohnjiang return nitrox_capabilities; 99*4418919fSjohnjiang } 100