numam-dpdk/drivers/crypto/qat/qat_sym_capabilities.h
Thomas Monjalon f5862ae99e cryptodev: revert Chacha20-Poly1305 AEAD algorithm
API makes think that rte_cryptodev_info_get() cannot return
a value >= 3 (RTE_CRYPTO_AEAD_LIST_END in 19.11).
20.02-rc1 was returning 3 (RTE_CRYPTO_AEAD_CHACHA20_POLY1305).
So the ABI compatibility contract was broken.

It could be solved with some function versioning,
but because a lack of time, the feature is reverted for now.

This reverts following commits:
- 6c9f3b347e ("cryptodev: add Chacha20-Poly1305 AEAD algorithm")
- 2c512e64d6 ("crypto/qat: support Chacha Poly")
- d55e01f579 ("test/crypto: add Chacha Poly cases")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2020-02-05 15:14:46 +01:00

598 lines
13 KiB
C

/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2017-2019 Intel Corporation
*/
#ifndef _QAT_SYM_CAPABILITIES_H_
#define _QAT_SYM_CAPABILITIES_H_
#define QAT_BASE_GEN1_SYM_CAPABILITIES \
{ /* SHA1 HMAC */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, \
{.auth = { \
.algo = RTE_CRYPTO_AUTH_SHA1_HMAC, \
.block_size = 64, \
.key_size = { \
.min = 1, \
.max = 64, \
.increment = 1 \
}, \
.digest_size = { \
.min = 1, \
.max = 20, \
.increment = 1 \
}, \
.iv_size = { 0 } \
}, } \
}, } \
}, \
{ /* SHA224 HMAC */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, \
{.auth = { \
.algo = RTE_CRYPTO_AUTH_SHA224_HMAC, \
.block_size = 64, \
.key_size = { \
.min = 1, \
.max = 64, \
.increment = 1 \
}, \
.digest_size = { \
.min = 1, \
.max = 28, \
.increment = 1 \
}, \
.iv_size = { 0 } \
}, } \
}, } \
}, \
{ /* SHA256 HMAC */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, \
{.auth = { \
.algo = RTE_CRYPTO_AUTH_SHA256_HMAC, \
.block_size = 64, \
.key_size = { \
.min = 1, \
.max = 64, \
.increment = 1 \
}, \
.digest_size = { \
.min = 1, \
.max = 32, \
.increment = 1 \
}, \
.iv_size = { 0 } \
}, } \
}, } \
}, \
{ /* SHA384 HMAC */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, \
{.auth = { \
.algo = RTE_CRYPTO_AUTH_SHA384_HMAC, \
.block_size = 128, \
.key_size = { \
.min = 1, \
.max = 128, \
.increment = 1 \
}, \
.digest_size = { \
.min = 1, \
.max = 48, \
.increment = 1 \
}, \
.iv_size = { 0 } \
}, } \
}, } \
}, \
{ /* SHA512 HMAC */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, \
{.auth = { \
.algo = RTE_CRYPTO_AUTH_SHA512_HMAC, \
.block_size = 128, \
.key_size = { \
.min = 1, \
.max = 128, \
.increment = 1 \
}, \
.digest_size = { \
.min = 1, \
.max = 64, \
.increment = 1 \
}, \
.iv_size = { 0 } \
}, } \
}, } \
}, \
{ /* MD5 HMAC */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, \
{.auth = { \
.algo = RTE_CRYPTO_AUTH_MD5_HMAC, \
.block_size = 64, \
.key_size = { \
.min = 1, \
.max = 64, \
.increment = 1 \
}, \
.digest_size = { \
.min = 1, \
.max = 16, \
.increment = 1 \
}, \
.iv_size = { 0 } \
}, } \
}, } \
}, \
{ /* AES XCBC MAC */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, \
{.auth = { \
.algo = RTE_CRYPTO_AUTH_AES_XCBC_MAC, \
.block_size = 16, \
.key_size = { \
.min = 16, \
.max = 16, \
.increment = 0 \
}, \
.digest_size = { \
.min = 12, \
.max = 12, \
.increment = 0 \
}, \
.aad_size = { 0 }, \
.iv_size = { 0 } \
}, } \
}, } \
}, \
{ /* AES CMAC */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, \
{.auth = { \
.algo = RTE_CRYPTO_AUTH_AES_CMAC, \
.block_size = 16, \
.key_size = { \
.min = 16, \
.max = 16, \
.increment = 0 \
}, \
.digest_size = { \
.min = 4, \
.max = 16, \
.increment = 4 \
} \
}, } \
}, } \
}, \
{ /* AES CCM */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_AEAD, \
{.aead = { \
.algo = RTE_CRYPTO_AEAD_AES_CCM, \
.block_size = 16, \
.key_size = { \
.min = 16, \
.max = 16, \
.increment = 0 \
}, \
.digest_size = { \
.min = 4, \
.max = 16, \
.increment = 2 \
}, \
.aad_size = { \
.min = 0, \
.max = 224, \
.increment = 1 \
}, \
.iv_size = { \
.min = 7, \
.max = 13, \
.increment = 1 \
}, \
}, } \
}, } \
}, \
{ /* AES GCM */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_AEAD, \
{.aead = { \
.algo = RTE_CRYPTO_AEAD_AES_GCM, \
.block_size = 16, \
.key_size = { \
.min = 16, \
.max = 32, \
.increment = 8 \
}, \
.digest_size = { \
.min = 8, \
.max = 16, \
.increment = 4 \
}, \
.aad_size = { \
.min = 0, \
.max = 240, \
.increment = 1 \
}, \
.iv_size = { \
.min = 12, \
.max = 12, \
.increment = 0 \
}, \
}, } \
}, } \
}, \
{ /* AES GMAC (AUTH) */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, \
{.auth = { \
.algo = RTE_CRYPTO_AUTH_AES_GMAC, \
.block_size = 16, \
.key_size = { \
.min = 16, \
.max = 32, \
.increment = 8 \
}, \
.digest_size = { \
.min = 8, \
.max = 16, \
.increment = 4 \
}, \
.iv_size = { \
.min = 12, \
.max = 12, \
.increment = 0 \
} \
}, } \
}, } \
}, \
{ /* SNOW 3G (UIA2) */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, \
{.auth = { \
.algo = RTE_CRYPTO_AUTH_SNOW3G_UIA2, \
.block_size = 16, \
.key_size = { \
.min = 16, \
.max = 16, \
.increment = 0 \
}, \
.digest_size = { \
.min = 4, \
.max = 4, \
.increment = 0 \
}, \
.iv_size = { \
.min = 16, \
.max = 16, \
.increment = 0 \
} \
}, } \
}, } \
}, \
{ /* AES CBC */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER, \
{.cipher = { \
.algo = RTE_CRYPTO_CIPHER_AES_CBC, \
.block_size = 16, \
.key_size = { \
.min = 16, \
.max = 32, \
.increment = 8 \
}, \
.iv_size = { \
.min = 16, \
.max = 16, \
.increment = 0 \
} \
}, } \
}, } \
}, \
{ /* AES XTS */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER, \
{.cipher = { \
.algo = RTE_CRYPTO_CIPHER_AES_XTS, \
.block_size = 16, \
.key_size = { \
.min = 32, \
.max = 64, \
.increment = 0 \
}, \
.iv_size = { \
.min = 16, \
.max = 16, \
.increment = 0 \
} \
}, } \
}, } \
}, \
{ /* AES DOCSIS BPI */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER, \
{.cipher = { \
.algo = RTE_CRYPTO_CIPHER_AES_DOCSISBPI,\
.block_size = 16, \
.key_size = { \
.min = 16, \
.max = 16, \
.increment = 0 \
}, \
.iv_size = { \
.min = 16, \
.max = 16, \
.increment = 0 \
} \
}, } \
}, } \
}, \
{ /* SNOW 3G (UEA2) */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER, \
{.cipher = { \
.algo = RTE_CRYPTO_CIPHER_SNOW3G_UEA2, \
.block_size = 16, \
.key_size = { \
.min = 16, \
.max = 16, \
.increment = 0 \
}, \
.iv_size = { \
.min = 16, \
.max = 16, \
.increment = 0 \
} \
}, } \
}, } \
}, \
{ /* AES CTR */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER, \
{.cipher = { \
.algo = RTE_CRYPTO_CIPHER_AES_CTR, \
.block_size = 16, \
.key_size = { \
.min = 16, \
.max = 32, \
.increment = 8 \
}, \
.iv_size = { \
.min = 16, \
.max = 16, \
.increment = 0 \
} \
}, } \
}, } \
}, \
{ /* NULL (AUTH) */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, \
{.auth = { \
.algo = RTE_CRYPTO_AUTH_NULL, \
.block_size = 1, \
.key_size = { \
.min = 0, \
.max = 0, \
.increment = 0 \
}, \
.digest_size = { \
.min = 0, \
.max = 0, \
.increment = 0 \
}, \
.iv_size = { 0 } \
}, }, \
}, }, \
}, \
{ /* NULL (CIPHER) */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER, \
{.cipher = { \
.algo = RTE_CRYPTO_CIPHER_NULL, \
.block_size = 1, \
.key_size = { \
.min = 0, \
.max = 0, \
.increment = 0 \
}, \
.iv_size = { \
.min = 0, \
.max = 0, \
.increment = 0 \
} \
}, }, \
}, } \
}, \
{ /* KASUMI (F8) */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER, \
{.cipher = { \
.algo = RTE_CRYPTO_CIPHER_KASUMI_F8, \
.block_size = 8, \
.key_size = { \
.min = 16, \
.max = 16, \
.increment = 0 \
}, \
.iv_size = { \
.min = 8, \
.max = 8, \
.increment = 0 \
} \
}, } \
}, } \
}, \
{ /* KASUMI (F9) */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, \
{.auth = { \
.algo = RTE_CRYPTO_AUTH_KASUMI_F9, \
.block_size = 8, \
.key_size = { \
.min = 16, \
.max = 16, \
.increment = 0 \
}, \
.digest_size = { \
.min = 4, \
.max = 4, \
.increment = 0 \
}, \
.iv_size = { 0 } \
}, } \
}, } \
}, \
{ /* 3DES CBC */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER, \
{.cipher = { \
.algo = RTE_CRYPTO_CIPHER_3DES_CBC, \
.block_size = 8, \
.key_size = { \
.min = 8, \
.max = 24, \
.increment = 8 \
}, \
.iv_size = { \
.min = 8, \
.max = 8, \
.increment = 0 \
} \
}, } \
}, } \
}, \
{ /* 3DES CTR */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER, \
{.cipher = { \
.algo = RTE_CRYPTO_CIPHER_3DES_CTR, \
.block_size = 8, \
.key_size = { \
.min = 16, \
.max = 24, \
.increment = 8 \
}, \
.iv_size = { \
.min = 8, \
.max = 8, \
.increment = 0 \
} \
}, } \
}, } \
}, \
{ /* DES CBC */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER, \
{.cipher = { \
.algo = RTE_CRYPTO_CIPHER_DES_CBC, \
.block_size = 8, \
.key_size = { \
.min = 8, \
.max = 8, \
.increment = 0 \
}, \
.iv_size = { \
.min = 8, \
.max = 8, \
.increment = 0 \
} \
}, } \
}, } \
}, \
{ /* DES DOCSISBPI */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER, \
{.cipher = { \
.algo = RTE_CRYPTO_CIPHER_DES_DOCSISBPI,\
.block_size = 8, \
.key_size = { \
.min = 8, \
.max = 8, \
.increment = 0 \
}, \
.iv_size = { \
.min = 8, \
.max = 8, \
.increment = 0 \
} \
}, } \
}, } \
}
#define QAT_EXTRA_GEN2_SYM_CAPABILITIES \
{ /* ZUC (EEA3) */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER, \
{.cipher = { \
.algo = RTE_CRYPTO_CIPHER_ZUC_EEA3, \
.block_size = 16, \
.key_size = { \
.min = 16, \
.max = 16, \
.increment = 0 \
}, \
.iv_size = { \
.min = 16, \
.max = 16, \
.increment = 0 \
} \
}, } \
}, } \
}, \
{ /* ZUC (EIA3) */ \
.op = RTE_CRYPTO_OP_TYPE_SYMMETRIC, \
{.sym = { \
.xform_type = RTE_CRYPTO_SYM_XFORM_AUTH, \
{.auth = { \
.algo = RTE_CRYPTO_AUTH_ZUC_EIA3, \
.block_size = 16, \
.key_size = { \
.min = 16, \
.max = 16, \
.increment = 0 \
}, \
.digest_size = { \
.min = 4, \
.max = 4, \
.increment = 0 \
}, \
.iv_size = { \
.min = 16, \
.max = 16, \
.increment = 0 \
} \
}, } \
}, } \
}
#endif /* _QAT_SYM_CAPABILITIES_H_ */