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 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 ; 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 To: Brandon Lo , "roy.fan.zhang@intel.com" , "ciara.power@intel.com" CC: "dev@dpdk.org" , Akhil Goyal 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: 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: 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 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 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 > --- > 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