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 BCFD2A04FF; Tue, 22 Mar 2022 10:13:36 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A9D2E427EE; Tue, 22 Mar 2022 10:13:36 +0100 (CET) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id 459CF410E5 for ; Tue, 22 Mar 2022 10:13:34 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1647940414; x=1679476414; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=WYUCZEzCUm/6nVX5wdJg8kB20K11rMSEAOjJ7G/xCTg=; b=Ky9eJX78WfNfAajTcbwXyTLMgcyg2g2MJrcmzPUtJzlAuFkDdizByN72 8X2k5Z63MKzifypG4hxDLKaAse9l7KkzQkFmdPm9yAC0btfDe8pGA1ML4 ciZJGjEnY4JafKY6lFFgrpmMziClwkaUjkht4YSJe/4VnfoUMpx1+xG+O SRggAGK4KLVj/SCFiUDxxjGgjVXtOVyjZoNytZ/Ue2SdGWms0p36qmPfA FoZHTia+KtgfwG5sY3hzPs4dKGQjn+Ynv2Ok6ylAF2AST3lUwMpnIX/Pf flSFDxptXhD8+YLKSfHy5CPJph3Unq8FW3G7gx1ppk9LInl3sJ4S/AtDq Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10293"; a="257718094" X-IronPort-AV: E=Sophos;i="5.90,201,1643702400"; d="scan'208";a="257718094" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Mar 2022 02:13:33 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,201,1643702400"; d="scan'208";a="543606270" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by orsmga007.jf.intel.com with ESMTP; 22 Mar 2022 02:13:33 -0700 Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by fmsmsx605.amr.corp.intel.com (10.18.126.85) 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 02:13:32 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx601.amr.corp.intel.com (10.18.126.81) 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 02:13:32 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.45) 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.2308.21; Tue, 22 Mar 2022 02:13:32 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IZEe/bWeEWFg7fO0Jwu3PEqhrVn6kbCLY5zJPeMlD94bfBpVB6QPyVaNn9F0gcjv4JZYxkQVTnUI7uI0kGeuraJh/rlAJoVSXdTAXrT8w2reWzmhJOqX+YYAYuenyAHT4jc7Nywr0KjLtDGI3ZyJ0PJRCGxYTM/S5rbVuXpM12KnZxW7zvUkvbm47piOA07spxucwUPfL0Ys4Xl/qgI10COX3ZUNEfTPHAAFb+fsnThWagZlTpjqnlVbs2SDBcSdIieqmKSxZjnGEmMGEw881qUYZ++PkxLFFDqgJ7GW7HltOWCnjeSlalISS6KJzYUir4VEgUszcIYPFk/2IWRwsA== 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=O7NdESDcCIgmjop+x7hwnSdMkoSWpI+PDM5uHfirR6w=; b=THDhwKVXLnpGSAe0j5GcLbEEYaRKQ0yh/OZTgfihfLEdji0VMGy2M1mIdd7xxuIUXY54rS9MYRbzD6AuoOptrGPcj+hUqKzrwmdo91vmX2nTQNZFEr4F9Tp+9RHl6wg0AxQf+C76J6IvrpP3XLXyub71yU/wzeyfk8Z0B1vs81W9x7/eEVj1uxL6gfHCxwjwkhTIguOCH/p8sPybDyuKjxtz9eoB6ORERpL6hzX2YVMgXm00Ttzxni+l7k3ikKwuEIBmFC17zUVv/GumKNCOuK5+Qn6wYDkYG8+BXcs9BDoXMnNW6M3B6hsxN2Vhlo+yx2hgk9iGsIDzvihUuC/09Q== 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 BY5PR11MB4038.namprd11.prod.outlook.com (2603:10b6:a03:18c::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.18; Tue, 22 Mar 2022 09:13:31 +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 09:13:31 +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/jZutGutvOkOIk70L0Py9YazLHQ8w Date: Tue, 22 Mar 2022 09:13:31 +0000 Message-ID: References: <20220322081128.23733-1-arkadiuszx.kusztal@intel.com> <20220322081128.23733-2-arkadiuszx.kusztal@intel.com> In-Reply-To: <20220322081128.23733-2-arkadiuszx.kusztal@intel.com> 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: 44e407ab-943f-4a20-d283-08da0be43bed x-ms-traffictypediagnostic: BY5PR11MB4038: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: KkBcTqH+XOpk0xmN754GhjFbAZB+aUVPwA8xP4oGOjAV3cEIR0TPXmwEv6/wVcQ82jv0gj0DpPmiZjQScvP/+eAWKy7q6iTgmiwUSKTptJNo6Ul5FpxYMOmZR/ScomPtr36kQ6+sb72k7L0QQUs9h/AX0frsZbtor9J4Fp6/KKAvmB3IL8rqR0F5fkz+xmHTpqCAnZSMG7/6yaH3uvOErek4yAdlc+x+9Pxwf2OANbDO56gJ2KXKD5+fKUB4jopqne/5cQwvfNNs8OGwJj4x6Rk8XMnAfiZxd7YLOVHPFS11YDiRLdrEvu15hl3/TdRBgIKVAja3a1r7wasAiQm5poIDQ3D5q/EVhM6TAnnN8tmrtj5lzF0hWMvcglKwM3juIhcR9R0s2NF5zWHm7J7yeq2tInAsX/vz05DLOfxkfUOliownExCdDYg7PfnMs0hIPZ7dU3nefiWUKBh1opdjBfZXTHA1PgKpT7rMIttJspmOAL7+y48XJMyS6or6mg0zIwIk8GVcNqWPrlsmj451J0trncLNHBzzFtLIqn60S4CDQD76JEALNSVGpjkIa1O7HFvx78azVBvND99Tc84CXCdlMOzqOfTEBxH6oSHaPBmUtvXZlL8BPabQlAIkW1oaAt+fEa25dCr8mNtwuAElw8gLfncBxHZfdagGbetcWD/vJPhIUcxYXFiidhMxiAXMAYmZHf6mBXex8OCt5wxRmQ== 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)(52536014)(5660300002)(8936002)(86362001)(83380400001)(55016003)(71200400001)(6506007)(7696005)(30864003)(53546011)(508600001)(76116006)(38100700002)(66476007)(66446008)(66556008)(66946007)(64756008)(54906003)(4326008)(33656002)(8676002)(38070700005)(6916009)(9686003)(186003)(26005)(2906002)(82960400001)(316002)(122000001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?YBdEbKgjzvl0mjfS+gr9lav71Zct4qLA7s0veVhGkURZNPm7jey4rp196V8X?= =?us-ascii?Q?xMSDrTUiErHUMRiIUWfgzRpVR8QzzZ1JK83JUo9DYXwjYioB7UGbxrPzn7i5?= =?us-ascii?Q?IOoIrlEZn/kGq3GHJHdXw4UDf3VDobaPE3anxDHGU5I0RDFvAQAVqyXSx15D?= =?us-ascii?Q?+N536rT1QqK9PwPYbVyzx2ObsNWDzZ42T8KJzQ8DXzL60/lEuNQox1KdFu6i?= =?us-ascii?Q?y6mmHSwxd2+AOPq1/0TRZTTMJK0d3LE87ATipnSVFK9fVwJBiZUHZXfkoWzp?= =?us-ascii?Q?ydBFdJEoZ8kuvX+sBAUwBGAlPdKLx6ckFAModKkqf4J2xTJjcrZhAabQb6Cq?= =?us-ascii?Q?OUQX00VzUz6uOSpYAdPXdUByrz/o3fyZl1G97bP1yRpOizMOUONtYaOeCZU/?= =?us-ascii?Q?WB4eBRjOcJef0hNMSUAKnEnhYMBajMGnKTqd5cZmGoYhhLLRrYLASGXo7CKv?= =?us-ascii?Q?EB0TIRLJgquYxbxDtwXNDD2G0PIYY4p2IQ31mFu+ncjrNme/SGdJOkA+FqD8?= =?us-ascii?Q?1IXPsj23R5IX5mHIK8QqAXw4A1TWm9P8ZqqIuH7PUR4aWI9y9VPXmo+3H5mW?= =?us-ascii?Q?EGJt0S2Tl/6QBljZX8CBrl5ok2GxhtMgEE/i8g3p4FC01WecgliPhTS2Bp9w?= =?us-ascii?Q?hTNISUfnlZ4mu+ekeEd56Uybbsj9WVfyi50oLxR143veCfMZ+7JxBj4gs96L?= =?us-ascii?Q?UZXgp5AQWWhxoINEwiRjq4ytJPsGq04Fb2JwDuj0CCOwZNXrs4pNhJKNpsrg?= =?us-ascii?Q?U7Tg4cWTlH86K5tjWhFkEReexHXAZuZU90t6sCfIv6p39KoisQreTC44Y3E1?= =?us-ascii?Q?VoUDx6htZWSCL6I/vSL47tTyFPSMuG9l1F30+cR4F1XCqi2+2hjbuvwy10Z8?= =?us-ascii?Q?HdGKcG2h549N5q/fwuGys5K6WSetaCEGq8eXWWy2QVreQvc3Lkwa0+70HaH3?= =?us-ascii?Q?IGh5w68XBXcJfAe2bdkGD5TCA+EG/DBA6AGYhnlqNro4BKbLf7bRcPL9/EoI?= =?us-ascii?Q?gbWlNka799EUMaavKBfUXiNyIsPfBh76k6QNE5ddvje/vKuja7m9ybr4Vi/T?= =?us-ascii?Q?4olSDXIs4hTfZRDv1+BGAyTwzc2pVdt9dksXXUCI22BdbU6IzbDYjs6WQsaQ?= =?us-ascii?Q?dYFWuzu0qJVF0joJ+wzwta3e2Esj4gZTNHe1ctn7+M3XKNkyz3xBy/M4U6Hl?= =?us-ascii?Q?Pa8xNaz3S6jgKAdZj1bLd3ffV/0C/jnPIQj9K8dUCQNRe/ah3wMxgU0brkgD?= =?us-ascii?Q?RKayEQ2R5J4yCFxTBEn/8072VDMuFTnkFQYzAoBLFpUz8DTSI7sHeK+2ugI5?= =?us-ascii?Q?y522VrQVRY1UtK6wZ5N8imjyqSp/e5mGEDVurN+Du0TUwd9uYNHg5oYKgRlj?= =?us-ascii?Q?2BjFauzsroHfgFJyTAwIhhfFCBUVOpdRdzt0oaEu009vdY/wZcZGKZeMuH1O?= =?us-ascii?Q?gL2KndglfG67BFTiO+OXsNcjxGyM0W6rASS2Zt3xYY0yk1SnKXeDEA=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: 44e407ab-943f-4a20-d283-08da0be43bed X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Mar 2022 09:13:31.1456 (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: UTnrsDChT05FqvHZpsbfd3VwLlHql2VuQxA0jjDuhpEO+JtOD8HZE1InNRGpNHJwEjDiOVPyPAB91VOCGBc2aiHcQVW2nXRdIOGLvYAGeAA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR11MB4038 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 Hi, > -----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 >=20 > This commit adds example pkcs1 signature tests. >=20 > 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(-) >=20 > diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asy= m.c > index 71378cbdb2..512eb34377 100644 > --- a/app/test/test_cryptodev_asym.c > +++ b/app/test/test_cryptodev_asym.c > @@ -15,6 +15,7 @@ >=20 > #include > #include > +#include >=20 > #include "test_cryptodev.h" > #include "test_cryptodev_dh_test_vectors.h" > @@ -163,6 +164,222 @@ queue_ops_rsa_sign_verify(void *sess) > return status; > } >=20 > +/* 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_sha1 = creates PKCS1_5 signature from same data, but signatures are different as=20 RTE_CRYPTO_RSA_PADDING_SSL23 (PKCS1_5 flag in other patch) which is what we= currently have in Cryptodev does not use AlgorithmIdentifier. > +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; > + } >=20 > cop->status =3D RTE_CRYPTO_OP_STATUS_SUCCESS; >=20 > 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; >=20 > 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; >=20 > case RTE_CRYPTO_ASYM_OP_VERIFY: > diff --git a/lib/cryptodev/rte_crypto_asym.h b/lib/cryptodev/rte_crypto_a= sym.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 > }; >=20 > @@ -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