From patchwork Tue Dec 28 10:08:52 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 105467 X-Patchwork-Delegate: gakhil@marvell.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C06F8A0351; Tue, 28 Dec 2021 12:14:18 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 88ED440040; Tue, 28 Dec 2021 12:14:18 +0100 (CET) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id 4BCF84003C for ; Tue, 28 Dec 2021 12:14:17 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1640690057; x=1672226057; h=from:to:cc:subject:date:message-id; bh=YAT6jLRTnjebNcK9Ne6r3Wu0mLKZqdJ1dzLLacTmqqA=; b=fYSH44oPGPnbR8jgrQBfWWCPneUchF6y+XkPZ2/dcXuGHFkhxJQAUOHC iqg3uRSlSXn/0YAhfWKDCOcmJV9xmD3BPHmuPf8zikW0aZdZuDBp7rZaQ MsgNYrYuM8rPWgCLLbbmCVUHeP1gH1hrN5cCXHkiaeV9B2zNLZzuO/30H WcJ8Yhl2PvBIjwPcean6VfALoRxdHovy09xkbUMuA7R+jqhDUYaFzRI4c P0YWYeGgFpHm1/EXcuJ7xKOicJpnyLswjZNuaxoqLxidBmlh9tlDA5rz0 17LfQejA4Dm++m8ipY3MAWtzVBuhugNd/SjLqKex2sRKfFjHO0VS4p9nM A==; X-IronPort-AV: E=McAfee;i="6200,9189,10210"; a="238896073" X-IronPort-AV: E=Sophos;i="5.88,242,1635231600"; d="scan'208";a="238896073" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Dec 2021 03:14:16 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,242,1635231600"; d="scan'208";a="761073481" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by fmsmga005.fm.intel.com with ESMTP; 28 Dec 2021 03:14:15 -0800 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH] crypto/qat: remove openssl 3.0 deprecated functions Date: Tue, 28 Dec 2021 10:08:52 +0000 Message-Id: <20211228100852.56922-1-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org This commit removes OpenSSL 3.0 deprecated functions from Intel QuickAssist Technology PMD. It does not remove all deprecated functions, this will be added in later versions. Signed-off-by: Arek Kusztal --- drivers/crypto/qat/qat_sym_session.c | 47 ++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/drivers/crypto/qat/qat_sym_session.c b/drivers/crypto/qat/qat_sym_session.c index 8ca475ca8b..57deddba85 100644 --- a/drivers/crypto/qat/qat_sym_session.c +++ b/drivers/crypto/qat/qat_sym_session.c @@ -72,6 +72,26 @@ qat_sym_cd_auth_set(struct qat_sym_session *cdesc, static void qat_sym_session_init_common_hdr(struct qat_sym_session *session); +/* AES helper function */ +static int +aes_encrypt(const uint8_t *key, uint8_t *in, uint8_t *out) +{ + int outlen; + EVP_CIPHER_CTX *ctx; + + ctx = EVP_CIPHER_CTX_new(); + if (ctx == NULL) { + QAT_LOG(ERR, "EVP_CIPHER_CTX_new error"); + return -1; + } + EVP_EncryptInit_ex(ctx, EVP_aes_128_ecb(), NULL, key, NULL); + if (!EVP_EncryptUpdate(ctx, out, &outlen, in, 16)) { + QAT_LOG(ERR, "EVP_EncryptUpdate error"); + return -1; + } + return 0; +} + /* Req/cd init functions */ static void @@ -1309,7 +1329,6 @@ static int qat_sym_do_precomputes(enum icp_qat_hw_auth_algo hash_alg, /* 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; @@ -1327,14 +1346,8 @@ static int qat_sym_do_precomputes(enum icp_qat_hw_auth_algo hash_alg, 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(in); + if (aes_encrypt(auth_key, in, k0) < 0) 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; @@ -1360,7 +1373,6 @@ static int qat_sym_do_precomputes(enum icp_qat_hw_auth_algo hash_alg, 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); @@ -1372,17 +1384,8 @@ static int qat_sym_do_precomputes(enum icp_qat_hw_auth_algo hash_alg, 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(in - - (x * ICP_QAT_HW_AES_XCBC_MAC_KEY_SZ)); - memset(out - - (x * ICP_QAT_HW_AES_XCBC_MAC_KEY_SZ), - 0, ICP_QAT_HW_AES_XCBC_MAC_STATE2_SZ); + if (aes_encrypt(auth_key, in, out) < 0) 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; } @@ -1395,7 +1398,6 @@ static int qat_sym_do_precomputes(enum icp_qat_hw_auth_algo hash_alg, (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 + @@ -1408,11 +1410,8 @@ static int qat_sym_do_precomputes(enum icp_qat_hw_auth_algo hash_alg, } memset(in, 0, ICP_QAT_HW_GALOIS_H_SZ); - if (AES_set_encrypt_key(auth_key, auth_keylen << 3, - &enc_key) != 0) { + if (aes_encrypt(auth_key, in, out) < 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;