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 DA7ED41D8F; Mon, 27 Feb 2023 10:31:12 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C6A4F41153; Mon, 27 Feb 2023 10:31:12 +0100 (CET) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mails.dpdk.org (Postfix) with ESMTP id 55D1E400D5 for ; Mon, 27 Feb 2023 10:31:10 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677490271; x=1709026271; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=zNoyDkd8JTJJHEh5bkrv9dd4fGke9r5quXr4vUf8qQ8=; b=cDlDePvxmBnCyqs4U3kIIfJoeImkUZGpp0v6h81AmJWyeYjhMFUPM9CY ivbn8wFhF+75QqtYdDPnogsW4ExAkjR7aHJO2gzPR5dxMBbUAeiZWh64s sa7ZGZOpzCzExpbH8p72Xd0QcJeR5RPVmgHDGCJCx/bU1758oTKznk/HZ 5NcYzTZ5ZEHwjwS+gGx2m297xTja+NTlbHcVY8i/zk/7pbWW1a9o+Afta dk6St9n917JwaOAEgONSdaAAMh1Z5zx93X9btv1cVOVpXKFylYCfgy6F6 crqffAOfPPa2xAyTo/y/mqycst9E/iH8FfDKalKEbvm3+HVRMhLu22l/y Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10633"; a="317619323" X-IronPort-AV: E=Sophos;i="5.97,331,1669104000"; d="scan'208";a="317619323" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Feb 2023 01:31:09 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10633"; a="797544740" X-IronPort-AV: E=Sophos;i="5.97,331,1669104000"; d="scan'208";a="797544740" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga004.jf.intel.com with ESMTP; 27 Feb 2023 01:31:08 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) 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.2507.16; Mon, 27 Feb 2023 01:31:08 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Mon, 27 Feb 2023 01:31:07 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Mon, 27 Feb 2023 01:31:07 -0800 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.106) 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.2507.16; Mon, 27 Feb 2023 01:31:07 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Wngvl5Hxua3mSMA/1FfcmT1EN5TpXFes11fx2/zyE4iOx0BsygAzJkQ0VhsXGjtGvnVQjZcZ0/BZ1J6Lcz3MFHjYWiYCsRWpBIl1W1Wywx6kRKjvE4DkMDTd4aLRyEqmXlnc64D3J8xmO0B6S7kRrDMo5XtgvXzPS0zWz5rI68x7zwcrF4cJkuvYXATFvdGCwVdzSHNeDf4xrbjxpthROwewL8ZrXeW8tQSqokiRQG40olRg2ZggTUqc4JePU6YxJC8lPYZViQiiy0D3tnne2wyvTMhN2XdrIvw6Ks7Fmv3X2tRlgfquvU8Nj6zPuhMCu5TKwOCg+pWFce6DgU+Jyw== 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=3W5bv2wP0FZPvqM6Sehuf57hW5mH5O3hsO6zg2nVX9c=; b=hWnqLvhu23acS1Ty75YOoeZ69s51T+oijleY/N3cPjC5MuGQsQk8EEELYcsKeojbSUG2Q/SZ3zCs6XviE30OZPqbwRL3oJXIQDWvZcG/JPXO9ak56o9BHptXwUHleQRLKS0O3xwK0n2JTvdj5O/3ehVB2VnsUw85BszxfkXtO+EgYZIbhUgK4MpJ8w9YCmBTsoijiJgn6Hie7VYWgAChMUxTuF+5SiF6QO8fx8DCwyFzgoGQ1eS4vGb5qJ7/+33ih0hKjjkbpDrFXJLlZ36TCP2eC7nLLLyHOAvJauVCTH2s7SQNGYEfpN8eo1v/wtDo2KS/Z4PJHsk5lI6SF0y7dg== 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 DM5PR11MB1851.namprd11.prod.outlook.com (2603:10b6:3:114::18) by MN0PR11MB6277.namprd11.prod.outlook.com (2603:10b6:208:3c3::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.29; Mon, 27 Feb 2023 09:31:06 +0000 Received: from DM5PR11MB1851.namprd11.prod.outlook.com ([fe80::3c23:7638:8d23:670f]) by DM5PR11MB1851.namprd11.prod.outlook.com ([fe80::3c23:7638:8d23:670f%5]) with mapi id 15.20.6134.027; Mon, 27 Feb 2023 09:31:06 +0000 From: "Dooley, Brian" To: Gowrishankar Muthukrishnan , "dev@dpdk.org" CC: Anoob Joseph , "jerinj@marvell.com" , Akhil Goyal Subject: RE: [v1, 02/10] examples/fips_validation: add SHA3 validation Thread-Topic: [v1, 02/10] examples/fips_validation: add SHA3 validation Thread-Index: AQHZOjnMOmE687L8G0qoJUuhvlBBlq7ip/PQ Date: Mon, 27 Feb 2023 09:31:05 +0000 Message-ID: References: <18c7a6838c18d041c52ef57e807eb34871af3946.1675693844.git.gmuthukrishn@marvell.com> In-Reply-To: <18c7a6838c18d041c52ef57e807eb34871af3946.1675693844.git.gmuthukrishn@marvell.com> 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: DM5PR11MB1851:EE_|MN0PR11MB6277:EE_ x-ms-office365-filtering-correlation-id: b4909345-419d-4276-5d0b-08db18a559e0 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: gAd2IufRil9whdhl6IYPCb25pRem9iO9UggyfCVKwtIv6r/ZWeUwA4s/N6jhxzYfozwXCZacg+gOYta6hWzfDUHVvRSfUd0Fq8bxE26nHEbVo8FcaV1DAbh5UT446zzRiDe0YFH59ZZNeElDFYMX2xO1T6rwTjpnTTPfandCUWgE4YpWyfLiBURLGatMclrTmrHadIUN3NeXImwHNHxsYjxCkY0kbP7101nn2oiWNFg8BNDh2ykr+TMZeH+l3aRhckP+xZli6BJaGU2XLFF/e6FlvXbadItK+uLxfQMVGXrapvvIDpNgr1Yq58XuYqb6/v3bdIUHqwPw4Yq7RKJlqZ2t4eq5FhB+pFMJevi/AwJmrNtEU2spSqotze76BbWowmdVjFynTJUTj9Wyb8BLL+WDu20oRbxXdADVuL63ZdCw2T3d+FMWdiZu0ET5lHeKN7DV6rdxIbY6aJOMLxP9n9EudY51zKvx22FwTstia/77kyAoznj1fpktSwHWODd6CwnUhXJtBtwNC7UqFehPyPpMYeVYRmoNGNPbalGM4RX8CE4IBGHjXhnEnXjegSPtD85TZRj6Ib6Gocm2lllfer2dixh2QebBldawaMfeZbBaQV0Paw25Cl0BmbJbz81Qq2l9mUoHb24I2etuu8wLHn2B/aR5w4JyBMuvVR55XkVAzDG3mHKSZdYcTeWNk3tlsBPNCkbiIbsz+4AORXPdmw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM5PR11MB1851.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(376002)(136003)(39860400002)(396003)(346002)(366004)(451199018)(41300700001)(66476007)(66556008)(8676002)(83380400001)(66946007)(4326008)(64756008)(66446008)(76116006)(38100700002)(82960400001)(122000001)(55016003)(2906002)(38070700005)(33656002)(86362001)(5660300002)(8936002)(110136005)(71200400001)(52536014)(478600001)(7696005)(53546011)(316002)(54906003)(9686003)(26005)(186003)(6506007); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?yEXtt1BmfNEjOrhS3QB6O+eB/x1I545e8BOOVApz86S3p75x6uwOHl9P/IVq?= =?us-ascii?Q?+W9kah4Jgnml1VWRDlZD9CaVI9tvzN4MGTPN6Gj5EProsxcATyWgb2Iovjwz?= =?us-ascii?Q?73cVcMP+gK+CgTl0O/Ia4ENDAJqqgzCoIxQI/xliQzJXFb492rb8yRdwQtvs?= =?us-ascii?Q?lLYlsz4SgJpz/3sEuBrx4S+xWvMdgg07/3SmUAxtMo1K64KfG5MEOyWEshZT?= =?us-ascii?Q?RRT4fjGZON4Q1DRLad1Bi6baix/irXdesAjqlpg2dQz3+KlsxSrFlJD2OkC0?= =?us-ascii?Q?uc9q4rYTRxR/+MwiCTrGLJBoMID5L2zFoG/Rn3CcteDogoMpWJg/h4Tyvc59?= =?us-ascii?Q?Mp+Z8S9EzvvPbZIEuvLMOLqFuXSD7ZjTXYz1QT7tUyaTYkTYdK9GSsIx/dH8?= =?us-ascii?Q?eUtRdorakWTtPEbZ9sr7sZWoNxUa/Y2mhs36GHOgHxYmS0fdwqcDzh4E/XZX?= =?us-ascii?Q?tuJpxFGSl7YffSCi7z3msD+96S3RsrQU6HDNTNBIJeT3Fw1nX8jFfm1Ke0pe?= =?us-ascii?Q?7dp9UDRcxNT7BKLY6qbQm504VtkT4iUifL8DRftfEDbYeb5ZTBotH8MUcySI?= =?us-ascii?Q?qRn/LP7mF2NXDOTcWX5Ua/1E89mNAFvanyltlcVCCK7PxMxIY5sGlV96AR+D?= =?us-ascii?Q?eDzTCbQLffw6soOaVhcPeTJhAysEvGtCULkUxQP+ENoMk7qHb5hE19/bLJsd?= =?us-ascii?Q?IrHZ7xieXHX1u+OnturK6i0/nDa51W4cf1WXebjfuVhicsBPqR/7divcVWP0?= =?us-ascii?Q?2Z+e90wgpc4X/uSE2Vz6si1JkHprz4coQiiLy+WPVmu8jKABz0edxPveWFC6?= =?us-ascii?Q?SpN6ZP1G7mvZsbvk8Nur1hCZitiwDengXYfGQlXK4uGRj89VWJ+1eMqdlw5W?= =?us-ascii?Q?UYUf8CGfznrZ61UdniPcEGCZ+GxGcv0d2b4SJfI0pk3ShjxcZxFouLNAuDp4?= =?us-ascii?Q?+ks0F5YXGT8SBr62g3zXp6SL8+Et1gpxRStUB5g8oTfnWdwrnhJ418SCXmlY?= =?us-ascii?Q?m6ANq4ULyND8Dt2YZQWSVOKlrhvgpZJBN6olly+8ZCDgK7shkx7n83tEzHgS?= =?us-ascii?Q?AftQnEGgfew1bU62HgCFR93A9i4xQ+V4xU31eQ3C5evAZywyqVevq3OW4yZn?= =?us-ascii?Q?zHlSlwwuzlUSbYFwyXRySh/QQiEmlYWt57vx3IXybWQIIJM26x76iXeNweU8?= =?us-ascii?Q?pZjJJi6E/dm37WOQfAhU1B35B4smxkvKKEKGMJVUPZxO1mPU2SFyJkGrRSr3?= =?us-ascii?Q?SZCV/mqaE48zPaoAFY4GmCr/2PhL+TEczNnc2hMwIqxG0TCacSsHbBz76Q7n?= =?us-ascii?Q?Z8GNfB9csYXMG9ipIneGJ6r0pOQ8tYv9aD0Fy2681zE1OFzdcJbm78qzSPVt?= =?us-ascii?Q?stKRnyzFaknCLVP1x1jsZGMJ9gdljreClgY6DwJ9j1iO4v0m8ScE0q7pLvH0?= =?us-ascii?Q?ANdd6aTtkrSEgqjKMrwbb8IvlzNGbyKMIoHc/C7XndG4yBQx0g960bPLyHaI?= =?us-ascii?Q?72Y14CJXNZkiOC4E/bOzHlU9OEdFTUEIytgNJ3V/upUcIlDsqzvfFPzP7IMi?= =?us-ascii?Q?A/rA6ahG2JihJsqOqrVrB7pAQjEK8blEPjjUjItx?= 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: DM5PR11MB1851.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b4909345-419d-4276-5d0b-08db18a559e0 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Feb 2023 09:31:05.8978 (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: kG2gP9Ofh8C7mZ75aAhQLbN9OvZGaZlib3VNG1U9qzYrrKgFahX/im/5deLMtWgxL1F5+BHJgEmpzoazlQnVCA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR11MB6277 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: Gowrishankar Muthukrishnan > Sent: Monday 6 February 2023 14:46 > To: dev@dpdk.org > Cc: Anoob Joseph ; jerinj@marvell.com; Akhil Goyal > ; Dooley, Brian ; > Gowrishankar Muthukrishnan > Subject: [v1, 02/10] examples/fips_validation: add SHA3 validation >=20 > Add support in fips_validation to parse SHA3 algorithms. >=20 > Signed-off-by: Gowrishankar Muthukrishnan > --- > doc/guides/sample_app_ug/fips_validation.rst | 5 +- > examples/fips_validation/fips_validation.h | 1 + > .../fips_validation/fips_validation_hmac.c | 8 ++ > .../fips_validation/fips_validation_sha.c | 20 +++-- > examples/fips_validation/main.c | 76 +++++++++---------- > 5 files changed, 61 insertions(+), 49 deletions(-) >=20 > diff --git a/doc/guides/sample_app_ug/fips_validation.rst > b/doc/guides/sample_app_ug/fips_validation.rst > index 50d23c789b..55837895fe 100644 > --- a/doc/guides/sample_app_ug/fips_validation.rst > +++ b/doc/guides/sample_app_ug/fips_validation.rst > @@ -64,8 +64,9 @@ ACVP > * AES-CTR (128,192,256) - AFT, CTR > * AES-GMAC (128,192,256) - AFT > * AES-XTS (128,256) - AFT > - * HMAC (SHA1, SHA224, SHA256, SHA384, SHA512) > - * SHA (1, 256, 384, 512) - AFT, MCT > + * HMAC (SHA1, SHA224, SHA256, SHA384, SHA512, SHA3_224, SHA3_256, > SHA3_384, SHA3_512) > + * SHA (1, 224, 256, 384, 512) - AFT, MCT > + * SHA3 (224, 256, 384, 512) - AFT, MCT > * TDES-CBC - AFT, MCT > * TDES-ECB - AFT, MCT > * RSA > diff --git a/examples/fips_validation/fips_validation.h > b/examples/fips_validation/fips_validation.h > index 565a5cd36e..6c1bd35849 100644 > --- a/examples/fips_validation/fips_validation.h > +++ b/examples/fips_validation/fips_validation.h > @@ -205,6 +205,7 @@ struct sha_interim_data { > /* keep algo always on top as it is also used in asym digest */ > enum rte_crypto_auth_algorithm algo; > enum fips_sha_test_types test_type; > + uint8_t md_blocks; > }; >=20 > struct gcm_interim_data { > diff --git a/examples/fips_validation/fips_validation_hmac.c > b/examples/fips_validation/fips_validation_hmac.c > index e0721ef028..f1cbc18435 100644 > --- a/examples/fips_validation/fips_validation_hmac.c > +++ b/examples/fips_validation/fips_validation_hmac.c > @@ -37,6 +37,10 @@ struct hash_size_conversion { > {"32", RTE_CRYPTO_AUTH_SHA256_HMAC}, > {"48", RTE_CRYPTO_AUTH_SHA384_HMAC}, > {"64", RTE_CRYPTO_AUTH_SHA512_HMAC}, > + {"28", RTE_CRYPTO_AUTH_SHA3_224_HMAC}, > + {"32", RTE_CRYPTO_AUTH_SHA3_256_HMAC}, > + {"48", RTE_CRYPTO_AUTH_SHA3_384_HMAC}, > + {"64", RTE_CRYPTO_AUTH_SHA3_512_HMAC}, > }; >=20 > static int > @@ -81,6 +85,10 @@ struct hash_size_conversion json_algorithms[] =3D { > {"HMAC-SHA2-256", RTE_CRYPTO_AUTH_SHA256_HMAC}, > {"HMAC-SHA2-384", RTE_CRYPTO_AUTH_SHA384_HMAC}, > {"HMAC-SHA2-512", RTE_CRYPTO_AUTH_SHA512_HMAC}, > + {"HMAC-SHA3-224", RTE_CRYPTO_AUTH_SHA3_224_HMAC}, > + {"HMAC-SHA3-256", RTE_CRYPTO_AUTH_SHA3_256_HMAC}, > + {"HMAC-SHA3-384", RTE_CRYPTO_AUTH_SHA3_384_HMAC}, > + {"HMAC-SHA3-512", RTE_CRYPTO_AUTH_SHA3_512_HMAC}, > }; >=20 > struct fips_test_callback hmac_tests_json_vectors[] =3D { diff --git > a/examples/fips_validation/fips_validation_sha.c > b/examples/fips_validation/fips_validation_sha.c > index 178ea492d3..8b68f5ed36 100644 > --- a/examples/fips_validation/fips_validation_sha.c > +++ b/examples/fips_validation/fips_validation_sha.c > @@ -32,6 +32,10 @@ struct plain_hash_size_conversion { > {"32", RTE_CRYPTO_AUTH_SHA256}, > {"48", RTE_CRYPTO_AUTH_SHA384}, > {"64", RTE_CRYPTO_AUTH_SHA512}, > + {"28", RTE_CRYPTO_AUTH_SHA3_224}, > + {"32", RTE_CRYPTO_AUTH_SHA3_256}, > + {"48", RTE_CRYPTO_AUTH_SHA3_384}, > + {"64", RTE_CRYPTO_AUTH_SHA3_512}, > }; >=20 > int > @@ -96,12 +100,17 @@ static struct { > static struct plain_hash_algorithms { > const char *str; > enum rte_crypto_auth_algorithm algo; > + uint8_t md_blocks; > } json_algorithms[] =3D { > - {"SHA-1", RTE_CRYPTO_AUTH_SHA1}, > - {"SHA2-224", RTE_CRYPTO_AUTH_SHA224}, > - {"SHA2-256", RTE_CRYPTO_AUTH_SHA256}, > - {"SHA2-384", RTE_CRYPTO_AUTH_SHA384}, > - {"SHA2-512", RTE_CRYPTO_AUTH_SHA512}, > + {"SHA-1", RTE_CRYPTO_AUTH_SHA1, 3}, > + {"SHA2-224", RTE_CRYPTO_AUTH_SHA224, 3}, > + {"SHA2-256", RTE_CRYPTO_AUTH_SHA256, 3}, > + {"SHA2-384", RTE_CRYPTO_AUTH_SHA384, 3}, > + {"SHA2-512", RTE_CRYPTO_AUTH_SHA512, 3}, > + {"SHA3-224", RTE_CRYPTO_AUTH_SHA3_224, 1}, > + {"SHA3-256", RTE_CRYPTO_AUTH_SHA3_256, 1}, > + {"SHA3-384", RTE_CRYPTO_AUTH_SHA3_384, 1}, > + {"SHA3-512", RTE_CRYPTO_AUTH_SHA3_512, 1}, > }; >=20 > struct fips_test_callback sha_tests_json_vectors[] =3D { @@ -233,6 +242,= 7 @@ > parse_test_sha_json_algorithm(void) > for (i =3D 0; i < RTE_DIM(json_algorithms); i++) { > if (strstr(algorithm_str, json_algorithms[i].str)) { > info.interim_info.sha_data.algo =3D > json_algorithms[i].algo; > + info.interim_info.sha_data.md_blocks =3D > json_algorithms[i].md_blocks; > break; > } > } > diff --git a/examples/fips_validation/main.c > b/examples/fips_validation/main.c index cc585e8418..cf29e440f1 100644 > --- a/examples/fips_validation/main.c > +++ b/examples/fips_validation/main.c > @@ -2267,22 +2267,27 @@ fips_mct_sha_test(void) { > #define SHA_EXTERN_ITER 100 > #define SHA_INTERN_ITER 1000 > -#define SHA_MD_BLOCK 3 > + uint8_t md_blocks =3D info.interim_info.sha_data.md_blocks; > struct fips_val val =3D {NULL, 0}; > - struct fips_val md[SHA_MD_BLOCK], msg; > + struct fips_val md[md_blocks]; > int ret; > - uint32_t i, j; > + uint32_t i, j, k, offset, max_outlen; > + > + max_outlen =3D md_blocks * vec.cipher_auth.digest.len; > + > + if (vec.cipher_auth.digest.val) > + free(vec.cipher_auth.digest.val); > + > + vec.cipher_auth.digest.val =3D calloc(1, max_outlen); >=20 > - msg.len =3D SHA_MD_BLOCK * vec.cipher_auth.digest.len; > - msg.val =3D calloc(1, msg.len); > if (vec.pt.val) > memcpy(vec.cipher_auth.digest.val, vec.pt.val, > vec.cipher_auth.digest.len); >=20 > - for (i =3D 0; i < SHA_MD_BLOCK; i++) > - md[i].val =3D rte_malloc(NULL, (MAX_DIGEST_SIZE*2), 0); > - > rte_free(vec.pt.val); > - vec.pt.val =3D rte_malloc(NULL, (MAX_DIGEST_SIZE*SHA_MD_BLOCK), > 0); > + vec.pt.val =3D rte_malloc(NULL, (MAX_DIGEST_SIZE*md_blocks), 0); > + > + for (i =3D 0; i < md_blocks; i++) > + md[i].val =3D rte_malloc(NULL, (MAX_DIGEST_SIZE*2), 0); >=20 > if (info.file_type !=3D FIPS_TYPE_JSON) { > fips_test_write_one_case(); > @@ -2290,30 +2295,19 @@ fips_mct_sha_test(void) > } >=20 > for (j =3D 0; j < SHA_EXTERN_ITER; j++) { > - > - memcpy(md[0].val, vec.cipher_auth.digest.val, > - vec.cipher_auth.digest.len); > - md[0].len =3D vec.cipher_auth.digest.len; > - memcpy(md[1].val, vec.cipher_auth.digest.val, > - vec.cipher_auth.digest.len); > - md[1].len =3D vec.cipher_auth.digest.len; > - memcpy(md[2].val, vec.cipher_auth.digest.val, > - vec.cipher_auth.digest.len); > - md[2].len =3D vec.cipher_auth.digest.len; > - > - for (i =3D 0; i < SHA_MD_BLOCK; i++) > - memcpy(&msg.val[i * md[i].len], md[i].val, > md[i].len); > + for (i =3D 0; i < md_blocks; i++) { > + memcpy(md[i].val, vec.cipher_auth.digest.val, > + vec.cipher_auth.digest.len); > + md[i].len =3D vec.cipher_auth.digest.len; > + } >=20 > for (i =3D 0; i < (SHA_INTERN_ITER); i++) { > - > - memcpy(vec.pt.val, md[0].val, > - (size_t)md[0].len); > - memcpy((vec.pt.val + md[0].len), md[1].val, > - (size_t)md[1].len); > - memcpy((vec.pt.val + md[0].len + md[1].len), > - md[2].val, > - (size_t)md[2].len); > - vec.pt.len =3D md[0].len + md[1].len + md[2].len; > + offset =3D 0; > + for (k =3D 0; k < md_blocks; k++) { > + memcpy(vec.pt.val + offset, md[k].val, > (size_t)md[k].len); > + offset +=3D md[k].len; > + } > + vec.pt.len =3D offset; >=20 > ret =3D fips_run_test(); > if (ret < 0) { > @@ -2331,18 +2325,18 @@ fips_mct_sha_test(void) > if (ret < 0) > return ret; >=20 > - memcpy(md[0].val, md[1].val, md[1].len); > - md[0].len =3D md[1].len; > - memcpy(md[1].val, md[2].val, md[2].len); > - md[1].len =3D md[2].len; > + for (k =3D 1; k < md_blocks; k++) { > + memcpy(md[k-1].val, md[k].val, md[k].len); > + md[k-1].len =3D md[k].len; > + } >=20 > - memcpy(md[2].val, (val.val + vec.pt.len), > + memcpy(md[md_blocks-1].val, (val.val + vec.pt.len), > vec.cipher_auth.digest.len); > - md[2].len =3D vec.cipher_auth.digest.len; > + md[md_blocks-1].len =3D vec.cipher_auth.digest.len; > } >=20 > - memcpy(vec.cipher_auth.digest.val, md[2].val, md[2].len); > - vec.cipher_auth.digest.len =3D md[2].len; > + memcpy(vec.cipher_auth.digest.val, md[md_blocks-1].val, > md[md_blocks-1].len); > + vec.cipher_auth.digest.len =3D md[md_blocks-1].len; >=20 > if (info.file_type !=3D FIPS_TYPE_JSON) > fprintf(info.fp_wr, "COUNT =3D %u\n", j); @@ -2353,14 > +2347,12 @@ fips_mct_sha_test(void) > fprintf(info.fp_wr, "\n"); > } >=20 > - for (i =3D 0; i < (SHA_MD_BLOCK); i++) > + for (i =3D 0; i < (md_blocks); i++) > rte_free(md[i].val); >=20 > rte_free(vec.pt.val); >=20 > free(val.val); > - free(msg.val); > - > return 0; > } >=20 > -- > 2.25.1 Acked-by: Brian Dooley