From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 2BF91A0503;
	Wed, 18 May 2022 17:45:08 +0200 (CEST)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 2172642B70;
	Wed, 18 May 2022 17:45:08 +0200 (CEST)
Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com
 [67.231.148.174])
 by mails.dpdk.org (Postfix) with ESMTP id AB4A342B6F
 for <dev@dpdk.org>; Wed, 18 May 2022 17:45:06 +0200 (CEST)
Received: from pps.filterd (m0045849.ppops.net [127.0.0.1])
 by mx0a-0016f401.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24I9Ur94008498;
 Wed, 18 May 2022 08:45:05 -0700
Received: from nam12-bn8-obe.outbound.protection.outlook.com
 (mail-bn8nam12lp2168.outbound.protection.outlook.com [104.47.55.168])
 by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3g4m6f3mpe-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Wed, 18 May 2022 08:45:05 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=VOfQfHcQMUpzNcr46FaE9JQMrQ715NrvdzUSwD6exRhhfe12EOved9PUGWzKz6kYuOXWyB22zxcUckFDvtnwcqQOGSrLG5CvEWjPVGlimHHddDZcT9ZIvqOrNvbP729n6QyrxOdsVRbi4d+WRgw8dP6vTjRA1CCg87m1CkQFOUuR7sIgi05jTcmr7J/O7XEQBajGSM+yrDx8NblfwZmnioGcYsQ7819BeNt/Ir0FA7JDS/6A3onwlENdnL5nR1lEfM12KWcZemmHSd1QKZaKPX7zP9gQ0hCf+epZwC3zCbKl48Hxs+/NkIL1Mue/NYSwtYNfCF+/Q+Sy8dkWYT98Zw==
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=nGe2Mk2ZLd3s3lBSORTEqWjbaDnqe5bvoucf6oWirfg=;
 b=QZr+jNVdLdGPEyf4jj2YlVlRkNE/ks54lJSsdoYyQnoPm8Uq3isaGZDdO2Si2Xt8DeyhwI8AXOIdIU1N50aLzwj2N7tP/tLxF3Mt5VNz/+7n6WLsYAVc4LiRwHSz3ULi5Mhy6fy9AcpxgTaFwRGM+b6LMvhtjcFt0Bw1vRs1PYYTv5+eKU1m3bgZI/lbdBFZB4xBLP9QSaqgVBMUA14nwDoWztaCleW3TSTOS4C3XCPnPHc1bVSRmELsziAgVHBSdVcrx1hSQNRRgiNB80qP4EaboY6Nq+m7Ln7i7UbTY0Scu+I/Pz10rKYILaZ+hOkR1FKASBqOQFB9Fr6RsZsvhQ==
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=nGe2Mk2ZLd3s3lBSORTEqWjbaDnqe5bvoucf6oWirfg=;
 b=najBYzcVGsCC7CedNXcSr9rqOU8htsTvh5zufR9YMRDN/Fi3NMoa9+/1xUz12Q73QaN1cxFgSNLMmjQtulfPGqi3RxdJrZKvp+s3sMC9TDO8OG5qdHVgXSMzgz6J1hIn0cePeIolrIutzhwimYYtYDlBPRlr9xW0uFPu8AXWKf4=
