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 D2110A04FF; Tue, 22 Mar 2022 11:23:24 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 92E0E40E64; Tue, 22 Mar 2022 11:23:23 +0100 (CET) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id 0B97440151 for ; Tue, 22 Mar 2022 11:23:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1647944602; x=1679480602; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=GvZNzF3C0UyUwj6meuEsatOlNL/cfbkb8rM3BAYDquo=; b=m50Pa/jbPRrpvbCC2rz1P0cJsHa6sCcLjvivcN4uu6V8OdVDkaqgnS/6 7VV5kg4nRcG4zrOjVHCkXumaN+RDQh0qeY2hAthVxf5iKnfWQYOoRfUgn NM3FJYgvmXpb0/d+E4JTpmsFma/Z9VtP3MAhsrwXykVfcEOOdkiY9Pn8Y glBUG0IfwnDnYfIENTvTkg+NcNE+3ut4vOGpIvY6dMFncHstQS3dCo1hY pCCs4IO50f4XpFyjhewSnMOXf40ktw3hy8WcetVqiMFgGzNIHs2JhdA7T SYpEZDXbH1BLFy5aE85zwG3qTpRHga8hPmySAPuban8zTv4HNOf8x0qCs w==; X-IronPort-AV: E=McAfee;i="6200,9189,10293"; a="257730311" X-IronPort-AV: E=Sophos;i="5.90,201,1643702400"; d="scan'208";a="257730311" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Mar 2022 03:23:20 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,201,1643702400"; d="scan'208";a="552048727" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga007.fm.intel.com with ESMTP; 22 Mar 2022 03:23:20 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Tue, 22 Mar 2022 03:23:19 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Tue, 22 Mar 2022 03:23:19 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.105) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.21; Tue, 22 Mar 2022 03:23:19 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=g+8+stm4ah+KC2KrUFKTT5oV7pu/4qO8IwjJAFswbsxa8pkk8+MNMahuT4Vpet7iW8sUp+Gbl48MOgDIPhgMfuOhyiXACC/S/lFFKqgK73rRcJQ6tZIZYFvmkTw2IPpoMqfO9BbFl90VJzGNCCN8BaWVPuqmfz8qnoVvA9WUFuhAcR1/hyn/+a2nFc145tpxhbD2ShBbXokPXijequ4WUdTnAPrqJF9+g1JIyCsOgdp1IYHBhBtgJYg5yIoTELrRcc+VD7lg2cB+gXXPUNay/dbl7iQBPHJUFBCVgOK9uxdE1GIScdjHUOT33I12lT0gRaH8XHRWagFjLVRh3IYjsg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=6Y2VzlUuwCNsdgtTym/XG5x1KOxy676AilPjHWv5/cc=; b=P5dZCogzHQkOwnpkfhOWJKbRv6CuEOfBB0qtxV65yeAfQ9WiQrUj7y6ZKSd/Sm9aEMdjSGJvjFrEmcIeGPdGUIvMb9yVYuRaKkmbBinVNTW6xKWZ9Xo4L/fsLRH1ngbmiFpjRqlOwOCFERpwVmEP/CSTpuPEtENjELk4msHl+RzaxhrL/xoCmzAP61u55Wa+JWcpmVxbxdE5r2+fYCkyyiXZXkX5VLz5F72FRVkvSAaVBsiB375AKMDovNEtfy3nEEJvjV6IaQdxr37VksYz3fxozOGwMUzLXPJ980oEw/nfkuREUI4f1qK523qlJlICwgabQt/Ov3lpxFImMB4l9w== 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 SN6PR11MB2653.namprd11.prod.outlook.com (2603:10b6:805:63::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.17; Tue, 22 Mar 2022 10:23:18 +0000 Received: from PH0PR11MB5013.namprd11.prod.outlook.com ([fe80::8189:36b8:ed0e:2501]) by PH0PR11MB5013.namprd11.prod.outlook.com ([fe80::8189:36b8:ed0e:2501%7]) with mapi id 15.20.5081.022; Tue, 22 Mar 2022 10:23:17 +0000 From: "Kusztal, ArkadiuszX" To: "dev@dpdk.org" CC: "gakhil@marvell.com" , "Zhang, Roy Fan" , "anoobj@marvell.com" Subject: RE: [RFC PATCH 2/2] test: add proper pkcs1 signature tests for rsa Thread-Topic: [RFC PATCH 2/2] test: add proper pkcs1 signature tests for rsa Thread-Index: AQHYPcR/jZutGutvOkOIk70L0Py9YazLHQ8wgAAT1kA= Date: Tue, 22 Mar 2022 10:23:17 +0000 Message-ID: References: <20220322081128.23733-1-arkadiuszx.kusztal@intel.com> <20220322081128.23733-2-arkadiuszx.kusztal@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.6.401.20 dlp-product: dlpe-windows authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 3f096238-936d-4923-c2ab-08da0bedfb68 x-ms-traffictypediagnostic: SN6PR11MB2653:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: tp/kQijMDYe8RjCUcQyuOuhPwFTS5XiqO3zCHGtlzhF/5JP0VfOT54ZI36zFPgtwc7Fx4AstpmjGlrfWPad5N2WzZCPrnhCgipoDiY+g33LS7IGaR6zFCiANZZIwfWdFFeeXCJZ+KfaN4aYJWXhc8vC0HIZGLWq6EeEaylJ/LItA1/AEdmaUJim5fDo+U5q5EvaU/DfXFz+5gQCJoLb655i+/9ZzxxI8F9bSjadHzRANYFdYSVHO8J58Me9lL2P65mWiyu6gEE4IYb8FC4QF9QOOMnPCd3D8bu2aD3dFdLOx/xyOzFbOaqaxCY8UvMCKJuBsgRcJgZrnwRWsPJMRehpNKchv+LuOA5aUdb0IySJH8oXpEvwpMKIBLjQUw1NofOejcCQOUjmVNx/k9NBm45ytbre3iQ/r21rFo8EF/C5EMX8Gqo1dPkAARISBwSFmhMSgDB5bL0SaRGtGmawgjpLojsEeQ/25i2r0JM4EFV2xvBMFnX4XY+PmbiHyIfP0Kd81oqqO3m2kjNNPqWD54SPUszCSicQvFeDnwP86wbnUTpTtC+MGP2fW+emhoZdvkgd8oOPsmaMjMujqBl2kF4NMlBxJKI4QkWXZr8uU69H7Iv3NKEZTqSOjO6IiBd8kwlFHT5FhCkaDinj83uPoyQWvUgZDZYq3CAkRwuJHhaX53Ww1cApPKcqTo6Hms3v9cymn+v+4FYm6P0v+pr5G4g== 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:(13230001)(366004)(8676002)(4326008)(66946007)(76116006)(66476007)(66446008)(64756008)(2940100002)(9686003)(53546011)(66556008)(6506007)(7696005)(71200400001)(316002)(508600001)(83380400001)(54906003)(26005)(186003)(6916009)(2906002)(30864003)(38070700005)(86362001)(33656002)(55016003)(82960400001)(38100700002)(52536014)(8936002)(122000001)(5660300002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?j3zMxcx+ipw7uKfyY6q1W/7wp5XgSrCs1nkCmrj8CFPIBaNXxe2tjwpkSBiX?= =?us-ascii?Q?S44H86wU+erIzT6bP+VfVF0mm1zYpdRiE5np3qP402vt3Sgl+B/Hsc0F4cKj?= =?us-ascii?Q?EWRM3v92nxB7aNh797rDinaHDLynisHA5pxPIXZ7w4dvzb33/9vANG0AbpQU?= =?us-ascii?Q?cukMFRpWcSSaeeqicxHBq7uheYpatXFUPILRA6jwSEF3uTje+G8s6H5fdPPh?= =?us-ascii?Q?vdElL9kTJe14i5qDFzZEyANYlQkAtajAjY4GPpzHRnQ8RFgwu0BjzaM4tcqO?= =?us-ascii?Q?XTru6E84Fe77KZP/HasfbI5mibpTgFsJlE6b4zJQwUh1viSKkVmXyVaA6dCX?= =?us-ascii?Q?Qgex+VgPLTfU0Lb4GMfu401YdFubFXhojrQTWOUJWh0GbC5kZ+6PgfgmAn+z?= =?us-ascii?Q?/c/x1ZtmSdG/rDPypHTClsbRsVYs52JAL98UaIRucKdmp9pQB0wYj9BJK+QU?= =?us-ascii?Q?5CKO0YHvxp+WLUoBY6UZpzewh6uguzgu0FxzcsCoxN75VkScf1hJ2/p4/mE+?= =?us-ascii?Q?QOjiq4HxYsDUEwgnPngyAFADq+mp7cGcbUQkNEH+gGF+ivcVfGdPWeRFxFrG?= =?us-ascii?Q?iC7zb0uaPSfIOYZzxbAQhCFBFqNi/MvbTzixbmiCejPSOmlhGO1WDk/jTZ4b?= =?us-ascii?Q?9ksZDKodQfU/V/eHCtqPPop4N6LmsXjOd1vtZOPcmSPd2mxA4vxhFT0l5wax?= =?us-ascii?Q?az4AnfF68rUbaCvcJ7+VGFszAmX5ATuiWW3FFCBWU76jLu12R7oo7YJO5UT6?= =?us-ascii?Q?JMHcu69ddgm/aNOLQQy55QmJydbi00hPPIuVuv2Nx5sRs/hYZIEv87fWkmTY?= =?us-ascii?Q?3me6m2y8aEyu5snsxmmTlYpcwrX6jouwbx71YDH5kfu19vfC8ep0ehcbi9hQ?= =?us-ascii?Q?h8sVxF+MO9EcPCXlTrrz2KVNg+wguSKhIi1mkBO5fwQcCthR/hWPftL1XYOS?= =?us-ascii?Q?bGb3EIZ7OLqt1+3QF0x3Kjw9hrAZGO3OEpEKj0d7PW3emI0UV1b5ATjs2bAX?= =?us-ascii?Q?sSc8VDg97RT/EOLQ9W5WSKZJaEU4XWTSEbir0HlGdYLzV0/MKc6DuY1k/T47?= =?us-ascii?Q?DNeI8FvtZo45v9NvnXHVMZQTsb6ey073IGxBynVHd9icBpiMs8Z0dnXELVZJ?= =?us-ascii?Q?HzepuvOKiiB7+ulBxVw2HrWGpRGqiXX+mcptJPeNw2/dtD6bVaIW4td2gIAd?= =?us-ascii?Q?kYpxn6Xm8uxf/mfIli7JJduJz1/+Vv8Ojomz2RxWklonQB/Vve6ROXojV+er?= =?us-ascii?Q?AbYFw7P5ahiGXrQk8ZK2z8Twl7ivqbdQZQNIhj2ifXEMRTfyjhTVlYMQDC4Q?= =?us-ascii?Q?MFFvLnOCroX6PV8ZziC/MGlFPywmO2QZUrXaLBzA+eY9ibG5GzLBMQ36jvY+?= =?us-ascii?Q?RZFCmFmcCe9KyYLgBKHgCr16fSPkw3l9ULtPzrP5QREVyQBQgJFX/CRLFQPB?= =?us-ascii?Q?Kq5+/w/AqN6GO7vTtKqT9we7k3sVpwhTJXVjj1weTxx6jSfAdAWLxw=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: 3f096238-936d-4923-c2ab-08da0bedfb68 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Mar 2022 10:23:17.8666 (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: frlHA0MbY8PylId84uO1hyN4lUZQSZpwFWBRQGNutN60jo9/Q7Xj/KvV3Z+g5qv0ZCH9cPF2hjTdVQGSTs+KsBaNrzo9mshNdUtNPQM30FM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2653 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 More explanation below. > -----Original Message----- > From: Kusztal, ArkadiuszX > Sent: Tuesday, March 22, 2022 10:14 AM > To: dev@dpdk.org > Cc: gakhil@marvell.com; Zhang, Roy Fan ; > anoobj@marvell.com > Subject: RE: [RFC PATCH 2/2] test: add proper pkcs1 signature tests for r= sa >=20 > Hi, >=20 > > -----Original Message----- > > From: Kusztal, ArkadiuszX > > Sent: Tuesday, March 22, 2022 9:11 AM > > To: dev@dpdk.org > > Cc: gakhil@marvell.com; Zhang, Roy Fan ; > > anoobj@marvell.com; Kusztal, ArkadiuszX > > Subject: [RFC PATCH 2/2] test: add proper pkcs1 signature tests for > > rsa > > > > This commit adds example pkcs1 signature tests. > > > > Signed-off-by: Arek Kusztal > > --- > > app/test/test_cryptodev_asym.c | 249 > > +++++++++++++++++++++++++++++-- > > drivers/crypto/openssl/rte_openssl_pmd.c | 34 ++++- > > lib/cryptodev/rte_crypto_asym.h | 6 +- > > 3 files changed, 270 insertions(+), 19 deletions(-) > > > > diff --git a/app/test/test_cryptodev_asym.c > > b/app/test/test_cryptodev_asym.c index 71378cbdb2..512eb34377 100644 > > --- a/app/test/test_cryptodev_asym.c > > +++ b/app/test/test_cryptodev_asym.c > > @@ -15,6 +15,7 @@ > > > > #include > > #include > > +#include > > > > #include "test_cryptodev.h" > > #include "test_cryptodev_dh_test_vectors.h" > > @@ -163,6 +164,222 @@ queue_ops_rsa_sign_verify(void *sess) > > return status; > > } > > > > +/* DPDK RFC RSA 22.07 */ > > + > > +static uint8_t > > +rsa_sign_pkcs_15_pt[] =3D { > > + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, > > + 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, > > + 0x11, 0x12, 0x13, 0x14, > > +}; > > + > > +static uint8_t > > +rsa_sign_pkcs_15_pt_sha256[] =3D { > > + 0xB1, 0xB2, 0xB3, 0xB4, 0xA1, 0xA2, 0xA3, 0xA4, > > + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, > > + 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, > > + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, }; > > + > > +static uint8_t > > +rsa_sign_pkcs_15_padded[] =3D { > > + 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0x02, 0x03, 0x04, > > + 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, > > + 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, > > +}; > > + > > +static uint8_t > > +rsa_sign_pkcs_15_padded_digestinfo_sha1[] =3D { > > + 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x30, 0x21, 0x30, > > + 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, > > + 0x05, 0x00, 0x04, 0x14, 0x01, 0x02, 0x03, 0x04, > > + 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, > > + 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, > > +}; > > + > > +static uint8_t > > +rsa_sign_pkcs_15_padded_digestinfo_sha256[] =3D { > > + 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, > > + 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x30, 0x31, 0x30, > > + 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, > > + 0x03, 0x04, 0x02, 0x01, 0x05, 0x00, 0x04, 0x20, > > + 0xB1, 0xB2, 0xB3, 0xB4, 0xA1, 0xA2, 0xA3, 0xA4, > > + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, > > + 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, > > + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, }; > > + > > +static void* > > +rfc2207_rsa_sign_pkcs_15_sesscreat(void) > > +{ > > + struct crypto_testsuite_params_asym *ts_params =3D &testsuite_params; > > + struct rte_mempool *sess_mpool =3D ts_params->session_mpool; > > + uint8_t dev_id =3D ts_params->valid_devs[0]; > > + static void *sess =3D NULL; > > + int ret; > > + > > + if (sess) > > + return sess; > > + ret =3D rte_cryptodev_asym_session_create(dev_id, &rsa_xform, > > +sess_mpool, &sess); > > + > > + if (ret < 0) { > > + RTE_LOG(ERR, USER1, "Session creation failed for " > > + "sign_verify\n"); > > + return NULL; > > + } > > + return sess; > > +} > > + > > +struct rfc2207_rsa_test_data > > +{ > > + enum rte_crypto_rsa_padding_type type; > > + rte_crypto_param input; > > + enum rte_crypto_auth_algorithm hash; }; > > + > [Arek] - rfc2207_rsa_test_data_ssl23 and rfc2207_rsa_test_data_pkcs15_sha= 1 > creates PKCS1_5 signature from same data, but signatures are different as > RTE_CRYPTO_RSA_PADDING_SSL23 (PKCS1_5 flag in other patch) which is what > we currently have in Cryptodev does not use AlgorithmIdentifier. [Arek] - this patch is not meant to be applied, but only to show what kind = of problem we are dealing with right now in terms of RSA padding. And why OpenSSL RSA_private_encrypt is not doing proper signature, but stil= l this option may be in Cryptodev (pre TLS1.1) as a different padding or RS= A flag. >=20 > > +struct rfc2207_rsa_test_data > > +rfc2207_rsa_test_data_ssl23 =3D { > > + .type =3D RTE_CRYPTO_RSA_PADDING_SSL23, > > + .input.data =3D rsa_sign_pkcs_15_pt, > > + .input.length =3D sizeof(rsa_sign_pkcs_15_pt), }; > > + > > +struct rfc2207_rsa_test_data > > +rfc2207_rsa_test_data_ssl23_padded =3D { > > + .type =3D RTE_CRYPTO_RSA_PADDING_NONE, > > + .input.data =3D rsa_sign_pkcs_15_padded, > > + .input.length =3D sizeof(rsa_sign_pkcs_15_padded), }; > > + > > +struct rfc2207_rsa_test_data > > +rfc2207_rsa_test_data_pkcs15_sha1 =3D { > > + .type =3D RTE_CRYPTO_RSA_PADDING_PKCS1_5, > > + .hash =3D RTE_CRYPTO_AUTH_SHA1, > > + .input.data =3D rsa_sign_pkcs_15_pt, > > + .input.length =3D sizeof(rsa_sign_pkcs_15_pt), }; > > + > > +struct rfc2207_rsa_test_data > > +rfc2207_rsa_test_data_pkcs15_digestinfo_sha1 =3D { > > + .type =3D RTE_CRYPTO_RSA_PADDING_NONE, > > + .input.data =3D rsa_sign_pkcs_15_padded_digestinfo_sha1, > > + .input.length =3D sizeof(rsa_sign_pkcs_15_padded_digestinfo_sha1), > > +}; > > + > > +struct rfc2207_rsa_test_data > > +rfc2207_rsa_test_data_pkcs15_sha256 =3D { > > + .type =3D RTE_CRYPTO_RSA_PADDING_PKCS1_5, > > + .hash =3D RTE_CRYPTO_AUTH_SHA256, > > + .input.data =3D rsa_sign_pkcs_15_pt_sha256, > > + .input.length =3D sizeof(rsa_sign_pkcs_15_pt_sha256), > > +}; > > + > > +struct rfc2207_rsa_test_data > > +rfc2207_rsa_test_data_pkcs15_digestinfo_sha256 =3D { > > + .type =3D RTE_CRYPTO_RSA_PADDING_NONE, > > + .input.data =3D rsa_sign_pkcs_15_padded_digestinfo_sha256, > > + .input.length =3D sizeof(rsa_sign_pkcs_15_padded_digestinfo_sha256), > > +}; > > + > > +struct rfc2207_rsa_test_data > > +rfc2207_rsa_test_data_pkcs15_oaep =3D { > > + .type =3D RTE_CRYPTO_RSA_PADDING_NONE, > > + .input.data =3D rsa_sign_pkcs_15_padded_digestinfo_sha256, > > + .input.length =3D sizeof(rsa_sign_pkcs_15_padded_digestinfo_sha256), > > +}; > > + > > +static int > > +rfc2207_rsa_sign_pkcs_15(const void *test_data) { > > + struct crypto_testsuite_params_asym *ts_params; > > + uint8_t dev_id; > > + struct rte_crypto_op *op, *result_op; > > + struct rte_crypto_asym_op *asym_op; > > + struct rte_mempool *op_mpool; > > + void *sess; > > + uint8_t result[TEST_DATA_SIZE]; > > + const struct rfc2207_rsa_test_data *tdata =3D test_data; > > + > > + ts_params =3D &testsuite_params; > > + dev_id =3D ts_params->valid_devs[0]; > > + op_mpool =3D ts_params->op_mpool; > > + op =3D rte_crypto_op_alloc(op_mpool, > > RTE_CRYPTO_OP_TYPE_ASYMMETRIC); > > + if (op =3D=3D NULL) { > > + RTE_LOG(ERR, USER1, "Failed to allocate asymmetric crypto " > > + "operation struct\n"); > > + return TEST_FAILED; > > + } > > + > > + sess =3D rfc2207_rsa_sign_pkcs_15_sesscreat(); > > + if (sess =3D=3D NULL) { > > + RTE_LOG(ERR, USER1, "Failed to allocate asymmetric crypto " > > + "operation struct\n"); > > + return TEST_FAILED; > > + } > > + > > + asym_op =3D op->asym; > > + asym_op->rsa.op_type =3D RTE_CRYPTO_ASYM_OP_SIGN; > > + asym_op->rsa.padding.type =3D tdata->type; > > + asym_op->rsa.padding.hash =3D tdata->hash; > > + asym_op->rsa.input =3D tdata->input; > > + asym_op->rsa.output.data =3D result; > > + > > + rte_crypto_op_attach_asym_session(op, sess); > > + > > + /* Process crypto operation */ > > + if (rte_cryptodev_enqueue_burst(dev_id, 0, &op, 1) !=3D 1) { > > + RTE_LOG(ERR, USER1, "Error sending packet for encryption\n"); > > + return -1; > > + } > > + > > + while (rte_cryptodev_dequeue_burst(dev_id, 0, &result_op, 1) =3D=3D 0= ) > > + rte_pause(); > > + > > + if (result_op =3D=3D NULL) { > > + RTE_LOG(ERR, USER1, "Failed to process encryption op\n"); > > + return -1; > > + } > > + > > + printf("\nOutput len =3D %lu", asym_op->rsa.output.length); > > + rte_hexdump(stdout, "Signature", asym_op->rsa.output.data, > > +asym_op->rsa.output.length); > > + > > + return 0; > > +} > > + > > +/* !---! DPDK RFC RSA 22.07 */ > > + > > static int > > queue_ops_rsa_enc_dec(void *sess) > > { > > @@ -2147,20 +2364,32 @@ static struct unit_test_suite > > cryptodev_openssl_asym_testsuite =3D { > > .setup =3D testsuite_setup, > > .teardown =3D testsuite_teardown, > > .unit_test_cases =3D { > > - TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, > > test_capability), > > - TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_dsa), > > - TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, > > + TEST_CASE_ST_DISABLED(ut_setup_asym, ut_teardown_asym, > > test_capability), > > + TEST_CASE_ST_DISABLED(ut_setup_asym, ut_teardown_asym, > > test_dsa), > > + TEST_CASE_ST_DISABLED(ut_setup_asym, ut_teardown_asym, > > test_dh_keygenration), > > - TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, > > test_rsa_enc_dec), > > - TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, > > + TEST_CASE_ST_DISABLED(ut_setup_asym, ut_teardown_asym, > > test_rsa_enc_dec), > > + TEST_CASE_ST_DISABLED(ut_setup_asym, ut_teardown_asym, > > test_rsa_sign_verify), > > - TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, > > + TEST_CASE_ST_DISABLED(ut_setup_asym, ut_teardown_asym, > > test_rsa_enc_dec_crt), > > - TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, > > + TEST_CASE_ST_DISABLED(ut_setup_asym, ut_teardown_asym, > > test_rsa_sign_verify_crt), > > - TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, > > test_mod_inv), > > - TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, > > test_mod_exp), > > - TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, > > test_one_by_one), > > + TEST_CASE_ST_DISABLED(ut_setup_asym, ut_teardown_asym, > > test_mod_inv), > > + TEST_CASE_ST_DISABLED(ut_setup_asym, ut_teardown_asym, > > test_mod_exp), > > + TEST_CASE_ST_DISABLED(ut_setup_asym, ut_teardown_asym, > > test_one_by_one), > > + > > TEST_CASE_NAMED_WITH_DATA("rfc2207_rsa_sign_pkcs_15_ssl23", > > ut_setup_asym, ut_teardown_asym, > > + rfc2207_rsa_sign_pkcs_15, > > &rfc2207_rsa_test_data_ssl23), > > + > > TEST_CASE_NAMED_WITH_DATA("rfc2207_rsa_sign_pkcs_15_ssl23_pa > > dded", ut_setup_asym, ut_teardown_asym, > > + rfc2207_rsa_sign_pkcs_15, > > &rfc2207_rsa_test_data_ssl23_padded), > > + > > TEST_CASE_NAMED_WITH_DATA("rfc2207_rsa_sign_pkcs_15_sha1", > > ut_setup_asym, ut_teardown_asym, > > + rfc2207_rsa_sign_pkcs_15, > > &rfc2207_rsa_test_data_pkcs15_sha1), > > + > > TEST_CASE_NAMED_WITH_DATA("rfc2207_rsa_sign_pkcs_15_digestinf > > o_sha1", ut_setup_asym, ut_teardown_asym, > > + rfc2207_rsa_sign_pkcs_15, > > &rfc2207_rsa_test_data_pkcs15_digestinfo_sha1), > > + > > TEST_CASE_NAMED_WITH_DATA("rfc2207_rsa_sign_pkcs_15_sha256", > > ut_setup_asym, ut_teardown_asym, > > + rfc2207_rsa_sign_pkcs_15, > > &rfc2207_rsa_test_data_pkcs15_sha256), > > + > > TEST_CASE_NAMED_WITH_DATA("rfc2207_rsa_sign_pkcs_15_digestinf > > o_sha256", ut_setup_asym, ut_teardown_asym, > > + rfc2207_rsa_sign_pkcs_15, > > +&rfc2207_rsa_test_data_pkcs15_digestinfo_sha256), > > TEST_CASES_END() /**< NULL terminate unit test array */ > > } > > }; > > diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c > > b/drivers/crypto/openssl/rte_openssl_pmd.c > > index 45cee47c5d..32da143ea0 100644 > > --- a/drivers/crypto/openssl/rte_openssl_pmd.c > > +++ b/drivers/crypto/openssl/rte_openssl_pmd.c > > @@ -1899,11 +1899,24 @@ process_openssl_rsa_op(struct rte_crypto_op > > *cop, > > RSA *rsa =3D sess->u.r.rsa; > > uint32_t pad =3D (op->rsa.padding.type); > > uint8_t *tmp; > > + int sha; > > + > > + switch (op->rsa.padding.hash) { > > + case RTE_CRYPTO_AUTH_SHA1: > > + sha =3D NID_sha1; > > + break; > > + case RTE_CRYPTO_AUTH_SHA256: > > + sha =3D NID_sha256; > > + break; > > + default: > > + sha =3D NID_sha1; > > + } > > > > cop->status =3D RTE_CRYPTO_OP_STATUS_SUCCESS; > > > > switch (pad) { > > case RTE_CRYPTO_RSA_PADDING_PKCS1_5: > > + case RTE_CRYPTO_RSA_PADDING_SSL23: > > pad =3D RSA_PKCS1_PADDING; > > break; > > case RTE_CRYPTO_RSA_PADDING_NONE: > > @@ -1941,13 +1954,20 @@ process_openssl_rsa_op(struct rte_crypto_op > > *cop, > > break; > > > > case RTE_CRYPTO_ASYM_OP_SIGN: > > - ret =3D RSA_private_encrypt(op->rsa.input.length, > > - op->rsa.input.data, > > - op->rsa.output.data, > > - rsa, > > - pad); > > - if (ret > 0) > > - op->rsa.output.length =3D ret; > > + if (op->rsa.padding.type !=3D > > RTE_CRYPTO_RSA_PADDING_PKCS1_5) { > > + ret =3D RSA_private_encrypt(op->rsa.input.length, > > + op->rsa.input.data, > > + op->rsa.output.data, > > + rsa, > > + pad); > > + if (ret > 0) > > + op->rsa.output.length =3D ret; > > + } else { > > + ret =3D RSA_sign(sha, op->rsa.input.data, op- > > >rsa.input.length, > > + op->rsa.output.data, (unsigned > > int *)&op->rsa.output.length, rsa); > > + if (ret =3D=3D 0) > > + ret =3D -1; > > + } > > break; > > > > case RTE_CRYPTO_ASYM_OP_VERIFY: > > diff --git a/lib/cryptodev/rte_crypto_asym.h > > b/lib/cryptodev/rte_crypto_asym.h index 834e06b96b..b3906b08e3 100644 > > --- a/lib/cryptodev/rte_crypto_asym.h > > +++ b/lib/cryptodev/rte_crypto_asym.h > > @@ -149,6 +149,7 @@ enum rte_crypto_mgf { > > /** > > * Padding types for RSA signature. > > */ > > + #define TEMP > > enum rte_crypto_rsa_padding_type { > > RTE_CRYPTO_RSA_PADDING_NONE =3D 0, > > /**< RSA no padding scheme */ > > @@ -160,6 +161,7 @@ enum rte_crypto_rsa_padding_type { > > /**< RSA PKCS#1 OAEP padding scheme */ > > RTE_CRYPTO_RSA_PADDING_PSS, > > /**< RSA PKCS#1 PSS padding scheme */ > > + TEMP RTE_CRYPTO_RSA_PADDING_SSL23, > > RTE_CRYPTO_RSA_PADDING_TYPE_LIST_END > > }; > > > > @@ -426,7 +428,7 @@ struct rte_crypto_rsa_op_param { > > * > > * If padding.type =3D RTE_CRYPTO_RSA_PADDING_NONE > > * input should only be used along with cryptographically > > - * secure padding scheme. * > > + * secure padding scheme. > > * If padding.type =3D 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 @@ > > - > > 434,7 +436,7 @@ struct rte_crypto_rsa_op_param { > > * the digest of the message to be signed. > > * > > * When op_type =3D=3D RTE_CRYPTO_ASYM_OP_DECRYPT: > > - * > > + * > > * Input shall contain previously encrypted RSA message. > > * > > * When op_type =3D=3D RTE_CRYPTO_ASYM_OP_VERIFY: > > -- > > 2.13.6