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 8AB67A0503; Wed, 18 May 2022 17:46:00 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7DB9642686; Wed, 18 May 2022 17:46:00 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 0EA63400D6 for ; Wed, 18 May 2022 17:45:58 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24IBsJPY015774; Wed, 18 May 2022 08:45:58 -0700 Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2177.outbound.protection.outlook.com [104.47.58.177]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3g50as0wkf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 18 May 2022 08:45:58 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RvQrYJiLYy6gg3CNb0Pw6Gc7zPa6kt0beYr1oDH97qKOCn58zszcIw+YnfYwDvP/nsn+evlvLaVMFOqDnzuRW5DiXds1Hvc4EHJ2D/dcbwhpcuAqPQDzfr9G0LM5xW0vynA7yujXn0RCw1OH5Z3fWd2mo5v4HHAIwTYqqs+ZmtUnPDx8oPdInIG+QnHrI+kHBI+XTve0Tntn9cl7cFseF99bQPLuc44xKbL+P2PRcybvOq+2kdqDVHYNMJDp4BfkQy3orb1zZYUAZmmSQBqrSGPMTqRHMQp1clRGYVDCpVrFLQb7VyK6FRvCrZaparP7dhbf1rpq9Ip2/LmzG+8F8w== 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=1VShPE8gbCrUxngbBXUIKFwjUNClGlr3nOrnf6MRgCs=; b=gjohMLJczamOto413Bf/1PkdhIueITnWoKV5bKqf533SIe9lNCVufuZ1oublgw/IhVYdIa3Z54EnTnJdU2N8/HD++r4x1crOAQl6JvGgb+94q/S59bu5CowQmVVn0MCBsL98fpUNvSDjPfoyXkKoaFwDGEnmXWY9Hy9czP8UCP5j3IDDCOG4w9oWlR3MWxGh4tQ4uMdzFdLUoK0YjH7pW10fLRYD9MKGr9s6/z0lFLpud5d/XOV6wZEELcp6xOV+87sYegP+bS3vLBfYROZ1XnF7BJZKKoM8Ftn/Al1N4IYrl4+kg4zVlqoxh2R6RGHvZ0vI/Ou65jbKOWDrdEF2bA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1VShPE8gbCrUxngbBXUIKFwjUNClGlr3nOrnf6MRgCs=; b=rTjPzJrH2zS+Ls40IhpdK64S9XozncZHckx/ZuCuopRVnSfyt49L7H64sXci6bP6JnrWcTNSCx8nbbb0gXH74qouengusQZi5nD5A3vS0qgW4THwl2iI+gvyvH4/69bjDJ4Kz/zT7ugHq7K6dTcRa9Rpx00NOGvE/nU0+4khg1Q= Received: from CO1PR18MB4714.namprd18.prod.outlook.com (2603:10b6:303:e9::18) by SN6PR18MB3744.namprd18.prod.outlook.com (2603:10b6:805:55::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.18; Wed, 18 May 2022 15:45:51 +0000 Received: from CO1PR18MB4714.namprd18.prod.outlook.com ([fe80::f83c:2654:ed5:fd1f]) by CO1PR18MB4714.namprd18.prod.outlook.com ([fe80::f83c:2654:ed5:fd1f%6]) with mapi id 15.20.5273.014; Wed, 18 May 2022 15:45:51 +0000 From: Gowrishankar Muthukrishnan To: Brandon Lo , "roy.fan.zhang@intel.com" , "ciara.power@intel.com" CC: "dev@dpdk.org" , Akhil Goyal Subject: RE: [EXT] [PATCH v4 6/8] examples/fips_validation: add json to hmac Thread-Topic: [EXT] [PATCH v4 6/8] examples/fips_validation: add json to hmac Thread-Index: AQHYW+SI/JiQ1zrsC0+zhNEmPj+E9a0k5N8g Date: Wed, 18 May 2022 15:45:51 +0000 Message-ID: References: <20220129175514.746925-1-blo@iol.unh.edu> <20220429161559.415645-1-blo@iol.unh.edu> <20220429161559.415645-7-blo@iol.unh.edu> In-Reply-To: <20220429161559.415645-7-blo@iol.unh.edu> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c8784999-7e98-4696-42cc-08da38e57c91 x-ms-traffictypediagnostic: SN6PR18MB3744: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: alYqyLnMFMl7lQyb//Afd6+PCPOEL1Me+RoGLubSp4JolBQiuIVq6NicL5vndyDtkizivSwJvHkh2sPGtL0kn17NS1bNUmMM6IKDaMrjn2XiA9bDLjYQK6J9S49Nrz078BzxQ3U6o8sBbsiF6Y62uA/z3W205RdjAa/wHK1XRkZorcMZ/Lc5X6vrPwfSX6IQb/OOWzE/zI9FCJBtfm+jPOoM+BFvo88hYkZDAgcsNQjymzLs0wye7meVdnx7S6vs6Vq7QM93nThPMfr4b8gTWaLjt84ciA9Ho1iUh1PxoS7M8Ax8IhpRQ32F4KGZZTqIxATjCSyb31GTKYskhrjvfBcWThxESlw2UUISLHRH6XXck1EnfPS+yu1mHLowhLFgFDrF7grSQTHoRYKYYi7ZO7MtCg7ksRsAgI4W4PC9HcdqN6aS8APZTKDb+n+37sXIP7e/7b9icWCofH5433VIIk3gtzBAdeZZcmch57t49RjLUC1+vRZuI2niOcDnB6NcfiWMHoyJReknzQlwKJhgWx+ho9rX2fx/tNzJUf7hOO48g1nJfHHbtcrsiebt9vZ/Polm2+llfDTpgTcqr8H7awvcqg/Q2cjx8N2kvXbmAB7j51uu0uURkEzJDbZPSDmAjHsUirRBjv5O4ueN29wcpoXgJL6UujgC+4i9ONr/trrmUwmF+W1tbGkeOcbNW/umWq2FHCTwFtAn4Y5Svws6bQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO1PR18MB4714.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(54906003)(66946007)(76116006)(86362001)(4326008)(66556008)(55016003)(110136005)(66446008)(2906002)(5660300002)(38100700002)(6506007)(53546011)(316002)(8936002)(9686003)(26005)(33656002)(186003)(7696005)(38070700005)(508600001)(52536014)(107886003)(8676002)(66476007)(64756008)(83380400001)(71200400001)(122000001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?C3LRO57cfx3dtXWkuRH/1LrocPK3PRhN3gqIF0lYCFYSgo8DNsoWSXBKxSBM?= =?us-ascii?Q?As0gzXau0oLcMefCIcGR0IE2Ckp5YX9HAZLdnkJGl9hcu8kSFoeJOO7vnOfQ?= =?us-ascii?Q?EjskBiX5g9bDKzQcge6KF2qMjjngjQQQ9YMJED1ucuQWWJbgViv8RCxOj7tK?= =?us-ascii?Q?hikGIknD5c149ejlCRegeyAuQQAFaK1wLQej5zZEBttQ3d2K/DfDdM3SwfPo?= =?us-ascii?Q?60oR3RSn6SK9dej743WUc4HXjhyF7sqsa8ZlJ/XM21dJwME6Wd69tZ6K8/fu?= =?us-ascii?Q?aj54h67S1iaJkGDwKF0JJFelCKnJ8URjIdgZ0dyY2hg7FSS7+gIf4gUDoMkp?= =?us-ascii?Q?EbYyOUXFQXfv94iGM4jlPviAtc5PFz5EUgaMYqrkHs9MK2QWDTmXUNo6kM87?= =?us-ascii?Q?lu9td0dwkK+lvEdo4qFm9nRf/fD4g4yYqLmzQyel+b9FXE0r67v6yJMrn3P/?= =?us-ascii?Q?TsVvzdp0oGUN5driDLwcyC6T4oOH8NsEGPGQcuQ6OGXWKPdDnXB6kuYcyaIG?= =?us-ascii?Q?Smlykk1WvRLifbIveU1AFiEcLH/cBwOi9B7LlLM9bxn6bsxAha/BhnAnipeK?= =?us-ascii?Q?IyHeRADZObNrPyWKUHKiWEMMBASJO1fwDo6whxclsT1R4SXoi5ip4hfHpbtY?= =?us-ascii?Q?sKnrYVKCWLQNtHVJJhh+xn3sn4TTTQofI/FvfhqESJaJ2Zbc1+SlDhYUnZ9l?= =?us-ascii?Q?DExdBehLQ4Ci0A7zb5trqBdc81b/4KU7lz1qaPwhr8yaIVrJkUM84dwQ2cxu?= =?us-ascii?Q?PF6XZUIzDhFFSGkNFGxzCtaPoor178swU2upz8foe+y7Zx1Ai9y2JzaZcaid?= =?us-ascii?Q?R61fDzQl+UC+/c7N1bqAViqsQpuxCapeoJzXNY8aG2398E7T2oAEeALYs8Ii?= =?us-ascii?Q?i+B2A5A62+gg41PTcvuDbYesj6lpJhPG4CmT9G7kRJVO6iz57D9UN3BVSAuk?= =?us-ascii?Q?S9ybQNu6Y0Al7Y1ijXrf04f1uqsPiBHOJNi0YnPg83NaRH0ahOaQE6/o3EvO?= =?us-ascii?Q?/7rJAwal73jPXopO/XTeya/BG5td1nLqJRgSCxBnYbp5kkBnMSXQru8ZtKFW?= =?us-ascii?Q?P+1i1iEv9oayYsmGiJfeDz0QOleem8OED7wyTNRnF0gAOKgtZHDMMrSTfikD?= =?us-ascii?Q?HyE7TwuTOMavOmvVE/yTKHlVTW0tGLG5JVLjVl5ZVmHbkl0L2kMpkBnVzYGi?= =?us-ascii?Q?xaWnH1TB8XY2F/jUQGmmYhEvq6KemafVpU7CZ+IT5LkT/XYdLbZ3uF+4a5MT?= =?us-ascii?Q?mIUJqMwFSfZeBP2eoWd12X2i5ztwadtelvUYHKUTQVaBrkl6mDRVeG6BN0LD?= =?us-ascii?Q?1APWS4jGXvNLzjbbi9DBFrrjyR8dy0Zqri/fxGEkmtW6Ni2oWPG1VUAl3gqR?= =?us-ascii?Q?QvblxCvhfxs6DHyG87hxrEG+aX5piatgrf91oPZ66a/PgnlDvjkkFo6k7vwp?= =?us-ascii?Q?Wy/1thG/Ezzzj276ylya1vFk82pbiw613ymXCAjKV/NbG0zPLyBA/YufNkuB?= =?us-ascii?Q?/yhrDj5uT3UGFZxcAJvZzea3DLOHGExkJ0FkF1GD5jsJVAcVwfEU8z/P4bRm?= =?us-ascii?Q?1jVYesR9oJTNtC3WkJOIQ27KrWT0abfZGulmKaNDF9CK02vNlXBP0mQ7f6v+?= =?us-ascii?Q?6pofHNYpi1rieUiIME6x5z5q5TWvBW0l6/Rt9bvcO5T3Fy6UIscvbDOvikmj?= =?us-ascii?Q?llWkcDmrLgz4dGBV2ncd1W/NmIH/yu9Icvcql6zP9J+KhWNBaRDSpsocHIqy?= =?us-ascii?Q?Mwen8PngYw=3D=3D?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: marvell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR18MB4714.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c8784999-7e98-4696-42cc-08da38e57c91 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 May 2022 15:45:51.4438 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: j482iPj4O3bG/6wwoZP8bbO6wfQOaiSaZnI0sO0nyYOo2+PNiPfS0FCjyAaGDkbFF666rE6fOSP8n3OSP0r1VVcoe98rLQg+cFkYPr7Ehv8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR18MB3744 X-Proofpoint-ORIG-GUID: z8W4uTiWJBLm1MFovkCDx74e_34lvHkg X-Proofpoint-GUID: z8W4uTiWJBLm1MFovkCDx74e_34lvHkg X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.874,Hydra:6.0.486,FMLib:17.11.64.514 definitions=2022-05-18_06,2022-05-17_02,2022-02-23_01 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 Verified the functionality changes and looks good to me. Acked-by: Gowrishankar Muthukrishnan Thanks. > -----Original Message----- > From: Brandon Lo > Sent: Friday, April 29, 2022 9:46 PM > To: roy.fan.zhang@intel.com; ciara.power@intel.com > Cc: dev@dpdk.org; Brandon Lo > Subject: [EXT] [PATCH v4 6/8] examples/fips_validation: add json to hmac >=20 > External Email >=20 > ---------------------------------------------------------------------- > Adds JSON support for the HMAC algorithm. >=20 > Signed-off-by: Brandon Lo > --- > examples/fips_validation/fips_validation.c | 2 + > examples/fips_validation/fips_validation.h | 6 ++ > .../fips_validation/fips_validation_hmac.c | 93 +++++++++++++++++++ > examples/fips_validation/main.c | 3 + > 4 files changed, 104 insertions(+) >=20 > diff --git a/examples/fips_validation/fips_validation.c > b/examples/fips_validation/fips_validation.c > index d220dcab1f..04dfb85262 100644 > --- a/examples/fips_validation/fips_validation.c > +++ b/examples/fips_validation/fips_validation.c > @@ -458,6 +458,8 @@ fips_test_parse_one_json_vector_set(void) > /* Vector sets contain the algorithm type, and nothing else we need. > */ > if (strstr(algo_str, "AES-GCM")) > info.algo =3D FIPS_TEST_ALGO_AES_GCM; > + if (strstr(algo_str, "HMAC")) > + info.algo =3D FIPS_TEST_ALGO_HMAC; > else > return -EINVAL; >=20 > diff --git a/examples/fips_validation/fips_validation.h > b/examples/fips_validation/fips_validation.h > index 8d7af99e04..2c65d838b0 100644 > --- a/examples/fips_validation/fips_validation.h > +++ b/examples/fips_validation/fips_validation.h > @@ -253,6 +253,12 @@ fips_test_parse_one_json_case(void); >=20 > int > parse_test_gcm_json_init(void); > + > +int > +parse_test_hmac_json_init(void); > + > +int > +parse_test_hmac_json_algorithm(void); > #endif /* RTE_HAS_JANSSON */ >=20 > int > diff --git a/examples/fips_validation/fips_validation_hmac.c > b/examples/fips_validation/fips_validation_hmac.c > index 1285c9d283..4cd1b1ac07 100644 > --- a/examples/fips_validation/fips_validation_hmac.c > +++ b/examples/fips_validation/fips_validation_hmac.c > @@ -19,6 +19,15 @@ > #define PT_STR "Msg =3D " > #define TAG_STR "Mac =3D " >=20 > +#define ALGO_JSON_STR "algorithm" > + > +#define KEYLEN_JSON_STR "keyLen" > +#define TAGLEN_JSON_STR "macLen" > + > +#define KEY_JSON_STR "key" > +#define PT_JSON_STR "msg" > +#define TAG_JSON_STR "mac" > + > struct hash_size_conversion { > const char *str; > enum rte_crypto_auth_algorithm algo; > @@ -65,6 +74,29 @@ struct fips_test_callback hmac_tests_interim_vectors[] > =3D { > {NULL, NULL, NULL} /**< end pointer */ }; >=20 > +#ifdef RTE_HAS_JANSSON > +struct hash_size_conversion json_algorithms[] =3D { > + {"HMAC-SHA-1", RTE_CRYPTO_AUTH_SHA1_HMAC}, > + {"HMAC-SHA2-224", RTE_CRYPTO_AUTH_SHA224_HMAC}, > + {"HMAC-SHA2-256", RTE_CRYPTO_AUTH_SHA256_HMAC}, > + {"HMAC-SHA2-384", RTE_CRYPTO_AUTH_SHA384_HMAC}, > + {"HMAC-SHA2-512", RTE_CRYPTO_AUTH_SHA512_HMAC}, }; > + > +struct fips_test_callback hmac_tests_json_vectors[] =3D { > + {KEY_JSON_STR, parse_uint8_hex_str, > &vec.cipher_auth.key}, > + {PT_JSON_STR, parse_uint8_hex_str, &vec.pt}, > + {TAG_JSON_STR, parse_uint8_hex_str, > &vec.cipher_auth.digest}, > + {NULL, NULL, NULL} /**< end pointer */ }; > + > +struct fips_test_callback hmac_tests_interim_json_vectors[] =3D { > + {KEYLEN_JSON_STR, parser_read_uint32_val, > &vec.cipher_auth.key}, > + {TAGLEN_JSON_STR, parser_read_uint32_bit_val, > &vec.cipher_auth.digest}, > + {NULL, NULL, NULL} /**< end pointer */ }; #endif /* > RTE_HAS_JANSSON > +*/ > + > static int > parse_test_hmac_writeback(struct fips_val *val) { @@ -103,3 +135,64 @@ > parse_test_hmac_init(void) >=20 > return 0; > } > + > +#ifdef RTE_HAS_JANSSON > +static int > +parse_test_hmac_json_writeback(struct fips_val *val) { > + struct fips_val val_local; > + json_t *tcId, *mac; > + > + tcId =3D json_object_get(json_info.json_test_case, "tcId"); > + > + json_info.json_write_case =3D json_object(); > + json_object_set(json_info.json_write_case, "tcId", tcId); > + > + > + val_local.val =3D val->val + vec.pt.len; > + val_local.len =3D vec.cipher_auth.digest.len; > + > + writeback_hex_str("", info.one_line_text, &val_local); > + > + mac =3D json_string(info.one_line_text); > + json_object_set_new(json_info.json_write_case, TAG_JSON_STR, > mac); > + > + return 0; > +} > + > +int > +parse_test_hmac_json_algorithm(void) > +{ > + json_t *algorithm_object; > + const char *algorithm_str; > + uint32_t i; > + > + algorithm_object =3D json_object_get(json_info.json_vector_set, > "algorithm"); > + algorithm_str =3D json_string_value(algorithm_object); > + > + for (i =3D 0; i < RTE_DIM(json_algorithms); i++) { > + if (strstr(algorithm_str, json_algorithms[i].str)) { > + info.interim_info.hmac_data.algo =3D > json_algorithms[i].algo; > + return 0; > + } > + } > + > + return -1; > +} > + > +int > +parse_test_hmac_json_init(void) > +{ > + info.op =3D FIPS_TEST_ENC_AUTH_GEN; > + info.parse_writeback =3D parse_test_hmac_json_writeback; > + info.callbacks =3D hmac_tests_json_vectors; > + info.writeback_callbacks =3D NULL; > + info.kat_check =3D rsp_test_hmac_check; > + info.interim_callbacks =3D hmac_tests_interim_json_vectors; > + > + if (parse_test_hmac_json_algorithm() < 0) > + return -1; > + > + return 0; > +} > +#endif /* RTE_HAS_JANSSON */ > diff --git a/examples/fips_validation/main.c > b/examples/fips_validation/main.c index a1d8a1d758..de6dedaf75 100644 > --- a/examples/fips_validation/main.c > +++ b/examples/fips_validation/main.c > @@ -1943,6 +1943,9 @@ fips_test_one_test_group(void) > case FIPS_TEST_ALGO_AES_GCM: > ret =3D parse_test_gcm_json_init(); > break; > + case FIPS_TEST_ALGO_HMAC: > + ret =3D parse_test_hmac_json_init(); > + break; > default: > return -EINVAL; > } > -- > 2.25.1