Received: from CO1PR18MB4714.namprd18.prod.outlook.com (2603:10b6:303:e9::18)
 by CO1PR18MB4732.namprd18.prod.outlook.com (2603:10b6:303:eb::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.15; Wed, 18 May
 2022 15:45:03 +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:03 +0000
From: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
To: Brandon Lo <blo@iol.unh.edu>, "roy.fan.zhang@intel.com"
 <roy.fan.zhang@intel.com>, "ciara.power@intel.com" <ciara.power@intel.com>
CC: "dev@dpdk.org" <dev@dpdk.org>, Akhil Goyal <gakhil@marvell.com>
Subject: RE: [EXT] [PATCH v4 3/8] examples/fips_validation: add json parsing
Thread-Topic: [EXT] [PATCH v4 3/8] examples/fips_validation: add json parsing
Thread-Index: AQHYW+R8ZG0e8ASa10qn+8sZ0h1ooq0k5Kcw
Date: Wed, 18 May 2022 15:45:03 +0000
Message-ID: <CO1PR18MB471467559C74189F59E08641CBD19@CO1PR18MB4714.namprd18.prod.outlook.com>
References: <20220129175514.746925-1-blo@iol.unh.edu>
 <20220429161559.415645-1-blo@iol.unh.edu>
 <20220429161559.415645-4-blo@iol.unh.edu>
In-Reply-To: <20220429161559.415645-4-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: e391c987-986d-4e22-b8e8-08da38e56023
x-ms-traffictypediagnostic: CO1PR18MB4732:EE_
x-microsoft-antispam-prvs: <CO1PR18MB4732C34E9D621F99294BA540CBD19@CO1PR18MB4732.namprd18.prod.outlook.com>
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: hWh2Ez9mjnuXCv/HeKA3YYec1neyZ8oROzh/iMJ/GV2v0k8LhibUydl9GfXHUVwJiUcY7jn87WUdMqSKJOoK2c63Xoi1e1ny6DNfYvGyY91TtiUODsGaIgL/06qBlZ+6ZbHBETMCYpVS3LeAzuPWSXWrCtBC5p+7GXY2yFzYUI9xXzcVR5dvWYnLqSldxLprQadWXNaCwrnypbhQ1BOTVYkXBKUV2HHWoYfapoR43/KA+rWZwmmEvK2HUZM5mEngb5jYdaa4GhsAehf3ZI+vyo1ksVQn1WKcxEEbGbqu3eI/M4KA1vsl7N18laDQ29n5z/p6VewCdwkADQpf0km77UccjZvRtafesirBZMEr6TOhZTHDl3Z5jG7Ci/060qDWq1XdW7IgZt8vG5PqD5AKVC8JAbRoEpYG3Zx68EVz38mtx9dnkY91YIYnFjTM0MOk6vFqOylDzMPec0O49nFI7C2npnp2bBEGkjH1u3oo58+422zfLF2/W2wFC3AsIL+0VxniAc8At0kQasHAT7LioULDqnX6gmq0IIk6y1v1wDJRKtFSaLzBLc6EWCrruluJb4e43bphhEykOH+KRTwg8V+CJ1WNe0N1LbJAYc6fa/csxnhrhCYTdCjSHEVyLfEYUvvWsx81sFwbJz/GBE6sHlIE/GEDEPLDXSLdHR8chogXoC7GsGv5zcBDPbzrLsF6q3RbmhqqrWfW48LIw6A00w==
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)(38070700005)(38100700002)(52536014)(26005)(110136005)(8676002)(64756008)(4326008)(316002)(508600001)(53546011)(33656002)(66946007)(66476007)(66556008)(76116006)(66446008)(122000001)(9686003)(54906003)(83380400001)(2906002)(107886003)(55016003)(5660300002)(71200400001)(186003)(86362001)(8936002)(7696005)(6506007);
 DIR:OUT; SFP:1101; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?gTTciNHL3KFFYctGOht4KNxlKMq76nGAXGOd+R3oc3tWh8Sz92N0/ILwA9vm?=
 =?us-ascii?Q?M4Hyc9IoABmocPRXP4/n4RfJi7Aj9TMqupfQGZTR7298DKkhE7Ybn/2dZL+3?=
 =?us-ascii?Q?QgjE8UT5iMA8Izmnu8wERCW0Z9JaJwNpx/bS49B5oIWogX37h8O6EgJZhiJ8?=
 =?us-ascii?Q?xA0QBesMt+L9zq/ZC7SpB2V8btENYHJ3URSeetVQzXX/JacOAHvnSW3wORo0?=
 =?us-ascii?Q?HtwyFCOWHVMswPHVK9/1pd5JvUgpyeZhIQHYSTa8/2OnUJ4AS+mKdoKe2iUM?=
 =?us-ascii?Q?oyLNRZIe+C0/vrJ7naIOQVwjHLJE5iEwGN+vgmBdsgS/APVSl1ruuTA2Vyg2?=
 =?us-ascii?Q?72VeQQ+Mi1Q6vqAdjheDNBpPtDcD340L4HuOMmPfcV2S45yL9D+KCpqAN42I?=
 =?us-ascii?Q?EMTXGRRb/vciz+ALgSo565FwDbk76RT+8/W357Ysc17XdoYwFkuRSPYRs8wu?=
 =?us-ascii?Q?IU281ivSYWarll4DitYKWwGTg6M3/G2eIC0Sd3Btc2jye2ufBc3hFA92knr5?=
 =?us-ascii?Q?ei6uLjobz7F4EgDsHGcGfbGrqi76jwvvaySSEMzXAA6IWErc7hPjSUZodF7W?=
 =?us-ascii?Q?1TbyhjMRBtKJVXsrH2JXi8rQadW5MlpJEB6bnCKfxt+ZIy5r52URdiERdhyA?=
 =?us-ascii?Q?SRM1AMng5CcY4TcmAdlpM0J5lDgJwlzfZeKpenTFUdBdLT4CNLgB5aSo1HRz?=
 =?us-ascii?Q?Ok0piaknva1CXrQL/QMtijsN47znb+j9bcf6VGlrbkPdtA8oW3PSMN0kwChG?=
 =?us-ascii?Q?1rs3rWHMvXnIENKgCGib8+mqbb9+Y6mgl97utgYxk6UuSdXAr43yf8Pw1mBb?=
 =?us-ascii?Q?1Wc1aXIzhdH3f7xgh1DAmn1Zff0RQQXVJZ+0pXPtAcXS2u5prxB34JbEgR4/?=
 =?us-ascii?Q?D3WjUJYT5JkMe7V17TMemhgtg9TGkw7DZcH37dPGdYoMjLCuvkngmalZhBnb?=
 =?us-ascii?Q?UyWrAPZMMoIZsC29tlJXt9jamDXfHC9OlGVsuXJtd0ew/IKiCN7h98m/of0e?=
 =?us-ascii?Q?sdcjZ1ukSjzeLhMOzDq00Hq5+Q+rdfz9rpbxhR34xTIxz2+B4nhzLZPUwoQa?=
 =?us-ascii?Q?/VmrrknW6+4xIi+E9Zny9qCH4+4HG4vEZvS2w1ddh9reyS0FS33Q6p4r4+NY?=
 =?us-ascii?Q?ZvrBw/tkxC00VcYr73tuLepEKgosD3teohU9CG6wjJ8idXCbJzH1fpSDo4SV?=
 =?us-ascii?Q?Fg5NT6M6tUbJAGtJi3ewiUPbYar9QA1po3lyYGU5C+BPxVGM1dDqXcJg7TRa?=
 =?us-ascii?Q?9RYNB/KbR6aYDYaskJ6bik2y1cQWJLIjZHKFhpdJhpRJyk/KS82DrOhQBpO3?=
 =?us-ascii?Q?MQcBpI01fzkKaQ7cpPdeA3WNLMPrwRxwSN5+kQPcqiBVfllWjf56grfJZqUv?=
 =?us-ascii?Q?T+aQmJNGUugE/OPTE5/GxCwQzrSSUR+2mLc9zjR7Jl7K8+eAsQIx9ssiyM0A?=
 =?us-ascii?Q?R1atuX70Ms9wPxbU/Ac3Ja3C5iOdirPwhu7iQlG74YyiHNbOVc9ns2iELY4D?=
 =?us-ascii?Q?P33nOmzCFFvkFAYWWlX/jkYBUCV9CYVZIguM4FDdmoCGkZtmFWcFipikLa+7?=
 =?us-ascii?Q?wvgNPPTdLyiTh73cvHqiNeOZ1kzZtZQFrzh9uWPZG9ba9LuBwLPyrc9bk8sz?=
 =?us-ascii?Q?VNcUF6FnI4YMimeCg/zWI+EDdhMwA1aAVRmejkDBAwhqpKaVp7fB54x+K0vq?=
 =?us-ascii?Q?k78Ntti8yXAtUNHfR7JkEnMw5vskiMqbTfisH0OEwszRGT+MRtBXvkfMcfnj?=
 =?us-ascii?Q?AX/TxYjs0g=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: e391c987-986d-4e22-b8e8-08da38e56023
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 May 2022 15:45:03.7654 (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: 1peDPILNjoVaHSjzY1uA8ENXb1kBaKPvvMiM17AjJDIb1CCgcnmKRRvmJUly2fcj6BFA45n/JP/350qkC15QqqmpzPxKGLW0M5epktF5bUU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR18MB4732
X-Proofpoint-GUID: tB_OUtRTQp37aD9r5Rq1xiigc3byDIAO
X-Proofpoint-ORIG-GUID: tB_OUtRTQp37aD9r5Rq1xiigc3byDIAO
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 <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

Verified the functionality changes and looks good to me.

Acked-by: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>

Thanks.

> -----Original Message-----
> From: Brandon Lo <blo@iol.unh.edu>
> Sent: Friday, April 29, 2022 9:46 PM
> To: roy.fan.zhang@intel.com; ciara.power@intel.com
> Cc: dev@dpdk.org; Brandon Lo <blo@iol.unh.edu>
> Subject: [EXT] [PATCH v4 3/8] examples/fips_validation: add json parsing
>=20
> External Email
>=20
> ----------------------------------------------------------------------
> Added functions to parse the required information from a vector set given=
 in
> the new json format.
>=20
> Signed-off-by: Brandon Lo <blo@iol.unh.edu>
> ---
> v3:
> * fix checkpatch warnings
>=20
> v2:
> * fix for loop initialization
>=20
>  examples/fips_validation/fips_validation.c | 92 ++++++++++++++++++++++
>  1 file changed, 92 insertions(+)
>=20
> diff --git a/examples/fips_validation/fips_validation.c
> b/examples/fips_validation/fips_validation.c
> index 94253eaee8..d220dcab1f 100644
> --- a/examples/fips_validation/fips_validation.c
> +++ b/examples/fips_validation/fips_validation.c
> @@ -276,6 +276,8 @@ parse_file_type(const char *path)
>  		info.file_type =3D FIPS_TYPE_RSP;
>  	else if (strstr(path, FAX_FILE_PERFIX))
>  		info.file_type =3D FIPS_TYPE_FAX;
> +	else if (strstr(path, JSON_FILE_PERFIX))
> +		info.file_type =3D FIPS_TYPE_JSON;
>  	else
>  		return -EINVAL;
>=20
> @@ -311,6 +313,21 @@ fips_test_init(const char *req_file_path, const char
> *rsp_file_path,
>  		return -EINVAL;
>  	}
>=20
> +	if (info.file_type =3D=3D FIPS_TYPE_JSON) { #ifdef RTE_HAS_JANSSON
> +		json_error_t error;
> +		json_info.json_root =3D json_loadf(info.fp_rd, 0, &error);
> +		if (!json_info.json_root) {
> +			RTE_LOG(ERR, USER1, "Cannot parse json file %s (line
> %d, column %d)\n",
> +				req_file_path, error.line, error.column);
> +			return -EINVAL;
> +		}
> +#else /* RTE_HAS_JANSSON */
> +		RTE_LOG(ERR, USER1, "No json library configured.\n");
> +		return -EINVAL;
> +#endif /* RTE_HAS_JANSSON */
> +	}
> +
>  	info.fp_wr =3D fopen(rsp_file_path, "w");
>  	if (!info.fp_wr) {
>  		RTE_LOG(ERR, USER1, "Cannot open file %s\n",
> rsp_file_path); @@ -329,6 +346,9 @@ fips_test_init(const char
> *req_file_path, const char *rsp_file_path,
>  		return -EINVAL;
>  	}
>=20
> +	if (info.file_type =3D=3D FIPS_TYPE_JSON)
> +		return 0;
> +
>  	if (fips_test_parse_header() < 0) {
>  		RTE_LOG(ERR, USER1, "Failed parsing header\n");
>  		return -1;
> @@ -428,6 +448,78 @@ fips_test_write_one_case(void)
>  		fprintf(info.fp_wr, "%s\n", info.vec[i]);  }
>=20
> +#ifdef RTE_HAS_JANSSON
> +int
> +fips_test_parse_one_json_vector_set(void)
> +{
> +	json_t *algo_obj =3D json_object_get(json_info.json_vector_set,
> "algorithm");
> +	const char *algo_str =3D json_string_value(algo_obj);
> +
> +	/* 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;
> +	else
> +		return -EINVAL;
> +
> +	return 0;
> +}
> +
> +int
> +fips_test_parse_one_json_group(void)
> +{
> +	int ret, i;
> +	json_int_t val;
> +	json_t *param;
> +
> +	if (info.interim_callbacks) {
> +		char json_value[256];
> +		for (i =3D 0; info.interim_callbacks[i].key !=3D NULL; i++) {
> +			param =3D
> json_object_get(json_info.json_test_group,
> +					info.interim_callbacks[i].key);
> +			val =3D json_integer_value(param);
> +			snprintf(json_value, 255,
> "%"JSON_INTEGER_FORMAT, val);
> +			/* First argument is blank because the key
> +			 * is not included in the string being parsed.
> +			 */
> +			ret =3D info.interim_callbacks[i].cb(
> +				"", json_value,
> +				info.interim_callbacks[i].val
> +			);
> +			if (ret < 0)
> +				return ret;
> +		}
> +	}
> +
> +	return 0;
> +}
> +
> +int
> +fips_test_parse_one_json_case(void)
> +{
> +	uint32_t i;
> +	int ret =3D 0;
> +	json_t *param;
> +
> +	for (i =3D 0; info.callbacks[i].key !=3D NULL; i++) {
> +		param =3D json_object_get(json_info.json_test_case,
> info.callbacks[i].key);
> +		if (param) {
> +			strcpy(info.one_line_text,
> json_string_value(param));
> +			/* First argument is blank because the key
> +			 * is not included in the string being parsed.
> +			 */
> +			ret =3D info.callbacks[i].cb(
> +				"", info.one_line_text,
> +				info.callbacks[i].val
> +			);
> +			if (ret < 0)
> +				return ret;
> +		}
> +	}
> +
> +	return 0;
> +}
> +#endif /* RTE_HAS_JANSSON */
> +
>  static int
>  parser_read_uint64_hex(uint64_t *value, const char *p)  {
> --
> 2.25.1