From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id BAA9A45BD5; Fri, 25 Oct 2024 12:00:41 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AC7DF40156; Fri, 25 Oct 2024 12:00:41 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.9]) by mails.dpdk.org (Postfix) with ESMTP id 9531C4003C for ; Fri, 25 Oct 2024 12:00: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=1729850440; x=1761386440; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=sLAkpHPnj9vcRIkcBi4EFGqEzlw5uSmYw1JMmptiWis=; b=WsJJy+dOPbsygolMzSAA9iK8aNRhJZjaWx2dacgnaIXL2Rlk31JGj9EN TxkH8KM6tONrUnYw9T6/AbsIb5hHcb1A45hjCMkDmPOdLZKSKfGRNtlAl tLzEGGJCHl1fwfPyrdWCmg7Gt1kHr9QmRrliiPibGMVSDyo3hQz0SsDrl nKhk3/77Llvyb28Xan6OTAhht4tRQKGGFemJXGPZVVTAkgJKfHw+CuPL0 A9jFEAyFudmYDgi03SJTDa3afeKEOTgEGdVR4eFIlCT/qLuGWlr0JY/sq 5xxtU2zV6m3KEwRLhZNJtENpjcYkJzwaOs3oOqVo45JVmapcfvLuPaHSi g==; X-CSE-ConnectionGUID: ROpHAFo0S5GJtbAuBSbOeA== X-CSE-MsgGUID: UKd/zABmRzWrXwBgHL3mkA== X-IronPort-AV: E=McAfee;i="6700,10204,11235"; a="40130664" X-IronPort-AV: E=Sophos;i="6.11,231,1725346800"; d="scan'208";a="40130664" Received: from fmviesa010.fm.intel.com ([10.60.135.150]) by fmvoesa103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Oct 2024 03:00:38 -0700 X-CSE-ConnectionGUID: EbbK4X/7SBqnK0vN7Rring== X-CSE-MsgGUID: U16xSi2FSAGsPqqvq64WsQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.11,231,1725346800"; d="scan'208";a="81191247" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmviesa010.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 25 Oct 2024 03:00:39 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 25 Oct 2024 03:00:38 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39 via Frontend Transport; Fri, 25 Oct 2024 03:00:38 -0700 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (104.47.51.42) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Fri, 25 Oct 2024 03:00:37 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VBZ6YQV3wya7Dukxtoixch9vVUEoxCcbGDfv4YgjfRzb1FFc3V4qac47Zut6dtFhCSo2UzTnYLxd49gxepDN35HJt7UEEUTSPjyGWa3MfSGgR/ExQBcaG55IlqHJhtC7t+Kb71z4QKYh2ZRXG1qP4je/OwqFjuSnFAJ4f/shF0xSSnSlmy+9whPOjZdgHKuPROzuRiy7yHREYqvToX/ASadeHrJUkGIt0OjzL6PXdwY0TzqvNbVGbDKS8Zk+Jzht6kFJTF9YPVt6Urh08rjCJzdEYD+zn6NNxw8mZftKxMiI+ZwRLfX4qSSbDi9nx+5fORtKvUMty51NuFff4koyZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=fxAZmU+vI9vPSr7xELU3FO2N5MtHhaES4Pa1vWt1goU=; b=ymGSNGtwvL0dxt2Z1O7sH/GePm4JxxU03JQUj9gy4ibwnl8ipTw3Ijkq0qY9jHsjqyf4RGy5fjFRKk05PcrWFCxrw/AfqXPA/WHUv6gdQguahz3MGbcv1q0r8ooxIpUaZDnsDQtdySmC3BXeTxyvC62vjD3bJ3yrw2sCNskL+OjvVEz+m70I5TRX0bQmfZ7AUcH32obFIf5LfWgz5xhU9tCpnf3QSiWYdbhNvLh59oa5CXC+f2iREORewxD7D9+ZLni8fjxxOLwPsOZOLqIEYn3JdVFsAu2h9ke6E1F973BSPQpXTmlK7VUjyVbCvgYAunf7pA+FAkhG2EI3JHW+Ew== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from PH0PR11MB5013.namprd11.prod.outlook.com (2603:10b6:510:30::21) by SA2PR11MB5099.namprd11.prod.outlook.com (2603:10b6:806:f9::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8093.21; Fri, 25 Oct 2024 10:00:35 +0000 Received: from PH0PR11MB5013.namprd11.prod.outlook.com ([fe80::1c54:1589:8882:d22b]) by PH0PR11MB5013.namprd11.prod.outlook.com ([fe80::1c54:1589:8882:d22b%3]) with mapi id 15.20.8093.014; Fri, 25 Oct 2024 10:00:35 +0000 From: "Kusztal, ArkadiuszX" To: Akhil Goyal , "dev@dpdk.org" CC: "Dooley, Brian" Subject: RE: [EXTERNAL] [PATCH v7 2/3] crypto/qat: add sm2 encryption/decryption function Thread-Topic: [EXTERNAL] [PATCH v7 2/3] crypto/qat: add sm2 encryption/decryption function Thread-Index: AQHbJS7HPX47eJaJMUCAhgz1oE7TZ7KVslyAgAGL20A= Date: Fri, 25 Oct 2024 10:00:35 +0000 Message-ID: References: <20241023081934.84997-1-arkadiuszx.kusztal@intel.com> <20241023081934.84997-3-arkadiuszx.kusztal@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR11MB5013:EE_|SA2PR11MB5099:EE_ x-ms-office365-filtering-correlation-id: 9ef75e0f-898a-4462-7961-08dcf4dbdedb x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|38070700018; x-microsoft-antispam-message-info: =?us-ascii?Q?IlDcptfxM3rWtSZ/0fkegylhWoazY4x6Y3vm9M5dEXAkmYyd2mkQQxy3vHrq?= =?us-ascii?Q?kUsYfGqPxN0JQA8gunYxcYMuJMJ2zdLHg2h8/hBIQ6WXY/hPFIMYDIIyRoxx?= =?us-ascii?Q?B2HG+CHHoG6lIpaejQAMp8uCU4lv21x+wLXM08VGvh56dkD0dijhCt/HBDjC?= =?us-ascii?Q?MvvZ7joJMx9gFyYCisTzKeUIx2p5/RFdRZDZofIAkCDohV2lUUPQco58CkUY?= =?us-ascii?Q?ynopljv+9eLyDjRjCP+VtRkTU2TN1nqOhVz13wGgvxBtYrNHlw7iLp3NZc/9?= =?us-ascii?Q?61eU2GR9N9ctkTeJ3kTp+VD/r7TmXxRBfT7rpwvmEmuDbjnA0+tcORy8b7PE?= =?us-ascii?Q?RP6DrSNCxO7qYm5O4QqJc3VF0HnMJE2dXFTH4r9Md3w/AggCvLGnwlo8aRNf?= =?us-ascii?Q?Gnft2XQfn3UsQ6j9tTz1WCUqX9PqTIP/2gG6EX9T5WpfQ0chMHDdUTk7Np20?= =?us-ascii?Q?a64f6iuBkfm08d8DoFe+sRCKwNMDRCSRHfB7Oqqs0U2gNkHIXQtIKef64UVX?= =?us-ascii?Q?PzxQAS/0LcfGzJVpy4KYGl7m4rUZBp6M0ITUgXLlfvPtgAieeCaQbFuCdQTt?= =?us-ascii?Q?Fj7lhVn72u3kfNGa9SW/EjLpThk1k0p775DRE7oRNShv2CdreCmYUt9xMKj8?= =?us-ascii?Q?TiaNX6EJel7LA+U6CIxjHlCz0Jk7RcQo74SXbA97oDPvkLTy7FJmUrma1YzS?= =?us-ascii?Q?jV/6TMOdrgy6BBhKoj+TJk8pp2+qUqY9QeHaAUIkBUUxqDQuXkhU0RpeX6ED?= =?us-ascii?Q?I3voedqgoibnM1/o84MOQIuHvSn9zDL2JfFJ0T5U0j9mrkeJlNTGTJjJgZ4W?= =?us-ascii?Q?KzNOhhO0xdPkBcoJoyjlc34CPOZsU/TgYtCTkK7SbZmMoIzGRYpwO3D66lhs?= =?us-ascii?Q?fcQqIUPmmcgKZ3abQ9oBUJosC0dKa/OqgYh2hZqQg71fwFfIVIg/RBkrn0ht?= =?us-ascii?Q?GFEIUZGmubkDXwo706JkDaa8hfmjQWLZrXzcAcafATIt3lDkJyIHXSQWONjy?= =?us-ascii?Q?De3xdN/tOlybXSwHz+TYvbsz1AGKX4xEQwikt6dlGGgTI162pnPlwezfWdrR?= =?us-ascii?Q?I9TicZLw+HnMwQbLZb9IhJF0rxj2tMbkabYjmvMn/Agu/z8PTLsEExGWxMnm?= =?us-ascii?Q?IHej6xXMdWOYIcGs/ddesPRSz9/ycxlhFyYqx8zIhxDlMSSMv21OayXcEP7t?= =?us-ascii?Q?LdXY79zDZdPyPOq++agmCkrxI0ZdkFFnAsRaMGyHvxn+FDw1kKMVD8PmVTFI?= =?us-ascii?Q?B1Ov4LpYjryZBswIyRzCJN9D+Sp+wiVLNFqtj9Zj4BdnXCAbJydF1mzLGXaA?= =?us-ascii?Q?9AYFqCW+cJl7IdO4m1K3739eLykHzJINLA+1ggQ6NpR+FT7NxgNseXqE2MVd?= =?us-ascii?Q?UBQ3m8U=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR11MB5013.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?wqGweDS5couVSz9e14MdcIZPy9BEnpxlaCwYOWw9qxlWsoH4VnRZQE80OZAB?= =?us-ascii?Q?EhjZzBmnrm/W0HnAfyc3vNzxR35sZFKGtPojMMnDj4bc0i5h+j/GuVEzhca5?= =?us-ascii?Q?QLmLRu7oFA8QGpg7ZgOBM1olHfQOcsnbfuio4Iz1ZRCfMuhZX03CTsUTb9iY?= =?us-ascii?Q?EPtm63G+0il9bjMBgkJjeT+CYnQUqtrvS/FIBM1QwUGW4ux4AhelQdisSdOD?= =?us-ascii?Q?mvlaay/FmkFAAHn7QyHnzppotFnes4jLcRGUmoDNcEgWV/MCk4kF+dtJYb2t?= =?us-ascii?Q?4hUEKsHSixpUwTHVBoPdqbT7J1LfHhj5piK9Gr+fdv6faGB0Ww5DVoztYH++?= =?us-ascii?Q?1cz6kMxfrd6LYuEQVBSWkpIBg0cwa0WsHods6lmPGypaqR+T+jIPx3nUcyhg?= =?us-ascii?Q?fSs26rz2EDnxQN7CYpShlVOZjrQvgTgJ12c4xjRrwOWJSXV69F/9a4Hqy+EZ?= =?us-ascii?Q?QzBI5PMYIhc1v+g/X7f6ZJ893tvsWTnPrvCh64Sj2Q3nUFqa67T+D8wdZ566?= =?us-ascii?Q?e+BxVoOyJ5L7E1eyk4urT0Yq6rOmQ2V3Ls9SwbTbCHMe9YVvbH8DFoApdpFu?= =?us-ascii?Q?91+ZUhG/o2qEepv6H3JSiZ/XlkIYwAy6gmjf35xVMBYFFx1Uktq/NKroSkhM?= =?us-ascii?Q?V3O6q8fWx8zoIKzzO5yydHm9n+jMPc2XNMsGCp184AhGZcRErYDBWbiwTK5B?= =?us-ascii?Q?gJgiXchRRbiguCYLtPKidEMh72TekymSg9Xq4+Q4gy9+yoHxVaeqXtbUb70z?= =?us-ascii?Q?s7Mon6+6xwAI8SRRwOGmswzKgpX2rXUJm4l+UNTFG53UqsfYP4DCV9BZ44Kv?= =?us-ascii?Q?klz5gfKr40in5kXIW+8tyz5i0yFM8igh+OwMjzv5jjh0Ztrkdr1lq6hOaE7n?= =?us-ascii?Q?UcPQREi1MyerKAWXVTMw3fPR4VmXJ2rdze0DOHo9UO9Qa4GdyyzZc6oDNI7b?= =?us-ascii?Q?JKHpASzNEUc5XZvfUdV4zMQuKE4pfZOH7ht6uxLVDPE7eSilRTJbsaspaHfe?= =?us-ascii?Q?kd+RCqNFTBlCg9tFrXHPBNEl0/Zv9idp6d8YbnPXJk0PnajF6EQ5MLOVoWfu?= =?us-ascii?Q?KPrmYn8HRJ/9BtiFwce4Ic+Q3KcTniHDVX+DF0eRlCxmHLXrYXp6khLxGhzM?= =?us-ascii?Q?bHRL1qYD2crcHN4hffEHY6wwn6htY+iNyb0LypCaEVszyb5nSlvuY+54Zh7G?= =?us-ascii?Q?Iy1KAUemr2/YpCwHShRuSFJOSLIjg0eVuPrScS/mbEKvDO7OX9eVSxkNJ+cX?= =?us-ascii?Q?sfDeYUWfunvE8/DhaD7Yu2vjpxbe1PwAnC9lMnVH0Y9SdpU1kY2vE8h20nQx?= =?us-ascii?Q?po3RtDn6aE/ewRYNaRhfV6xQM1ffpjFav6JRDXpkKrAfVX9HsZSbgMUTXXCB?= =?us-ascii?Q?IMZzDbRUUqwVWqFT4Wxtsrt058lEWmSUstRsnQHcDgyV7KSdYNA0BN4//Avh?= =?us-ascii?Q?ZJS3eORnT+d4xMayqrE87vo/ZbTHxsDbFGcxvMie7bt+6mlqWWUETulnFhBa?= =?us-ascii?Q?FFpnTagCjAupHBC1g0qOz0Az0OkeX/+4N6Sqop1A8Eec+YRNXAlSxTy0byC7?= =?us-ascii?Q?3Sdr9+HvFzsxumw53otwRowaKLcDdP/f6a8n6ikz2yRm0qF7GxVflD3XtKqU?= =?us-ascii?Q?MQ=3D=3D?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5013.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9ef75e0f-898a-4462-7961-08dcf4dbdedb X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Oct 2024 10:00:35.3097 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 7rOLnvdqndGAAWfJH9qvrjkK7oVrTzmSpVYnaeV/54cAWd0B4cnO0AqV6JNzxfNomnN/faOYARJDD2s8NNuVdm9V8Z1dToFTNOz7RNkko0M= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR11MB5099 X-OriginatorOrg: 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 > -----Original Message----- > From: Akhil Goyal > Sent: Thursday, October 24, 2024 12:21 PM > To: Kusztal, ArkadiuszX ; dev@dpdk.org > Cc: Dooley, Brian > Subject: RE: [EXTERNAL] [PATCH v7 2/3] crypto/qat: add sm2 > encryption/decryption function >=20 > > This commit adds SM2 elliptic curve based asymmetric encryption and > > decryption to the Intel QuickAssist Technology PMD. > > > > Signed-off-by: Arkadiusz Kusztal > > --- >=20 > You are again not using that capability flag RTE_CRYPTO_SM2_PARTIAL I > thought you would add that by RC2. Yes, I wanted to send some follow up for it because of the importance of th= e API patch, but since rc2 was moved I can do it properly this time, if this can still be accepted. >=20 > Also check asymmetric crypto openssl tests that are failing in CI for thi= s > patchset. Fixed. >=20 > > doc/guides/rel_notes/release_24_11.rst | 4 + > > .../common/qat/qat_adf/icp_qat_fw_mmp_ids.h | 3 + > > drivers/common/qat/qat_adf/qat_pke.h | 20 +++ > > drivers/crypto/qat/qat_asym.c | 140 +++++++++++++++++- > > 4 files changed, 161 insertions(+), 6 deletions(-) > > > > diff --git a/doc/guides/rel_notes/release_24_11.rst > > b/doc/guides/rel_notes/release_24_11.rst > > index 0f91dae987..2404753e54 100644 > > --- a/doc/guides/rel_notes/release_24_11.rst > > +++ b/doc/guides/rel_notes/release_24_11.rst > > @@ -247,6 +247,10 @@ New Features > > Added ability for node to advertise and update multiple xstat counte= rs, > > that can be retrieved using ``rte_graph_cluster_stats_get``. > > > > +* **Updated the QuickAssist Technology (QAT) Crypto PMD.** > > + > > + * Added SM2 encryption and decryption algorithms. > > + > > > > Removed Items > > ------------- > > diff --git a/drivers/common/qat/qat_adf/icp_qat_fw_mmp_ids.h > > b/drivers/common/qat/qat_adf/icp_qat_fw_mmp_ids.h > > index 630c6e1a9b..aa49612ca1 100644 > > --- a/drivers/common/qat/qat_adf/icp_qat_fw_mmp_ids.h > > +++ b/drivers/common/qat/qat_adf/icp_qat_fw_mmp_ids.h > > @@ -1542,6 +1542,9 @@ icp_qat_fw_mmp_ecdsa_verify_gfp_521_input::in > in > > @endlink > > * @li no output parameters > > */ > > > > +#define PKE_ECSM2_ENCRYPTION 0x25221720 #define > PKE_ECSM2_DECRYPTION > > +0x201716e6 > > + > > #define PKE_LIVENESS 0x00000001 > > /**< Functionality ID for PKE_LIVENESS > > * @li 0 input parameter(s) > > diff --git a/drivers/common/qat/qat_adf/qat_pke.h > > b/drivers/common/qat/qat_adf/qat_pke.h > > index f88932a275..ac051e965d 100644 > > --- a/drivers/common/qat/qat_adf/qat_pke.h > > +++ b/drivers/common/qat/qat_adf/qat_pke.h > > @@ -334,4 +334,24 @@ get_sm2_ecdsa_verify_function(void) > > return qat_function; > > } > > > > +static struct qat_asym_function > > +get_sm2_encryption_function(void) > > +{ > > + struct qat_asym_function qat_function =3D { > > + PKE_ECSM2_ENCRYPTION, 32 > > + }; > > + > > + return qat_function; > > +} > > + > > +static struct qat_asym_function > > +get_sm2_decryption_function(void) > > +{ > > + struct qat_asym_function qat_function =3D { > > + PKE_ECSM2_DECRYPTION, 32 > > + }; > > + > > + return qat_function; > > +} > > + > > #endif > > diff --git a/drivers/crypto/qat/qat_asym.c > > b/drivers/crypto/qat/qat_asym.c index 9e97582e22..991684135c 100644 > > --- a/drivers/crypto/qat/qat_asym.c > > +++ b/drivers/crypto/qat/qat_asym.c > > @@ -933,6 +933,15 @@ sm2_ecdsa_sign_set_input(struct > > icp_qat_fw_pke_request *qat_req, > > qat_req->input_param_count =3D 3; > > qat_req->output_param_count =3D 2; > > > > + HEXDUMP("SM2 K test", asym_op->sm2.k.data, > > + cookie->alg_bytesize); > > + HEXDUMP("SM2 K", cookie->input_array[0], > > + cookie->alg_bytesize); > > + HEXDUMP("SM2 msg", cookie->input_array[1], > > + cookie->alg_bytesize); > > + HEXDUMP("SM2 pkey", cookie->input_array[2], > > + cookie->alg_bytesize); > > + > > return RTE_CRYPTO_OP_STATUS_SUCCESS; } > > > > @@ -983,6 +992,114 @@ sm2_ecdsa_sign_collect(struct rte_crypto_asym_op > > *asym_op, > > return RTE_CRYPTO_OP_STATUS_SUCCESS; } > > > > +static int > > +sm2_encryption_set_input(struct icp_qat_fw_pke_request *qat_req, > > + struct qat_asym_op_cookie *cookie, > > + const struct rte_crypto_asym_op *asym_op, > > + const struct rte_crypto_asym_xform *xform) { > > + const struct qat_asym_function qat_function =3D > > + get_sm2_encryption_function(); > > + const uint32_t qat_func_alignsize =3D > > + qat_function.bytesize; > > + > > + SET_PKE_LN(asym_op->sm2.k, qat_func_alignsize, 0); > > + SET_PKE_LN(xform->ec.q.x, qat_func_alignsize, 1); > > + SET_PKE_LN(xform->ec.q.y, qat_func_alignsize, 2); > > + > > + cookie->alg_bytesize =3D qat_function.bytesize; > > + cookie->qat_func_alignsize =3D qat_function.bytesize; > > + qat_req->pke_hdr.cd_pars.func_id =3D qat_function.func_id; > > + qat_req->input_param_count =3D 3; > > + qat_req->output_param_count =3D 4; > > + > > + HEXDUMP("SM2 K", cookie->input_array[0], > > + qat_func_alignsize); > > + HEXDUMP("SM2 Q.x", cookie->input_array[1], > > + qat_func_alignsize); > > + HEXDUMP("SM2 Q.y", cookie->input_array[2], > > + qat_func_alignsize); > > + > > + return RTE_CRYPTO_OP_STATUS_SUCCESS; } > > + > > +static uint8_t > > +sm2_encryption_collect(struct rte_crypto_asym_op *asym_op, > > + const struct qat_asym_op_cookie *cookie) { > > + uint32_t alg_bytesize =3D cookie->alg_bytesize; > > + > > + rte_memcpy(asym_op->sm2.c1.x.data, cookie->output_array[0], > > alg_bytesize); > > + rte_memcpy(asym_op->sm2.c1.y.data, cookie->output_array[1], > > alg_bytesize); > > + rte_memcpy(asym_op->sm2.kp.x.data, cookie->output_array[2], > > alg_bytesize); > > + rte_memcpy(asym_op->sm2.kp.y.data, cookie->output_array[3], > > alg_bytesize); > > + asym_op->sm2.c1.x.length =3D alg_bytesize; > > + asym_op->sm2.c1.y.length =3D alg_bytesize; > > + asym_op->sm2.kp.x.length =3D alg_bytesize; > > + asym_op->sm2.kp.y.length =3D alg_bytesize; > > + > > + HEXDUMP("c1[x1]", cookie->output_array[0], > > + alg_bytesize); > > + HEXDUMP("c1[y]", cookie->output_array[1], > > + alg_bytesize); > > + HEXDUMP("kp[x]", cookie->output_array[2], > > + alg_bytesize); > > + HEXDUMP("kp[y]", cookie->output_array[3], > > + alg_bytesize); > > + return RTE_CRYPTO_OP_STATUS_SUCCESS; } > > + > > + > > +static int > > +sm2_decryption_set_input(struct icp_qat_fw_pke_request *qat_req, > > + struct qat_asym_op_cookie *cookie, > > + const struct rte_crypto_asym_op *asym_op, > > + const struct rte_crypto_asym_xform *xform) { > > + const struct qat_asym_function qat_function =3D > > + get_sm2_decryption_function(); > > + const uint32_t qat_func_alignsize =3D > > + qat_function.bytesize; > > + > > + SET_PKE_LN(xform->ec.pkey, qat_func_alignsize, 0); > > + SET_PKE_LN(asym_op->sm2.c1.x, qat_func_alignsize, 1); > > + SET_PKE_LN(asym_op->sm2.c1.y, qat_func_alignsize, 2); > > + > > + cookie->alg_bytesize =3D qat_function.bytesize; > > + cookie->qat_func_alignsize =3D qat_function.bytesize; > > + qat_req->pke_hdr.cd_pars.func_id =3D qat_function.func_id; > > + qat_req->input_param_count =3D 3; > > + qat_req->output_param_count =3D 2; > > + > > + HEXDUMP("d", cookie->input_array[0], > > + qat_func_alignsize); > > + HEXDUMP("c1[x]", cookie->input_array[1], > > + qat_func_alignsize); > > + HEXDUMP("c1[y]", cookie->input_array[2], > > + qat_func_alignsize); > > + > > + return RTE_CRYPTO_OP_STATUS_SUCCESS; } > > + > > + > > +static uint8_t > > +sm2_decryption_collect(struct rte_crypto_asym_op *asym_op, > > + const struct qat_asym_op_cookie *cookie) { > > + uint32_t alg_bytesize =3D cookie->alg_bytesize; > > + > > + rte_memcpy(asym_op->sm2.kp.x.data, cookie->output_array[0], > > alg_bytesize); > > + rte_memcpy(asym_op->sm2.kp.y.data, cookie->output_array[1], > > alg_bytesize); > > + asym_op->sm2.kp.x.length =3D alg_bytesize; > > + asym_op->sm2.kp.y.length =3D alg_bytesize; > > + > > + HEXDUMP("kp[x]", cookie->output_array[0], > > + alg_bytesize); > > + HEXDUMP("kp[y]", cookie->output_array[1], > > + alg_bytesize); > > + return RTE_CRYPTO_OP_STATUS_SUCCESS; } > > + > > static int > > asym_set_input(struct icp_qat_fw_pke_request *qat_req, > > struct qat_asym_op_cookie *cookie, > > @@ -1015,14 +1132,20 @@ asym_set_input(struct icp_qat_fw_pke_request > > *qat_req, > > asym_op, xform); > > } > > case RTE_CRYPTO_ASYM_XFORM_SM2: > > - if (asym_op->sm2.op_type =3D=3D > > - RTE_CRYPTO_ASYM_OP_VERIFY) { > > + if (asym_op->sm2.op_type =3D=3D > > RTE_CRYPTO_ASYM_OP_ENCRYPT) { > > + return sm2_encryption_set_input(qat_req, cookie, > > + asym_op, xform); > > + } else if (asym_op->sm2.op_type =3D=3D > > RTE_CRYPTO_ASYM_OP_DECRYPT) { > > + return sm2_decryption_set_input(qat_req, cookie, > > + asym_op, xform); > > + } else if (asym_op->sm2.op_type =3D=3D > > RTE_CRYPTO_ASYM_OP_VERIFY) { > > return sm2_ecdsa_verify_set_input(qat_req, cookie, > > asym_op, xform); > > - } else { > > + } else if (asym_op->sm2.op_type =3D=3D > > RTE_CRYPTO_ASYM_OP_SIGN) { > > return sm2_ecdsa_sign_set_input(qat_req, cookie, > > asym_op, xform); > > } > > + break; > > default: > > QAT_LOG(ERR, "Invalid/unsupported asymmetric crypto > xform"); > > return -EINVAL; > > @@ -1114,7 +1237,13 @@ qat_asym_collect_response(struct rte_crypto_op > > *op, > > case RTE_CRYPTO_ASYM_XFORM_ECDH: > > return ecdh_collect(asym_op, cookie); > > case RTE_CRYPTO_ASYM_XFORM_SM2: > > - return sm2_ecdsa_sign_collect(asym_op, cookie); > > + if (asym_op->sm2.op_type =3D=3D > > RTE_CRYPTO_ASYM_OP_ENCRYPT) > > + return sm2_encryption_collect(asym_op, cookie); > > + else if (asym_op->sm2.op_type =3D=3D > > RTE_CRYPTO_ASYM_OP_DECRYPT) > > + return sm2_decryption_collect(asym_op, cookie); > > + else > > + return sm2_ecdsa_sign_collect(asym_op, cookie); > > + > > default: > > QAT_LOG(ERR, "Not supported xform type"); > > return RTE_CRYPTO_OP_STATUS_ERROR; @@ -1386,9 +1515,8 > @@ > > qat_asym_session_configure(struct rte_cryptodev *dev __rte_unused, > > case RTE_CRYPTO_ASYM_XFORM_ECDSA: > > case RTE_CRYPTO_ASYM_XFORM_ECPM: > > case RTE_CRYPTO_ASYM_XFORM_ECDH: > > - session_set_ec(qat_session, xform); > > - break; > > case RTE_CRYPTO_ASYM_XFORM_SM2: > > + session_set_ec(qat_session, xform); > > break; > > default: > > ret =3D -ENOTSUP; > > -- > > 2.17.1