IPsec MB library (v1.4.0+) is now required for HMAC precomputes as OpenSSL 3.0 removed SHA*_Transform APIs. OpenSSL remains optional for DOCSIS BPI cipher fallback via EVP API.
On x86: IPsec MB required, OpenSSL optional (DOCSIS fallback) On ARM: IPsec MB required, OpenSSL required (DOCSIS support) Signed-off-by: Emma Finn <[email protected]> --- doc/guides/cryptodevs/qat.rst | 28 +- drivers/common/qat/meson.build | 69 +++-- drivers/crypto/qat/qat_sym_session.c | 412 +-------------------------- 3 files changed, 74 insertions(+), 435 deletions(-) diff --git a/doc/guides/cryptodevs/qat.rst b/doc/guides/cryptodevs/qat.rst index 0c2b85444e..4e60e8343c 100644 --- a/doc/guides/cryptodevs/qat.rst +++ b/doc/guides/cryptodevs/qat.rst @@ -352,15 +352,25 @@ To use this feature the user must set the devarg on process start as a device ad -a 03:01.1,qat_sym_cipher_crc_enable=1 -Running QAT PMD with Intel IPsec MB library for symmetric precomputes function -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The QAT PMD uses Intel IPsec MB library for partial hash calculation -in symmetric precomputes function by default, -the minimum required version of IPsec MB library is v1.4. -If this version of IPsec is not met, it will fallback to use OpenSSL. -ARM will always default to using OpenSSL -as ARM IPsec MB does not support the necessary algorithms. +Running QAT PMD with Intel IPsec MB library +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The QAT PMD requires IPsec MB library for HMAC partial hash calculation +in symmetric precomputes function. OpenSSL 3.0+ removed the low-level SHA*_Transform APIs +that were previously used for HMAC precomputes. + +**On x86 platforms:** + +* Intel IPsec MB library (v1.4.0+) is required for HMAC precomputes +* OpenSSL (3.0+) is optional for DOCSIS BPI cipher fallback + +**On ARM platforms:** + +* ARM IPsec MB library from ``gitlab.arm.com/arm-reference-solutions/ipsec-mb`` + is required for HMAC precomputes. +* OpenSSL (3.0+) is required for DOCSIS BPI cipher algorithms. ARM IPsec MB does not + implement CFB-one-byte cipher modes needed for DOCSIS. Without OpenSSL, DOCSIS + algorithms will not be available on ARM. Device and driver naming diff --git a/drivers/common/qat/meson.build b/drivers/common/qat/meson.build index 31e06f4376..4f516dea2a 100644 --- a/drivers/common/qat/meson.build +++ b/drivers/common/qat/meson.build @@ -27,47 +27,58 @@ if disable_drivers.contains(qat_compress_path) 'Explicitly disabled via build config') endif -libcrypto = dependency('libcrypto', required: false, method: 'pkg-config') +# IPsec MB is REQUIRED for HMAC precomputes (no OpenSSL 3.0 alternative) +# OpenSSL is OPTIONAL for DOCSIS BPI cipher fallback +IMB_required_ver = '1.4.0' if arch_subdir == 'arm' - if libcrypto.found() - ext_deps += libcrypto - dpdk_conf.set('RTE_QAT_OPENSSL', true) + IMB_header = '#include<ipsec-mb.h>' +else + IMB_header = '#include<intel-ipsec-mb.h>' +endif + +# Check for IPsec MB library (required) +libipsecmb = cc.find_library('IPSec_MB', required: false) +if libipsecmb.found() and cc.links( + 'int main(void) {return 0;}', dependencies: libipsecmb) + imb_ver = cc.get_define('IMB_VERSION_STR', + prefix : IMB_header).split('"')[1] + + if (imb_ver.version_compare('>=' + IMB_required_ver)) + ext_deps += libipsecmb + dpdk_conf.set('RTE_QAT_IPSECMB', true) else qat_crypto = false dpdk_drvs_disabled += qat_crypto_path set_variable('drv_' + qat_crypto_path.underscorify() + '_disable_reason', - 'missing dependency for Arm, libcrypto') + 'IPSec_MB version >= @0@ is required, found version @1@'.format( + IMB_required_ver, imb_ver)) endif else - IMB_required_ver = '1.4.0' - IMB_header = '#include<intel-ipsec-mb.h>' - libipsecmb = cc.find_library('IPSec_MB', required: false) - if libipsecmb.found() and cc.links( - 'int main(void) {return 0;}', dependencies: libipsecmb) - # version comes with quotes, so we split based on " and take the middle - imb_ver = cc.get_define('IMB_VERSION_STR', - prefix : IMB_header).split('"')[1] + qat_crypto = false + dpdk_drvs_disabled += qat_crypto_path + set_variable('drv_' + qat_crypto_path.underscorify() + '_disable_reason', + 'missing required dependency, libIPSec_MB >= @0@'.format(IMB_required_ver)) +endif - if (imb_ver.version_compare('>=' + IMB_required_ver)) - ext_deps += libipsecmb - elif libcrypto.found() - ext_deps += libcrypto - dpdk_conf.set('RTE_QAT_OPENSSL', true) - else - qat_crypto = false - dpdk_drvs_disabled += qat_crypto_path - set_variable('drv_' + qat_crypto_path.underscorify() + '_disable_reason', - 'missing dependency, libipsecmb or libcrypto') - endif - elif libcrypto.found() +# Check for OpenSSL (optional, for DOCSIS BPI cipher fallback) +openssl_required_ver = '3.0.0' +if qat_crypto + libcrypto = dependency('libcrypto', required: false, method: 'pkg-config', version: '>= ' + openssl_required_ver) + if libcrypto.found() ext_deps += libcrypto dpdk_conf.set('RTE_QAT_OPENSSL', true) + if arch_subdir == 'arm' + message('QAT: Using OpenSSL @0@ for DOCSIS on ARM'.format(libcrypto.version())) + else + message('QAT: OpenSSL @0@ available for DOCSIS fallback'.format(libcrypto.version())) + endif else - qat_crypto = false - dpdk_drvs_disabled += qat_crypto_path - set_variable('drv_' + qat_crypto_path.underscorify() + '_disable_reason', - 'missing dependency, libipsecmb or libcrypto') + if arch_subdir == 'arm' + warning('QAT: OpenSSL >= @0@ not found - DOCSIS algorithms will not be available on ARM'.format(openssl_required_ver)) + else + message('QAT: OpenSSL >= @0@ not found - DOCSIS will use IPsec MB only'.format(openssl_required_ver)) + endif endif endif diff --git a/drivers/crypto/qat/qat_sym_session.c b/drivers/crypto/qat/qat_sym_session.c index ff01db4372..8be8802e8d 100644 --- a/drivers/crypto/qat/qat_sym_session.c +++ b/drivers/crypto/qat/qat_sym_session.c @@ -2,19 +2,18 @@ * Copyright(c) 2015-2022 Intel Corporation */ -#define OPENSSL_API_COMPAT 0x10100000L - -#ifdef RTE_QAT_OPENSSL -#include <openssl/sha.h> /* Needed to calculate pre-compute values */ -#include <openssl/aes.h> /* Needed to calculate pre-compute values */ -#include <openssl/md5.h> /* Needed to calculate pre-compute values */ -#include <openssl/evp.h> /* Needed for bpi runt block processing */ -#endif - -#ifndef RTE_QAT_OPENSSL -#ifndef RTE_ARCH_ARM +/* IPsec MB is required for HMAC precomputes (OpenSSL 3.0 removed Transform APIs) + * OpenSSL is optional for DOCSIS BPI cipher fallback + */ +#ifdef RTE_ARCH_ARM +#include <ipsec-mb.h> +#else #include <intel-ipsec-mb.h> #endif + +#ifdef RTE_QAT_OPENSSL +#define OPENSSL_API_COMPAT 0x30000000L +#include <openssl/evp.h> /* For DOCSIS BPI cipher fallback */ #endif #include <rte_memcpy.h> @@ -38,9 +37,8 @@ static OSSL_PROVIDER * legacy_lib; static OSSL_PROVIDER *default_lib; -/* Some cryptographic algorithms such as MD and DES are now considered legacy - * and not enabled by default in OpenSSL 3.0. Load up lagacy provider as MD5 - * DES are needed in QAT pre-computes and secure session creation. +/* DES is considered legacy and not enabled by default in OpenSSL 3.0. + * Load legacy provider for DES-DOCSISBPI cipher fallback support. */ static int ossl_legacy_provider_load(void) { @@ -1412,339 +1410,9 @@ static int qat_hash_get_block_size(enum icp_qat_hw_auth_algo qat_hash_alg) #define HMAC_OPAD_VALUE 0x5c #define HASH_XCBC_PRECOMP_KEY_NUM 3 -#ifdef RTE_QAT_OPENSSL -static int partial_hash_sha1(uint8_t *data_in, uint8_t *data_out) -{ - SHA_CTX ctx; - - if (!SHA1_Init(&ctx)) - return -EFAULT; - SHA1_Transform(&ctx, data_in); - rte_memcpy(data_out, &ctx, SHA_DIGEST_LENGTH); - return 0; -} - -static int partial_hash_sha224(uint8_t *data_in, uint8_t *data_out) -{ - SHA256_CTX ctx; - - if (!SHA224_Init(&ctx)) - return -EFAULT; - SHA256_Transform(&ctx, data_in); - rte_memcpy(data_out, &ctx, SHA256_DIGEST_LENGTH); - return 0; -} - -static int partial_hash_sha256(uint8_t *data_in, uint8_t *data_out) -{ - SHA256_CTX ctx; - - if (!SHA256_Init(&ctx)) - return -EFAULT; - SHA256_Transform(&ctx, data_in); - rte_memcpy(data_out, &ctx, SHA256_DIGEST_LENGTH); - return 0; -} - -static int partial_hash_sha384(uint8_t *data_in, uint8_t *data_out) -{ - SHA512_CTX ctx; - - if (!SHA384_Init(&ctx)) - return -EFAULT; - SHA512_Transform(&ctx, data_in); - rte_memcpy(data_out, &ctx, SHA512_DIGEST_LENGTH); - return 0; -} - -static int partial_hash_sha512(uint8_t *data_in, uint8_t *data_out) -{ - SHA512_CTX ctx; - - if (!SHA512_Init(&ctx)) - return -EFAULT; - SHA512_Transform(&ctx, data_in); - rte_memcpy(data_out, &ctx, SHA512_DIGEST_LENGTH); - return 0; -} - -static int partial_hash_md5(uint8_t *data_in, uint8_t *data_out) -{ - MD5_CTX ctx; - - if (!MD5_Init(&ctx)) - return -EFAULT; - MD5_Transform(&ctx, data_in); - rte_memcpy(data_out, &ctx, MD5_DIGEST_LENGTH); - - return 0; -} - -static void aes_cmac_key_derive(uint8_t *base, uint8_t *derived) -{ - int i; - - derived[0] = base[0] << 1; - for (i = 1; i < ICP_QAT_HW_AES_BLK_SZ ; i++) { - derived[i] = base[i] << 1; - derived[i - 1] |= base[i] >> 7; - } - - if (base[0] & 0x80) - derived[ICP_QAT_HW_AES_BLK_SZ - 1] ^= QAT_AES_CMAC_CONST_RB; -} - -static int -partial_hash_compute(enum icp_qat_hw_auth_algo hash_alg, - uint8_t *data_in, uint8_t *data_out) -{ - int digest_size; - uint8_t digest[qat_hash_get_digest_size( - ICP_QAT_HW_AUTH_ALGO_DELIMITER)]; - uint32_t *hash_state_out_be32; - uint64_t *hash_state_out_be64; - int i; - - /* Initialize to avoid gcc warning */ - memset(digest, 0, sizeof(digest)); - - digest_size = qat_hash_get_digest_size(hash_alg); - if (digest_size <= 0) - return -EFAULT; - - hash_state_out_be32 = (uint32_t *)data_out; - hash_state_out_be64 = (uint64_t *)data_out; - - switch (hash_alg) { - case ICP_QAT_HW_AUTH_ALGO_SHA1: - if (partial_hash_sha1(data_in, digest)) - return -EFAULT; - for (i = 0; i < digest_size >> 2; i++, hash_state_out_be32++) - *hash_state_out_be32 = - rte_bswap32(*(((uint32_t *)digest)+i)); - break; - case ICP_QAT_HW_AUTH_ALGO_SHA224: - if (partial_hash_sha224(data_in, digest)) - return -EFAULT; - for (i = 0; i < digest_size >> 2; i++, hash_state_out_be32++) - *hash_state_out_be32 = - rte_bswap32(*(((uint32_t *)digest)+i)); - break; - case ICP_QAT_HW_AUTH_ALGO_SHA256: - if (partial_hash_sha256(data_in, digest)) - return -EFAULT; - for (i = 0; i < digest_size >> 2; i++, hash_state_out_be32++) - *hash_state_out_be32 = - rte_bswap32(*(((uint32_t *)digest)+i)); - break; - case ICP_QAT_HW_AUTH_ALGO_SHA384: - if (partial_hash_sha384(data_in, digest)) - return -EFAULT; - for (i = 0; i < digest_size >> 3; i++, hash_state_out_be64++) - *hash_state_out_be64 = - rte_bswap64(*(((uint64_t *)digest)+i)); - break; - case ICP_QAT_HW_AUTH_ALGO_SHA512: - if (partial_hash_sha512(data_in, digest)) - return -EFAULT; - for (i = 0; i < digest_size >> 3; i++, hash_state_out_be64++) - *hash_state_out_be64 = - rte_bswap64(*(((uint64_t *)digest)+i)); - break; - case ICP_QAT_HW_AUTH_ALGO_MD5: - if (partial_hash_md5(data_in, data_out)) - return -EFAULT; - break; - default: - QAT_LOG(ERR, "invalid hash alg %u", hash_alg); - return -EFAULT; - } - - return 0; -} - -static const uint8_t AES_CMAC_SEED[ICP_QAT_HW_AES_128_KEY_SZ]; - -static int qat_sym_do_precomputes(enum icp_qat_hw_auth_algo hash_alg, - const uint8_t *auth_key, - uint16_t auth_keylen, - uint8_t *p_state_buf, - uint16_t *p_state_len, - uint8_t aes_cmac) -{ - int block_size; - uint8_t ipad[qat_hash_get_block_size(ICP_QAT_HW_AUTH_ALGO_DELIMITER)]; - uint8_t opad[qat_hash_get_block_size(ICP_QAT_HW_AUTH_ALGO_DELIMITER)]; - int i; - - if (hash_alg == ICP_QAT_HW_AUTH_ALGO_AES_XCBC_MAC) { - - /* CMAC */ - if (aes_cmac) { - AES_KEY enc_key; - uint8_t *in = NULL; - uint8_t k0[ICP_QAT_HW_AES_128_KEY_SZ]; - uint8_t *k1, *k2; - - auth_keylen = ICP_QAT_HW_AES_128_KEY_SZ; - - in = rte_zmalloc("AES CMAC K1", - ICP_QAT_HW_AES_128_KEY_SZ, 16); - - if (in == NULL) { - QAT_LOG(ERR, "Failed to alloc memory"); - return -ENOMEM; - } - - rte_memcpy(in, AES_CMAC_SEED, - ICP_QAT_HW_AES_128_KEY_SZ); - rte_memcpy(p_state_buf, auth_key, auth_keylen); - - if (AES_set_encrypt_key(auth_key, auth_keylen << 3, - &enc_key) != 0) { - rte_free_sensitive(in); - return -EFAULT; - } - - AES_encrypt(in, k0, &enc_key); - - k1 = p_state_buf + ICP_QAT_HW_AES_XCBC_MAC_STATE1_SZ; - k2 = k1 + ICP_QAT_HW_AES_XCBC_MAC_STATE1_SZ; - - aes_cmac_key_derive(k0, k1); - aes_cmac_key_derive(k1, k2); - - rte_memzero_explicit(k0, ICP_QAT_HW_AES_128_KEY_SZ); - *p_state_len = ICP_QAT_HW_AES_XCBC_MAC_STATE2_SZ; - rte_free_sensitive(in); - goto out; - } else { - static uint8_t qat_aes_xcbc_key_seed[ - ICP_QAT_HW_AES_XCBC_MAC_STATE2_SZ] = { - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, - 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, - }; - - uint8_t *in = NULL; - uint8_t *out = p_state_buf; - int x; - AES_KEY enc_key; - - in = rte_zmalloc("working mem for key", - ICP_QAT_HW_AES_XCBC_MAC_STATE2_SZ, 16); - if (in == NULL) { - QAT_LOG(ERR, "Failed to alloc memory"); - return -ENOMEM; - } - - rte_memcpy(in, qat_aes_xcbc_key_seed, - ICP_QAT_HW_AES_XCBC_MAC_STATE2_SZ); - for (x = 0; x < HASH_XCBC_PRECOMP_KEY_NUM; x++) { - if (AES_set_encrypt_key(auth_key, - auth_keylen << 3, - &enc_key) != 0) { - rte_free_sensitive(in - - (x * ICP_QAT_HW_AES_XCBC_MAC_KEY_SZ)); - rte_memzero_explicit(out - - (x * ICP_QAT_HW_AES_XCBC_MAC_KEY_SZ), - ICP_QAT_HW_AES_XCBC_MAC_STATE2_SZ); - return -EFAULT; - } - AES_encrypt(in, out, &enc_key); - in += ICP_QAT_HW_AES_XCBC_MAC_KEY_SZ; - out += ICP_QAT_HW_AES_XCBC_MAC_KEY_SZ; - } - *p_state_len = ICP_QAT_HW_AES_XCBC_MAC_STATE2_SZ; - rte_free_sensitive(in - x*ICP_QAT_HW_AES_XCBC_MAC_KEY_SZ); - goto out; - } - - } else if ((hash_alg == ICP_QAT_HW_AUTH_ALGO_GALOIS_128) || - (hash_alg == ICP_QAT_HW_AUTH_ALGO_GALOIS_64)) { - uint8_t *in = NULL; - uint8_t *out = p_state_buf; - AES_KEY enc_key; - - memset(p_state_buf, 0, ICP_QAT_HW_GALOIS_H_SZ + - ICP_QAT_HW_GALOIS_LEN_A_SZ + - ICP_QAT_HW_GALOIS_E_CTR0_SZ); - in = rte_zmalloc("working mem for key", - ICP_QAT_HW_GALOIS_H_SZ, 16); - if (in == NULL) { - QAT_LOG(ERR, "Failed to alloc memory"); - return -ENOMEM; - } - - rte_memzero_explicit(in, ICP_QAT_HW_GALOIS_H_SZ); - if (AES_set_encrypt_key(auth_key, auth_keylen << 3, - &enc_key) != 0) { - return -EFAULT; - } - AES_encrypt(in, out, &enc_key); - *p_state_len = ICP_QAT_HW_GALOIS_H_SZ + - ICP_QAT_HW_GALOIS_LEN_A_SZ + - ICP_QAT_HW_GALOIS_E_CTR0_SZ; - rte_free_sensitive(in); - return 0; - } - - block_size = qat_hash_get_block_size(hash_alg); - if (block_size < 0) - return block_size; - /* init ipad and opad from key and xor with fixed values */ - memset(ipad, 0, block_size); - memset(opad, 0, block_size); - - if (auth_keylen > (unsigned int)block_size) { - QAT_LOG(ERR, "invalid keylen %u", auth_keylen); - return -EFAULT; - } - - RTE_VERIFY(auth_keylen <= sizeof(ipad)); - RTE_VERIFY(auth_keylen <= sizeof(opad)); - - rte_memcpy(ipad, auth_key, auth_keylen); - rte_memcpy(opad, auth_key, auth_keylen); - - for (i = 0; i < block_size; i++) { - uint8_t *ipad_ptr = ipad + i; - uint8_t *opad_ptr = opad + i; - *ipad_ptr ^= HMAC_IPAD_VALUE; - *opad_ptr ^= HMAC_OPAD_VALUE; - } - - /* do partial hash of ipad and copy to state1 */ - if (partial_hash_compute(hash_alg, ipad, p_state_buf)) { - rte_memzero_explicit(ipad, block_size); - rte_memzero_explicit(opad, block_size); - QAT_LOG(ERR, "ipad precompute failed"); - return -EFAULT; - } - - /* - * State len is a multiple of 8, so may be larger than the digest. - * Put the partial hash of opad state_len bytes after state1 - */ - *p_state_len = qat_hash_get_state1_size(hash_alg); - if (partial_hash_compute(hash_alg, opad, p_state_buf + *p_state_len)) { - rte_memzero_explicit(ipad, block_size); - rte_memzero_explicit(opad, block_size); - QAT_LOG(ERR, "opad precompute failed"); - return -EFAULT; - } - - /* don't leave data lying around */ - rte_memzero_explicit(ipad, block_size); - rte_memzero_explicit(opad, block_size); -out: - return 0; -} - -#else +/* HMAC precomputes always use IPsec MB (OpenSSL 3.0 removed SHA*_Transform APIs) + * OpenSSL is only used for DOCSIS BPI cipher fallback (via EVP API) + */ static int aes_ipsecmb_job(uint8_t *in, uint8_t *out, IMB_MGR *m, const uint8_t *key, uint16_t auth_keylen) @@ -1992,7 +1660,6 @@ static int qat_sym_do_precomputes_ipsec_mb(enum icp_qat_hw_auth_algo hash_alg, free_mb_mgr(m); return ret; } -#endif static void qat_sym_session_init_common_hdr(struct qat_sym_session *session) @@ -2482,16 +2149,9 @@ static int qat_sym_cd_auth_set(struct qat_sym_session *cdesc, break; } /* SHA-1 HMAC */ -#ifdef RTE_QAT_OPENSSL - ret = qat_sym_do_precomputes(ICP_QAT_HW_AUTH_ALGO_SHA1, authkey, - authkeylen, cdesc->cd_cur_ptr, &state1_size, - cdesc->aes_cmac); - -#else ret = qat_sym_do_precomputes_ipsec_mb(ICP_QAT_HW_AUTH_ALGO_SHA1, authkey, authkeylen, cdesc->cd_cur_ptr, &state1_size, cdesc->aes_cmac); -#endif if (ret) { QAT_LOG(ERR, "(SHA)precompute failed"); @@ -2509,15 +2169,9 @@ static int qat_sym_cd_auth_set(struct qat_sym_session *cdesc, break; } /* SHA-224 HMAC */ -#ifdef RTE_QAT_OPENSSL - ret = qat_sym_do_precomputes(ICP_QAT_HW_AUTH_ALGO_SHA224, authkey, - authkeylen, cdesc->cd_cur_ptr, &state1_size, - cdesc->aes_cmac); -#else ret = qat_sym_do_precomputes_ipsec_mb(ICP_QAT_HW_AUTH_ALGO_SHA224, authkey, authkeylen, cdesc->cd_cur_ptr, &state1_size, cdesc->aes_cmac); -#endif if (ret) { QAT_LOG(ERR, "(SHA)precompute failed"); return -EFAULT; @@ -2534,15 +2188,9 @@ static int qat_sym_cd_auth_set(struct qat_sym_session *cdesc, break; } /* SHA-256 HMAC */ -#ifdef RTE_QAT_OPENSSL - ret = qat_sym_do_precomputes(ICP_QAT_HW_AUTH_ALGO_SHA256, authkey, - authkeylen, cdesc->cd_cur_ptr, &state1_size, - cdesc->aes_cmac); -#else ret = qat_sym_do_precomputes_ipsec_mb(ICP_QAT_HW_AUTH_ALGO_SHA256, authkey, authkeylen, cdesc->cd_cur_ptr, &state1_size, cdesc->aes_cmac); -#endif if (ret) { QAT_LOG(ERR, "(SHA)precompute failed"); return -EFAULT; @@ -2559,15 +2207,9 @@ static int qat_sym_cd_auth_set(struct qat_sym_session *cdesc, break; } /* SHA-384 HMAC */ -#ifdef RTE_QAT_OPENSSL - ret = qat_sym_do_precomputes(ICP_QAT_HW_AUTH_ALGO_SHA384, authkey, - authkeylen, cdesc->cd_cur_ptr, &state1_size, - cdesc->aes_cmac); -#else ret = qat_sym_do_precomputes_ipsec_mb(ICP_QAT_HW_AUTH_ALGO_SHA384, authkey, authkeylen, cdesc->cd_cur_ptr, &state1_size, cdesc->aes_cmac); -#endif if (ret) { QAT_LOG(ERR, "(SHA)precompute failed"); return -EFAULT; @@ -2584,15 +2226,9 @@ static int qat_sym_cd_auth_set(struct qat_sym_session *cdesc, break; } /* SHA-512 HMAC */ -#ifdef RTE_QAT_OPENSSL - ret = qat_sym_do_precomputes(ICP_QAT_HW_AUTH_ALGO_SHA512, authkey, - authkeylen, cdesc->cd_cur_ptr, &state1_size, - cdesc->aes_cmac); -#else ret = qat_sym_do_precomputes_ipsec_mb(ICP_QAT_HW_AUTH_ALGO_SHA512, authkey, authkeylen, cdesc->cd_cur_ptr, &state1_size, cdesc->aes_cmac); -#endif if (ret) { QAT_LOG(ERR, "(SHA)precompute failed"); return -EFAULT; @@ -2628,16 +2264,10 @@ static int qat_sym_cd_auth_set(struct qat_sym_session *cdesc, if (cdesc->aes_cmac) memset(cdesc->cd_cur_ptr, 0, state1_size); -#ifdef RTE_QAT_OPENSSL - ret = qat_sym_do_precomputes(ICP_QAT_HW_AUTH_ALGO_AES_XCBC_MAC, - authkey, authkeylen, cdesc->cd_cur_ptr + state1_size, - &state2_size, cdesc->aes_cmac); -#else ret = qat_sym_do_precomputes_ipsec_mb( ICP_QAT_HW_AUTH_ALGO_AES_XCBC_MAC, authkey, authkeylen, cdesc->cd_cur_ptr + state1_size, &state2_size, cdesc->aes_cmac); -#endif if (ret) { QAT_LOG(ERR, "(%s)precompute failed", cdesc->aes_cmac ? "CMAC" : "XCBC"); @@ -2654,15 +2284,9 @@ static int qat_sym_cd_auth_set(struct qat_sym_session *cdesc, case ICP_QAT_HW_AUTH_ALGO_GALOIS_64: cdesc->qat_proto_flag = QAT_CRYPTO_PROTO_FLAG_GCM; state1_size = ICP_QAT_HW_GALOIS_128_STATE1_SZ; -#ifdef RTE_QAT_OPENSSL - ret = qat_sym_do_precomputes(cdesc->qat_hash_alg, authkey, - authkeylen, cdesc->cd_cur_ptr + state1_size, - &state2_size, cdesc->aes_cmac); -#else ret = qat_sym_do_precomputes_ipsec_mb(cdesc->qat_hash_alg, authkey, authkeylen, cdesc->cd_cur_ptr + state1_size, &state2_size, cdesc->aes_cmac); -#endif if (ret) { QAT_LOG(ERR, "(GCM)precompute failed"); return -EFAULT; @@ -2734,15 +2358,9 @@ static int qat_sym_cd_auth_set(struct qat_sym_session *cdesc, auth_param->hash_state_sz = ICP_QAT_HW_ZUC_256_IV_SZ >> 3; break; case ICP_QAT_HW_AUTH_ALGO_MD5: -#ifdef RTE_QAT_OPENSSL - ret = qat_sym_do_precomputes(ICP_QAT_HW_AUTH_ALGO_MD5, authkey, - authkeylen, cdesc->cd_cur_ptr, &state1_size, - cdesc->aes_cmac); -#else ret = qat_sym_do_precomputes_ipsec_mb(ICP_QAT_HW_AUTH_ALGO_MD5, authkey, authkeylen, cdesc->cd_cur_ptr, &state1_size, cdesc->aes_cmac); -#endif if (ret) { QAT_LOG(ERR, "(MD5)precompute failed"); return -EFAULT; -- 2.43.0

