1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(c) 2020 Intel Corporation 3 */ 4 5 #ifndef _IAVF_IPSEC_CRYPTO_CAPABILITIES_H_ 6 #define _IAVF_IPSEC_CRYPTO_CAPABILITIES_H_ 7 8 static const struct rte_cryptodev_capabilities iavf_crypto_capabilities[] = { 9 { /* SHA1 HMAC */ 10 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 11 {.sym = { 12 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, 13 {.auth = { 14 .algo = RTE_CRYPTO_AUTH_SHA1_HMAC, 15 .block_size = 64, 16 .key_size = { 17 .min = 1, 18 .max = 64, 19 .increment = 1 20 }, 21 .digest_size = { 22 .min = 20, 23 .max = 20, 24 .increment = 0 25 }, 26 .iv_size = { 0 } 27 }, } 28 }, } 29 }, 30 { /* SHA256 HMAC */ 31 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 32 {.sym = { 33 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, 34 {.auth = { 35 .algo = RTE_CRYPTO_AUTH_SHA256_HMAC, 36 .block_size = 64, 37 .key_size = { 38 .min = 1, 39 .max = 64, 40 .increment = 1 41 }, 42 .digest_size = { 43 .min = 32, 44 .max = 32, 45 .increment = 0 46 }, 47 .iv_size = { 0 } 48 }, } 49 }, } 50 }, 51 { /* SHA384 HMAC */ 52 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 53 {.sym = { 54 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, 55 {.auth = { 56 .algo = RTE_CRYPTO_AUTH_SHA384_HMAC, 57 .block_size = 128, 58 .key_size = { 59 .min = 1, 60 .max = 128, 61 .increment = 1 62 }, 63 .digest_size = { 64 .min = 48, 65 .max = 48, 66 .increment = 0 67 }, 68 .iv_size = { 0 } 69 }, } 70 }, } 71 }, 72 { /* SHA512 HMAC */ 73 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 74 {.sym = { 75 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, 76 {.auth = { 77 .algo = RTE_CRYPTO_AUTH_SHA512_HMAC, 78 .block_size = 128, 79 .key_size = { 80 .min = 1, 81 .max = 128, 82 .increment = 1 83 }, 84 .digest_size = { 85 .min = 64, 86 .max = 64, 87 .increment = 0 88 }, 89 .iv_size = { 0 } 90 }, } 91 }, } 92 }, 93 { /* MD5 HMAC */ 94 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 95 {.sym = { 96 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, 97 {.auth = { 98 .algo = RTE_CRYPTO_AUTH_MD5_HMAC, 99 .block_size = 64, 100 .key_size = { 101 .min = 1, 102 .max = 64, 103 .increment = 1 104 }, 105 .digest_size = { 106 .min = 16, 107 .max = 16, 108 .increment = 0 109 }, 110 .iv_size = { 0 } 111 }, } 112 }, } 113 }, 114 { /* AES XCBC MAC */ 115 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 116 {.sym = { 117 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, 118 {.auth = { 119 .algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC, 120 .block_size = 16, 121 .key_size = { 122 .min = 16, 123 .max = 16, 124 .increment = 0 125 }, 126 .digest_size = { 127 .min = 16, 128 .max = 16, 129 .increment = 0 130 }, 131 .aad_size = { 0 }, 132 .iv_size = { 0 } 133 }, } 134 }, } 135 }, 136 { /* AES GCM */ 137 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 138 {.sym = { 139 .xform_type = RTE_CRYPTO_SYM_XFORM_AEAD, 140 {.aead = { 141 .algo = RTE_CRYPTO_AEAD_AES_GCM, 142 .block_size = 16, 143 .key_size = { 144 .min = 16, 145 .max = 32, 146 .increment = 8 147 }, 148 .digest_size = { 149 .min = 8, 150 .max = 16, 151 .increment = 4 152 }, 153 .aad_size = { 154 .min = 0, 155 .max = 240, 156 .increment = 1 157 }, 158 .iv_size = { 159 .min = 8, 160 .max = 8, 161 .increment = 0 162 }, 163 }, } 164 }, } 165 }, 166 { /* ChaCha20-Poly1305 */ 167 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 168 {.sym = { 169 .xform_type = RTE_CRYPTO_SYM_XFORM_AEAD, 170 {.aead = { 171 .algo = RTE_CRYPTO_AEAD_CHACHA20_POLY1305, 172 .block_size = 16, 173 .key_size = { 174 .min = 32, 175 .max = 32, 176 .increment = 0 177 }, 178 .digest_size = { 179 .min = 8, 180 .max = 16, 181 .increment = 4 182 }, 183 .aad_size = { 184 .min = 0, 185 .max = 240, 186 .increment = 1 187 }, 188 .iv_size = { 189 .min = 12, 190 .max = 12, 191 .increment = 0 192 }, 193 }, } 194 }, } 195 }, 196 { /* AES CCM */ 197 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 198 {.sym = { 199 .xform_type = RTE_CRYPTO_SYM_XFORM_AEAD, 200 {.aead = { 201 .algo = RTE_CRYPTO_AEAD_AES_CCM, 202 .block_size = 16, 203 .key_size = { 204 .min = 16, 205 .max = 32, 206 .increment = 8 207 }, 208 .digest_size = { 209 .min = 8, 210 .max = 16, 211 .increment = 4 212 }, 213 .aad_size = { 214 .min = 0, 215 .max = 240, 216 .increment = 1 217 }, 218 .iv_size = { 219 .min = 12, 220 .max = 12, 221 .increment = 0 222 }, 223 }, } 224 }, } 225 }, 226 { /* AES GMAC (AUTH) */ 227 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 228 {.sym = { 229 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, 230 {.auth = { 231 .algo = RTE_CRYPTO_AUTH_AES_GMAC, 232 .block_size = 16, 233 .key_size = { 234 .min = 16, 235 .max = 32, 236 .increment = 8 237 }, 238 .digest_size = { 239 .min = 8, 240 .max = 16, 241 .increment = 4 242 }, 243 .iv_size = { 244 .min = 12, 245 .max = 12, 246 .increment = 0 247 } 248 }, } 249 }, } 250 }, 251 { /* AES CMAC (AUTH) */ 252 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 253 {.sym = { 254 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, 255 {.auth = { 256 .algo = RTE_CRYPTO_AUTH_AES_CMAC, 257 .block_size = 16, 258 .key_size = { 259 .min = 16, 260 .max = 32, 261 .increment = 8 262 }, 263 .digest_size = { 264 .min = 8, 265 .max = 16, 266 .increment = 4 267 }, 268 .iv_size = { 269 .min = 12, 270 .max = 12, 271 .increment = 0 272 } 273 }, } 274 }, } 275 }, 276 { /* AES CBC */ 277 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 278 {.sym = { 279 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER, 280 {.cipher = { 281 .algo = RTE_CRYPTO_CIPHER_AES_CBC, 282 .block_size = 16, 283 .key_size = { 284 .min = 16, 285 .max = 32, 286 .increment = 8 287 }, 288 .iv_size = { 289 .min = 16, 290 .max = 16, 291 .increment = 0 292 } 293 }, } 294 }, } 295 }, 296 { /* AES CTR */ 297 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 298 {.sym = { 299 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER, 300 {.cipher = { 301 .algo = RTE_CRYPTO_CIPHER_AES_CTR, 302 .block_size = 16, 303 .key_size = { 304 .min = 16, 305 .max = 32, 306 .increment = 8 307 }, 308 .iv_size = { 309 .min = 8, 310 .max = 8, 311 .increment = 0 312 } 313 }, } 314 }, } 315 }, 316 { /* NULL (AUTH) */ 317 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 318 {.sym = { 319 .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, 320 {.auth = { 321 .algo = RTE_CRYPTO_AUTH_NULL, 322 .block_size = 1, 323 .key_size = { 324 .min = 0, 325 .max = 0, 326 .increment = 0 327 }, 328 .digest_size = { 329 .min = 0, 330 .max = 0, 331 .increment = 0 332 }, 333 .iv_size = { 0 } 334 }, }, 335 }, }, 336 }, 337 { /* NULL (CIPHER) */ 338 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 339 {.sym = { 340 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER, 341 {.cipher = { 342 .algo = RTE_CRYPTO_CIPHER_NULL, 343 .block_size = 1, 344 .key_size = { 345 .min = 0, 346 .max = 0, 347 .increment = 0 348 }, 349 .iv_size = { 350 .min = 0, 351 .max = 0, 352 .increment = 0 353 } 354 }, }, 355 }, } 356 }, 357 { /* 3DES CBC */ 358 .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, 359 {.sym = { 360 .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER, 361 {.cipher = { 362 .algo = RTE_CRYPTO_CIPHER_3DES_CBC, 363 .block_size = 8, 364 .key_size = { 365 .min = 24, 366 .max = 24, 367 .increment = 0 368 }, 369 .iv_size = { 370 .min = 8, 371 .max = 8, 372 .increment = 0 373 } 374 }, } 375 }, } 376 }, 377 { 378 .op = RTE_CRYPTO_OP_TYPE_UNDEFINED, 379 } 380 }; 381 382 383 #endif /* _IAVF_IPSEC_CRYPTO_CAPABILITIES_H_ */ 384