From patchwork Fri May 20 05:54:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111485 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 B8DB9A0503; Fri, 20 May 2022 09:02:35 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9E0B842B71; Fri, 20 May 2022 09:02:33 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id BC0E642B71 for ; Fri, 20 May 2022 09:02:31 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030152; x=1684566152; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=oP6ul0nxZ5yv15GdzxGayl9eHaDt/4tbIFdjoRdotnc=; b=JYaXSX52J5BNN9d4QxhuEc9f5r6LhC6o6Cy8E9Yf9nSq1p11MZT7aDD5 +oGJOQu9+rMqPFqMgJ9NzEqwWRm9l2FiGZSHpPFM1uaf9RJbrOBaeeb/t +pUPxh4BYcu/CexUX4HKGux0qHjKmMNa7GXtGeQIDcvQudOFETjEIKE1f Mu7uydADvIiPHX5IeKCgOs5yEWvTzEbMW/a68h7aa5OAZbkHaleKAm/JE dgfkhVFDc7YTGb/IEjSZDhXTCYp0gP9wUjFs/hT7MZ/dyQ1/dRNVigCml 2M2evIwm0iOPLgToJzk/MDEFSteXkcn9H+1MKbuTFO/OWrhO84NCh+wyk w==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="272219637" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="272219637" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:02:31 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058030" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:02:30 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 01/40] cryptodev: redefine ec group enum Date: Fri, 20 May 2022 06:54:06 +0100 Message-Id: <20220520055445.40063-2-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - EC enum was renamed to rte_crypto_curve_id. Elliptic curve enum name is incorrectly associated with group (it comes from current tls registry name). - Clarified comments about TLS deprecation Some curves included are deprecated with TLS 1.3. Comments to address it were added. - Clarified FFDH groups usage. Elliptic curves IDs in TLS are in the same registry as FFDH. Cryptodev does not assign specific groups, and if specific groups would be assigned to enum it cannot be TLS SupportedGroups registry as it would conflict with other protocols like IPSec. - Added IANA reference. Only few selected curves are included in previously referenced rfc8422. IANA reference is added instead. - Removed UNKNOWN ec group. There is no default value, and there is no UNKNOWN elliptic curve. Signed-off-by: Arek Kusztal --- lib/cryptodev/rte_crypto_asym.h | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/cryptodev/rte_crypto_asym.h b/lib/cryptodev/rte_crypto_asym.h index cd24d4b07b..7206652458 100644 --- a/lib/cryptodev/rte_crypto_asym.h +++ b/lib/cryptodev/rte_crypto_asym.h @@ -38,16 +38,20 @@ extern const char * rte_crypto_asym_op_strings[]; /** - * TLS named curves - * https://tools.ietf.org/html/rfc8422 + * List of elliptic curves. This enum aligns with + * TLS "Supported Groups" registry (previously known as + * NamedCurve registry). FFDH groups are not, and will not + * be included in this list. + * Deprecation for selected curve in tls does not deprecate + * the selected curve in Cryptodev. + * https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml */ -enum rte_crypto_ec_group { - RTE_CRYPTO_EC_GROUP_UNKNOWN = 0, +enum rte_crypto_curve_id { RTE_CRYPTO_EC_GROUP_SECP192R1 = 19, RTE_CRYPTO_EC_GROUP_SECP224R1 = 21, RTE_CRYPTO_EC_GROUP_SECP256R1 = 23, RTE_CRYPTO_EC_GROUP_SECP384R1 = 24, - RTE_CRYPTO_EC_GROUP_SECP521R1 = 25, + RTE_CRYPTO_EC_GROUP_SECP521R1 = 25 }; /** @@ -294,7 +298,7 @@ struct rte_crypto_dsa_xform { * */ struct rte_crypto_ec_xform { - enum rte_crypto_ec_group curve_id; + enum rte_crypto_curve_id curve_id; /**< Pre-defined ec groups */ }; From patchwork Fri May 20 05:54:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111486 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 A539CA0503; Fri, 20 May 2022 09:02:41 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8410F42B7D; Fri, 20 May 2022 09:02:40 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id D7CE142B79 for ; Fri, 20 May 2022 09:02:39 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030160; x=1684566160; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=UadKRhyT37quTTq45MEokiOD1oOFV/pSivm9vfs5s20=; b=BgQ7df22gLl5HDSLZbQ6wGkRPyj/DgYr0ZDwYakLRsYFKNPFo14IQMnC cqhESQ0COv3wY22GzS27YUfJo9ovJAO+/zpyxhJ0Ed36PuuvYCn4pwdE0 zLLutqySfYVw/Gm7oS4sdg+SyjvTn9/g8VV/pGDVflgNoDASXudRoFEwL FhdP5zKf6DXjPCI4+CLCfdQGSrsUJS6fo4okf/n9aspl09ZoIc7JmHIee ZFa9VEcbN2/bGzyKJ6Miep+j1DQyIr7wkoTtteRFUpUfnc45y4JDUl/VV 4WcrBDQBmEGYSr820RGSCKTl0ctIH02E9JRpxLC6UUy5ammm+gQTSIPr2 w==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140178" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140178" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:02:38 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058085" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:02:37 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal , mdr@ashroe.eu Subject: [PATCH 02/40] cryptodev: remove list end enumerators Date: Fri, 20 May 2022 06:54:07 +0100 Message-Id: <20220520055445.40063-3-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - Removed LIST_END enumerators from asymmetric crypto API. Adding new enum entries would require moving LIST_END down, therefore changing its assigned number. This would cause problems to ABI stability, so these enums were removed. Cc: mdr@ashroe.eu Signed-off-by: Arek Kusztal --- devtools/libabigail.abignore | 2 ++ lib/cryptodev/rte_crypto_asym.h | 10 +++------- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore index 79ff15dc4e..f1945ce3b7 100644 --- a/devtools/libabigail.abignore +++ b/devtools/libabigail.abignore @@ -27,6 +27,8 @@ ; Ignore changes to rte_crypto_asym_op, asymmetric crypto API is experimental [suppress_type] name = rte_crypto_asym_op +[suppress_type] + name = rte_crypto_asym_xform_type ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Temporary exceptions till next major ABI version ; diff --git a/lib/cryptodev/rte_crypto_asym.h b/lib/cryptodev/rte_crypto_asym.h index 7206652458..a474b6acd1 100644 --- a/lib/cryptodev/rte_crypto_asym.h +++ b/lib/cryptodev/rte_crypto_asym.h @@ -95,10 +95,8 @@ enum rte_crypto_asym_xform_type { /**< Elliptic Curve Digital Signature Algorithm * Perform Signature Generation and Verification. */ - RTE_CRYPTO_ASYM_XFORM_ECPM, + RTE_CRYPTO_ASYM_XFORM_ECPM /**< Elliptic Curve Point Multiplication */ - RTE_CRYPTO_ASYM_XFORM_TYPE_LIST_END - /**< End of list */ }; /** @@ -117,9 +115,8 @@ enum rte_crypto_asym_op_type { /**< DH Private Key generation operation */ RTE_CRYPTO_ASYM_OP_PUBLIC_KEY_GENERATE, /**< DH Public Key generation operation */ - RTE_CRYPTO_ASYM_OP_SHARED_SECRET_COMPUTE, + RTE_CRYPTO_ASYM_OP_SHARED_SECRET_COMPUTE /**< DH Shared Secret compute operation */ - RTE_CRYPTO_ASYM_OP_LIST_END }; /** @@ -134,9 +131,8 @@ enum rte_crypto_rsa_padding_type { */ RTE_CRYPTO_RSA_PADDING_OAEP, /**< RSA PKCS#1 OAEP padding scheme */ - RTE_CRYPTO_RSA_PADDING_PSS, + RTE_CRYPTO_RSA_PADDING_PSS /**< RSA PKCS#1 PSS padding scheme */ - RTE_CRYPTO_RSA_PADDING_TYPE_LIST_END }; /** From patchwork Fri May 20 05:54:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111487 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 22A6EA0503; Fri, 20 May 2022 09:02:47 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6ED7E42B83; Fri, 20 May 2022 09:02:43 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id D257F42B82 for ; Fri, 20 May 2022 09:02:41 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030162; x=1684566162; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=djKG5IQD2fZrN3Gm78+LJHrhPmasNCAxOKpjEACW6Dg=; b=H8kJBsfnuW1u/IPKp7zrK1/vgNBp12p1Pmh3p30zdLYvSaFCpd4+hQgU 4UZYc6toud92mFr30yS25G0mYVc6OlxJPZurnx27mBdw5dm5fJhHCtzLC 42CY7MFq2K1vbxmfS6tSWpGhi3tPnkSraMiAfwnsGwi/b1mNO2LoxnGlG f2wlJ7iSgOoZsZslVIO87082JkXu466AwPes3Az/x/MNuZ6FgxGOrhabw csy0+OnSTsbH6q+q6hXiMT2rSW/ekduJ4uC2nMTUXE4jW/0RTUBt2wcP4 3QryQbHXddJz6ep40rGdPAL6diEc2SCaj1VvP/b20duX+Czt5nMdbIBAk w==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140198" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140198" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:02:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058091" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:02:39 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 03/40] test/crypto: remove list end enumerators Date: Fri, 20 May 2022 06:54:08 +0100 Message-Id: <20220520055445.40063-4-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - Removed LIST_END enumerators from asymmetric crypto structs. This commit reflects changes to the asymmetric crypto API. Signed-off-by: Arek Kusztal --- app/test/test_cryptodev_asym.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c index 573af2a537..9fdeba3004 100644 --- a/app/test/test_cryptodev_asym.c +++ b/app/test/test_cryptodev_asym.c @@ -532,7 +532,7 @@ test_one_case(const void *test_case, int sessionless) printf(" %u) TestCase %s %s\n", test_index++, tc.modex.description, test_msg); } else { - for (i = 0; i < RTE_CRYPTO_ASYM_OP_LIST_END; i++) { + for (i = 0; i <= RTE_CRYPTO_ASYM_OP_SHARED_SECRET_COMPUTE; i++) { if (tc.modex.xform_type == RTE_CRYPTO_ASYM_XFORM_RSA) { if (tc.rsa_data.op_type_flags & (1 << i)) { if (tc.rsa_data.key_exp) { @@ -974,7 +974,7 @@ static inline void print_asym_capa( rte_crypto_asym_xform_strings[capa->xform_type]); printf("operation supported -"); - for (i = 0; i < RTE_CRYPTO_ASYM_OP_LIST_END; i++) { + for (i = 0; i <= RTE_CRYPTO_ASYM_OP_SHARED_SECRET_COMPUTE; i++) { /* check supported operations */ if (rte_cryptodev_asym_xform_capability_check_optype(capa, i)) printf(" %s", From patchwork Fri May 20 05:54:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111488 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 641C4A0503; Fri, 20 May 2022 09:02:53 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 64FA442B8C; Fri, 20 May 2022 09:02:46 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 2E2A342B89 for ; Fri, 20 May 2022 09:02:44 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030164; x=1684566164; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=F01b3iqMeaMAiM1bZtNJumN6/wjHbECm79nd4WIQV2k=; b=mMiWYq1+OG1dmqynCA51kgtGjknGhiRK8iUR1riJN6N/QZUopn/NXaB6 Q/EgnFSz/6ImhPNvLzzQlFVKdwDBMo4qMXonRdyK91UFSkTHBMpsdOy03 CDJL7Dlh3kE8sIN9bi/ZDmv7f/TU8ZZMaiQpvBAGc/0ssWFjhJKvFmV2y CMeqdHqJPu8LBnbGBQq6sL5gB3/JrqQGORiFNOAqwA2YTOaD6dvDVet2q yDa9DUVaZm01FMxMxrvJ/GgL9qhmmLpqT3KYyQ4gZ/CHIqapyJSU27Y8O xgCJBWwRQtXGFcyrj9mXfTCxZg1bu+otYJRjzVB7ys+D5SqfwDcAr6v4C A==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140216" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140216" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:02:43 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058104" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:02:42 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 04/40] cryptodev: reduce number of comments in asym xform Date: Fri, 20 May 2022 06:54:09 +0100 Message-Id: <20220520055445.40063-5-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - Reduced number of comments in asymmetric xform. Information describing basic functionality of well known algorithms are unnecessary. - Added information about data memory lifetime. It was specified how user should work with private data, and it is user's responsability to clear it. - Removed NONE asymetric xform. Signed-off-by: Arek Kusztal --- lib/cryptodev/rte_crypto_asym.h | 45 +++++++++++++---------------------------- lib/cryptodev/rte_cryptodev.c | 1 - 2 files changed, 14 insertions(+), 32 deletions(-) diff --git a/lib/cryptodev/rte_crypto_asym.h b/lib/cryptodev/rte_crypto_asym.h index a474b6acd1..0251e8caae 100644 --- a/lib/cryptodev/rte_crypto_asym.h +++ b/lib/cryptodev/rte_crypto_asym.h @@ -55,46 +55,29 @@ enum rte_crypto_curve_id { }; /** - * Asymmetric crypto transformation types. - * Each xform type maps to one asymmetric algorithm - * performing specific operation - * + * Asymmetric crypto algorithm static data. + * Data that may be used more than once (e.g. RSA private key). + * It is the USER responsibility to keep track of private data memory + * lifetime and security of the this data in xform. The same way + * it is the USER responsibility to call cryptodev session_clear() + * function if a session was created. If session-less not used + * xform data should be cleared after successful session creation. */ enum rte_crypto_asym_xform_type { - RTE_CRYPTO_ASYM_XFORM_UNSPECIFIED = 0, + RTE_CRYPTO_ASYM_XFORM_UNSPECIFIED, /**< Invalid xform. */ - RTE_CRYPTO_ASYM_XFORM_NONE, - /**< Xform type None. - * May be supported by PMD to support - * passthrough op for debugging purpose. - * if xform_type none , op_type is disregarded. - */ RTE_CRYPTO_ASYM_XFORM_RSA, - /**< RSA. Performs Encrypt, Decrypt, Sign and Verify. - * Refer to rte_crypto_asym_op_type - */ + /**< RSA */ RTE_CRYPTO_ASYM_XFORM_DH, - /**< Diffie-Hellman. - * Performs Key Generate and Shared Secret Compute. - * Refer to rte_crypto_asym_op_type - */ + /**< Diffie-Hellman */ RTE_CRYPTO_ASYM_XFORM_DSA, - /**< Digital Signature Algorithm - * Performs Signature Generation and Verification. - * Refer to rte_crypto_asym_op_type - */ + /**< Digital Signature Algorithm */ RTE_CRYPTO_ASYM_XFORM_MODINV, - /**< Modular Multiplicative Inverse - * Perform Modular Multiplicative Inverse b^(-1) mod n - */ + /**< Modular Multiplicative Inverse */ RTE_CRYPTO_ASYM_XFORM_MODEX, - /**< Modular Exponentiation - * Perform Modular Exponentiation b^e mod n - */ + /**< Modular Exponentiation */ RTE_CRYPTO_ASYM_XFORM_ECDSA, - /**< Elliptic Curve Digital Signature Algorithm - * Perform Signature Generation and Verification. - */ + /**< Elliptic Curve Digital Signature Algorithm */ RTE_CRYPTO_ASYM_XFORM_ECPM /**< Elliptic Curve Point Multiplication */ }; diff --git a/lib/cryptodev/rte_cryptodev.c b/lib/cryptodev/rte_cryptodev.c index e16e6802aa..691625bd04 100644 --- a/lib/cryptodev/rte_cryptodev.c +++ b/lib/cryptodev/rte_cryptodev.c @@ -160,7 +160,6 @@ rte_crypto_aead_operation_strings[] = { * Asymmetric crypto transform operation strings identifiers. */ const char *rte_crypto_asym_xform_strings[] = { - [RTE_CRYPTO_ASYM_XFORM_NONE] = "none", [RTE_CRYPTO_ASYM_XFORM_RSA] = "rsa", [RTE_CRYPTO_ASYM_XFORM_MODEX] = "modexp", [RTE_CRYPTO_ASYM_XFORM_MODINV] = "modinv", From patchwork Fri May 20 05:54:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111489 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 921F2A0503; Fri, 20 May 2022 09:03:01 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A535442B89; Fri, 20 May 2022 09:02:48 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 7A69142B8F for ; Fri, 20 May 2022 09:02:46 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030166; x=1684566166; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=VoAC9FcOtvBum/KhqTDcmLqlWDCML3AdMR4YXdNTPV4=; b=P8LIYcfcBfH/GUYWjUPlgj9Q/aTh5ZcOXDriJedVq/JlKJ7L2lhmLaMf hdyiqe085YiCqhDNt2Vt6Lrp1ohfZHVlyEGwa2l4r7XMJKxZgkuoaQ0ZF tYSt4VIJtU1tZPY0lqvrSOlys4ZAlDk0PZ0WEq75xV+x0RVDPTjaaHFJZ jT1Kx6XJMu8INxTIp+PenqFX9aGglI6qxabKVHwuJMBQthzM+rnSWNdO3 KhvND/EWQwms1PAv3F9zKsofkXLCN9o9RGwhiRTbikQMYmffnlMIAcMS6 cXDTnzwWSZTyuNwmTtvJyfb8Bzs0oRp7oY8YIfFBXHJIBSWsWaKaJsO3q w==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140224" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140224" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:02:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058112" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:02:44 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 05/40] test/crypto: removed asym xform none Date: Fri, 20 May 2022 06:54:10 +0100 Message-Id: <20220520055445.40063-6-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - Removed asymetric crypto NONE xform. This commit reflects changes to the asymmetric crypto API. Signed-off-by: Arek Kusztal --- app/test/test_cryptodev_asym.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c index 9fdeba3004..62d710b0a0 100644 --- a/app/test/test_cryptodev_asym.c +++ b/app/test/test_cryptodev_asym.c @@ -288,7 +288,6 @@ test_cryptodev_asym_ver(struct rte_crypto_op *op, break; case RTE_CRYPTO_ASYM_XFORM_DH: case RTE_CRYPTO_ASYM_XFORM_DSA: - case RTE_CRYPTO_ASYM_XFORM_NONE: case RTE_CRYPTO_ASYM_XFORM_UNSPECIFIED: default: break; @@ -440,7 +439,6 @@ test_cryptodev_asym_op(struct crypto_testsuite_params_asym *ts_params, break; case RTE_CRYPTO_ASYM_XFORM_DH: case RTE_CRYPTO_ASYM_XFORM_DSA: - case RTE_CRYPTO_ASYM_XFORM_NONE: case RTE_CRYPTO_ASYM_XFORM_UNSPECIFIED: default: snprintf(test_msg, ASYM_TEST_MSG_LEN, From patchwork Fri May 20 05:54:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111490 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 EDB4AA0503; Fri, 20 May 2022 09:03:07 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8E90B42B9B; Fri, 20 May 2022 09:02:50 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id CAFB542B99 for ; Fri, 20 May 2022 09:02:48 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030169; x=1684566169; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=0MVxKTbGRv+3wcNuXw0UmjZxfMdKGmU8a4u8/Af0uUA=; b=g2I896QgicZb8Dmfj1Fa49Mc1v76UXe2wcireLxwdBd6ZEH893ISEM4T osrAsp7LMOUe5XSv+iKgfp2IycU7rIyc1ZTu4QE4jaGzvviXYA+1uFpEw KtCZeEWiup5lfGSiHgwk/f5jq84qg5JydhqWAjzL4ZNY7NwOjPKadEfdT N3svgaf/7Wd6SqVPantWyTwSblR6vcJccanyUiBe1kG0tCgcKVrj0kHcg nwOSFQKLeh6QQZ4SH07GbVcM8JqJitbjuI+aPkUwezL3AKrzTMiaITzX8 FDgPwE6d7VTL3NU6LrCrCOwgbKHMGA3H2u9T9NA9JYWI3pDCRLXUJxyod A==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140237" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140237" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:02:48 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058120" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:02:46 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 06/40] cryptodev: separate key exchange operation enum Date: Fri, 20 May 2022 06:54:11 +0100 Message-Id: <20220520055445.40063-7-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - separated key exchange enum. Key exchange and asymmetric crypto operations like signatures, encryption/decryption should not share same operation enum as its use cases are unrelated and mutually exclusive. Therefore op_type was separate into: 1) operation type 2) key exchange operation type Signed-off-by: Arek Kusztal --- lib/cryptodev/rte_crypto_asym.h | 24 +++++++++++++++++------- lib/cryptodev/rte_cryptodev.c | 14 ++++++++++---- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/lib/cryptodev/rte_crypto_asym.h b/lib/cryptodev/rte_crypto_asym.h index 0251e8caae..0fc9f49b87 100644 --- a/lib/cryptodev/rte_crypto_asym.h +++ b/lib/cryptodev/rte_crypto_asym.h @@ -33,6 +33,10 @@ struct rte_cryptodev_asym_session; extern const char * rte_crypto_asym_xform_strings[]; +/** asym key exchange operation type name strings */ +extern const char * +rte_crypto_asym_ke_strings[]; + /** asym operations type name strings */ extern const char * rte_crypto_asym_op_strings[]; @@ -94,12 +98,18 @@ enum rte_crypto_asym_op_type { /**< Signature Generation operation */ RTE_CRYPTO_ASYM_OP_VERIFY, /**< Signature Verification operation */ - RTE_CRYPTO_ASYM_OP_PRIVATE_KEY_GENERATE, - /**< DH Private Key generation operation */ - RTE_CRYPTO_ASYM_OP_PUBLIC_KEY_GENERATE, - /**< DH Public Key generation operation */ - RTE_CRYPTO_ASYM_OP_SHARED_SECRET_COMPUTE - /**< DH Shared Secret compute operation */ +}; + +/** + * Asymmetric crypto key exchange operation type + */ +enum rte_crypto_asym_ke_type { + RTE_CRYPTO_ASYM_KE_PRIVATE_KEY_GENERATE, + /**< Private Key generation operation */ + RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE, + /**< Public Key generation operation */ + RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE + /**< Shared Secret compute operation */ }; /** @@ -239,7 +249,7 @@ struct rte_crypto_modinv_xform { * */ struct rte_crypto_dh_xform { - enum rte_crypto_asym_op_type type; + enum rte_crypto_asym_ke_type type; /**< Setup xform for key generate or shared secret compute */ rte_crypto_uint p; /**< Prime modulus data */ diff --git a/lib/cryptodev/rte_cryptodev.c b/lib/cryptodev/rte_cryptodev.c index 691625bd04..af58f49d07 100644 --- a/lib/cryptodev/rte_cryptodev.c +++ b/lib/cryptodev/rte_cryptodev.c @@ -176,10 +176,16 @@ const char *rte_crypto_asym_op_strings[] = { [RTE_CRYPTO_ASYM_OP_ENCRYPT] = "encrypt", [RTE_CRYPTO_ASYM_OP_DECRYPT] = "decrypt", [RTE_CRYPTO_ASYM_OP_SIGN] = "sign", - [RTE_CRYPTO_ASYM_OP_VERIFY] = "verify", - [RTE_CRYPTO_ASYM_OP_PRIVATE_KEY_GENERATE] = "priv_key_generate", - [RTE_CRYPTO_ASYM_OP_PUBLIC_KEY_GENERATE] = "pub_key_generate", - [RTE_CRYPTO_ASYM_OP_SHARED_SECRET_COMPUTE] = "sharedsecret_compute", + [RTE_CRYPTO_ASYM_OP_VERIFY] = "verify" +}; + +/** + * Asymmetric crypto key exchange operation strings identifiers. + */ +const char *rte_crypto_asym_ke_strings[] = { + [RTE_CRYPTO_ASYM_KE_PRIVATE_KEY_GENERATE] = "priv_key_generate", + [RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE] = "pub_key_generate", + [RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE] = "sharedsecret_compute" }; /** From patchwork Fri May 20 05:54:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111491 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 53C44A0503; Fri, 20 May 2022 09:03:14 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 93CC742B9E; Fri, 20 May 2022 09:02:53 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 1F76142B93 for ; Fri, 20 May 2022 09:02:50 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030171; x=1684566171; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=Rcf09VIU+Ma4SstMTServw25QaxwbZMWjRRFy4Qg8Ko=; b=iPDSzDCYMSUMILRMQ3bFwwfM4ukrg8GT6CABDo8q9/wk/WlEASJXnCBj 6OGPVG55iYvJmh+aqD8cErfKFOTo4tfcXsz+N5+GsFwZrh2dkdIMIoVXb yYZjmKNHpkXoLhmHgzJ6ucfXTyteB5wp3ibdBA94y/apC20SEowRHNVpf 2/lWjwM6IIoGLhxzFNVTPWhFQFTMuOumig/f4eoka6rRHN0+E7dR2RuLB OmWzciYv4hG5w4NUF2Pbdy1muPlP5nA0nMetgUUu1C9DLUeKBonO5Myya 3MgZ2AlE0hpq+PycRjMkdY/Y1cHExPFk45i4/33flfHO367nhpJv7dbAc w==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140243" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140243" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:02:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058125" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:02:49 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 07/40] crypto/openssl: separate key exchange operation enum Date: Fri, 20 May 2022 06:54:12 +0100 Message-Id: <20220520055445.40063-8-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - Key exchange is now separate enumerator. This commit reflects changes to the asymmetric crypto API Signed-off-by: Arek Kusztal --- drivers/crypto/openssl/rte_openssl_pmd.c | 10 +++++----- drivers/crypto/openssl/rte_openssl_pmd_ops.c | 12 ++++++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c b/drivers/crypto/openssl/rte_openssl_pmd.c index d80e1052e2..2a3930df0a 100644 --- a/drivers/crypto/openssl/rte_openssl_pmd.c +++ b/drivers/crypto/openssl/rte_openssl_pmd.c @@ -1697,7 +1697,7 @@ process_openssl_dh_op(struct rte_crypto_op *cop, int ret = 0; if (sess->u.dh.key_op & - (1 << RTE_CRYPTO_ASYM_OP_SHARED_SECRET_COMPUTE)) { + (1 << RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE)) { /* compute shared secret using peer public key * and current private key * shared secret = peer_key ^ priv_key mod p @@ -1754,9 +1754,9 @@ process_openssl_dh_op(struct rte_crypto_op *cop, * then first set DH with user provided private key */ if ((sess->u.dh.key_op & - (1 << RTE_CRYPTO_ASYM_OP_PUBLIC_KEY_GENERATE)) && + (1 << RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE)) && !(sess->u.dh.key_op & - (1 << RTE_CRYPTO_ASYM_OP_PRIVATE_KEY_GENERATE))) { + (1 << RTE_CRYPTO_ASYM_KE_PRIVATE_KEY_GENERATE))) { /* generate public key using user-provided private key * pub_key = g ^ priv_key mod p */ @@ -1790,7 +1790,7 @@ process_openssl_dh_op(struct rte_crypto_op *cop, return 0; } - if (sess->u.dh.key_op & (1 << RTE_CRYPTO_ASYM_OP_PUBLIC_KEY_GENERATE)) { + if (sess->u.dh.key_op & (1 << RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE)) { const BIGNUM *pub_key = NULL; OPENSSL_LOG(DEBUG, "%s:%d update public key\n", @@ -1805,7 +1805,7 @@ process_openssl_dh_op(struct rte_crypto_op *cop, } if (sess->u.dh.key_op & - (1 << RTE_CRYPTO_ASYM_OP_PRIVATE_KEY_GENERATE)) { + (1 << RTE_CRYPTO_ASYM_KE_PRIVATE_KEY_GENERATE)) { const BIGNUM *priv_key = NULL; OPENSSL_LOG(DEBUG, "%s:%d updated priv key\n", diff --git a/drivers/crypto/openssl/rte_openssl_pmd_ops.c b/drivers/crypto/openssl/rte_openssl_pmd_ops.c index 1cb07794bd..c975ef640a 100644 --- a/drivers/crypto/openssl/rte_openssl_pmd_ops.c +++ b/drivers/crypto/openssl/rte_openssl_pmd_ops.c @@ -533,10 +533,10 @@ static const struct rte_cryptodev_capabilities openssl_pmd_capabilities[] = { .xform_capa = { .xform_type = RTE_CRYPTO_ASYM_XFORM_DH, .op_types = - ((1<u.dh.key_op = (1 << xform->dh.type); if (xform->dh.type == - RTE_CRYPTO_ASYM_OP_PRIVATE_KEY_GENERATE) { + RTE_CRYPTO_ASYM_KE_PRIVATE_KEY_GENERATE) { /* check if next is pubkey */ if ((xform->next != NULL) && (xform->next->xform_type == RTE_CRYPTO_ASYM_XFORM_DH) && (xform->next->dh.type == - RTE_CRYPTO_ASYM_OP_PUBLIC_KEY_GENERATE) + RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE) ) { /* * setup op as pub/priv key @@ -1023,7 +1023,7 @@ static int openssl_set_asym_session_parameters( */ asym_session->u.dh.key_op |= (1 << - RTE_CRYPTO_ASYM_OP_PUBLIC_KEY_GENERATE); + RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE); } } asym_session->u.dh.dh_key = dh; From patchwork Fri May 20 05:54:13 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111492 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 6EC9FA0503; Fri, 20 May 2022 09:03:21 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 76AB542BA2; Fri, 20 May 2022 09:02:55 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 6ADFE42B81 for ; Fri, 20 May 2022 09:02:53 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030173; x=1684566173; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=rUFIgfLNrG3oY8gIs5wMeZPYc5V8LyAmtVpzEek1wUk=; b=AKc1z7A+D8Zj7TzrQgI+wztv0USA/I4OChW4YJtl2DUvMLjr6kZKMxyX Dx6WYZBYvAltfvyvEXIoHD2/gelj7urYIH1LDEeFF5iZ0SFCP4UJd/LpA aiNAgSXOdjrcI5HoM3PeDg0F2YDL8DiDBd4E8YrOfYXWZJISRtD66HPu7 9I4s3aKf5LUxpQlnRfOLw0Y/86Zrra5P1f1ElUkHpKW2hAinmN3A9YaYf qV8h2CZqRHIkEBoFZBWUlBOsZmLDi4Zu/IL8Msqjkxygknjse62jONo9Y YN02AHjzQ1Kxa6b/oL5DhaSgVu748FJQKmi+R5tF0+Q2jTJGw47i2QrAO w==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140265" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140265" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:02:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058136" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:02:51 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 08/40] test/crypto: separate key exchange operation enum Date: Fri, 20 May 2022 06:54:13 +0100 Message-Id: <20220520055445.40063-9-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - Key exchange is now separate enum. This commit reflects changes to the asymmetric crypto API Signed-off-by: Arek Kusztal --- app/test/test_cryptodev_asym.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c index 62d710b0a0..0098b6bf65 100644 --- a/app/test/test_cryptodev_asym.c +++ b/app/test/test_cryptodev_asym.c @@ -530,7 +530,7 @@ test_one_case(const void *test_case, int sessionless) printf(" %u) TestCase %s %s\n", test_index++, tc.modex.description, test_msg); } else { - for (i = 0; i <= RTE_CRYPTO_ASYM_OP_SHARED_SECRET_COMPUTE; i++) { + for (i = 0; i <= RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE; i++) { if (tc.modex.xform_type == RTE_CRYPTO_ASYM_XFORM_RSA) { if (tc.rsa_data.op_type_flags & (1 << i)) { if (tc.rsa_data.key_exp) { @@ -972,7 +972,7 @@ static inline void print_asym_capa( rte_crypto_asym_xform_strings[capa->xform_type]); printf("operation supported -"); - for (i = 0; i <= RTE_CRYPTO_ASYM_OP_SHARED_SECRET_COMPUTE; i++) { + for (i = 0; i <= RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE; i++) { /* check supported operations */ if (rte_cryptodev_asym_xform_capability_check_optype(capa, i)) printf(" %s", @@ -1062,7 +1062,7 @@ test_dh_gen_shared_sec(struct rte_crypto_asym_xform *xfrm) asym_op = op->asym; /* Setup a xform and op to generate private key only */ - xform.dh.type = RTE_CRYPTO_ASYM_OP_SHARED_SECRET_COMPUTE; + xform.dh.type = RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE; xform.next = NULL; asym_op->dh.priv_key.data = dh_test_params.priv_key.data; asym_op->dh.priv_key.length = dh_test_params.priv_key.length; @@ -1144,7 +1144,7 @@ test_dh_gen_priv_key(struct rte_crypto_asym_xform *xfrm) asym_op = op->asym; /* Setup a xform and op to generate private key only */ - xform.dh.type = RTE_CRYPTO_ASYM_OP_PRIVATE_KEY_GENERATE; + xform.dh.type = RTE_CRYPTO_ASYM_KE_PRIVATE_KEY_GENERATE; xform.next = NULL; asym_op->dh.priv_key.data = output; asym_op->dh.priv_key.length = sizeof(output); @@ -1227,7 +1227,7 @@ test_dh_gen_pub_key(struct rte_crypto_asym_xform *xfrm) * using test private key * */ - xform.dh.type = RTE_CRYPTO_ASYM_OP_PUBLIC_KEY_GENERATE; + xform.dh.type = RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE; xform.next = NULL; asym_op->dh.pub_key.data = output; @@ -1317,9 +1317,10 @@ test_dh_gen_kp(struct rte_crypto_asym_xform *xfrm) /* Setup a xform chain to generate * private key first followed by * public key - */xform.dh.type = RTE_CRYPTO_ASYM_OP_PRIVATE_KEY_GENERATE; + */ + xform.dh.type = RTE_CRYPTO_ASYM_KE_PRIVATE_KEY_GENERATE; pub_key_xform.xform_type = RTE_CRYPTO_ASYM_XFORM_DH; - pub_key_xform.dh.type = RTE_CRYPTO_ASYM_OP_PUBLIC_KEY_GENERATE; + pub_key_xform.dh.type = RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE; xform.next = &pub_key_xform; asym_op->dh.pub_key.data = out_pub_key; From patchwork Fri May 20 05:54:14 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111493 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 91D5AA0503; Fri, 20 May 2022 09:03:27 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5436E42B99; Fri, 20 May 2022 09:02:57 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id D3E6B42BA4 for ; Fri, 20 May 2022 09:02:55 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030176; x=1684566176; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=mWOK1Tx0KX4pcSfhm1H7qCicJDMSUDa3PXfpv3z42Dk=; b=OY1DxGN9V9SYrQpRobLLCAHDcwr312ThglPqe132zXCjsuHHa2Db1IBs bdE81aMpJZujWpOc/XA9Ff0FVR+Z1Wi4sU3RGcLnp4ERRi63Uw5S5BtMD SalC0lqMeNTiNW44DOYP53ez8CV/jWmMjCQc1ZvCXtLiIrbQ+7roga94T m1OT1gaQWgbLh62EU8U5ouB+YTX1AC1n8Q0OWXOxCW059rGsJRA0suOh2 f1uyjDgG0k2/3r0mH1FG201sQ5DqSEJGad6LUDzmNoQo2iTGS2fbO0ctI jwPOhv6HdK5VniZ+Rflna31Z+/1ZHtUN7H64HkeitXKV8qEembVBnrQbl Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140279" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140279" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:02:55 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058162" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:02:53 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 09/40] cryptodev: remove unnecessary zero assignement Date: Fri, 20 May 2022 06:54:14 +0100 Message-Id: <20220520055445.40063-10-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - removed unnecessary zero assignement in rsa padding enum. Even it is set correctly it should be made consistent with other enums in cryptodev. Therefore assignement to zero was removed. Signed-off-by: Arek Kusztal --- lib/cryptodev/rte_crypto_asym.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/cryptodev/rte_crypto_asym.h b/lib/cryptodev/rte_crypto_asym.h index 0fc9f49b87..270619acf2 100644 --- a/lib/cryptodev/rte_crypto_asym.h +++ b/lib/cryptodev/rte_crypto_asym.h @@ -116,11 +116,12 @@ enum rte_crypto_asym_ke_type { * Padding types for RSA signature. */ enum rte_crypto_rsa_padding_type { - RTE_CRYPTO_RSA_PADDING_NONE = 0, + RTE_CRYPTO_RSA_PADDING_NONE, /**< RSA no padding scheme */ RTE_CRYPTO_RSA_PADDING_PKCS1_5, - /**< RSA PKCS#1 PKCS1-v1_5 padding scheme. For signatures block type 01, - * for encryption block type 02 are used. + /**< RSA PKCS#1 PKCS1-v1_5 padding scheme. + * For signatures block type 01, for encryption + * block type 02 are used. */ RTE_CRYPTO_RSA_PADDING_OAEP, /**< RSA PKCS#1 OAEP padding scheme */ From patchwork Fri May 20 05:54:15 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111494 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 C302AA0503; Fri, 20 May 2022 09:03:33 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 37B0042BA8; Fri, 20 May 2022 09:02:59 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 3AC3542BA6 for ; Fri, 20 May 2022 09:02:58 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030178; x=1684566178; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=3OG6Ai7s75itRFAykoDFY457u4E1l8ywVrH8fLstJwM=; b=jhIGQvKvUugEsaTY9psy4eJNy6zWrtfR6bpanmPG5KAH254Bn6cSLlWz aYMh9yYPE2ekYueZ5oXZgJXawwjXBcQ1kru9B8x5pRZW7VSTadZhX4Lfj ni5fqDRcLRamr2C+n+ZlMifyFqvd/sofnMjVJQ2vPiER4FjBe8vsQ6GU3 QitgULVr3NTzTaa3MAY3u+G/bMApHOcgIORsmxAnGUU0XWmtjHHgsibSM 5YMyJN4qzaHReWJllAs1BtGC3yQHgJqcNGyPFGcqynShYWYwNwsyxLvm9 yu/ee0k7ItoJVpbIJyG6iER2s+To11gh4f7ZI8eFnQQW26a/xKoYlbpsX w==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140289" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140289" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:02:57 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058176" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:02:56 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 10/40] cryptodev: remove comment about using ephemeral key in dsa Date: Fri, 20 May 2022 06:54:15 +0100 Message-Id: <20220520055445.40063-11-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - removed comment that stated dsa can be used with Diffie Hellman ephemeral key. DH and DSA integration allowed to use ephemeral keys for random integer but not for private keys. Signed-off-by: Arek Kusztal --- lib/cryptodev/rte_crypto_asym.h | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/lib/cryptodev/rte_crypto_asym.h b/lib/cryptodev/rte_crypto_asym.h index 270619acf2..1652a434a5 100644 --- a/lib/cryptodev/rte_crypto_asym.h +++ b/lib/cryptodev/rte_crypto_asym.h @@ -272,13 +272,7 @@ struct rte_crypto_dsa_xform { rte_crypto_uint g; /**< Generator of the subgroup */ rte_crypto_uint x; - /**< x: Private key of the signer in octet-string network - * byte order format. - * Used when app has pre-defined private key. - * Valid only when xform chain is DSA ONLY. - * if xform chain is DH private key generate + DSA, then DSA sign - * compute will use internally generated key. - */ + /**< x: Private key of the signer */ }; /** From patchwork Fri May 20 05:54:16 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111495 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 505BFA0503; Fri, 20 May 2022 09:03:40 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1E23C42BAB; Fri, 20 May 2022 09:03:03 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 8769A42BAB for ; Fri, 20 May 2022 09:03:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030180; x=1684566180; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=K4FXkpp4/GkEOqpqGeVr5tTFBk9X0Ltuk8UdciNtUi8=; b=eUu1htZX8LjuxK/jlnuKxhM3ZLJANbD74695CcEDIur3MzCV5fWaMXqw 2iW+oRFTYNE1Ims8pgBwBzn153r7y7ecxwwMnyUXRGIhR1WqD3gj6zxOT gDpTyCNToDLXhDFfODVttZht3I70RYhpZrfey83pFFb22LqqxjvBahRlZ QEL/i8BczU6Fqb2StDCGkd6eDam9npESLemkKhdICTnes7AOsbh3Utdpu nvJsckqjqAyQO01f9YEQqfj6SBqphzkNlL6OjkvLANipryWjL5a8fyzh4 4/UYvA/Rf+8rICEPqS9T3SaM3cA1u30P5u57IiSJCSUjA9re3rYLWJ606 A==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140300" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140300" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:00 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058182" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:02:58 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 11/40] cryptodev: remove asym crypto next xform Date: Fri, 20 May 2022 06:54:16 +0100 Message-Id: <20220520055445.40063-12-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - removed asymnetric crypto xform next field. Rationale behind having chaining in symmetric crypto was a fact that encryption and authentication are usually done on the same set of data independent of algorithm. HW usually will be able to handle it in one PCI call. In asymmetric there is no such relation between algorithms, therefore next field would be useless. Signed-off-by: Arek Kusztal --- lib/cryptodev/rte_crypto_asym.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/cryptodev/rte_crypto_asym.h b/lib/cryptodev/rte_crypto_asym.h index 1652a434a5..b355cbe5fa 100644 --- a/lib/cryptodev/rte_crypto_asym.h +++ b/lib/cryptodev/rte_crypto_asym.h @@ -492,8 +492,6 @@ struct rte_crypto_ecpm_op_param { * Structure describing asym xforms. */ struct rte_crypto_asym_xform { - struct rte_crypto_asym_xform *next; - /**< Pointer to next xform to set up xform chain.*/ enum rte_crypto_asym_xform_type xform_type; /**< Asymmetric crypto transform */ From patchwork Fri May 20 05:54:17 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111496 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 48C43A0503; Fri, 20 May 2022 09:03:47 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id F184342BAE; Fri, 20 May 2022 09:03:04 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id CC04B4280B for ; Fri, 20 May 2022 09:03:02 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030183; x=1684566183; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=LTPB1iwHYc0wKXhTv0lmVtKIvPASupH7n0CppvOKJGs=; b=Ahu4G5JeRhKNIiWOemmLi22w59UcvwtSLdABfORFWqF7PeTDtHE/iEkQ mhNF/HCUYEK6BcCkpqghkk15B7Yc9a6F6rrXBJu2Tv9sSjmlMhF21/0hb +IgHag98Zgenf/B8syhKfS28qOWgJFydHYIgRB8Z0E6p2QhFqAtl81/MU OI0ccTao9sjrRU+mXRIULvLeNT4LOnNnpEFWMgm+2+AIFhMajPC5CFY9n c30N8a8JZqwQPpWWAFjEhmhjkc0Q5fyVOP9PlGMHGdy+IIdy9raIk1jsc e1mi2ad4iftcOBJx6KXdIlR8KskYkdzMlW9/Pw5QXDI5KMTUXZGytG4AD g==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140311" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140311" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:02 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058198" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:03:01 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 12/40] crypto/openssl: remove asym crypto next xform Date: Fri, 20 May 2022 06:54:17 +0100 Message-Id: <20220520055445.40063-13-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - removed asymnetric crypto xform next field. This commit reflects asymmetric crypto API changes Signed-off-by: Arek Kusztal --- drivers/crypto/openssl/rte_openssl_pmd_ops.c | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/drivers/crypto/openssl/rte_openssl_pmd_ops.c b/drivers/crypto/openssl/rte_openssl_pmd_ops.c index c975ef640a..a1be96bf1d 100644 --- a/drivers/crypto/openssl/rte_openssl_pmd_ops.c +++ b/drivers/crypto/openssl/rte_openssl_pmd_ops.c @@ -808,13 +808,6 @@ static int openssl_set_asym_session_parameters( { int ret = 0; - if ((xform->xform_type != RTE_CRYPTO_ASYM_XFORM_DH) && - (xform->next != NULL)) { - OPENSSL_LOG(ERR, "chained xfrms are not supported on %s", - rte_crypto_asym_xform_strings[xform->xform_type]); - return -1; - } - switch (xform->xform_type) { case RTE_CRYPTO_ASYM_XFORM_RSA: { @@ -1007,25 +1000,6 @@ static int openssl_set_asym_session_parameters( * public and private key generate */ asym_session->u.dh.key_op = (1 << xform->dh.type); - - if (xform->dh.type == - RTE_CRYPTO_ASYM_KE_PRIVATE_KEY_GENERATE) { - /* check if next is pubkey */ - if ((xform->next != NULL) && - (xform->next->xform_type == - RTE_CRYPTO_ASYM_XFORM_DH) && - (xform->next->dh.type == - RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE) - ) { - /* - * setup op as pub/priv key - * pair generationi - */ - asym_session->u.dh.key_op |= - (1 << - RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE); - } - } asym_session->u.dh.dh_key = dh; asym_session->xfrm_type = RTE_CRYPTO_ASYM_XFORM_DH; break; From patchwork Fri May 20 05:54:18 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111497 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 8A4F0A0503; Fri, 20 May 2022 09:03:55 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2184242BB3; Fri, 20 May 2022 09:03:08 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id BF41142BB3 for ; Fri, 20 May 2022 09:03:05 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030185; x=1684566185; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=6i2OIIidb4DrV+/c92HcDwwsJs5xpwOeRSgGyuHbQVw=; b=ZoeKlm2CV2FfWjuQwj9eyV/keqYx2qQaOK+DRJcW5mzyUKBH9GtZ53lY +StHCrrwW8KUvvAL4XIK1K8cgy2cTVU7y5Naa0eHdwjBmBNdEWQaPmqtc YY1ef9WzZc+LPmo9uqim3oItZ/POI9PWvY/9R1Ew1/HiRVSnFuBksi9IM lFAIUJMO3YoxRmH78k0ZpQNT48NxG3uPWbgnqMxdwM3G6boOuLGPnePcd DBqN+F+LlyMtZ3Khsw1HH/gV52d1QC1//iNv0UNMb7mpSr34JUTWRS+TL NU1xSdYUNcqv6GWtC957s4kWesR5cgQ+O/mOx+c9O30BBPC9Nnf7qoLoz A==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140318" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140318" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:05 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058231" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:03:03 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 13/40] test/crypto: remove asym crypto next xform Date: Fri, 20 May 2022 06:54:18 +0100 Message-Id: <20220520055445.40063-14-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - removed asymnetric crypto xform next field. This commit reflects changes to the asymmetric crypto API. Signed-off-by: Arek Kusztal --- app/test/test_cryptodev_asym.c | 100 ----------------------------- app/test/test_cryptodev_dh_test_vectors.h | 1 - app/test/test_cryptodev_dsa_test_vectors.h | 1 - app/test/test_cryptodev_mod_test_vectors.h | 2 - app/test/test_cryptodev_rsa_test_vectors.h | 2 - app/test/test_event_crypto_adapter.c | 4 -- 6 files changed, 110 deletions(-) diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c index 0098b6bf65..9e5d5e4f27 100644 --- a/app/test/test_cryptodev_asym.c +++ b/app/test/test_cryptodev_asym.c @@ -318,7 +318,6 @@ test_cryptodev_asym_op(struct crypto_testsuite_params_asym *ts_params, int ret, status = TEST_SUCCESS; - xform_tc.next = NULL; xform_tc.xform_type = data_tc->modex.xform_type; cap_idx.type = xform_tc.xform_type; @@ -1063,7 +1062,6 @@ test_dh_gen_shared_sec(struct rte_crypto_asym_xform *xfrm) /* Setup a xform and op to generate private key only */ xform.dh.type = RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE; - xform.next = NULL; asym_op->dh.priv_key.data = dh_test_params.priv_key.data; asym_op->dh.priv_key.length = dh_test_params.priv_key.length; asym_op->dh.pub_key.data = (uint8_t *)peer; @@ -1145,7 +1143,6 @@ test_dh_gen_priv_key(struct rte_crypto_asym_xform *xfrm) /* Setup a xform and op to generate private key only */ xform.dh.type = RTE_CRYPTO_ASYM_KE_PRIVATE_KEY_GENERATE; - xform.next = NULL; asym_op->dh.priv_key.data = output; asym_op->dh.priv_key.length = sizeof(output); @@ -1228,7 +1225,6 @@ test_dh_gen_pub_key(struct rte_crypto_asym_xform *xfrm) * */ xform.dh.type = RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE; - xform.next = NULL; asym_op->dh.pub_key.data = output; asym_op->dh.pub_key.length = sizeof(output); @@ -1288,94 +1284,6 @@ test_dh_gen_pub_key(struct rte_crypto_asym_xform *xfrm) } static int -test_dh_gen_kp(struct rte_crypto_asym_xform *xfrm) -{ - struct crypto_testsuite_params_asym *ts_params = &testsuite_params; - struct rte_mempool *op_mpool = ts_params->op_mpool; - struct rte_mempool *sess_mpool = ts_params->session_mpool; - uint8_t dev_id = ts_params->valid_devs[0]; - struct rte_crypto_asym_op *asym_op = NULL; - struct rte_crypto_op *op = NULL, *result_op = NULL; - void *sess = NULL; - int ret, status = TEST_SUCCESS; - uint8_t out_pub_key[TEST_DH_MOD_LEN]; - uint8_t out_prv_key[TEST_DH_MOD_LEN]; - struct rte_crypto_asym_xform pub_key_xform; - struct rte_crypto_asym_xform xform = *xfrm; - - /* set up crypto op data structure */ - op = rte_crypto_op_alloc(op_mpool, RTE_CRYPTO_OP_TYPE_ASYMMETRIC); - if (!op) { - RTE_LOG(ERR, USER1, - "line %u FAILED: %s", - __LINE__, "Failed to allocate asymmetric crypto " - "operation struct"); - status = TEST_FAILED; - goto error_exit; - } - asym_op = op->asym; - /* Setup a xform chain to generate - * private key first followed by - * public key - */ - xform.dh.type = RTE_CRYPTO_ASYM_KE_PRIVATE_KEY_GENERATE; - pub_key_xform.xform_type = RTE_CRYPTO_ASYM_XFORM_DH; - pub_key_xform.dh.type = RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE; - xform.next = &pub_key_xform; - - asym_op->dh.pub_key.data = out_pub_key; - asym_op->dh.pub_key.length = sizeof(out_pub_key); - asym_op->dh.priv_key.data = out_prv_key; - asym_op->dh.priv_key.length = sizeof(out_prv_key); - - ret = rte_cryptodev_asym_session_create(dev_id, &xform, sess_mpool, &sess); - if (ret < 0) { - RTE_LOG(ERR, USER1, - "line %u FAILED: %s", __LINE__, - "Session creation failed"); - status = (ret == -ENOTSUP) ? TEST_SKIPPED : TEST_FAILED; - goto error_exit; - } - - /* attach asymmetric crypto session to crypto operations */ - rte_crypto_op_attach_asym_session(op, sess); - - RTE_LOG(DEBUG, USER1, "Process ASYM operation"); - - /* Process crypto operation */ - if (rte_cryptodev_enqueue_burst(dev_id, 0, &op, 1) != 1) { - RTE_LOG(ERR, USER1, - "line %u FAILED: %s", - __LINE__, "Error sending packet for operation"); - status = TEST_FAILED; - goto error_exit; - } - - while (rte_cryptodev_dequeue_burst(dev_id, 0, &result_op, 1) == 0) - rte_pause(); - - if (result_op == NULL) { - RTE_LOG(ERR, USER1, - "line %u FAILED: %s", - __LINE__, "Failed to process asym crypto op"); - status = TEST_FAILED; - goto error_exit; - } - debug_hexdump(stdout, "priv key:", - out_prv_key, asym_op->dh.priv_key.length); - debug_hexdump(stdout, "pub key:", - out_pub_key, asym_op->dh.pub_key.length); - -error_exit: - if (sess != NULL) - rte_cryptodev_asym_session_free(dev_id, sess); - if (op != NULL) - rte_crypto_op_free(op); - - return status; -} - -static int test_mod_inv(void) { struct crypto_testsuite_params_asym *ts_params = &testsuite_params; @@ -1611,12 +1519,6 @@ test_dh_keygenration(void) dh_test_params.priv_key.length); RTE_LOG(INFO, USER1, - "Test Public and Private key pair generation\n"); - - status = test_dh_gen_kp(&dh_xform); - TEST_ASSERT_EQUAL(status, 0, "Test failed"); - - RTE_LOG(INFO, USER1, "Test Public Key Generation using pre-defined priv key\n"); status = test_dh_gen_pub_key(&dh_xform); @@ -1828,7 +1730,6 @@ test_ecdsa_sign_verify(enum curve curve_id) asym_op = op->asym; /* Setup asym xform */ - xform.next = NULL; xform.xform_type = RTE_CRYPTO_ASYM_XFORM_ECDSA; xform.ec.curve_id = input_params.curve; @@ -2030,7 +1931,6 @@ test_ecpm(enum curve curve_id) asym_op = op->asym; /* Setup asym xform */ - xform.next = NULL; xform.xform_type = RTE_CRYPTO_ASYM_XFORM_ECPM; xform.ec.curve_id = input_params.curve; diff --git a/app/test/test_cryptodev_dh_test_vectors.h b/app/test/test_cryptodev_dh_test_vectors.h index fe7510dcd3..078719072d 100644 --- a/app/test/test_cryptodev_dh_test_vectors.h +++ b/app/test/test_cryptodev_dh_test_vectors.h @@ -63,7 +63,6 @@ struct dh_test_param dh_test_params = { }; struct rte_crypto_asym_xform dh_xform = { - .next = NULL, .xform_type = RTE_CRYPTO_ASYM_XFORM_DH, .dh = { .p = { diff --git a/app/test/test_cryptodev_dsa_test_vectors.h b/app/test/test_cryptodev_dsa_test_vectors.h index bbcb0d7297..cc60f50b5c 100644 --- a/app/test/test_cryptodev_dsa_test_vectors.h +++ b/app/test/test_cryptodev_dsa_test_vectors.h @@ -91,7 +91,6 @@ struct dsa_test_param dsa_test_params = { }; struct rte_crypto_asym_xform dsa_xform = { - .next = NULL, .xform_type = RTE_CRYPTO_ASYM_XFORM_DSA, .dsa = { .p = { diff --git a/app/test/test_cryptodev_mod_test_vectors.h b/app/test/test_cryptodev_mod_test_vectors.h index 807ca7a47e..bcd4d5248b 100644 --- a/app/test/test_cryptodev_mod_test_vectors.h +++ b/app/test/test_cryptodev_mod_test_vectors.h @@ -1045,7 +1045,6 @@ uint8_t mod_inv[] = { /* MODEX vector. 8< */ struct rte_crypto_asym_xform modex_xform = { - .next = NULL, .xform_type = RTE_CRYPTO_ASYM_XFORM_MODEX, .modex = { .modulus = { @@ -1061,7 +1060,6 @@ struct rte_crypto_asym_xform modex_xform = { /* >8 End of MODEX vector. */ struct rte_crypto_asym_xform modinv_xform = { - .next = NULL, .xform_type = RTE_CRYPTO_ASYM_XFORM_MODINV, .modinv = { .modulus = { diff --git a/app/test/test_cryptodev_rsa_test_vectors.h b/app/test/test_cryptodev_rsa_test_vectors.h index 04539a1ecf..e769dec1f4 100644 --- a/app/test/test_cryptodev_rsa_test_vectors.h +++ b/app/test/test_cryptodev_rsa_test_vectors.h @@ -346,7 +346,6 @@ uint8_t rsa_qInv[] = { /** rsa xform using exponent key */ struct rte_crypto_asym_xform rsa_xform = { - .next = NULL, .xform_type = RTE_CRYPTO_ASYM_XFORM_RSA, .rsa = { .n = { @@ -367,7 +366,6 @@ struct rte_crypto_asym_xform rsa_xform = { /** rsa xform using quintuple key */ struct rte_crypto_asym_xform rsa_xform_crt = { - .next = NULL, .xform_type = RTE_CRYPTO_ASYM_XFORM_RSA, .rsa = { .n = { diff --git a/app/test/test_event_crypto_adapter.c b/app/test/test_event_crypto_adapter.c index 2ecc7e2cea..feb1d86c00 100644 --- a/app/test/test_event_crypto_adapter.c +++ b/app/test/test_event_crypto_adapter.c @@ -295,7 +295,6 @@ test_op_forward_mode(uint8_t session_less) #endif /* Setup Cipher Parameters */ cipher_xform.type = RTE_CRYPTO_SYM_XFORM_CIPHER; - cipher_xform.next = NULL; cipher_xform.cipher.algo = RTE_CRYPTO_CIPHER_NULL; cipher_xform.cipher.op = RTE_CRYPTO_CIPHER_OP_ENCRYPT; @@ -474,7 +473,6 @@ test_asym_op_forward_mode(uint8_t session_less) return TEST_SKIPPED; } /* Setup Cipher Parameters */ - xform_tc.next = NULL; xform_tc.xform_type = RTE_CRYPTO_ASYM_XFORM_MODEX; cap_idx.type = xform_tc.xform_type; capability = rte_cryptodev_asym_capability_get(TEST_CDEV_ID, &cap_idx); @@ -672,7 +670,6 @@ test_op_new_mode(uint8_t session_less) #endif /* Setup Cipher Parameters */ cipher_xform.type = RTE_CRYPTO_SYM_XFORM_CIPHER; - cipher_xform.next = NULL; cipher_xform.cipher.algo = RTE_CRYPTO_CIPHER_NULL; cipher_xform.cipher.op = RTE_CRYPTO_CIPHER_OP_ENCRYPT; @@ -807,7 +804,6 @@ test_asym_op_new_mode(uint8_t session_less) return TEST_SKIPPED; } /* Setup Cipher Parameters */ - xform_tc.next = NULL; xform_tc.xform_type = RTE_CRYPTO_ASYM_XFORM_MODEX; cap_idx.type = xform_tc.xform_type; capability = rte_cryptodev_asym_capability_get(TEST_CDEV_ID, &cap_idx); From patchwork Fri May 20 05:54:19 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111498 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 126A8A0503; Fri, 20 May 2022 09:04:02 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0095F42BBB; Fri, 20 May 2022 09:03:10 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id CA9054280B for ; Fri, 20 May 2022 09:03:07 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030188; x=1684566188; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=J9IHyYA7odwCq8ogcYUhvHSOGevTQiSW4/d0lFveH1A=; b=YXH3mw6UNfbK0JSWtwH4o01sXtzJUoyFQhw6VVbbLF9TUXTOO08clCk3 /066PZ38u7yCaXv81GiG91mVcnFuToMbmxic6KQcYxgrI1L83cgVOv4cD DTCsp51s3WhRMlYjcpyAXUtK6bnVRcNaImNJQpLg8srdwbZ9BD8hH13gk T4mrEcd3EAm7xV/sLMJtRLcNBvqc+3mpqVvT7hvtRVTmpIKkqINejicoW pd0MNx6Ur/71mX7MXuq70GcJC5ICwvmKYzBO66iGnhF4NCwMMRC6mRa8X thzPQrm/xtA7IBG5+022mBxJoMchG5c3A9zx7v8eCB2WZjZiQpV4Mf3UA Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140323" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140323" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:07 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058260" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:03:05 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 14/40] app/test-crypto-perf: remove asym crypto next xform Date: Fri, 20 May 2022 06:54:19 +0100 Message-Id: <20220520055445.40063-15-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - removed asymnetric crypto xform next field. This commit reflects changes to the asymmetric crypto API. Signed-off-by: Arek Kusztal --- app/test-crypto-perf/cperf_ops.c | 1 - 1 file changed, 1 deletion(-) diff --git a/app/test-crypto-perf/cperf_ops.c b/app/test-crypto-perf/cperf_ops.c index cbefce8d6c..8371af301a 100644 --- a/app/test-crypto-perf/cperf_ops.c +++ b/app/test-crypto-perf/cperf_ops.c @@ -786,7 +786,6 @@ cperf_create_session(struct rte_mempool *sess_mp, int ret; if (options->op_type == CPERF_ASYM_MODEX) { - xform.next = NULL; xform.xform_type = RTE_CRYPTO_ASYM_XFORM_MODEX; xform.modex.modulus.data = options->modex_data->modulus.data; xform.modex.modulus.length = options->modex_data->modulus.len; From patchwork Fri May 20 05:54:20 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111499 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 0BD94A0503; Fri, 20 May 2022 09:04:08 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EF25642B8F; Fri, 20 May 2022 09:03:11 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 1AFE642BBD for ; Fri, 20 May 2022 09:03:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030190; x=1684566190; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=tJLtAZPhCsItMMc/RN64xNYg4PwHzL1VmgRu0/XMrCY=; b=hwHu1lv0Hf7yueAvPjrKAcyS6qOwWmj/RZReRplFyAWwpbifN5b0CKii P+S1E6ibGaBYTlzBJ/ncHgwCR/lqA9Im2W7FhGIEsxBP007995JVlmHeU LWum4nkURsWGz8Rt17pJH1eV3NGSwl49UCrNPbs5567GjKVUJOxjRbIPP 6wrMFtT30GIWMvWi/d7bGeOI/POMwz47yBjTCgF8WASIiEumoc6DSWCwE XMfuzKxDBETv/MP/JAPvF0WxZ2EZETjMDelbUK1R3vS7UpiNdLg9a7OEY QTytqpNRK+gP5OgMo3uZ1hn8EAeuklA3/TB/TDy4Js26jdVm6SlMXYt27 w==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140335" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140335" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058291" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:03:08 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 15/40] app/test-eventdev: remove asym crypto next xform Date: Fri, 20 May 2022 06:54:20 +0100 Message-Id: <20220520055445.40063-16-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - removed asymmetric crypto xform next field. This commit reflects changes to the asymmetric crypto API. Signed-off-by: Arek Kusztal --- app/test-eventdev/test_perf_common.c | 1 - 1 file changed, 1 deletion(-) diff --git a/app/test-eventdev/test_perf_common.c b/app/test-eventdev/test_perf_common.c index f2da6fd74c..78150533a9 100644 --- a/app/test-eventdev/test_perf_common.c +++ b/app/test-eventdev/test_perf_common.c @@ -851,7 +851,6 @@ cryptodev_asym_sess_create(struct prod_data *p, struct test_perf *t) struct rte_crypto_asym_xform xform; void *sess; - xform.next = NULL; xform.xform_type = RTE_CRYPTO_ASYM_XFORM_MODEX; cap_idx.type = xform.xform_type; capability = rte_cryptodev_asym_capability_get(p->ca.cdev_id, &cap_idx); From patchwork Fri May 20 05:54:21 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111500 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 3D6E3A0503; Fri, 20 May 2022 09:04:14 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id ECC8F42BC0; Fri, 20 May 2022 09:03:13 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 7EFAA42BB9 for ; Fri, 20 May 2022 09:03:12 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030192; x=1684566192; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=cTIbmLoX/Wzg1mra/WLVKXThIVmpz3P4IKpEw5glTVs=; b=YHfYUux6IEAUIQijY8RazBfKVryCkmdFRkmehFJsnMO9/ccRWbr7g7Pg y2lRBTpxIVhHLsY7AAG6ptjp71OVHmHQVhyhqWSJuppmsdcySWHbfexAK kfcCsbKn9GWrtp6SHBaRqgFp0dFdqcgVQHqKrMm/F+kufJ2OioiJwRwaF NuyXkaa+9hHa/xGPmpmwB+DoWnYUIzCuTmI7dRrEhKfhTHNeyoK4JrnMu fcs5CLrXXeHdd1Yd6H7EJKnD2w7OBhzkkXGI55EFBb5TPz7FDbdhfEJB6 ymbCCfFeJ+VEUeIqUcqoz/F2bimoPgoAAxK5Tfxf1P6oNK7MRcaBzep/d Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140349" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140349" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:11 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058306" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:03:10 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 16/40] cryptodev: move dh type from xform to dh op Date: Fri, 20 May 2022 06:54:21 +0100 Message-Id: <20220520055445.40063-17-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - Moved dh operation type to dh operation struct. Operation type (PUBLIC_KEY_GENERATION, SHARED_SECRET) should be free to choose for any operation. One xform/session should be enough to perform both DH operations, if op_type would be xform member, session would have to be to be created twice for the same group. Similar problem would be observed in sessionless case. Additionally, it will help extend DH to support Elliptic Curves. Signed-off-by: Arek Kusztal --- lib/cryptodev/rte_crypto_asym.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/cryptodev/rte_crypto_asym.h b/lib/cryptodev/rte_crypto_asym.h index b355cbe5fa..728a98f02e 100644 --- a/lib/cryptodev/rte_crypto_asym.h +++ b/lib/cryptodev/rte_crypto_asym.h @@ -250,8 +250,6 @@ struct rte_crypto_modinv_xform { * */ struct rte_crypto_dh_xform { - enum rte_crypto_asym_ke_type type; - /**< Setup xform for key generate or shared secret compute */ rte_crypto_uint p; /**< Prime modulus data */ rte_crypto_uint g; @@ -379,27 +377,29 @@ struct rte_crypto_rsa_op_param { * @note: */ struct rte_crypto_dh_op_param { + enum rte_crypto_asym_ke_type op_type; + /**< Key exchange operation type */ rte_crypto_uint pub_key; /**< - * Output generated public key when xform type is + * Output generated public key when op_type is * DH PUB_KEY_GENERATION. - * Input peer public key when xform type is DH + * Input peer public key when op_type is DH * SHARED_SECRET_COMPUTATION * */ rte_crypto_uint priv_key; /**< - * Output generated private key if xform type is + * Output generated private key when op_type is * DH PRIVATE_KEY_GENERATION - * Input when xform type is DH SHARED_SECRET_COMPUTATION. + * Input when op_type is DH SHARED_SECRET_COMPUTATION. * */ rte_crypto_uint shared_secret; /**< * Output with calculated shared secret - * when dh xform set up with op type = SHARED_SECRET_COMPUTATION. + * when op type is SHARED_SECRET_COMPUTATION. * */ }; From patchwork Fri May 20 05:54:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111501 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 33277A0503; Fri, 20 May 2022 09:04:20 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E890742BCD; Fri, 20 May 2022 09:03:17 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id B5C0B42BB6 for ; Fri, 20 May 2022 09:03:14 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030195; x=1684566195; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=EIN9OEV0pUyD59FpNGtDifLvJczKeUyYgVO/xkIlh/8=; b=lZpokn5oKq44v9WNXs93PPKviKoEzGWmR9osIlkCjv7CRxZPabdkac8Q hK00P9rqVaeNZHLTSXIX7g2DXkijBP2M0plnBpDoLWvP0IOc7qN5vZxk2 cxTdUVm8P525rNrqJLTPApA38D/cJ79TFjR0YRjcZ4EDGsPaADVXgvZUT jCqoJSAS5BTKHL6tB82eCcfg/sSza6zXOJIcXu2o/09R1Q7OWO1+hj8al H9nfE7uP08yQnReZyfalnIBW/9zYOPPVF/2PikL/EnnBdoszb15HfruBQ /Tp4KdaEI/KUWj0+9C+olZUp+EbtOd8VbOGSoXr4yyULkweTcKrNkgbCe w==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140365" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140365" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058338" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:03:12 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 17/40] crypto/openssl: move dh type from xform to dh op Date: Fri, 20 May 2022 06:54:22 +0100 Message-Id: <20220520055445.40063-18-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - Moved dh operation type to dh operation struct. This commit reflects changes to the asymmetric crypto API. Signed-off-by: Arek Kusztal --- drivers/crypto/openssl/rte_openssl_pmd.c | 15 ++++++--------- drivers/crypto/openssl/rte_openssl_pmd_ops.c | 1 - 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c b/drivers/crypto/openssl/rte_openssl_pmd.c index 2a3930df0a..c4ac767052 100644 --- a/drivers/crypto/openssl/rte_openssl_pmd.c +++ b/drivers/crypto/openssl/rte_openssl_pmd.c @@ -1692,12 +1692,12 @@ process_openssl_dh_op(struct rte_crypto_op *cop, struct openssl_asym_session *sess) { struct rte_crypto_dh_op_param *op = &cop->asym->dh; + struct rte_crypto_asym_op *asym_op = cop->asym; DH *dh_key = sess->u.dh.dh_key; BIGNUM *priv_key = NULL; int ret = 0; - if (sess->u.dh.key_op & - (1 << RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE)) { + if (asym_op->dh.op_type == RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE) { /* compute shared secret using peer public key * and current private key * shared secret = peer_key ^ priv_key mod p @@ -1753,10 +1753,8 @@ process_openssl_dh_op(struct rte_crypto_op *cop, * if user provides private key, * then first set DH with user provided private key */ - if ((sess->u.dh.key_op & - (1 << RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE)) && - !(sess->u.dh.key_op & - (1 << RTE_CRYPTO_ASYM_KE_PRIVATE_KEY_GENERATE))) { + if (asym_op->dh.op_type == RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE && + op->priv_key.data) { /* generate public key using user-provided private key * pub_key = g ^ priv_key mod p */ @@ -1790,7 +1788,7 @@ process_openssl_dh_op(struct rte_crypto_op *cop, return 0; } - if (sess->u.dh.key_op & (1 << RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE)) { + if (asym_op->dh.op_type == RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE) { const BIGNUM *pub_key = NULL; OPENSSL_LOG(DEBUG, "%s:%d update public key\n", @@ -1804,8 +1802,7 @@ process_openssl_dh_op(struct rte_crypto_op *cop, op->pub_key.data); } - if (sess->u.dh.key_op & - (1 << RTE_CRYPTO_ASYM_KE_PRIVATE_KEY_GENERATE)) { + if (asym_op->dh.op_type == RTE_CRYPTO_ASYM_KE_PRIVATE_KEY_GENERATE) { const BIGNUM *priv_key = NULL; OPENSSL_LOG(DEBUG, "%s:%d updated priv key\n", diff --git a/drivers/crypto/openssl/rte_openssl_pmd_ops.c b/drivers/crypto/openssl/rte_openssl_pmd_ops.c index a1be96bf1d..737ec5de80 100644 --- a/drivers/crypto/openssl/rte_openssl_pmd_ops.c +++ b/drivers/crypto/openssl/rte_openssl_pmd_ops.c @@ -999,7 +999,6 @@ static int openssl_set_asym_session_parameters( * DH Priv key generate, or both * public and private key generate */ - asym_session->u.dh.key_op = (1 << xform->dh.type); asym_session->u.dh.dh_key = dh; asym_session->xfrm_type = RTE_CRYPTO_ASYM_XFORM_DH; break; From patchwork Fri May 20 05:54:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111502 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 7D22FA0503; Fri, 20 May 2022 09:04:25 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D245042BD2; Fri, 20 May 2022 09:03:18 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id D139342B71 for ; Fri, 20 May 2022 09:03:16 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030197; x=1684566197; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=BWflpECs7G89HVRoD7VrwG7ZZk7EMwKtR6goUEKhLsk=; b=iH2rrxGjsoSHuHDyyW103uRADMG+dLcGTTrpBGSZak7ekzXFoskVv0Rw 1t0CQI3QLzICAcoUat/IqRRlINd/WNUbsZ/qj0/p0ShCW+F6lpi6OOql4 Uiz/f6K2lY31Ad/amgER3pUmHYZjV/hCUtzNMwsH1HtarmOtDJEqlCxZ5 qMcWvtCwrLbC1vV4BH3SQw6VlI23udaGlWRtr9rXJTXSwCCT/YY5A4Mid gbyeNJd1J10kflKqow6IzrJDNcTBxAGvdNs2rUbyXQaMtSJcFlC4dN/fR 19xTLVnzBVaQ1jMlThXTKHysRIXsiAaI22MfDniRYZhwd8+Yp/AGJqVgW A==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140375" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140375" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058354" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:03:15 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 18/40] test/crypto: move dh type from xform to dh op Date: Fri, 20 May 2022 06:54:23 +0100 Message-Id: <20220520055445.40063-19-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - Moved dh operation type to dh operation struct. This commit reflects changes to the asymmetric crypto API. Signed-off-by: Arek Kusztal --- app/test/test_cryptodev_asym.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c index 9e5d5e4f27..892b5553f8 100644 --- a/app/test/test_cryptodev_asym.c +++ b/app/test/test_cryptodev_asym.c @@ -1061,8 +1061,8 @@ test_dh_gen_shared_sec(struct rte_crypto_asym_xform *xfrm) asym_op = op->asym; /* Setup a xform and op to generate private key only */ - xform.dh.type = RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE; asym_op->dh.priv_key.data = dh_test_params.priv_key.data; + asym_op->dh.op_type = RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE; asym_op->dh.priv_key.length = dh_test_params.priv_key.length; asym_op->dh.pub_key.data = (uint8_t *)peer; asym_op->dh.pub_key.length = sizeof(peer); @@ -1142,8 +1142,8 @@ test_dh_gen_priv_key(struct rte_crypto_asym_xform *xfrm) asym_op = op->asym; /* Setup a xform and op to generate private key only */ - xform.dh.type = RTE_CRYPTO_ASYM_KE_PRIVATE_KEY_GENERATE; asym_op->dh.priv_key.data = output; + asym_op->dh.op_type = RTE_CRYPTO_ASYM_KE_PRIVATE_KEY_GENERATE; asym_op->dh.priv_key.length = sizeof(output); ret = rte_cryptodev_asym_session_create(dev_id, &xform, sess_mpool, &sess); @@ -1224,9 +1224,9 @@ test_dh_gen_pub_key(struct rte_crypto_asym_xform *xfrm) * using test private key * */ - xform.dh.type = RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE; asym_op->dh.pub_key.data = output; + asym_op->dh.op_type = RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE; asym_op->dh.pub_key.length = sizeof(output); /* load pre-defined private key */ asym_op->dh.priv_key.data = rte_malloc(NULL, From patchwork Fri May 20 05:54:24 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111503 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 11E57A0503; Fri, 20 May 2022 09:04:33 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 01CA542BD9; Fri, 20 May 2022 09:03:20 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id E4D8D42BD4 for ; Fri, 20 May 2022 09:03:18 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030199; x=1684566199; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=Pgjgqo5KoSGNippml0XkX+84DU32L1+pqSxPjdAFGZ8=; b=N8FafYJgiW/eSolFqm3x8WdW0paVaZAKsbeb0y/cf8CDtGE1yH32PgwJ RtLxG+8rtuHZaBS/OObhCjQm4XYQQN4sC+CpNry9uv3ZKgRxHkJPAXqtY XYwj5apEseoqHbNjYnmsDvY3vC429ACZ2tX+nK3+XmK2TpQwocBbqMAmg N6rbAMTRjWdrPnTmAMj32gYYu9kgR1BqeCRjRBqtS/2mH5vAP9ZB6o0ip T5C9JCsANTiFPTsULYVLjZcnBuClwlPQW1VO2hAp7oA6MuG3OMuqLHXcG sQFu4CEX2UeoONCbysU7NBXmtfW4VaRyCccCOcvRiEB4tUZqbIMFx2DBN Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140382" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140382" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058363" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:03:17 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 19/40] cryptodev: changed order of dh fields Date: Fri, 20 May 2022 06:54:24 +0100 Message-Id: <20220520055445.40063-20-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - changed order of Diffie-Hellman struct fields. Now order of Diffie-Hellman struct members corresponds to order of operation in Diffie-Hellman key exchange. Signed-off-by: Arek Kusztal --- lib/cryptodev/rte_crypto_asym.h | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/lib/cryptodev/rte_crypto_asym.h b/lib/cryptodev/rte_crypto_asym.h index 728a98f02e..52cb1c5c80 100644 --- a/lib/cryptodev/rte_crypto_asym.h +++ b/lib/cryptodev/rte_crypto_asym.h @@ -379,6 +379,13 @@ struct rte_crypto_rsa_op_param { struct rte_crypto_dh_op_param { enum rte_crypto_asym_ke_type op_type; /**< Key exchange operation type */ + rte_crypto_uint priv_key; + /**< + * Output generated private key when op_type is + * DH PRIVATE_KEY_GENERATION + * Input when op_type is DH SHARED_SECRET_COMPUTATION. + * + */ rte_crypto_uint pub_key; /**< * Output generated public key when op_type is @@ -387,15 +394,6 @@ struct rte_crypto_dh_op_param { * SHARED_SECRET_COMPUTATION * */ - - rte_crypto_uint priv_key; - /**< - * Output generated private key when op_type is - * DH PRIVATE_KEY_GENERATION - * Input when op_type is DH SHARED_SECRET_COMPUTATION. - * - */ - rte_crypto_uint shared_secret; /**< * Output with calculated shared secret From patchwork Fri May 20 05:54:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111504 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 56A4EA0503; Fri, 20 May 2022 09:04:38 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E1F7C42B9D; Fri, 20 May 2022 09:03:22 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 48B3B42BC1 for ; Fri, 20 May 2022 09:03:21 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030201; x=1684566201; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=8Pj9SQ/hEuzr45FJnI9fizaq0gRgzEA2GuJDy42G5ag=; b=jvIu9PKs5gibjtUt8czMVnFPW5UjPoA24a3D2KLV1mxzqMTvYf5HmWQi qfphaBn4ahmAiUX709gvuIHfMsTG59/X95kh1kJkGQ2DusLsNlgkWC5ru A8vEPrFkvoyW7ROpKzTkEizBFwubzhIYJD2haUZE1fpTiXkVd+QZ6YnRV wQuu90uOqWr5CrA6aMJxoIBfVHbKS7698f3vVLf8A6sN4DgBBBknh9CJ0 TmVofqOwTQGiDXNDiQv8HcwcIFSMgkelGarGn4cGwzX1r9PtsPho6BPWV 1IF+VN04K6gS7qzJRs5qBckU+EGMvcukhiGpso+UPpB1nLxA2e/Ad2YHF Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140388" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140388" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:21 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058376" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:03:19 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 20/40] cryptodev: add elliptic curve diffie hellman Date: Fri, 20 May 2022 06:54:25 +0100 Message-Id: <20220520055445.40063-21-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - added elliptic curve Diffie-Hellman parameters. Point multiplication allows the user to process every phase of ECDH, but for phase 1, user should not really care about the generator. The user does not even need to know what the generator looks like, therefore setting ec xform would make this work. Signed-off-by: Arek Kusztal --- lib/cryptodev/rte_crypto_asym.h | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/lib/cryptodev/rte_crypto_asym.h b/lib/cryptodev/rte_crypto_asym.h index 52cb1c5c80..09edf2ac3d 100644 --- a/lib/cryptodev/rte_crypto_asym.h +++ b/lib/cryptodev/rte_crypto_asym.h @@ -82,8 +82,10 @@ enum rte_crypto_asym_xform_type { /**< Modular Exponentiation */ RTE_CRYPTO_ASYM_XFORM_ECDSA, /**< Elliptic Curve Digital Signature Algorithm */ - RTE_CRYPTO_ASYM_XFORM_ECPM + RTE_CRYPTO_ASYM_XFORM_ECPM, /**< Elliptic Curve Point Multiplication */ + RTE_CRYPTO_ASYM_XFORM_ECDH + /**< Elliptic Curve Diffie Hellman */ }; /** @@ -383,22 +385,28 @@ struct rte_crypto_dh_op_param { /**< * Output generated private key when op_type is * DH PRIVATE_KEY_GENERATION - * Input when op_type is DH SHARED_SECRET_COMPUTATION. - * + * Input for RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE */ - rte_crypto_uint pub_key; + union { + rte_crypto_uint pub_key; + struct rte_crypto_ec_point pub_point; + }; /**< - * Output generated public key when op_type is - * DH PUB_KEY_GENERATION. - * Input peer public key when op_type is DH - * SHARED_SECRET_COMPUTATION - * + * Diffie-Hellman public part + * For DH it is big-endian unsigned integer. + * For ECDH it is a point on the curve. + * Output for RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE + * Input for RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE */ - rte_crypto_uint shared_secret; + union { + rte_crypto_uint shared_secret; + struct rte_crypto_ec_point shared_point; + }; /**< - * Output with calculated shared secret - * when op type is SHARED_SECRET_COMPUTATION. - * + * Diffie-Hellman shared secret + * For DH it is big-endian unsigned integer. + * For ECDH it is a point on the curve. + * Output for RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE */ }; From patchwork Fri May 20 05:54:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111505 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 A93DEA0503; Fri, 20 May 2022 09:04:43 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C23B342BD5; Fri, 20 May 2022 09:03:24 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 6B43A42BC5 for ; Fri, 20 May 2022 09:03:23 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030203; x=1684566203; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=RUH2ZWYLwzKjAfPgykjsu2CE+4n3A/8GO9UJr1i4wU4=; b=PeE9ewS0p4o6Cv+SGb1u0ngPJOMSd886LkPmn0vSBv7F3+qHrK0dsPI5 xHVuU05XB9iaFDwcPkuRJ3QQVJywKyRXFYhjqem/Hjlkkj+DNCOLaVAIk 25O3xwSpSm+kmrD64JLSTlGcIwmHKByhP+ZGJMWWl4DuPiI0nPzO2f/LX /WJmEHGr2YiHthXgcExcv/DJz2mAEt0YycpMSqsJI8Lbf+bhwWc0dbz99 hTZhPC4OE94jj8iFt0o7wYwB4vvuw7a3oK8vq9amNjxjs2H99liwjYxQw bQT50dpB9YybmVeVUMKCNWkT3nWEZNMURH+69euDY0DlOw/CfIjiMNXb9 g==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140391" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140391" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:23 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058393" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:03:21 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 21/40] cryptodev: add public key verify option Date: Fri, 20 May 2022 06:54:26 +0100 Message-Id: <20220520055445.40063-22-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - Added key exchange public key verify option. For some elliptic curves public point in DH exchange needs to be checked, if it lays on the curve. Modular exponentiation needs certain checks as well, though mathematically much easier. This commit adds verify option to asym_op operations. Signed-off-by: Arek Kusztal --- lib/cryptodev/rte_crypto_asym.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/cryptodev/rte_crypto_asym.h b/lib/cryptodev/rte_crypto_asym.h index 09edf2ac3d..73ff9ff815 100644 --- a/lib/cryptodev/rte_crypto_asym.h +++ b/lib/cryptodev/rte_crypto_asym.h @@ -110,8 +110,10 @@ enum rte_crypto_asym_ke_type { /**< Private Key generation operation */ RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE, /**< Public Key generation operation */ - RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE + RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE, /**< Shared Secret compute operation */ + RTE_CRYPTO_ASYM_OP_DH_KEY_VERIFY + /**< Public Key Verification */ }; /** @@ -397,6 +399,10 @@ struct rte_crypto_dh_op_param { * For ECDH it is a point on the curve. * Output for RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE * Input for RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE + * + * VERIFY option can be used only for elliptic curve + * point validation, for FFDH (DH) it is user's reponsibility + * to check the public key accordingly. */ union { rte_crypto_uint shared_secret; From patchwork Fri May 20 05:54:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111506 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 32A2CA0503; Fri, 20 May 2022 09:04:49 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B774242B81; Fri, 20 May 2022 09:03:27 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id A8DFC42BDE for ; Fri, 20 May 2022 09:03:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030205; x=1684566205; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=QhDO2OOmfanrGiBba8r0ubMIqG1Ng3bfyYjpXvzCK3Q=; b=LkQO3WAbxk4q6ZJ7UqMWxP9SwXZxLwTgJU26p5brUAgyQW8JGZULrD7F AU8JTrLpseSAFLIWubeF4zOHHpjwUiT55/IGnXKVRIq5Wm+J/tV2Vg8j9 p463vAHkddxaQ4/RrX/yE4uqRzpvFucbP8prTT9ueRqmqNcOclcYJdnf4 XfEikoZZJNlC/2SQxfJYdbTt5MVvl4GuIy0xPC+/B81Fp+GXtdvi7R9pX Q/SKQRule9BwR8ylp/t9DHLEESa3oiPf1Yp41xk3heo8xjOfG2acjpxXm b8Icq5PqkpHnapfO6NbYMvF+eFuX2UNzxbVcVD7K0cRlO9y9EVCYVYQMc Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140397" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140397" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:25 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058410" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:03:23 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 22/40] cryptodev: move RSA padding into separate struct Date: Fri, 20 May 2022 06:54:27 +0100 Message-Id: <20220520055445.40063-23-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - move RSA padding into separate struct. More padding members should be added into padding, therefore having separate struct for padding parameters will make this more readable. Signed-off-by: Arek Kusztal --- lib/cryptodev/rte_crypto_asym.h | 42 +++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/lib/cryptodev/rte_crypto_asym.h b/lib/cryptodev/rte_crypto_asym.h index 73ff9ff815..97c3fbee38 100644 --- a/lib/cryptodev/rte_crypto_asym.h +++ b/lib/cryptodev/rte_crypto_asym.h @@ -201,6 +201,28 @@ struct rte_crypto_rsa_priv_key_qt { }; /** + * RSA padding type + */ +struct rte_crypto_rsa_padding { + enum rte_crypto_rsa_padding_type type; + /**< RSA padding scheme to be used for transform */ + enum rte_crypto_auth_algorithm md; + /**< Hash algorithm to be used for data hash if padding + * scheme is either OAEP or PSS. Valid hash algorithms + * are: + * MD5, SHA1, SHA224, SHA256, SHA384, SHA512 + */ + enum rte_crypto_auth_algorithm mgf1md; + /**< + * Hash algorithm to be used for mask generation if + * padding scheme is either OAEP or PSS. If padding + * scheme is unspecified data hash algorithm is used + * for mask generation. Valid hash algorithms are: + * MD5, SHA1, SHA224, SHA256, SHA384, SHA512 + */ +}; + +/** * Asymmetric RSA transform data * * Structure describing RSA xform params @@ -355,25 +377,9 @@ struct rte_crypto_rsa_op_param { * * All data is in Octet-string network byte order format. */ + struct rte_crypto_rsa_padding padding; + /**< RSA padding information */ - enum rte_crypto_rsa_padding_type pad; - /**< RSA padding scheme to be used for transform */ - - enum rte_crypto_auth_algorithm md; - /**< Hash algorithm to be used for data hash if padding - * scheme is either OAEP or PSS. Valid hash algorithms - * are: - * MD5, SHA1, SHA224, SHA256, SHA384, SHA512 - */ - - enum rte_crypto_auth_algorithm mgf1md; - /**< - * Hash algorithm to be used for mask generation if - * padding scheme is either OAEP or PSS. If padding - * scheme is unspecified data hash algorithm is used - * for mask generation. Valid hash algorithms are: - * MD5, SHA1, SHA224, SHA256, SHA384, SHA512 - */ }; /** From patchwork Fri May 20 05:54:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111507 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 EA3DBA0503; Fri, 20 May 2022 09:04:54 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A1F9F42BDF; Fri, 20 May 2022 09:03:29 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id E238F42BDE for ; Fri, 20 May 2022 09:03:27 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030208; x=1684566208; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=ggEyjHuOHZrtF246K7UEQvABTbDRy7G18nmWJ6n78c0=; b=G5uQoWzvQC2JA43dMc4usOToLk6EM5jB9pjRrKrVXNhbmXVyDOskI1oF RJydVXc9ZcfOyLL/RrnOkqOrJXmMcuFVG8RwBPiHS4Mw3md9jsryMmNIy yH0wKAcjv3OgeeTnpXXocOdrBpspvlyM3LhFnYQ5F4fPRqh/eidmVdOEe 6gpdIi6jl/WV/e2yGsWLD46IOiNq5NUIJaXCbn9+Ljb0QbUgiHdkHaOir kFnZuDX7qV08EgpOLI77qOBC6lU+gJqiNLz7laGUWp6+EqL1vMzjShyKz olU0BXHkNyUXfwAx3W5+fCKCVj+YxWWig4nlkPq030ApV2X3MfhoiHQID A==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140402" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140402" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:27 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058428" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:03:26 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 23/40] crypto/qat: move RSA padding into separate struct Date: Fri, 20 May 2022 06:54:28 +0100 Message-Id: <20220520055445.40063-24-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - move RSA padding into separate struct. This commit reflects changes to the asymmetric crypto API. Signed-off-by: Arek Kusztal --- drivers/crypto/qat/qat_asym.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/crypto/qat/qat_asym.c b/drivers/crypto/qat/qat_asym.c index 479d5308cf..5dd355d007 100644 --- a/drivers/crypto/qat/qat_asym.c +++ b/drivers/crypto/qat/qat_asym.c @@ -345,7 +345,7 @@ rsa_set_pub_input(struct rte_crypto_asym_op *asym_op, alg_bytesize = qat_function.bytesize; if (asym_op->rsa.op_type == RTE_CRYPTO_ASYM_OP_ENCRYPT) { - switch (asym_op->rsa.pad) { + switch (asym_op->rsa.padding.type) { case RTE_CRYPTO_RSA_PADDING_NONE: SET_PKE_LN(cookie->input_array, asym_op->rsa.message, alg_bytesize, 0); @@ -358,7 +358,7 @@ rsa_set_pub_input(struct rte_crypto_asym_op *asym_op, } HEXDUMP("RSA Message", cookie->input_array[0], alg_bytesize); } else { - switch (asym_op->rsa.pad) { + switch (asym_op->rsa.padding.type) { case RTE_CRYPTO_RSA_PADDING_NONE: SET_PKE_LN(cookie->input_array, asym_op->rsa.sign, alg_bytesize, 0); @@ -454,7 +454,7 @@ rsa_set_priv_input(struct rte_crypto_asym_op *asym_op, if (asym_op->rsa.op_type == RTE_CRYPTO_ASYM_OP_DECRYPT) { - switch (asym_op->rsa.pad) { + switch (asym_op->rsa.padding.type) { case RTE_CRYPTO_RSA_PADDING_NONE: SET_PKE_LN(cookie->input_array, asym_op->rsa.cipher, alg_bytesize, 0); @@ -469,7 +469,7 @@ rsa_set_priv_input(struct rte_crypto_asym_op *asym_op, } else if (asym_op->rsa.op_type == RTE_CRYPTO_ASYM_OP_SIGN) { - switch (asym_op->rsa.pad) { + switch (asym_op->rsa.padding.type) { case RTE_CRYPTO_RSA_PADDING_NONE: SET_PKE_LN(cookie->input_array, asym_op->rsa.message, alg_bytesize, 0); @@ -529,7 +529,7 @@ rsa_collect(struct rte_crypto_asym_op *asym_op, } else { uint8_t *rsa_result = asym_op->rsa.cipher.data; - switch (asym_op->rsa.pad) { + switch (asym_op->rsa.padding.type) { case RTE_CRYPTO_RSA_PADDING_NONE: rte_memcpy(rsa_result, cookie->output_array[0], @@ -547,7 +547,7 @@ rsa_collect(struct rte_crypto_asym_op *asym_op, if (asym_op->rsa.op_type == RTE_CRYPTO_ASYM_OP_DECRYPT) { uint8_t *rsa_result = asym_op->rsa.message.data; - switch (asym_op->rsa.pad) { + switch (asym_op->rsa.padding.type) { case RTE_CRYPTO_RSA_PADDING_NONE: rte_memcpy(rsa_result, cookie->output_array[0], From patchwork Fri May 20 05:54:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111508 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 6A291A0503; Fri, 20 May 2022 09:05:00 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 871DA42B97; Fri, 20 May 2022 09:03:31 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 5092342BE2 for ; Fri, 20 May 2022 09:03:30 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030210; x=1684566210; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=D84MaqSRSSv38AGUDOKqRQ4i5wqIucX4CpZd7AnGszk=; b=WB6r09B9L8Z+R4x/HdFzlJHg9aq8OCQCxj1bPWncF6APtcuJhkrjofe6 3AjsZ32yTYPc5kt27Veiwt+fcJau5tLR4QvwdJlIQNlDqS64PdK1pGX2c U7qjK0+4Gp265LTOcMRHy6yRyMqVxasmo+6dCdsuX388Dn1aIGcpx+wtT XaQcgKyX/WAlLuCG8SLhzQE3evWrg0FsWruaKilln6qE/ZxD598QH/yfw mqJITPC+34TH4XA5mECn7JYnVXGAAnCGDIvT5EhV7IlkpoYoEbIKujO2h FuMDZF+bNucLNp13rmnkbGhHZEUinz6IXghnORORzMF/saR+eKu7L0akN Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140410" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140410" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:30 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058444" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:03:28 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 24/40] crypto/openssl: move RSA padding into separate struct Date: Fri, 20 May 2022 06:54:29 +0100 Message-Id: <20220520055445.40063-25-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - move RSA padding into separate struct. This commit reflects changes to the asymmetric crypto API. Signed-off-by: Arek Kusztal --- drivers/crypto/openssl/rte_openssl_pmd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c b/drivers/crypto/openssl/rte_openssl_pmd.c index c4ac767052..6b3cf7a6aa 100644 --- a/drivers/crypto/openssl/rte_openssl_pmd.c +++ b/drivers/crypto/openssl/rte_openssl_pmd.c @@ -1894,7 +1894,7 @@ process_openssl_rsa_op(struct rte_crypto_op *cop, int ret = 0; struct rte_crypto_asym_op *op = cop->asym; RSA *rsa = sess->u.r.rsa; - uint32_t pad = (op->rsa.pad); + uint32_t pad = (op->rsa.padding.type); uint8_t *tmp; cop->status = RTE_CRYPTO_OP_STATUS_SUCCESS; From patchwork Fri May 20 05:54:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111509 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 97538A0503; Fri, 20 May 2022 09:05:05 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 714EA42BD4; Fri, 20 May 2022 09:03:33 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 4562742BE4 for ; Fri, 20 May 2022 09:03:32 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030212; x=1684566212; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=tUmSZFiFTwKjRb+E0RJYAK+V8nD1Ki82AUpuhS90XGk=; b=bCsSxkmeudr5y5DQl/LKyRoOSoEsdJveszOMJC6Dt4JjoQsO7fYpJPAq 9SKUhEgUEGxFdKK8dQ8N6jZGYI+yRoiWbJIBMDyh7P3j4MFhloW6OYHaB zPPiHsDgZO/wlNiedxitl7BmL2kiM+G1Vbymm7W4gl1Mia46arABeed2m V9XOkFsq2O3hD8rPn4Rx4QFuvddvwR0TiGKi5T5oEjRQ07Bunc4+EBTUa hw3USCcBrd8dsPj1pl8RDEGZrtLUoLvC6HzdFTlAYy6h2Y+RjipiTMCL5 wxmtuveJA0uHe5ITxkjII12AZQvVVwEERz8xCvl1hyRbMCeHfKj0cXBUc w==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140414" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140414" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:32 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058458" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:03:30 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 25/40] crypto/octeontx: move RSA padding into separate struct Date: Fri, 20 May 2022 06:54:30 +0100 Message-Id: <20220520055445.40063-26-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - move RSA padding into separate struct. This commit reflects changes to the asymmetric crypto API. Signed-off-by: Arek Kusztal --- drivers/crypto/octeontx/otx_cryptodev_ops.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/crypto/octeontx/otx_cryptodev_ops.c b/drivers/crypto/octeontx/otx_cryptodev_ops.c index d5851d9987..914b17decf 100644 --- a/drivers/crypto/octeontx/otx_cryptodev_ops.c +++ b/drivers/crypto/octeontx/otx_cryptodev_ops.c @@ -736,7 +736,7 @@ otx_cpt_asym_rsa_op(struct rte_crypto_op *cop, struct cpt_request_info *req, memcpy(rsa->cipher.data, req->rptr, rsa->cipher.length); break; case RTE_CRYPTO_ASYM_OP_DECRYPT: - if (rsa->pad == RTE_CRYPTO_RSA_PADDING_NONE) + if (rsa->padding.type == RTE_CRYPTO_RSA_PADDING_NONE) rsa->message.length = rsa_ctx->n.length; else { /* Get length of decrypted output */ @@ -753,7 +753,7 @@ otx_cpt_asym_rsa_op(struct rte_crypto_op *cop, struct cpt_request_info *req, memcpy(rsa->sign.data, req->rptr, rsa->sign.length); break; case RTE_CRYPTO_ASYM_OP_VERIFY: - if (rsa->pad == RTE_CRYPTO_RSA_PADDING_NONE) + if (rsa->padding.type == RTE_CRYPTO_RSA_PADDING_NONE) rsa->sign.length = rsa_ctx->n.length; else { /* Get length of decrypted output */ From patchwork Fri May 20 05:54:31 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111510 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 4CAAAA0503; Fri, 20 May 2022 09:05:11 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 674F242BE8; Fri, 20 May 2022 09:03:36 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 97C7042B7D for ; Fri, 20 May 2022 09:03:34 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030214; x=1684566214; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=i+GBzSf3ATOsbY42NjVNwBmN0Ry2smejHfA9aLtdXBQ=; b=Jr5CrzXU0Mff6Ya8Irrb2YwHHvaw2U11b1SrSjfTmcjt2Y9z8JMbhwTs p5w6vjteUavtsRV5AOQwdguz0dR9sTLr8/C5BNo3d98jGuKuGJGTF0xLy fSVmxC8Kr4eTQ08k+tjaUpTpAepqi4urK4+gnI7jhxbxxdqJjaS6aL53H b8PEOyph9GetUx/61EpJfzPKnrP1s/8fMS0DWnZ/RzaAlda8V3XSNqyq4 hnGEAIL+EYuXORon94Y4POoqWCRttded97sQXDdsncLFca2iz1Q27XXzy N7gxnNm0Tv+jVyaQYHjy5QzhlOL9W4hYmdPEMcq0mKd9yxx87VY/DdTqg g==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140419" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140419" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058475" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:03:32 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 26/40] crypto/cnxk: move RSA padding into separate struct Date: Fri, 20 May 2022 06:54:31 +0100 Message-Id: <20220520055445.40063-27-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - move RSA padding into separate struct. This commit reflects changes to the asymmetric crypto API. Signed-off-by: Arek Kusztal --- drivers/crypto/cnxk/cnxk_ae.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/crypto/cnxk/cnxk_ae.h b/drivers/crypto/cnxk/cnxk_ae.h index 10854c79c8..0562f72270 100644 --- a/drivers/crypto/cnxk/cnxk_ae.h +++ b/drivers/crypto/cnxk/cnxk_ae.h @@ -288,7 +288,7 @@ cnxk_ae_rsa_prep(struct rte_crypto_op *op, struct roc_ae_buf_ptr *meta_buf, dptr += in_size; dlen = total_key_len + in_size; - if (rsa_op.pad == RTE_CRYPTO_RSA_PADDING_NONE) { + if (rsa_op.padding.type == RTE_CRYPTO_RSA_PADDING_NONE) { /* Use mod_exp operation for no_padding type */ w4.s.opcode_minor = ROC_AE_MINOR_OP_MODEX; w4.s.param2 = exp_len; @@ -347,7 +347,7 @@ cnxk_ae_rsa_crt_prep(struct rte_crypto_op *op, struct roc_ae_buf_ptr *meta_buf, dptr += in_size; dlen = total_key_len + in_size; - if (rsa_op.pad == RTE_CRYPTO_RSA_PADDING_NONE) { + if (rsa_op.padding.type == RTE_CRYPTO_RSA_PADDING_NONE) { /*Use mod_exp operation for no_padding type */ w4.s.opcode_minor = ROC_AE_MINOR_OP_MODEX_CRT; } else { @@ -675,7 +675,7 @@ cnxk_ae_dequeue_rsa_op(struct rte_crypto_op *cop, uint8_t *rptr, memcpy(rsa->cipher.data, rptr, rsa->cipher.length); break; case RTE_CRYPTO_ASYM_OP_DECRYPT: - if (rsa->pad == RTE_CRYPTO_RSA_PADDING_NONE) { + if (rsa->padding.type == RTE_CRYPTO_RSA_PADDING_NONE) { rsa->message.length = rsa_ctx->n.length; memcpy(rsa->message.data, rptr, rsa->message.length); } else { @@ -695,7 +695,7 @@ cnxk_ae_dequeue_rsa_op(struct rte_crypto_op *cop, uint8_t *rptr, memcpy(rsa->sign.data, rptr, rsa->sign.length); break; case RTE_CRYPTO_ASYM_OP_VERIFY: - if (rsa->pad == RTE_CRYPTO_RSA_PADDING_NONE) { + if (rsa->padding.type == RTE_CRYPTO_RSA_PADDING_NONE) { rsa->sign.length = rsa_ctx->n.length; memcpy(rsa->sign.data, rptr, rsa->sign.length); } else { From patchwork Fri May 20 05:54:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111511 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 467E5A0503; Fri, 20 May 2022 09:05:19 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A686242BF1; Fri, 20 May 2022 09:03:38 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 01AAA42BEB for ; Fri, 20 May 2022 09:03:36 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030217; x=1684566217; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=lGGqjVscYWDAOVT5Zz2MCtfWjEC2Q6troKymjk2cK60=; b=aWWMoS5onqnJohFIsQKk5IcmNwmBftCOhqvXnklRHq3sBGEKbfBXsCAr QtD3UZ/r+C904IMAnchryui87fe/BdVG+GYISrR0I4jQz8KSzkk0Rg188 VgqTvUCsQSlPepEhIKruCeu+YtZ//1KgfZZEY+aKJeVEmw0ODPTCxy/Mg PB/mfBGobg3IOC87GC50c2/4vQ7OkeniUfCO+vHYuUU08iSOyqLXcXhXz ot8fOcgwOt6KOnghjj7ciP2ubeVbxMcuqI0278NPhg1Wi7EGedvpukxMx 41Iy8j5/DuIgyzWfpre5thv5ksDfQ5RhtB82WIJm6944XtSY94zXOLqoP w==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140424" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140424" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:36 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058493" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:03:35 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 27/40] common/cpt: move RSA padding into separate struct Date: Fri, 20 May 2022 06:54:32 +0100 Message-Id: <20220520055445.40063-28-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - move RSA padding into separate struct. This commit reflects changes to the asymmetric crypto API. Signed-off-by: Arek Kusztal --- drivers/common/cpt/cpt_ucode_asym.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/common/cpt/cpt_ucode_asym.h b/drivers/common/cpt/cpt_ucode_asym.h index f5d91f2583..1105a0c125 100644 --- a/drivers/common/cpt/cpt_ucode_asym.h +++ b/drivers/common/cpt/cpt_ucode_asym.h @@ -327,7 +327,7 @@ cpt_rsa_prep(struct asym_op_params *rsa_params, /* Result buffer */ rlen = mod_len; - if (rsa_op.pad == RTE_CRYPTO_RSA_PADDING_NONE) { + if (rsa_op.padding.type == RTE_CRYPTO_RSA_PADDING_NONE) { /* Use mod_exp operation for no_padding type */ vq_cmd_w0.s.opcode.minor = CPT_MINOR_OP_MODEX; vq_cmd_w0.s.param2 = exp_len; @@ -412,7 +412,7 @@ cpt_rsa_crt_prep(struct asym_op_params *rsa_params, /* Result buffer */ rlen = mod_len; - if (rsa_op.pad == RTE_CRYPTO_RSA_PADDING_NONE) { + if (rsa_op.padding.type == RTE_CRYPTO_RSA_PADDING_NONE) { /*Use mod_exp operation for no_padding type */ vq_cmd_w0.s.opcode.minor = CPT_MINOR_OP_MODEX_CRT; } else { From patchwork Fri May 20 05:54:33 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111512 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 A52D4A0503; Fri, 20 May 2022 09:05:24 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9818942BA1; Fri, 20 May 2022 09:03:43 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id AD73742BCB for ; Fri, 20 May 2022 09:03:41 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030221; x=1684566221; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=2S2g3BbxR9XMqLHCYDkkib/Vdxb+XdjA5QUv7O6rAzU=; b=PyZeeEM3gc09yCh4WAn6spxDWIJY29yxV5wOCcdmwZNAOhm9GNSa5Ml9 uU1seUcPGjGfyWMiszh84Nb+Y+p4D3wlnnXr5yXXEu/2r7Y1kHrSjqKbM HM0eobsk1x8muw4/iJ3qSKavT27sEWFMzf44YcESGhJXkKn4wpnd63d/J 0vlWkMKD47ejArlFlCsqlwg0zx1fYD/aCOq8KGzw77GQqS+RvH0SnZBQ7 3io4o71pudzRV8a6vI5XBoSUxbWytEkDVAXAj/pWApqjGonqoDmfGMaEw XL8OGrB1qlp3FyMFMN48lTpyunuSm5hn+AChRf6GKLQDczMPu4Qxz5MMt g==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140436" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140436" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058505" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:03:37 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 28/40] test/crypto: move RSA padding into separate struct Date: Fri, 20 May 2022 06:54:33 +0100 Message-Id: <20220520055445.40063-29-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - move RSA padding into separate struct. This commit reflects changes to the asymmetric crypto API. Signed-off-by: Arek Kusztal --- app/test/test_cryptodev_asym.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c index 892b5553f8..eca0612815 100644 --- a/app/test/test_cryptodev_asym.c +++ b/app/test/test_cryptodev_asym.c @@ -94,7 +94,7 @@ queue_ops_rsa_sign_verify(void *sess) asym_op->rsa.message.length = rsaplaintext.len; asym_op->rsa.sign.length = 0; asym_op->rsa.sign.data = output_buf; - asym_op->rsa.pad = RTE_CRYPTO_RSA_PADDING_PKCS1_5; + asym_op->rsa.padding.type = RTE_CRYPTO_RSA_PADDING_PKCS1_5; debug_hexdump(stdout, "message", asym_op->rsa.message.data, asym_op->rsa.message.length); @@ -126,7 +126,7 @@ queue_ops_rsa_sign_verify(void *sess) /* Verify sign */ asym_op->rsa.op_type = RTE_CRYPTO_ASYM_OP_VERIFY; - asym_op->rsa.pad = RTE_CRYPTO_RSA_PADDING_PKCS1_5; + asym_op->rsa.padding.type = RTE_CRYPTO_RSA_PADDING_PKCS1_5; /* Process crypto operation */ if (rte_cryptodev_enqueue_burst(dev_id, 0, &op, 1) != 1) { @@ -185,7 +185,7 @@ queue_ops_rsa_enc_dec(void *sess) asym_op->rsa.cipher.data = cipher_buf; asym_op->rsa.cipher.length = 0; asym_op->rsa.message.length = rsaplaintext.len; - asym_op->rsa.pad = RTE_CRYPTO_RSA_PADDING_PKCS1_5; + asym_op->rsa.padding.type = RTE_CRYPTO_RSA_PADDING_PKCS1_5; debug_hexdump(stdout, "message", asym_op->rsa.message.data, asym_op->rsa.message.length); @@ -217,7 +217,7 @@ queue_ops_rsa_enc_dec(void *sess) asym_op = result_op->asym; asym_op->rsa.message.length = 0; asym_op->rsa.op_type = RTE_CRYPTO_ASYM_OP_DECRYPT; - asym_op->rsa.pad = RTE_CRYPTO_RSA_PADDING_PKCS1_5; + asym_op->rsa.padding.type = RTE_CRYPTO_RSA_PADDING_PKCS1_5; /* Process crypto operation */ if (rte_cryptodev_enqueue_burst(dev_id, 0, &op, 1) != 1) { @@ -412,7 +412,7 @@ test_cryptodev_asym_op(struct crypto_testsuite_params_asym *ts_params, } xform_tc.rsa.key_type = key_type; - op->asym->rsa.pad = data_tc->rsa_data.padding; + op->asym->rsa.padding.type = data_tc->rsa_data.padding; if (op->asym->rsa.op_type == RTE_CRYPTO_ASYM_OP_ENCRYPT) { asym_op->rsa.message.data = data_tc->rsa_data.pt.data; From patchwork Fri May 20 05:54:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111513 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 9F54FA0503; Fri, 20 May 2022 09:05:30 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8471E42BED; Fri, 20 May 2022 09:03:45 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 3E33E42BCB for ; Fri, 20 May 2022 09:03:44 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030224; x=1684566224; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=+lT0nu0aIQ2yxAErba7mneN45xIktNUWZx4h5osAkto=; b=ZXGbafhP/Ok5U3WofJlUG8A0D7R/ZdgtcJOuGSTZr2XaBufGKXMS2lhH ZvKF+VqBpza3sNMEchiROQFU5nHJunBu4nezybtMIGU9lcsBghv6rnu2n 3WaXntNaINElFiWT19ntKBZy6m6Dxhflh4nfeXtlc9IQ7GOg5ElnMClns uT5igH+6Fk+FSX2+/qEnvRJPJwV6iXZtOvIm4OgbJYg/2sE5gINnng9B9 /J93Fq3nPjOA5KjJcahwbFluk2xG+v3vBMdS2dQFtac3SdFTMWjDOJHs5 RB/0SvQRq/CBIJ3kBRdxuICWCZK95w3KUTWlPCI1RFKhBujj4upg+EsKv w==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140439" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140439" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:43 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058516" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:03:42 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 29/40] cryptodev: add salt length and optional label Date: Fri, 20 May 2022 06:54:34 +0100 Message-Id: <20220520055445.40063-30-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - added salt length and optional label. Common parameters to PSS and OAEP padding for RSA. - Fixed hash API in RSA padding. Now it is specified how hash should be used with particular RSA padding modes. Signed-off-by: Arek Kusztal --- lib/cryptodev/rte_crypto_asym.h | 44 +++++++++++++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/lib/cryptodev/rte_crypto_asym.h b/lib/cryptodev/rte_crypto_asym.h index 97c3fbee38..c864b8a115 100644 --- a/lib/cryptodev/rte_crypto_asym.h +++ b/lib/cryptodev/rte_crypto_asym.h @@ -205,12 +205,29 @@ struct rte_crypto_rsa_priv_key_qt { */ struct rte_crypto_rsa_padding { enum rte_crypto_rsa_padding_type type; - /**< RSA padding scheme to be used for transform */ - enum rte_crypto_auth_algorithm md; - /**< Hash algorithm to be used for data hash if padding - * scheme is either OAEP or PSS. Valid hash algorithms - * are: - * MD5, SHA1, SHA224, SHA256, SHA384, SHA512 + /**< Type of RSA padding */ + enum rte_crypto_auth_algorithm hash; + /**< + * RSA padding hash function + * + * When a specific padding type is selected, the following rule apply: + * - RTE_CRYPTO_RSA_PADDING_NONE: + * This field is ignored by the PMD + * + * - RTE_CRYPTO_RSA_PADDING_PKCS1_5: + * When signing operation this field is used to determine value + * of the DigestInfo structure, therefore specifying which algorithm + * was used to create the message digest. + * When doing encryption/decryption this field is ignored for this + * padding type. + * + * - RTE_CRYPTO_RSA_PADDING_OAEP + * This field shall be set with the hash algorithm used + * in the padding scheme + * + * - RTE_CRYPTO_RSA_PADDING_PSS + * This field shall be set with the hash algorithm used + * in the padding scheme (and to create the input message digest) */ enum rte_crypto_auth_algorithm mgf1md; /**< @@ -220,6 +237,21 @@ struct rte_crypto_rsa_padding { * for mask generation. Valid hash algorithms are: * MD5, SHA1, SHA224, SHA256, SHA384, SHA512 */ + uint16_t saltlen; + /**< + * RSA PSS padding salt length + * + * Used only when RTE_CRYPTO_RSA_PADDING_PSS padding is selected, + * otherwise ignored. + */ + rte_crypto_param label; + /**< + * RSA OAEP padding optional label + * + * Used only when RTE_CRYPTO_RSA_PADDING_OAEP padding is selected, + * otherwise ignored. If label.data == NULL, a default + * label (empty string) is used. + */ }; /** From patchwork Fri May 20 05:54:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111514 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 DA8BDA0503; Fri, 20 May 2022 09:05:36 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7EF3942BFA; Fri, 20 May 2022 09:03:48 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id D97A742BF8 for ; Fri, 20 May 2022 09:03:46 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030227; x=1684566227; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=7M2oGRIjPsoTR9hln6ExGUjR87b29DueVTpmE7s5PcE=; b=XO0DHgsixq4x+aNQmCwzVhPYDDhQNp81gblK2Xw2lNR0kXnMIpp4yK2J K2widZp4Fft50b+VOUIjFQ+nE9siYb5enR6MXGmri5rgx7WGByVjAGpxc gNPCXL3DanmUEYuC/RofBHfl+ytj2iRGt6JTUHdE2bEq+A1LuM1SsdnoF CRe8Eeha9Fofbvb3oeyS++RwmNHP+/hSaStSXCzjs7EB9Q0pkPOyMkTPt KDINEf5gF0QvBEnQbyU6MLacgRMoT3DBjb8j2afJuPbGhzjZrHkZkdho/ owNR7kz/y2RpN6R2BTbAd3iNuI+tIvTqlSdBSfTcRlYNONIKCKY0T+rTg A==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140448" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140448" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058528" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:03:44 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 30/40] cryptodev: reduce rsa struct to only necessary fields Date: Fri, 20 May 2022 06:54:35 +0100 Message-Id: <20220520055445.40063-31-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - reduced rsa struct to only necessary fields. RSA operation is generally used with one input and one output. One exception for this is signature verification, when RSA verify called, both message and signature are inputs, but there is no rsa output except for op status. Signed-off-by: Arek Kusztal --- lib/cryptodev/rte_crypto_asym.h | 87 +++++++++++++++++++++++------------------ 1 file changed, 50 insertions(+), 37 deletions(-) diff --git a/lib/cryptodev/rte_crypto_asym.h b/lib/cryptodev/rte_crypto_asym.h index c864b8a115..37dd3b9d86 100644 --- a/lib/cryptodev/rte_crypto_asym.h +++ b/lib/cryptodev/rte_crypto_asym.h @@ -362,53 +362,66 @@ struct rte_crypto_rsa_op_param { enum rte_crypto_asym_op_type op_type; /**< Type of RSA operation for transform */ - rte_crypto_param message; + rte_crypto_param input; /**< - * Pointer to input data - * - to be encrypted for RSA public encrypt. - * - to be signed for RSA sign generation. - * - to be authenticated for RSA sign verification. + * When op_type == RTE_CRYPTO_ASYM_OP_ENCRYPT: + * If padding.type = RTE_CRYPTO_RSA_PADDING_NONE + * input should only be used along with cryptographically + * secure padding scheme. + * If padding.type = RTE_CRYPTO_RSA_PADDING_PKCS1_5 + * input shall be no longer than public modulus minus 11. + * If padding.type = RTE_CRYPTO_RSA_PADDING_OAEP + * input shall be no longer than public modulus - + * 2 * len(hash) - 2. + * When op_type == RTE_CRYPTO_ASYM_OP_SIGN: * - * Pointer to output data - * - for RSA private decrypt. - * In this case the underlying array should have been - * allocated with enough memory to hold plaintext output - * (i.e. must be at least RSA key size). The message.length - * field should be 0 and will be overwritten by the PMD - * with the decrypted length. + * If padding.type = RTE_CRYPTO_RSA_PADDING_NONE + * input should only be used along with cryptographically + * secure padding scheme. * + * If padding.type = RTE_CRYPTO_RSA_PADDING_PKCS1_5 or + * RTE_CRYPTO_RSA_PADDING_PSS + * if the RTE_CRYPTO_RSA_FLAG_PT flag is set, input shall contain + * the message to be signed, if this flag is not set, + * input shall contain the digest of the message to be signed. * - * All data is in Octet-string network byte order format. - */ - - rte_crypto_param cipher; - /**< - * Pointer to input data - * - to be decrypted for RSA private decrypt. + * When op_type == RTE_CRYPTO_ASYM_OP_DECRYPT: * - * Pointer to output data - * - for RSA public encrypt. - * In this case the underlying array should have been allocated - * with enough memory to hold ciphertext output (i.e. must be - * at least RSA key size). The cipher.length field should - * be 0 and will be overwritten by the PMD with the encrypted length. + * Input shall contain previously encrypted RSA message. * - * All data is in Octet-string network byte order format. + * When op_type == RTE_CRYPTO_ASYM_OP_VERIFY: + * + * Input shall contain signature to be verified */ - - rte_crypto_param sign; + union { + rte_crypto_param output; + rte_crypto_param message; + }; /**< - * Pointer to input data - * - to be verified for RSA public decrypt. + * When op_type == RTE_CRYPTO_ASYM_OP_ENCRYPT: + * + * Output shall contain encrypted data, output.length shall + * be set to the length of encrypted data. + * + * When op_type == RTE_CRYPTO_ASYM_OP_DECRYPT/RTE_CRYPTO_ASYM_OP_SIGN: * - * Pointer to output data - * - for RSA private encrypt. - * In this case the underlying array should have been allocated - * with enough memory to hold signature output (i.e. must be - * at least RSA key size). The sign.length field should - * be 0 and will be overwritten by the PMD with the signature length. + * If padding.type = RTE_CRYPTO_RSA_PADDING_NONE + * output shall contain decrypted/signed data, but all leading zeros + * shall be preserved. Therefore output.length should be + * equal to the length of the modulus.. + * For other types of padding, output should contain + * decrypted data, and output.length shall be set to the length + * of decrypted data. * - * All data is in Octet-string network byte order format. + * When op_type == RTE_CRYPTO_ASYM_OP_VERIFY: + * + * If padding.type = RTE_CRYPTO_RSA_PADDING_NONE + * output shall contain the public key decrypted signature. + * All leading zeroes shall be preserved. + * + * For other padding types, the message should be set with data for the + * signature to be compared with. */ + struct rte_crypto_rsa_padding padding; /**< RSA padding information */ From patchwork Fri May 20 05:54:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111515 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 B5D88A0503; Fri, 20 May 2022 09:05:42 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7AB0742B9B; Fri, 20 May 2022 09:03:52 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id C8C1642B85 for ; Fri, 20 May 2022 09:03:50 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030231; x=1684566231; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=S78sM5beyUaz7Kd1RX8o9dO3ekJRRD5w5E2T7iyL3M0=; b=hpkt+P9NbqxwEHT8r7iX7PB870QK3XTPLPCVeZuHXi1HDvoi1pULF+3S 8oSxqURc4gcWCUvuEiHMiCvp++hNVCSsgb5A86ZrfuNwPvLWY5/+lhjOn 9Tiz1i1iHAmhsmxviK33CE/hJekra2cqe9ACTA7YWUuazv4EUQQJR1fn9 HWUliFmRLPF68NO0zA0jVzYhAJNy/nDTYgkFCdcBQw8s7oJDGlyjsA9Zt oOoDfX0AaONA7n4z/Zy5BMdqiQ03siHBXXu6nhA5EJ/axl6cvp5tMqzZ3 5AAOffNRTvcdVG/JO8xK3CX/uhP3WOahOQS4a2awRTMNNT6CvYF1hRs4h Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140461" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140461" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058545" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:03:47 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 31/40] crypto/qat: reduce rsa struct to only necessary fields Date: Fri, 20 May 2022 06:54:36 +0100 Message-Id: <20220520055445.40063-32-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - reduced rsa struct to only necessary fields. This commit reflects changes to the asymmetric crypto API. Signed-off-by: Arek Kusztal --- drivers/crypto/qat/qat_asym.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/crypto/qat/qat_asym.c b/drivers/crypto/qat/qat_asym.c index 5dd355d007..cb2b47acbb 100644 --- a/drivers/crypto/qat/qat_asym.c +++ b/drivers/crypto/qat/qat_asym.c @@ -347,7 +347,7 @@ rsa_set_pub_input(struct rte_crypto_asym_op *asym_op, if (asym_op->rsa.op_type == RTE_CRYPTO_ASYM_OP_ENCRYPT) { switch (asym_op->rsa.padding.type) { case RTE_CRYPTO_RSA_PADDING_NONE: - SET_PKE_LN(cookie->input_array, asym_op->rsa.message, + SET_PKE_LN(cookie->input_array, asym_op->rsa.input, alg_bytesize, 0); break; default: @@ -360,7 +360,7 @@ rsa_set_pub_input(struct rte_crypto_asym_op *asym_op, } else { switch (asym_op->rsa.padding.type) { case RTE_CRYPTO_RSA_PADDING_NONE: - SET_PKE_LN(cookie->input_array, asym_op->rsa.sign, + SET_PKE_LN(cookie->input_array, asym_op->rsa.input, alg_bytesize, 0); break; default: @@ -456,7 +456,7 @@ rsa_set_priv_input(struct rte_crypto_asym_op *asym_op, RTE_CRYPTO_ASYM_OP_DECRYPT) { switch (asym_op->rsa.padding.type) { case RTE_CRYPTO_RSA_PADDING_NONE: - SET_PKE_LN(cookie->input_array, asym_op->rsa.cipher, + SET_PKE_LN(cookie->input_array, asym_op->rsa.input, alg_bytesize, 0); HEXDUMP("RSA ciphertext", cookie->input_array[0], alg_bytesize); @@ -471,7 +471,7 @@ rsa_set_priv_input(struct rte_crypto_asym_op *asym_op, RTE_CRYPTO_ASYM_OP_SIGN) { switch (asym_op->rsa.padding.type) { case RTE_CRYPTO_RSA_PADDING_NONE: - SET_PKE_LN(cookie->input_array, asym_op->rsa.message, + SET_PKE_LN(cookie->input_array, asym_op->rsa.input, alg_bytesize, 0); HEXDUMP("RSA text to be signed", cookie->input_array[0], alg_bytesize); @@ -519,7 +519,7 @@ rsa_collect(struct rte_crypto_asym_op *asym_op, if (asym_op->rsa.op_type == RTE_CRYPTO_ASYM_OP_ENCRYPT) { - uint8_t *rsa_result = asym_op->rsa.cipher.data; + uint8_t *rsa_result = asym_op->rsa.output.data; rte_memcpy(rsa_result, cookie->output_array[0], @@ -527,7 +527,7 @@ rsa_collect(struct rte_crypto_asym_op *asym_op, HEXDUMP("RSA Encrypted data", cookie->output_array[0], alg_bytesize); } else { - uint8_t *rsa_result = asym_op->rsa.cipher.data; + uint8_t *rsa_result = asym_op->rsa.output.data; switch (asym_op->rsa.padding.type) { case RTE_CRYPTO_RSA_PADDING_NONE: @@ -545,7 +545,7 @@ rsa_collect(struct rte_crypto_asym_op *asym_op, } } else { if (asym_op->rsa.op_type == RTE_CRYPTO_ASYM_OP_DECRYPT) { - uint8_t *rsa_result = asym_op->rsa.message.data; + uint8_t *rsa_result = asym_op->rsa.output.data; switch (asym_op->rsa.padding.type) { case RTE_CRYPTO_RSA_PADDING_NONE: @@ -561,7 +561,7 @@ rsa_collect(struct rte_crypto_asym_op *asym_op, return RTE_CRYPTO_OP_STATUS_ERROR; } } else { - uint8_t *rsa_result = asym_op->rsa.sign.data; + uint8_t *rsa_result = asym_op->rsa.output.data; rte_memcpy(rsa_result, cookie->output_array[0], From patchwork Fri May 20 05:54:37 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111516 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 E3DCBA0503; Fri, 20 May 2022 09:05:48 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5C25042BB0; Fri, 20 May 2022 09:03:54 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 0ED6542B85 for ; Fri, 20 May 2022 09:03:51 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030232; x=1684566232; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=vqTrINyRK9heX0qwc1kL+T5DUoLplIpXuEsm1xlkZ3g=; b=ZP4hMYSheKMmAIz9WIUjPcwLcs3jPIq9WOgsS0zMC6bLM+M8vZgOPlAo oX5I23Cfnok9E+/m14LcydKApWYs8FDcEU0D+OEqSE1Z3rvnoLgJy368q xwQ8NuG9A5AZwrwo0OyVW/QyxM8hoggyGRKrXVBUsuMoHL4XNV39RfwtE Dn5t86awmizYgrq1CYNi1Ibmd7Kuay4q33OR8PwIWCB8JaYhbG3EWzqkS H8GZ1ZtBvh2JvgGhOuYAsb/TW1lOoxnxYdfqVYAWwx+1IsVnfeURpFAm8 fKYOcrBOfLTabdqtK977QEcoQ1p9W1j58bXeahihierw3ZH0NRUy0V6Ge w==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140464" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140464" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:51 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058562" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:03:50 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 32/40] crypto/openssl: reduce rsa struct to only necessary fields Date: Fri, 20 May 2022 06:54:37 +0100 Message-Id: <20220520055445.40063-33-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - reduced rsa struct to only necessary fields. This commit reflects changes to the asymmetric crypto API. Signed-off-by: Arek Kusztal --- drivers/crypto/openssl/rte_openssl_pmd.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c b/drivers/crypto/openssl/rte_openssl_pmd.c index 6b3cf7a6aa..f5eb82ac2a 100644 --- a/drivers/crypto/openssl/rte_openssl_pmd.c +++ b/drivers/crypto/openssl/rte_openssl_pmd.c @@ -1915,47 +1915,47 @@ process_openssl_rsa_op(struct rte_crypto_op *cop, switch (op->rsa.op_type) { case RTE_CRYPTO_ASYM_OP_ENCRYPT: - ret = RSA_public_encrypt(op->rsa.message.length, - op->rsa.message.data, - op->rsa.cipher.data, + ret = RSA_public_encrypt(op->rsa.input.length, + op->rsa.input.data, + op->rsa.output.data, rsa, pad); if (ret > 0) - op->rsa.cipher.length = ret; + op->rsa.output.length = ret; OPENSSL_LOG(DEBUG, "length of encrypted text %d\n", ret); break; case RTE_CRYPTO_ASYM_OP_DECRYPT: - ret = RSA_private_decrypt(op->rsa.cipher.length, - op->rsa.cipher.data, - op->rsa.message.data, + ret = RSA_private_decrypt(op->rsa.input.length, + op->rsa.input.data, + op->rsa.output.data, rsa, pad); if (ret > 0) - op->rsa.message.length = ret; + op->rsa.output.length = ret; break; case RTE_CRYPTO_ASYM_OP_SIGN: - ret = RSA_private_encrypt(op->rsa.message.length, - op->rsa.message.data, - op->rsa.sign.data, + ret = RSA_private_encrypt(op->rsa.input.length, + op->rsa.input.data, + op->rsa.output.data, rsa, pad); if (ret > 0) - op->rsa.sign.length = ret; + op->rsa.output.length = ret; break; case RTE_CRYPTO_ASYM_OP_VERIFY: - tmp = rte_malloc(NULL, op->rsa.sign.length, 0); + tmp = rte_malloc(NULL, op->rsa.input.length, 0); if (tmp == NULL) { OPENSSL_LOG(ERR, "Memory allocation failed"); cop->status = RTE_CRYPTO_OP_STATUS_ERROR; break; } - ret = RSA_public_decrypt(op->rsa.sign.length, - op->rsa.sign.data, + ret = RSA_public_decrypt(op->rsa.input.length, + op->rsa.input.data, tmp, rsa, pad); From patchwork Fri May 20 05:54:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111517 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 80492A0503; Fri, 20 May 2022 09:05:55 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3F60F42BBA; Fri, 20 May 2022 09:03:56 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 42E6D42B79 for ; Fri, 20 May 2022 09:03:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030234; x=1684566234; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=rJ9N5SLr7KZeZe2OkLAII0DOXsqmfq4ELj6gl1GhK90=; b=J3vXKYGQJLoXuiJgcNyNdL7CQiS/tFSx70NP5oatfL6E/W016ptawuga 3JgdHxgX8R0fT7j2jwYhCDr8imFG8G0VJT5QGAPsG6P/+DHLSkcYX1qbU dYLnfiHm1PyOWyqV+fvv1M1smJt0yuMV1QIHZDds9wYXUjKSKhAqw8j5j NE3wvcL0rl5teCtSMdfrjiactcH0LfoK7YjtLB6cDZJ73Gul980U8FXI9 mI24NwO4/kVlpOKX+fDkCD2dPXJuFh3xFYcgU/afHl5Szd1Mi/4OCqQb5 jyWOdcEeGCzLjaJgdQnj47TVeV2+XQqj4SdRWvwUuYfY1Vdd6QPzk6OTE w==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140470" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140470" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058583" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:03:52 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 33/40] crypto/octeontx: reduce rsa struct to only necessary fields Date: Fri, 20 May 2022 06:54:38 +0100 Message-Id: <20220520055445.40063-34-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - reduced rsa struct to only necessary fields. This commit reflects changes to the asymmetric crypto API. Signed-off-by: Arek Kusztal --- drivers/crypto/octeontx/otx_cryptodev_ops.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/crypto/octeontx/otx_cryptodev_ops.c b/drivers/crypto/octeontx/otx_cryptodev_ops.c index 914b17decf..e2b94240e0 100644 --- a/drivers/crypto/octeontx/otx_cryptodev_ops.c +++ b/drivers/crypto/octeontx/otx_cryptodev_ops.c @@ -732,40 +732,40 @@ otx_cpt_asym_rsa_op(struct rte_crypto_op *cop, struct cpt_request_info *req, switch (rsa->op_type) { case RTE_CRYPTO_ASYM_OP_ENCRYPT: - rsa->cipher.length = rsa_ctx->n.length; - memcpy(rsa->cipher.data, req->rptr, rsa->cipher.length); + rsa->output.length = rsa_ctx->n.length; + memcpy(rsa->output.data, req->rptr, rsa->output.length); break; case RTE_CRYPTO_ASYM_OP_DECRYPT: if (rsa->padding.type == RTE_CRYPTO_RSA_PADDING_NONE) - rsa->message.length = rsa_ctx->n.length; + rsa->output.length = rsa_ctx->n.length; else { /* Get length of decrypted output */ - rsa->message.length = rte_cpu_to_be_16 + rsa->output.length = rte_cpu_to_be_16 (*((uint16_t *)req->rptr)); /* Offset data pointer by length fields */ req->rptr += 2; } - memcpy(rsa->message.data, req->rptr, rsa->message.length); + memcpy(rsa->output.data, req->rptr, rsa->output.length); break; case RTE_CRYPTO_ASYM_OP_SIGN: - rsa->sign.length = rsa_ctx->n.length; - memcpy(rsa->sign.data, req->rptr, rsa->sign.length); + rsa->output.length = rsa_ctx->n.length; + memcpy(rsa->output.data, req->rptr, rsa->output.length); break; case RTE_CRYPTO_ASYM_OP_VERIFY: if (rsa->padding.type == RTE_CRYPTO_RSA_PADDING_NONE) - rsa->sign.length = rsa_ctx->n.length; + rsa->output.length = rsa_ctx->n.length; else { /* Get length of decrypted output */ - rsa->sign.length = rte_cpu_to_be_16 + rsa->output.length = rte_cpu_to_be_16 (*((uint16_t *)req->rptr)); /* Offset data pointer by length fields */ req->rptr += 2; } - memcpy(rsa->sign.data, req->rptr, rsa->sign.length); + memcpy(rsa->output.data, req->rptr, rsa->output.length); - if (memcmp(rsa->sign.data, rsa->message.data, + if (memcmp(rsa->output.data, rsa->message.data, rsa->message.length)) { CPT_LOG_DP_ERR("RSA verification failed"); cop->status = RTE_CRYPTO_OP_STATUS_ERROR; From patchwork Fri May 20 05:54:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111518 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 D9185A0503; Fri, 20 May 2022 09:06:02 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 73C3442BB7; Fri, 20 May 2022 09:03:59 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 474C942BB7 for ; Fri, 20 May 2022 09:03:57 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030237; x=1684566237; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=nayuCYs73MpvIci/iJTsBqfQPH/oM40oPPfsr2bqZzc=; b=n+BV19Tr2crt/lD8YLxlk3JP01UR3Lr4gmAnqSqH0wLvnB+2KdPfL5Q0 EQEuEzGuynUhRmx1Tr19wl1ZZ3KYe7h7eOWrP6eXkp+8JABn0O9aECeZJ LK/27mcUKnDUasnY7qyieKqYIM9XA/cp4hjXIotfLDmMqEikTopwYSN8b 5y3jbKLo5RpT+TfoqGQe36Omi2SA6IrH/Dy4olV+FxIZx8XqkN+Wx5H1H MB4eeEYkxGo+BciFudumSHb88OlwURg5vWVCoiJdxKSTlNXL8OGp0Yn9M LFZd0sTMBNVZH+Pl6fFjk/sHJLL/QyQMB7esfRIQ6ANksLuc37AfRmuUn g==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140486" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140486" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:56 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058608" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:03:55 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 34/40] crypto/cnxk: reduce rsa struct to only necessary fields Date: Fri, 20 May 2022 06:54:39 +0100 Message-Id: <20220520055445.40063-35-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - reduced rsa struct to only necessary fields. This commit reflects changes to the asymmetric crypto API. Signed-off-by: Arek Kusztal --- drivers/crypto/cnxk/cnxk_ae.h | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/drivers/crypto/cnxk/cnxk_ae.h b/drivers/crypto/cnxk/cnxk_ae.h index 0562f72270..ea6964dd37 100644 --- a/drivers/crypto/cnxk/cnxk_ae.h +++ b/drivers/crypto/cnxk/cnxk_ae.h @@ -380,19 +380,19 @@ cnxk_ae_enqueue_rsa_op(struct rte_crypto_op *op, switch (rsa->op_type) { case RTE_CRYPTO_ASYM_OP_VERIFY: - cnxk_ae_rsa_prep(op, meta_buf, &sess->rsa_ctx, &rsa->sign, + cnxk_ae_rsa_prep(op, meta_buf, &sess->rsa_ctx, &rsa->input, inst); break; case RTE_CRYPTO_ASYM_OP_ENCRYPT: - cnxk_ae_rsa_prep(op, meta_buf, &sess->rsa_ctx, &rsa->message, + cnxk_ae_rsa_prep(op, meta_buf, &sess->rsa_ctx, &rsa->input, inst); break; case RTE_CRYPTO_ASYM_OP_SIGN: cnxk_ae_rsa_crt_prep(op, meta_buf, &sess->rsa_ctx, - &rsa->message, inst); + &rsa->input, inst); break; case RTE_CRYPTO_ASYM_OP_DECRYPT: - cnxk_ae_rsa_crt_prep(op, meta_buf, &sess->rsa_ctx, &rsa->cipher, + cnxk_ae_rsa_crt_prep(op, meta_buf, &sess->rsa_ctx, &rsa->input, inst); break; default: @@ -671,44 +671,44 @@ cnxk_ae_dequeue_rsa_op(struct rte_crypto_op *cop, uint8_t *rptr, switch (rsa->op_type) { case RTE_CRYPTO_ASYM_OP_ENCRYPT: - rsa->cipher.length = rsa_ctx->n.length; - memcpy(rsa->cipher.data, rptr, rsa->cipher.length); + rsa->output.length = rsa_ctx->n.length; + memcpy(rsa->output.data, rptr, rsa->output.length); break; case RTE_CRYPTO_ASYM_OP_DECRYPT: if (rsa->padding.type == RTE_CRYPTO_RSA_PADDING_NONE) { - rsa->message.length = rsa_ctx->n.length; - memcpy(rsa->message.data, rptr, rsa->message.length); + rsa->output.length = rsa_ctx->n.length; + memcpy(rsa->output.data, rptr, rsa->output.length); } else { /* Get length of decrypted output */ - rsa->message.length = + rsa->output.length = rte_cpu_to_be_16(*((uint16_t *)rptr)); /* * Offset output data pointer by length field * (2 bytes) and copy decrypted data. */ - memcpy(rsa->message.data, rptr + 2, - rsa->message.length); + memcpy(rsa->output.data, rptr + 2, + rsa->output.length); } break; case RTE_CRYPTO_ASYM_OP_SIGN: - rsa->sign.length = rsa_ctx->n.length; - memcpy(rsa->sign.data, rptr, rsa->sign.length); + rsa->input.length = rsa_ctx->n.length; + memcpy(rsa->output.data, rptr, rsa->output.length); break; case RTE_CRYPTO_ASYM_OP_VERIFY: if (rsa->padding.type == RTE_CRYPTO_RSA_PADDING_NONE) { - rsa->sign.length = rsa_ctx->n.length; - memcpy(rsa->sign.data, rptr, rsa->sign.length); + rsa->output.length = rsa_ctx->n.length; + memcpy(rsa->output.data, rptr, rsa->output.length); } else { /* Get length of signed output */ - rsa->sign.length = + rsa->output.length = rte_cpu_to_be_16(*((uint16_t *)rptr)); /* * Offset output data pointer by length field * (2 bytes) and copy signed data. */ - memcpy(rsa->sign.data, rptr + 2, rsa->sign.length); + memcpy(rsa->output.data, rptr + 2, rsa->output.length); } - if (memcmp(rsa->sign.data, rsa->message.data, + if (memcmp(rsa->output.data, rsa->message.data, rsa->message.length)) { cop->status = RTE_CRYPTO_OP_STATUS_ERROR; } From patchwork Fri May 20 05:54:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111519 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 490F3A0503; Fri, 20 May 2022 09:06:09 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 57AAD42BD1; Fri, 20 May 2022 09:04:01 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 94BC942BFE for ; Fri, 20 May 2022 09:03:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030239; x=1684566239; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=78qsQlFPG85bBUrWzk4rB0A7HRK/5KtLM7MlfmP8ZzM=; b=lxuIa94kUa5JxB91E4MiGr8qMRAcyY+ijR0YODdl2hGKoAP4i/vr8VW1 YbhqPsTs8jlsqXbcbbsiRg0lLO9Fy6UzMfEQelE8bSXfLvKQzgXr9Plai CQK1ItYNuZ97bVs9yOXP2Ikz2G5sDFTW0PnLfOS4qJLOjSodEYfrF0Zip OC4tdzpzSbg/xG20cx3oXXDc1lwVYdYiOTcrXd5/FU1rb9Svn26/Yjjq/ kEuLzESTkO0ZOUB1TuyalCKhReKiVEcc/e751rruRjQ+dsriMFWzISMOV RXRolJEZjHAyftaRQgncRMQrFvwGNBCIkynQyQr9ataUApVNLqXnfJtIZ A==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140497" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140497" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:03:59 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058621" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:03:57 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 35/40] common/cpt: reduce rsa struct to only necessary fields Date: Fri, 20 May 2022 06:54:40 +0100 Message-Id: <20220520055445.40063-36-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - reduced rsa struct to only necessary fields. This commit reflects changes to the asymmetric crypto API. Signed-off-by: Arek Kusztal --- drivers/common/cpt/cpt_ucode_asym.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/common/cpt/cpt_ucode_asym.h b/drivers/common/cpt/cpt_ucode_asym.h index 1105a0c125..dafae61f6f 100644 --- a/drivers/common/cpt/cpt_ucode_asym.h +++ b/drivers/common/cpt/cpt_ucode_asym.h @@ -463,16 +463,16 @@ cpt_enqueue_rsa_op(struct rte_crypto_op *op, switch (rsa->op_type) { case RTE_CRYPTO_ASYM_OP_VERIFY: - cpt_rsa_prep(params, &sess->rsa_ctx, &rsa->sign); + cpt_rsa_prep(params, &sess->rsa_ctx, &rsa->input); break; case RTE_CRYPTO_ASYM_OP_ENCRYPT: - cpt_rsa_prep(params, &sess->rsa_ctx, &rsa->message); + cpt_rsa_prep(params, &sess->rsa_ctx, &rsa->input); break; case RTE_CRYPTO_ASYM_OP_SIGN: - cpt_rsa_crt_prep(params, &sess->rsa_ctx, &rsa->message); + cpt_rsa_crt_prep(params, &sess->rsa_ctx, &rsa->input); break; case RTE_CRYPTO_ASYM_OP_DECRYPT: - cpt_rsa_crt_prep(params, &sess->rsa_ctx, &rsa->cipher); + cpt_rsa_crt_prep(params, &sess->rsa_ctx, &rsa->input); break; default: op->status = RTE_CRYPTO_OP_STATUS_INVALID_ARGS; From patchwork Fri May 20 05:54:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111520 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 EDB79A0503; Fri, 20 May 2022 09:06:14 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4708842C02; Fri, 20 May 2022 09:04:04 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 03F7F42BD8 for ; Fri, 20 May 2022 09:04:01 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030242; x=1684566242; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=BWMQDclO1xYjo/t5brVu+JLOaPGxEGjs5n+xhQwz9cQ=; b=QEnYRv0gjO8y9S54zLFhlF0SnszsXL+7uItdafv2PaPhh79RjOqnWv6V F9IgK3jyGNKWy/2irNiiqeDJiSWNB5Whn0fmS1elXURTZ2GGhYdQ/cmhE nlbnCTcn3nMmpcWF/W3N+to5PWv3ajz817ADaTzASOGitQOjS/uB6MCli VGEYnEDlZiR5yOiAappj3chmKqEJpnR1DKnRrxy/W2LcQ9NbABflMmDfv jRtjJ6mn2mjv05/UDVDoRdS157CAdLbyxZMc/bbL1S9KiSiuybUIVsvxZ i77tAf5yUF2YkjfZSMpQGAHam2XKzxiOdS9ZTZApi4FX7KWkBB+rgqLP1 Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140505" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140505" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:04:01 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058638" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:04:00 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 36/40] test/crypto: reduce rsa struct to only necessary fields Date: Fri, 20 May 2022 06:54:41 +0100 Message-Id: <20220520055445.40063-37-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - reduced rsa struct to only necessary fields. This commit reflects changes to the asymmetric crypto API. Signed-off-by: Arek Kusztal --- app/test/test_cryptodev_asym.c | 80 +++++++++++++++++++++++------------------- 1 file changed, 43 insertions(+), 37 deletions(-) diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c index eca0612815..ed86eaf8ba 100644 --- a/app/test/test_cryptodev_asym.c +++ b/app/test/test_cryptodev_asym.c @@ -90,14 +90,14 @@ queue_ops_rsa_sign_verify(void *sess) /* Compute sign on the test vector */ asym_op->rsa.op_type = RTE_CRYPTO_ASYM_OP_SIGN; - asym_op->rsa.message.data = rsaplaintext.data; - asym_op->rsa.message.length = rsaplaintext.len; - asym_op->rsa.sign.length = 0; - asym_op->rsa.sign.data = output_buf; + asym_op->rsa.input.data = rsaplaintext.data; + asym_op->rsa.input.length = rsaplaintext.len; + asym_op->rsa.output.length = 0; + asym_op->rsa.output.data = output_buf; asym_op->rsa.padding.type = RTE_CRYPTO_RSA_PADDING_PKCS1_5; - debug_hexdump(stdout, "message", asym_op->rsa.message.data, - asym_op->rsa.message.length); + debug_hexdump(stdout, "message", asym_op->rsa.input.data, + asym_op->rsa.input.length); /* Attach asymmetric crypto session to crypto operations */ rte_crypto_op_attach_asym_session(op, sess); @@ -120,13 +120,17 @@ queue_ops_rsa_sign_verify(void *sess) goto error_exit; } - debug_hexdump(stdout, "signed message", asym_op->rsa.sign.data, - asym_op->rsa.sign.length); + debug_hexdump(stdout, "signed message", asym_op->rsa.output.data, + asym_op->rsa.output.length); asym_op = result_op->asym; /* Verify sign */ asym_op->rsa.op_type = RTE_CRYPTO_ASYM_OP_VERIFY; asym_op->rsa.padding.type = RTE_CRYPTO_RSA_PADDING_PKCS1_5; + asym_op->rsa.input.data = output_buf; + asym_op->rsa.input.length = asym_op->rsa.output.length; + asym_op->rsa.message.data = rsaplaintext.data; + asym_op->rsa.message.length = rsaplaintext.len; /* Process crypto operation */ if (rte_cryptodev_enqueue_burst(dev_id, 0, &op, 1) != 1) { @@ -181,14 +185,14 @@ queue_ops_rsa_enc_dec(void *sess) /* Compute encryption on the test vector */ asym_op->rsa.op_type = RTE_CRYPTO_ASYM_OP_ENCRYPT; - asym_op->rsa.message.data = rsaplaintext.data; - asym_op->rsa.cipher.data = cipher_buf; - asym_op->rsa.cipher.length = 0; - asym_op->rsa.message.length = rsaplaintext.len; + asym_op->rsa.input.data = rsaplaintext.data; + asym_op->rsa.output.data = cipher_buf; + asym_op->rsa.output.length = 0; + asym_op->rsa.input.length = rsaplaintext.len; asym_op->rsa.padding.type = RTE_CRYPTO_RSA_PADDING_PKCS1_5; - debug_hexdump(stdout, "message", asym_op->rsa.message.data, - asym_op->rsa.message.length); + debug_hexdump(stdout, "message", asym_op->rsa.input.data, + asym_op->rsa.input.length); /* Attach asymmetric crypto session to crypto operations */ rte_crypto_op_attach_asym_session(op, sess); @@ -210,14 +214,16 @@ queue_ops_rsa_enc_dec(void *sess) status = TEST_FAILED; goto error_exit; } - debug_hexdump(stdout, "encrypted message", asym_op->rsa.message.data, - asym_op->rsa.message.length); + debug_hexdump(stdout, "encrypted message", asym_op->rsa.output.data, + asym_op->rsa.output.length); /* Use the resulted output as decryption Input vector*/ asym_op = result_op->asym; - asym_op->rsa.message.length = 0; + asym_op->rsa.output.length = 0; asym_op->rsa.op_type = RTE_CRYPTO_ASYM_OP_DECRYPT; asym_op->rsa.padding.type = RTE_CRYPTO_RSA_PADDING_PKCS1_5; + rte_memcpy(asym_op->rsa.input.data, asym_op->rsa.output.data, + asym_op->rsa.input.length); /* Process crypto operation */ if (rte_cryptodev_enqueue_burst(dev_id, 0, &op, 1) != 1) { @@ -270,20 +276,20 @@ test_cryptodev_asym_ver(struct rte_crypto_op *op, case RTE_CRYPTO_ASYM_XFORM_RSA: if (op->asym->rsa.op_type == RTE_CRYPTO_ASYM_OP_ENCRYPT) { data_size = xform_tc->rsa.n.length; - data_received = result_op->asym->rsa.cipher.data; + data_received = result_op->asym->rsa.output.data; data_expected = data_tc->rsa_data.ct.data; } else if (op->asym->rsa.op_type == RTE_CRYPTO_ASYM_OP_DECRYPT) { data_size = xform_tc->rsa.n.length; data_expected = data_tc->rsa_data.pt.data; - data_received = result_op->asym->rsa.message.data; + data_received = result_op->asym->rsa.output.data; } else if (op->asym->rsa.op_type == RTE_CRYPTO_ASYM_OP_SIGN) { data_size = xform_tc->rsa.n.length; data_expected = data_tc->rsa_data.sign.data; - data_received = result_op->asym->rsa.sign.data; + data_received = result_op->asym->rsa.output.data; } else if (op->asym->rsa.op_type == RTE_CRYPTO_ASYM_OP_VERIFY) { data_size = xform_tc->rsa.n.length; data_expected = data_tc->rsa_data.pt.data; - data_received = result_op->asym->rsa.cipher.data; + data_received = result_op->asym->rsa.output.data; } break; case RTE_CRYPTO_ASYM_XFORM_DH: @@ -415,25 +421,25 @@ test_cryptodev_asym_op(struct crypto_testsuite_params_asym *ts_params, op->asym->rsa.padding.type = data_tc->rsa_data.padding; if (op->asym->rsa.op_type == RTE_CRYPTO_ASYM_OP_ENCRYPT) { - asym_op->rsa.message.data = data_tc->rsa_data.pt.data; - asym_op->rsa.message.length = data_tc->rsa_data.pt.len; - asym_op->rsa.cipher.data = result; - asym_op->rsa.cipher.length = data_tc->rsa_data.n.len; + asym_op->rsa.input.data = data_tc->rsa_data.pt.data; + asym_op->rsa.input.length = data_tc->rsa_data.pt.len; + asym_op->rsa.output.data = result; + asym_op->rsa.output.length = data_tc->rsa_data.n.len; } else if (op->asym->rsa.op_type == RTE_CRYPTO_ASYM_OP_DECRYPT) { - asym_op->rsa.message.data = result; - asym_op->rsa.message.length = data_tc->rsa_data.n.len; - asym_op->rsa.cipher.data = data_tc->rsa_data.ct.data; - asym_op->rsa.cipher.length = data_tc->rsa_data.ct.len; + asym_op->rsa.output.data = result; + asym_op->rsa.output.length = data_tc->rsa_data.n.len; + asym_op->rsa.input.data = data_tc->rsa_data.ct.data; + asym_op->rsa.input.length = data_tc->rsa_data.ct.len; } else if (op->asym->rsa.op_type == RTE_CRYPTO_ASYM_OP_SIGN) { - asym_op->rsa.sign.data = result; - asym_op->rsa.sign.length = data_tc->rsa_data.n.len; - asym_op->rsa.message.data = data_tc->rsa_data.pt.data; - asym_op->rsa.message.length = data_tc->rsa_data.pt.len; + asym_op->rsa.output.data = result; + asym_op->rsa.output.length = data_tc->rsa_data.n.len; + asym_op->rsa.input.data = data_tc->rsa_data.pt.data; + asym_op->rsa.input.length = data_tc->rsa_data.pt.len; } else if (op->asym->rsa.op_type == RTE_CRYPTO_ASYM_OP_VERIFY) { - asym_op->rsa.cipher.data = result; - asym_op->rsa.cipher.length = data_tc->rsa_data.n.len; - asym_op->rsa.sign.data = data_tc->rsa_data.sign.data; - asym_op->rsa.sign.length = data_tc->rsa_data.sign.len; + asym_op->rsa.message.data = result; + asym_op->rsa.message.length = data_tc->rsa_data.n.len; + asym_op->rsa.input.data = data_tc->rsa_data.sign.data; + asym_op->rsa.input.length = data_tc->rsa_data.sign.len; } break; case RTE_CRYPTO_ASYM_XFORM_DH: From patchwork Fri May 20 05:54:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111521 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 A1F39A0503; Fri, 20 May 2022 09:06:20 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 33AFA42BA9; Fri, 20 May 2022 09:04:06 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 2F4CD42B70 for ; Fri, 20 May 2022 09:04:04 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030244; x=1684566244; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=grHnIZT0QKPcFltwOhGDZOc6O9zietHCaS6/TfyAb5I=; b=e5kH0VGunz9CNoFfk7f4hz+NqGmB2Q7bbuuNYv1/AFla6od8743PgzBn 54EbWgBZLMMjYlMvFKcmQWnyLsoggt5DCT97p8/MCPPIjK90oiWeI0TZm PT4zedhu81dSWeyEuH6krByQQyfUhBhfrcKF6u12B/XY1Fh0ELfEfX8zT K12RLS/af9rYxVjtG+araabrACY0NacA5oCGwqbhVUQUWxecsO91Oa0Ef hNxwMLQEHrQgSDoAHxc6DxUUBIXRMPYk07haAM0wmgKbGxMaFyUTbFey6 ebCOwJYqACYr7iC3MpPFBJ6GP/pYUDYK6Vx0OhJSArl5yBTd4aLmmJsUV g==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140513" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140513" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:04:03 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058661" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:04:02 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 37/40] cryptodev: add asym op flags Date: Fri, 20 May 2022 06:54:42 +0100 Message-Id: <20220520055445.40063-38-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - added flags to rte_crypto_asym_op struct. It may be shared between different algorithms. - added Diffie-Hellman padding flags. Diffie-Hellman padding is used in certain protocols, in others, leading zero bytes need to be stripped. Even same protocol may use a different approach - most glaring example is TLS1.2 - TLS1.3. For ease of use, and to avoid additional copy on certain occasions, driver should be able to return both. Signed-off-by: Arek Kusztal --- lib/cryptodev/rte_crypto_asym.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/lib/cryptodev/rte_crypto_asym.h b/lib/cryptodev/rte_crypto_asym.h index 37dd3b9d86..01b1fdd074 100644 --- a/lib/cryptodev/rte_crypto_asym.h +++ b/lib/cryptodev/rte_crypto_asym.h @@ -41,6 +41,26 @@ rte_crypto_asym_ke_strings[]; extern const char * rte_crypto_asym_op_strings[]; +#define RTE_CRYPTO_ASYM_FLAG_PUB_KEY_NO_PADDING 0 +/**< + * If set to 1 - public key will be returned + * without leading zero bytes, otherwise it will be + * padded to the left with zero bytes (default) + */ +#define RTE_CRYPTO_ASYM_FLAG_SHARED_KEY_NO_PADDING 1 +/**< + * If set to 1 - shared key will be returned + * without leading zero bytes, otherwise it will be + * padded to the left with zero bytes (default) + */ + +#define RTE_CRYPTO_ASYM_FLAG_SET(op, flag) \ + (op->flags |= (1ULL << flag)) +#define RTE_CRYPTO_ASYM_FLAG_UNSET(op, flag) \ + (op->flags &= (~(1ULL << flag))) +#define RTE_CRYPTO_ASYM_FLAG_GET(op, flag) \ + (!!(op->flags &= (1ULL << flag))) + /** * List of elliptic curves. This enum aligns with * TLS "Supported Groups" registry (previously known as @@ -607,6 +627,11 @@ struct rte_crypto_asym_op { struct rte_crypto_ecdsa_op_param ecdsa; struct rte_crypto_ecpm_op_param ecpm; }; + uint16_t flags; + /**< Asymmetric crypto flags, every flag starts with + * RTE_CRYPTO_ASYM_FLAG_*. Flags are set/unset with + * RTE_CRYPTO_ASYM_SET_FLAGS, RTE_CRYPTO_ASYM_GET_FLAGS + */ }; #ifdef __cplusplus From patchwork Fri May 20 05:54:43 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111522 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 C0C79A0503; Fri, 20 May 2022 09:06:25 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 206D042BE9; Fri, 20 May 2022 09:04:08 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 8491A42BAD for ; Fri, 20 May 2022 09:04:06 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030246; x=1684566246; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=PFwiC/eIzBc2kUM4jig4yrBUiFfQ9crsUOb7wYgmX9Y=; b=bU01mARjOEptYlbxUlzC/gYKeHqwQOku7dsueAUmIEXlElZQcxDDBUwR zpki01lAJv6Wr8AH+v02UQgzUl+mRXuspm8Zz+RPcTsdjpq++IhRaXJtN cPTDey3kGLib/ifWrJkN8jz80LNL8/423j9ReLvVrGA+k/s7j9a3IIh9d RwNLihKi23v1eaO+ifqAHTGxccM/4KaFSjkn0qqSgVO8KTr5roxfVCmgd CE3DS+QoN3aKLSlTYWLtk/N8mDJ5oxzgaQxHZHLB6OPuqUse8tKtQkPfJ 9ssKK3HBFEMwTJZl1NhMt3AECIDCnJR45kyehFIiYQYhPejM6o+igpXKU Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140524" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140524" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:04:06 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058676" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:04:04 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 38/40] cryptodev: clarify usage of private key in dh Date: Fri, 20 May 2022 06:54:43 +0100 Message-Id: <20220520055445.40063-39-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - clarified usage of private key in Diffie-Hellman. CSRNG capable device should generate private key and then use it for public key generation. Signed-off-by: Arek Kusztal --- lib/cryptodev/rte_crypto_asym.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/cryptodev/rte_crypto_asym.h b/lib/cryptodev/rte_crypto_asym.h index 01b1fdd074..a6bb70ca3f 100644 --- a/lib/cryptodev/rte_crypto_asym.h +++ b/lib/cryptodev/rte_crypto_asym.h @@ -459,6 +459,10 @@ struct rte_crypto_dh_op_param { * Output generated private key when op_type is * DH PRIVATE_KEY_GENERATION * Input for RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE + * In case priv_key.length is 0 and op_type is set with + * RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE, CSRNG capable + * device will generate private key and use it for public + * key generation. */ union { rte_crypto_uint pub_key; From patchwork Fri May 20 05:54:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111523 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 27F74A0503; Fri, 20 May 2022 09:06:31 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0CDDD42C04; Fri, 20 May 2022 09:04:10 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id E259342B89 for ; Fri, 20 May 2022 09:04:08 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030249; x=1684566249; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=+DZtowm5HtS9lwuVE1UpaaXFk3qboB2XB12/Qiac3Rw=; b=YLg6pfoxymxNod7cg71AqHN86hiL8e0swZ+5lvwXCu95KGp4feOUn/Jt S33oTuyvNM6+e6dzwpbZFY+p6naiJrabngubHvbqSnwG+BomTDn8z6viO KsTP7g5Oer9tcwbdPMI2r3ztQDaI7Ghiml+0baFMUdBIVUNjHHw8+C/Qr NyphW3FzRv2wnh3CGb5/VozgYeFRXGLPpA2WcsFGJ6pk2uoEOOiGizDWj VaWXyLhVHalUBkGMARyQ/p9DZXK9tzVkMPTKs9aVJTuAoaju43GRMW3uv R5ni05MlGvCuZEwqFxvg58/ePS23/lUMs06QuIVTqqnGIPjRVPg4GW81U Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140546" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140546" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:04:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058694" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:04:06 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 39/40] crypto/openssl: generate dh private key Date: Fri, 20 May 2022 06:54:44 +0100 Message-Id: <20220520055445.40063-40-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - added dh private key generation based on length. PMD will generate private key only if priv_key length is set to 0. Signed-off-by: Arek Kusztal --- drivers/crypto/openssl/rte_openssl_pmd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c b/drivers/crypto/openssl/rte_openssl_pmd.c index f5eb82ac2a..1300bc3d82 100644 --- a/drivers/crypto/openssl/rte_openssl_pmd.c +++ b/drivers/crypto/openssl/rte_openssl_pmd.c @@ -1754,7 +1754,7 @@ process_openssl_dh_op(struct rte_crypto_op *cop, * then first set DH with user provided private key */ if (asym_op->dh.op_type == RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE && - op->priv_key.data) { + op->priv_key.length > 0) { /* generate public key using user-provided private key * pub_key = g ^ priv_key mod p */ From patchwork Fri May 20 05:54:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 111524 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 64AA8A0503; Fri, 20 May 2022 09:06:36 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DAF7242C09; Fri, 20 May 2022 09:04:13 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 493B042C08 for ; Fri, 20 May 2022 09:04:11 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653030251; x=1684566251; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=DqOGHprX3BcY6VZxR62pTuJeVgU5qeNIJdlhTUy/MWU=; b=XqXMVlKB9UvmyG42Dnnp/56ACpms7x1ZNpYDWnq82p+QMosWzMJM9BSs Ei1mxzYJlIly114CbJDgZh2w9dCqDW5Sid0GGkDUB9UjCkR/2hMs+JqvY HcuglMvSgX6e65GPAGapi2QM0Sa0Aettrg/2Dc0xoFCx/EFaUw7ntbijv k4Z2t3V2/mVZV/PcDcrYYggoggY/80W4J3kgBII6WOlyi2bwmOTPZRR3f Y8TCzKz2+LXmz2nqGGi7nh9KZyZIfnwQgsaKn7iYaTzrZExC3KxsI6A6Y oIRhdsv+fa9Jv3Ebfp55OkfUxlcBf5ZR5ZSjt+ZO2u2DVXBf+DXSQGDvE w==; X-IronPort-AV: E=McAfee;i="6400,9594,10352"; a="333140578" X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="333140578" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2022 00:04:10 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,238,1647327600"; d="scan'208";a="599058717" Received: from silpixa00399302.ir.intel.com ([10.237.214.136]) by orsmga008.jf.intel.com with ESMTP; 20 May 2022 00:04:09 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, anoobj@marvell.com, roy.fan.zhang@intel.com, Arek Kusztal Subject: [PATCH 40/40] test/crypto: added test for dh priv key generation Date: Fri, 20 May 2022 06:54:45 +0100 Message-Id: <20220520055445.40063-41-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> References: <20220520055445.40063-1-arkadiuszx.kusztal@intel.com> 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 - re-added test for dh private gey generation. This time zero length of priv key determines if key is generated. Signed-off-by: Arek Kusztal --- app/test/test_cryptodev_asym.c | 90 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c index ed86eaf8ba..3a562eb443 100644 --- a/app/test/test_cryptodev_asym.c +++ b/app/test/test_cryptodev_asym.c @@ -1290,6 +1290,90 @@ test_dh_gen_pub_key(struct rte_crypto_asym_xform *xfrm) } static int +test_dh_gen_kp(struct rte_crypto_asym_xform *xfrm) +{ + struct crypto_testsuite_params_asym *ts_params = &testsuite_params; + struct rte_mempool *op_mpool = ts_params->op_mpool; + struct rte_mempool *sess_mpool = ts_params->session_mpool; + uint8_t dev_id = ts_params->valid_devs[0]; + struct rte_crypto_asym_op *asym_op = NULL; + struct rte_crypto_op *op = NULL, *result_op = NULL; + void *sess = NULL; + int ret, status = TEST_SUCCESS; + uint8_t out_pub_key[TEST_DH_MOD_LEN]; + uint8_t out_prv_key[TEST_DH_MOD_LEN]; + struct rte_crypto_asym_xform xform = *xfrm; + + /* set up crypto op data structure */ + op = rte_crypto_op_alloc(op_mpool, RTE_CRYPTO_OP_TYPE_ASYMMETRIC); + if (!op) { + RTE_LOG(ERR, USER1, + "line %u FAILED: %s", + __LINE__, "Failed to allocate asymmetric crypto " + "operation struct"); + status = TEST_FAILED; + goto error_exit; + } + asym_op = op->asym; + /* Setup a xform chain to generate + * private key first followed by + * public key + */ + + asym_op->dh.op_type = RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE; + asym_op->dh.pub_key.data = out_pub_key; + asym_op->dh.pub_key.length = sizeof(out_pub_key); + asym_op->dh.priv_key.data = out_prv_key; + asym_op->dh.priv_key.length = 0; + + ret = rte_cryptodev_asym_session_create(dev_id, &xform, sess_mpool, &sess); + if (ret < 0) { + RTE_LOG(ERR, USER1, + "line %u FAILED: %s", __LINE__, + "Session creation failed"); + status = (ret == -ENOTSUP) ? TEST_SKIPPED : TEST_FAILED; + goto error_exit; + } + + /* attach asymmetric crypto session to crypto operations */ + rte_crypto_op_attach_asym_session(op, sess); + + RTE_LOG(DEBUG, USER1, "Process ASYM operation"); + + /* Process crypto operation */ + if (rte_cryptodev_enqueue_burst(dev_id, 0, &op, 1) != 1) { + RTE_LOG(ERR, USER1, + "line %u FAILED: %s", + __LINE__, "Error sending packet for operation"); + status = TEST_FAILED; + goto error_exit; + } + + while (rte_cryptodev_dequeue_burst(dev_id, 0, &result_op, 1) == 0) + rte_pause(); + + if (result_op == NULL) { + RTE_LOG(ERR, USER1, + "line %u FAILED: %s", + __LINE__, "Failed to process asym crypto op"); + status = TEST_FAILED; + goto error_exit; + } + debug_hexdump(stdout, "priv key:", + out_prv_key, asym_op->dh.priv_key.length); + debug_hexdump(stdout, "pub key:", + out_pub_key, asym_op->dh.pub_key.length); + +error_exit: + if (sess != NULL) + rte_cryptodev_asym_session_free(dev_id, sess); + if (op != NULL) + rte_crypto_op_free(op); + + return status; +} + +static int test_mod_inv(void) { struct crypto_testsuite_params_asym *ts_params = &testsuite_params; @@ -1525,6 +1609,12 @@ test_dh_keygenration(void) dh_test_params.priv_key.length); RTE_LOG(INFO, USER1, + "Test Public and Private key pair generation\n"); + + status = test_dh_gen_kp(&dh_xform); + TEST_ASSERT_EQUAL(status, 0, "Test failed"); + + RTE_LOG(INFO, USER1, "Test Public Key Generation using pre-defined priv key\n"); status = test_dh_gen_pub_key(&dh_xform);