RE: [v7, 08/11] examples/fips_validation: add parsing for cmac

2022-05-26 Thread Zhang, Roy Fan
> -Original Message-
> From: Gowrishankar Muthukrishnan 
> Sent: Thursday, May 26, 2022 9:02 AM
> To: dev@dpdk.org
> Cc: Zhang, Roy Fan ; Dooley, Brian
> ; lylav...@iol.unh.edu; Anoob Joseph
> ; Archana Muniganti ;
> Jerin Jacob ; Brandon Lo ;
> Gowrishankar Muthukrishnan 
> Subject: [v7, 08/11] examples/fips_validation: add parsing for cmac
> 
> From: Brandon Lo 
> 
> Added function to parse algorithm for CMAC test.
> 
> Signed-off-by: Brandon Lo 
> Signed-off-by: Gowrishankar Muthukrishnan 
> --
Acked-by: Fan Zhang 


[v7, 08/11] examples/fips_validation: add parsing for cmac

2022-05-26 Thread Gowrishankar Muthukrishnan
From: Brandon Lo 

Added function to parse algorithm for CMAC test.

Signed-off-by: Brandon Lo 
Signed-off-by: Gowrishankar Muthukrishnan 
--
v5:
* parser_read_cmac_direction_str implementation moved to static.
---
 examples/fips_validation/fips_validation.c | 19 ---
 examples/fips_validation/main.c|  3 +++
 2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/examples/fips_validation/fips_validation.c 
b/examples/fips_validation/fips_validation.c
index e8520f59cf..ab4c0d0eca 100644
--- a/examples/fips_validation/fips_validation.c
+++ b/examples/fips_validation/fips_validation.c
@@ -460,6 +460,8 @@ fips_test_parse_one_json_vector_set(void)
info.algo = FIPS_TEST_ALGO_AES_GCM;
if (strstr(algo_str, "HMAC"))
info.algo = FIPS_TEST_ALGO_HMAC;
+   if (strstr(algo_str, "CMAC"))
+   info.algo = FIPS_TEST_ALGO_AES_CMAC;
else
return -EINVAL;
 
@@ -470,7 +472,6 @@ int
 fips_test_parse_one_json_group(void)
 {
int ret, i;
-   json_int_t val;
json_t *param;
 
if (info.interim_callbacks) {
@@ -478,8 +479,20 @@ fips_test_parse_one_json_group(void)
for (i = 0; info.interim_callbacks[i].key != NULL; i++) {
param = json_object_get(json_info.json_test_group,
info.interim_callbacks[i].key);
-   val = json_integer_value(param);
-   snprintf(json_value, 255, "%"JSON_INTEGER_FORMAT, val);
+   switch (json_typeof(param)) {
+   case JSON_STRING:
+   snprintf(json_value, 256, "%s", 
json_string_value(param));
+   break;
+
+   case JSON_INTEGER:
+   snprintf(json_value, 255, 
"%"JSON_INTEGER_FORMAT,
+   json_integer_value(param));
+   break;
+
+   default:
+   return -EINVAL;
+   }
+
/* First argument is blank because the key
 * is not included in the string being parsed.
 */
diff --git a/examples/fips_validation/main.c b/examples/fips_validation/main.c
index 45b453b913..d104d82221 100644
--- a/examples/fips_validation/main.c
+++ b/examples/fips_validation/main.c
@@ -1947,6 +1947,9 @@ fips_test_one_test_group(void)
case FIPS_TEST_ALGO_HMAC:
ret = parse_test_hmac_json_init();
break;
+   case FIPS_TEST_ALGO_AES_CMAC:
+   ret = parse_test_cmac_json_init();
+   break;
default:
return -EINVAL;
}
-- 
2.25.1