From patchwork Wed Apr 6 14:11:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 109210 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 45244A0507; Wed, 6 Apr 2022 16:27:12 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E0C9540689; Wed, 6 Apr 2022 16:27:11 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id 150744014F for ; Wed, 6 Apr 2022 16:27: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=1649255230; x=1680791230; h=from:to:cc:subject:date:message-id; bh=o64CvzztA2BldIIyfHzUUOXDhpjCdL7t5nVB9eFXY8U=; b=F/lf+Aep7WHCS+1d4hi/IUO5gPFvFQ4FDkO/V3Yt+I1WZKHzmTGQXqZD aS/t8WFP2HTzYDDkYjQfjGkRU1RAEsBFa9nxgXC3a4IrqtRyNXwJSqa09 2wSJSlV4FVjSYvrQZZGhOKEyTgGtzAlqr6VXtpqmXJCFQ0UxaSFbI5zP7 MRUXYhI9NQPXS18R9uFvMcY2ypLiiRkkIGY3cJvo9oluFxe1mXVnYnoJb MKnAERdjPmWaFAHr6RWYO82VGrf6ogEO1HgQaEI2CsqAR6cRH7eqj3Lwp wboyR5TT3KfvR3+cBmlHuPZrPvbeHAk305AWLf2fQSkQLG+zdaW+qU16M g==; X-IronPort-AV: E=McAfee;i="6200,9189,10309"; a="347505800" X-IronPort-AV: E=Sophos;i="5.90,240,1643702400"; d="scan'208";a="347505800" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Apr 2022 07:12:04 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,240,1643702400"; d="scan'208";a="588386010" Received: from silpixa00400308.ir.intel.com ([10.237.214.95]) by orsmga001.jf.intel.com with ESMTP; 06 Apr 2022 07:12:02 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, roy.fan.zhang@intel.com, kai.ji@intel.com, Arek Kusztal Subject: [PATCH 1/2] cryptodev: move dh type from xform to dh op Date: Wed, 6 Apr 2022 15:11:57 +0100 Message-Id: <20220406141158.15703-1-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.17.1 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 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 this is xform member, session needs to be created twice for the same group, similar problem would be observed in sessionless case. Additionally it will help extending DH to support Elliptic Curves. Signed-off-by: Arek Kusztal --- lib/cryptodev/rte_crypto_asym.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/cryptodev/rte_crypto_asym.h b/lib/cryptodev/rte_crypto_asym.h index cd24d4b07b..f0b5787f33 100644 --- a/lib/cryptodev/rte_crypto_asym.h +++ b/lib/cryptodev/rte_crypto_asym.h @@ -256,8 +256,6 @@ struct rte_crypto_modinv_xform { * */ struct rte_crypto_dh_xform { - enum rte_crypto_asym_op_type type; - /**< Setup xform for key generate or shared secret compute */ rte_crypto_uint p; /**< Prime modulus data */ rte_crypto_uint g; @@ -391,6 +389,8 @@ struct rte_crypto_rsa_op_param { * @note: */ struct rte_crypto_dh_op_param { + enum rte_crypto_asym_op_type op_type; + /**< Diffie-Hellman phase */ rte_crypto_uint pub_key; /**< * Output generated public key when xform type is From patchwork Wed Apr 6 14:11:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadiusz Kusztal X-Patchwork-Id: 109211 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 7987BA0507; Wed, 6 Apr 2022 16:27:17 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D0C4C427EC; Wed, 6 Apr 2022 16:27:12 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id C764E4014F for ; Wed, 6 Apr 2022 16:27:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1649255231; x=1680791231; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=jkvBwlTw6/7VpKJWQECM6q9tgsi645W6DNNe5qJxfD8=; b=VpfEZ4pZ5Uym1D+hnnMw5LAHHIS/aeX4/rjXbRvtsRoxEygydRISArwk fa8T0YkOHnTiRH4mLFm8hb5W0g6+fdwWJspoiREd7tyTZvgsg+mzj/To2 RKeE5MWhnP9MhF79P1Nktvt1tE+Oc7qfJbcjzK5eKgUZurhGg8g+PC7p+ EYfNezQ0MMIr+8wFsrcvj1W8NO65jLPpDzIiX+R7nVH/pakP7P0d/nhYH us95VxSf5QPt2SxzVmK37+G0fZ0NPtiPpF2wRLu/yCYoABng5OsPJucGZ E+SdDepoSxEPGr23bWXdh7E9AWVYH5zIAQk+ZNviG+4vOL8NtfQxlWg+f Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10309"; a="347505812" X-IronPort-AV: E=Sophos;i="5.90,240,1643702400"; d="scan'208";a="347505812" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Apr 2022 07:12:07 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,240,1643702400"; d="scan'208";a="588386020" Received: from silpixa00400308.ir.intel.com ([10.237.214.95]) by orsmga001.jf.intel.com with ESMTP; 06 Apr 2022 07:12:06 -0700 From: Arek Kusztal To: dev@dpdk.org Cc: gakhil@marvell.com, roy.fan.zhang@intel.com, kai.ji@intel.com, Arek Kusztal Subject: [PATCH 2/2] test/crypto: move dh type from xform to dh op Date: Wed, 6 Apr 2022 15:11:58 +0100 Message-Id: <20220406141158.15703-2-arkadiuszx.kusztal@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220406141158.15703-1-arkadiuszx.kusztal@intel.com> References: <20220406141158.15703-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 This commit reflects API changes in Diffie-Hellman. Signed-off-by: Arek Kusztal --- app/test/test_cryptodev_asym.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c index 32407233f0..9b9ad3a795 100644 --- a/app/test/test_cryptodev_asym.c +++ b/app/test/test_cryptodev_asym.c @@ -1124,8 +1124,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_OP_SHARED_SECRET_COMPUTE; xform.next = NULL; + asym_op->dh.op_type = RTE_CRYPTO_ASYM_OP_SHARED_SECRET_COMPUTE; 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; @@ -1206,7 +1206,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; + asym_op->dh.op_type = RTE_CRYPTO_ASYM_OP_PRIVATE_KEY_GENERATE; xform.next = NULL; asym_op->dh.priv_key.data = output; asym_op->dh.priv_key.length = sizeof(output); @@ -1289,7 +1289,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; + asym_op->dh.op_type = RTE_CRYPTO_ASYM_OP_PUBLIC_KEY_GENERATE; xform.next = NULL; asym_op->dh.pub_key.data = output; @@ -1379,9 +1379,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; + */ + asym_op->dh.op_type = RTE_CRYPTO_ASYM_OP_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; + asym_op->dh.op_type = RTE_CRYPTO_ASYM_OP_PUBLIC_KEY_GENERATE; xform.next = &pub_key_xform; asym_op->dh.pub_key.data = out_pub_key; @@ -2209,7 +2210,6 @@ test_dh_set_pubkey_session(uint8_t dev_id, void **sess, xform->dh.g.length = group->g.bytesize; xform->dh.p.data = group->p.data; xform->dh.p.length = group->p.bytesize; - xform->dh.type = type; ret = rte_cryptodev_asym_session_create(dev_id, xform, testsuite_params.session_mpool, sess); if (ret)