1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(C) 2019 Marvell International Ltd. 3 */ 4 5 #include "nitrox_sym_capabilities.h" 6 7 static const struct rte_cryptodev_capabilities nitrox_capabilities[] = { 8 { /* SHA1 HMAC */ 9 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 10 {.sym = { 11 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, 12 {.auth = { 13 .algo = RTE_CRYPTO_AUTH_SHA1_HMAC, 14 .block_size = 64, 15 .key_size = { 16 .min = 1, 17 .max = 64, 18 .increment = 1 19 }, 20 .digest_size = { 21 .min = 1, 22 .max = 20, 23 .increment = 1 24 }, 25 .iv_size = { 0 } 26 }, } 27 }, } 28 }, 29 { /* SHA224 HMAC */ 30 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 31 {.sym = { 32 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, 33 {.auth = { 34 .algo = RTE_CRYPTO_AUTH_SHA224_HMAC, 35 .block_size = 64, 36 .key_size = { 37 .min = 1, 38 .max = 64, 39 .increment = 1 40 }, 41 .digest_size = { 42 .min = 1, 43 .max = 28, 44 .increment = 1 45 }, 46 .iv_size = { 0 } 47 }, } 48 }, } 49 }, 50 { /* SHA256 HMAC */ 51 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 52 {.sym = { 53 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, 54 {.auth = { 55 .algo = RTE_CRYPTO_AUTH_SHA256_HMAC, 56 .block_size = 64, 57 .key_size = { 58 .min = 1, 59 .max = 64, 60 .increment = 1 61 }, 62 .digest_size = { 63 .min = 1, 64 .max = 32, 65 .increment = 1 66 }, 67 .iv_size = { 0 } 68 }, } 69 }, } 70 }, 71 { /* AES CBC */ 72 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 73 {.sym = { 74 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER, 75 {.cipher = { 76 .algo = RTE_CRYPTO_CIPHER_AES_CBC, 77 .block_size = 16, 78 .key_size = { 79 .min = 16, 80 .max = 32, 81 .increment = 8 82 }, 83 .iv_size = { 84 .min = 16, 85 .max = 16, 86 .increment = 0 87 } 88 }, } 89 }, } 90 }, 91 { /* 3DES CBC */ 92 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 93 {.sym = { 94 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER, 95 {.cipher = { 96 .algo = RTE_CRYPTO_CIPHER_3DES_CBC, 97 .block_size = 8, 98 .key_size = { 99 .min = 24, 100 .max = 24, 101 .increment = 0 102 }, 103 .iv_size = { 104 .min = 8, 105 .max = 8, 106 .increment = 0 107 } 108 }, } 109 }, } 110 }, 111 { /* AES GCM */ 112 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 113 {.sym = { 114 .xform_type = RTE_CRYPTO_SYM_XFORM_AEAD, 115 {.aead = { 116 .algo = RTE_CRYPTO_AEAD_AES_GCM, 117 .block_size = 16, 118 .key_size = { 119 .min = 16, 120 .max = 32, 121 .increment = 8 122 }, 123 .digest_size = { 124 .min = 1, 125 .max = 16, 126 .increment = 1 127 }, 128 .aad_size = { 129 .min = 0, 130 .max = 512, 131 .increment = 1 132 }, 133 .iv_size = { 134 .min = 12, 135 .max = 16, 136 .increment = 4 137 }, 138 }, } 139 }, } 140 }, 141 { /* AES CCM */ 142 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 143 {.sym = { 144 .xform_type = RTE_CRYPTO_SYM_XFORM_AEAD, 145 {.aead = { 146 .algo = RTE_CRYPTO_AEAD_AES_CCM, 147 .block_size = 16, 148 .key_size = { 149 .min = 16, 150 .max = 32, 151 .increment = 8 152 }, 153 .digest_size = { 154 .min = 4, 155 .max = 16, 156 .increment = 2 157 }, 158 .aad_size = { 159 .min = 0, 160 .max = 512, 161 .increment = 1 162 }, 163 .iv_size = { 164 .min = 7, 165 .max = 13, 166 .increment = 1 167 }, 168 }, } 169 }, } 170 }, 171 RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST() 172 }; 173 174 const struct rte_cryptodev_capabilities * 175 nitrox_get_sym_capabilities(void) 176 { 177 return nitrox_capabilities; 178 } 179