All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
To: <dev@dpdk.org>
Cc: Fan Zhang <roy.fan.zhang@intel.com>,
	Brian Dooley <brian.dooley@intel.com>, <lylavoie@iol.unh.edu>,
	Anoob Joseph <anoobj@marvell.com>,
	Archana Muniganti <marchana@marvell.com>,
	Jerin Jacob <jerinj@marvell.com>, Brandon Lo <blo@iol.unh.edu>
Subject: [v6, 07/11] examples/fips_validation: implement json cmac test
Date: Wed, 25 May 2022 22:43:43 +0530	[thread overview]
Message-ID: <dfeb5979f566aeeb70fa189be016e07f3d3b4cb0.1653498667.git.gmuthukrishn@marvell.com> (raw)
In-Reply-To: <cover.1653498667.git.gmuthukrishn@marvell.com>

From: Brandon Lo <blo@iol.unh.edu>

Implemented JSON support for the CMAC test.

Signed-off-by: Brandon Lo <blo@iol.unh.edu>
--
v5:
* parser_read_cmac_direction_str is static.
---
 examples/fips_validation/fips_validation.h    |  3 +
 .../fips_validation/fips_validation_cmac.c    | 80 +++++++++++++++++++
 2 files changed, 83 insertions(+)

diff --git a/examples/fips_validation/fips_validation.h b/examples/fips_validation/fips_validation.h
index 3b3ffb7fa6..88cbb0303e 100644
--- a/examples/fips_validation/fips_validation.h
+++ b/examples/fips_validation/fips_validation.h
@@ -259,6 +259,9 @@ parse_test_hmac_json_init(void);
 
 int
 parse_test_hmac_json_algorithm(void);
+
+int
+parse_test_cmac_json_init(void);
 #endif /* RTE_HAS_JANSSON */
 
 int
diff --git a/examples/fips_validation/fips_validation_cmac.c b/examples/fips_validation/fips_validation_cmac.c
index 54c951ef83..094e3922a4 100644
--- a/examples/fips_validation/fips_validation_cmac.c
+++ b/examples/fips_validation/fips_validation_cmac.c
@@ -32,6 +32,18 @@
 #define PASS_STR	"P"
 #define FAIL_STR	"F"
 
+#define KLEN_JSON_STR		"keyLen"
+#define PTLEN_JSON_STR		"msgLen"
+#define TAGLEN_JSON_STR		"macLen"
+#define KEY_JSON_STR		"key"
+#define PT_JSON_STR			"message"
+#define TAG_JSON_STR		"mac"
+#define DIRECTION_JSON_STR	"direction"
+#define POS_NEG_JSON_STR	"testPassed"
+
+#define GEN_JSON_STR	"gen"
+#define VERIF_JSON_STR	"ver"
+
 struct hash_algo_conversion {
 	const char *str;
 	enum fips_test_algorithms algo;
@@ -39,6 +51,74 @@ struct hash_algo_conversion {
 		{"AES", FIPS_TEST_ALGO_AES_CMAC},
 };
 
+#ifdef RTE_HAS_JANSSON
+static int
+parser_read_cmac_direction_str(__rte_unused const char *key, char *src,
+		__rte_unused struct fips_val *val)
+{
+	if (strcmp(src, "gen") == 0)
+		info.op = FIPS_TEST_ENC_AUTH_GEN;
+	else if (strcmp(src, "ver") == 0)
+		info.op = FIPS_TEST_DEC_AUTH_VERIF;
+
+	return 0;
+}
+
+struct fips_test_callback cmac_tests_interim_json_vectors[] = {
+		{KLEN_JSON_STR, parser_read_uint32_bit_val, &vec.cipher_auth.key},
+		{PTLEN_JSON_STR, parser_read_uint32_bit_val, &vec.pt},
+		{TAGLEN_JSON_STR, parser_read_uint32_bit_val, &vec.cipher_auth.digest},
+		{DIRECTION_JSON_STR, parser_read_cmac_direction_str, NULL},
+		{NULL, NULL, NULL} /**< end pointer */
+};
+
+struct fips_test_callback cmac_tests_json_vectors[] = {
+		{KEY_JSON_STR, parse_uint8_hex_str, &vec.cipher_auth.key},
+		{PT_JSON_STR, parse_uint8_known_len_hex_str, &vec.pt},
+		{TAG_JSON_STR, parse_uint8_known_len_hex_str,
+				&vec.cipher_auth.digest},
+		{NULL, NULL, NULL} /**< end pointer */
+};
+
+static int
+parse_test_cmac_json_writeback(struct fips_val *val)
+{
+	json_info.json_write_case = json_object();
+	json_object_set(json_info.json_write_case, "tcId",
+		json_object_get(json_info.json_test_case, "tcId"));
+
+	if (info.op == FIPS_TEST_ENC_AUTH_GEN) {
+		struct fips_val tmp_val = {val->val + vec.pt.len,
+				vec.cipher_auth.digest.len};
+
+		writeback_hex_str("", info.one_line_text, &tmp_val);
+		json_object_set_new(json_info.json_write_case, TAG_JSON_STR,
+			json_string(info.one_line_text));
+	} else {
+		if (vec.status == RTE_CRYPTO_OP_STATUS_SUCCESS)
+			json_object_set_new(json_info.json_write_case, POS_NEG_JSON_STR,
+				json_boolean(true));
+		else if (vec.status == RTE_CRYPTO_OP_STATUS_AUTH_FAILED)
+			json_object_set_new(json_info.json_write_case, POS_NEG_JSON_STR,
+				json_boolean(false));
+	}
+
+	return 0;
+}
+
+int
+parse_test_cmac_json_init(void)
+{
+	info.algo = FIPS_TEST_ALGO_AES_CMAC;
+
+	info.parse_writeback = parse_test_cmac_json_writeback;
+	info.callbacks = cmac_tests_json_vectors;
+	info.interim_callbacks = cmac_tests_interim_json_vectors;
+
+	return 0;
+}
+#endif /* RTE_HAS_JANSSON */
+
 static int
 parse_test_cmac_writeback(struct fips_val *val)
 {
-- 
2.25.1


  parent reply	other threads:[~2022-05-25 17:15 UTC|newest]

Thread overview: 122+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-27 14:51 [PATCH 0/5] Add JSON vector set support to fips validation Brandon Lo
2022-01-27 14:51 ` [PATCH 1/5] examples/fips_validation: add jansson dependency Brandon Lo
2022-01-27 14:51 ` [PATCH 2/5] examples/fips_validation: add json info to header Brandon Lo
2022-01-27 14:51 ` [PATCH 3/5] examples/fips_validation: add json parsing Brandon Lo
2022-01-27 14:51 ` [PATCH 4/5] examples/fips_validation: allow json file as input Brandon Lo
2022-01-27 14:51 ` [PATCH 5/5] examples/fips_validation: add json to gcm test Brandon Lo
2022-01-29 17:03 ` [PATCH v2 0/5] Add JSON vector set support to fips validation Brandon Lo
2022-01-29 17:03   ` [PATCH v2 1/5] examples/fips_validation: add jansson dependency Brandon Lo
2022-01-29 17:03   ` [PATCH v2 2/5] examples/fips_validation: add json info to header Brandon Lo
2022-01-29 17:03   ` [PATCH v2 3/5] examples/fips_validation: add json parsing Brandon Lo
2022-01-29 17:03   ` [PATCH v2 4/5] examples/fips_validation: allow json file as input Brandon Lo
2022-01-29 17:03   ` [PATCH v2 5/5] examples/fips_validation: add json to gcm test Brandon Lo
2022-01-29 17:55   ` [PATCH v3 0/5] Add JSON vector set support to fips validation Brandon Lo
2022-01-29 17:55     ` [PATCH v3 1/5] examples/fips_validation: add jansson dependency Brandon Lo
2022-01-29 17:55     ` [PATCH v3 2/5] examples/fips_validation: add json info to header Brandon Lo
2022-01-29 17:55     ` [PATCH v3 3/5] examples/fips_validation: add json parsing Brandon Lo
2022-01-29 17:55     ` [PATCH v3 4/5] examples/fips_validation: allow json file as input Brandon Lo
2022-01-29 17:55     ` [PATCH v3 5/5] examples/fips_validation: add json to gcm test Brandon Lo
2022-02-02 15:15     ` [PATCH v3 0/5] Add JSON vector set support to fips validation Brandon Lo
     [not found]       ` <MN2PR11MB382152E7C1DAFD68066264DEE62F9@MN2PR11MB3821.namprd11.prod.outlook.com>
     [not found]         ` <CAOeXdvZFkEUn-e2Reo3xg519qWpGq-UbYFhJqVeEMcXVxK7+YQ@mail.gmail.com>
     [not found]           ` <CAOeXdvZ4nBudX+bMdRASaLp=c955vUHi1Z-geUC6gFvE__2ozg@mail.gmail.com>
     [not found]             ` <CAOeXdvZbwW2tP-vyELRJza_imjjRm-JNYu+c4=-y2VtigqNg5A@mail.gmail.com>
2022-04-14 13:41               ` Brandon Lo
2022-04-21  8:02                 ` [EXT] " Gowrishankar Muthukrishnan
2022-04-26 14:30                   ` Brandon Lo
2022-02-08 21:48     ` [EXT] " Akhil Goyal
2022-04-29 16:15     ` [PATCH v4 0/8] " Brandon Lo
2022-04-29 16:15       ` [PATCH v4 1/8] examples/fips_validation: add jansson dependency Brandon Lo
2022-05-18 15:44         ` [EXT] " Gowrishankar Muthukrishnan
2022-04-29 16:15       ` [PATCH v4 2/8] examples/fips_validation: add json info to header Brandon Lo
2022-05-18 15:44         ` [EXT] " Gowrishankar Muthukrishnan
2022-04-29 16:15       ` [PATCH v4 3/8] examples/fips_validation: add json parsing Brandon Lo
2022-05-18 15:45         ` [EXT] " Gowrishankar Muthukrishnan
2022-04-29 16:15       ` [PATCH v4 4/8] examples/fips_validation: allow json file as input Brandon Lo
2022-05-18 15:45         ` [EXT] " Gowrishankar Muthukrishnan
2022-05-19  5:30         ` Gowrishankar Muthukrishnan
2022-05-19  9:12           ` Gowrishankar Muthukrishnan
2022-04-29 16:15       ` [PATCH v4 5/8] examples/fips_validation: add json to gcm test Brandon Lo
2022-05-18 15:45         ` [EXT] " Gowrishankar Muthukrishnan
2022-04-29 16:15       ` [PATCH v4 6/8] examples/fips_validation: add json to hmac Brandon Lo
2022-05-18 15:45         ` [EXT] " Gowrishankar Muthukrishnan
2022-04-29 16:15       ` [PATCH v4 7/8] examples/fips_validation: implement json cmac test Brandon Lo
2022-05-18 15:46         ` [EXT] " Gowrishankar Muthukrishnan
2022-04-29 16:15       ` [PATCH v4 8/8] examples/fips_validation: add parsing for cmac Brandon Lo
2022-05-18 15:46         ` [EXT] " Gowrishankar Muthukrishnan
2022-05-19  5:31         ` Gowrishankar Muthukrishnan
2022-05-19  9:11           ` Gowrishankar Muthukrishnan
2022-04-29 16:19       ` [PATCH v4 0/8] Add JSON vector set support to fips validation Brandon Lo
2022-05-25 15:45       ` [v5, 00/11] " Gowrishankar Muthukrishnan
2022-05-25 15:45         ` [v5, 01/11] examples/fips_validation: add jansson dependency Gowrishankar Muthukrishnan
2022-05-25 15:45         ` [v5, 02/11] examples/fips_validation: add json info to header Gowrishankar Muthukrishnan
2022-05-25 15:45         ` [v5, 03/11] examples/fips_validation: add json parsing Gowrishankar Muthukrishnan
2022-05-25 15:45         ` [v5, 04/11] examples/fips_validation: allow json file as input Gowrishankar Muthukrishnan
2022-05-25 15:45         ` [v5, 05/11] examples/fips_validation: add json to gcm test Gowrishankar Muthukrishnan
2022-05-25 15:45         ` [v5, 06/11] examples/fips_validation: add json to hmac Gowrishankar Muthukrishnan
2022-05-25 15:45         ` [v5, 07/11] examples/fips_validation: implement json cmac test Gowrishankar Muthukrishnan
2022-05-25 15:45         ` [v5, 08/11] examples/fips_validation: add parsing for cmac Gowrishankar Muthukrishnan
2022-05-25 15:45         ` [v5, 09/11] examples/fips_validation: cleanup bypass tests in response file Gowrishankar Muthukrishnan
2022-05-25 15:45         ` [v5, 10/11] examples/fips_validation: reset IV generation in every test group Gowrishankar Muthukrishnan
2022-05-25 15:45         ` [v5, 11/11] examples/fips_validation: add parsing for aes_cbc Gowrishankar Muthukrishnan
2022-05-25 17:08           ` [v5,11/11] " Gowrishankar Muthukrishnan
2022-05-25 17:13         ` [v6, 00/11] Add JSON vector set support to fips validation Gowrishankar Muthukrishnan
2022-05-25 17:13           ` [v6, 01/11] examples/fips_validation: add jansson dependency Gowrishankar Muthukrishnan
2022-05-25 17:13           ` [v6, 02/11] examples/fips_validation: add json info to header Gowrishankar Muthukrishnan
2022-05-25 17:13           ` [v6, 03/11] examples/fips_validation: add json parsing Gowrishankar Muthukrishnan
2022-05-25 17:13           ` [v6, 04/11] examples/fips_validation: allow json file as input Gowrishankar Muthukrishnan
2022-05-25 17:13           ` [v6, 05/11] examples/fips_validation: add json to gcm test Gowrishankar Muthukrishnan
2022-05-25 17:13           ` [v6, 06/11] examples/fips_validation: add json to hmac Gowrishankar Muthukrishnan
2022-05-25 17:13           ` Gowrishankar Muthukrishnan [this message]
2022-05-25 17:13           ` [v6, 08/11] examples/fips_validation: add parsing for cmac Gowrishankar Muthukrishnan
2022-05-25 17:13           ` [v6, 09/11] examples/fips_validation: cleanup bypass tests in response file Gowrishankar Muthukrishnan
2022-05-25 17:13           ` [v6, 10/11] examples/fips_validation: reset IV generation in every test group Gowrishankar Muthukrishnan
2022-05-25 17:13           ` [v6, 11/11] examples/fips_validation: add parsing for aes_cbc Gowrishankar Muthukrishnan
2022-05-26  6:46           ` [EXT] [v6, 00/11] Add JSON vector set support to fips validation Akhil Goyal
2022-05-26  8:02           ` [v7, " Gowrishankar Muthukrishnan
2022-05-26  8:02             ` [v7, 01/11] examples/fips_validation: add jansson dependency Gowrishankar Muthukrishnan
2022-05-26  9:46               ` Zhang, Roy Fan
2022-05-26  8:02             ` [v7, 02/11] examples/fips_validation: add json info to header Gowrishankar Muthukrishnan
2022-05-26  9:46               ` Zhang, Roy Fan
2022-05-26  8:02             ` [v7, 03/11] examples/fips_validation: add json parsing Gowrishankar Muthukrishnan
2022-05-26  9:47               ` Zhang, Roy Fan
2022-05-26  8:02             ` [v7, 04/11] examples/fips_validation: allow json file as input Gowrishankar Muthukrishnan
2022-05-26  9:48               ` Zhang, Roy Fan
2022-05-26  8:02             ` [v7, 05/11] examples/fips_validation: add json to gcm test Gowrishankar Muthukrishnan
2022-05-26  9:49               ` Zhang, Roy Fan
2022-05-26  8:02             ` [v7, 06/11] examples/fips_validation: add json to hmac Gowrishankar Muthukrishnan
2022-05-26  9:49               ` Zhang, Roy Fan
2022-05-26  8:02             ` [v7, 07/11] examples/fips_validation: implement json cmac test Gowrishankar Muthukrishnan
2022-05-26  9:49               ` Zhang, Roy Fan
2022-05-26  8:02             ` [v7, 08/11] examples/fips_validation: add parsing for cmac Gowrishankar Muthukrishnan
2022-05-26  9:50               ` Zhang, Roy Fan
2022-05-26  8:02             ` [v7, 09/11] examples/fips_validation: cleanup bypass tests in response file Gowrishankar Muthukrishnan
2022-05-26  8:02             ` [v7, 10/11] examples/fips_validation: reset IV generation in every test group Gowrishankar Muthukrishnan
2022-05-26  8:02             ` [v7, 11/11] examples/fips_validation: add parsing for aes_cbc Gowrishankar Muthukrishnan
2022-05-30 12:23             ` [v8, 00/10] Add JSON vector set support to fips validation Gowrishankar Muthukrishnan
2022-05-30 12:23               ` [v8, 01/10] examples/fips_validation: add jansson dependency Gowrishankar Muthukrishnan
2022-05-30 12:23               ` [v8, 02/10] examples/fips_validation: add json info to header Gowrishankar Muthukrishnan
2022-05-30 12:23               ` [v8, 03/10] examples/fips_validation: add json parsing Gowrishankar Muthukrishnan
2022-05-30 12:23               ` [v8, 04/10] examples/fips_validation: allow json file as input Gowrishankar Muthukrishnan
2022-05-30 12:23               ` [v8, 05/10] examples/fips_validation: add json to gcm test Gowrishankar Muthukrishnan
2022-05-30 12:23               ` [v8, 06/10] examples/fips_validation: add json to hmac Gowrishankar Muthukrishnan
2022-05-30 12:23               ` [v8, 07/10] examples/fips_validation: implement json cmac test Gowrishankar Muthukrishnan
2022-05-30 12:23               ` [v8, 08/10] examples/fips_validation: add parsing for cmac Gowrishankar Muthukrishnan
2022-05-30 12:23               ` [v8, 09/10] examples/fips_validation: add parsing for aes_cbc Gowrishankar Muthukrishnan
2022-05-30 12:23               ` [v8, 10/10] doc: add notes about acvp validation support Gowrishankar Muthukrishnan
2022-05-30 15:52               ` [v9, 00/10] Add JSON vector set support to fips validation Gowrishankar Muthukrishnan
2022-05-30 15:52                 ` [v9, 01/10] examples/fips_validation: add jansson dependency Gowrishankar Muthukrishnan
2022-05-30 15:52                 ` [v9, 02/10] examples/fips_validation: add json info to header Gowrishankar Muthukrishnan
2022-05-30 15:52                 ` [v9, 03/10] examples/fips_validation: add json parsing Gowrishankar Muthukrishnan
2022-05-30 15:52                 ` [v9, 04/10] examples/fips_validation: allow json file as input Gowrishankar Muthukrishnan
2022-05-30 15:52                 ` [v9, 05/10] examples/fips_validation: add json to gcm test Gowrishankar Muthukrishnan
2022-05-30 15:52                 ` [v9, 06/10] examples/fips_validation: add json to hmac Gowrishankar Muthukrishnan
2022-05-30 15:52                 ` [v9, 07/10] examples/fips_validation: implement json cmac test Gowrishankar Muthukrishnan
2022-05-30 15:52                 ` [v9, 08/10] examples/fips_validation: add parsing for cmac Gowrishankar Muthukrishnan
2022-05-30 15:52                 ` [v9, 09/10] examples/fips_validation: add parsing for aes_cbc Gowrishankar Muthukrishnan
2022-05-30 15:52                 ` [v9, 10/10] doc: add notes about acvp validation support Gowrishankar Muthukrishnan
2022-05-31 10:17                 ` [v9, 00/10] Add JSON vector set support to fips validation Poczatek, Jakub
2022-05-31 12:36                 ` Zhang, Roy Fan
2022-05-31 15:23                   ` Akhil Goyal
2022-06-07  9:48                     ` David Marchand
2022-06-13 11:58                       ` David Marchand
2022-06-21  7:28                         ` [EXT] " Gowrishankar Muthukrishnan
2022-06-21  7:36                           ` David Marchand
2022-06-21  7:40                             ` Akhil Goyal
2022-06-21  7:41                               ` David Marchand

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=dfeb5979f566aeeb70fa189be016e07f3d3b4cb0.1653498667.git.gmuthukrishn@marvell.com \
    --to=gmuthukrishn@marvell.com \
    --cc=anoobj@marvell.com \
    --cc=blo@iol.unh.edu \
    --cc=brian.dooley@intel.com \
    --cc=dev@dpdk.org \
    --cc=jerinj@marvell.com \
    --cc=lylavoie@iol.unh.edu \
    --cc=marchana@marvell.com \
    --cc=roy.fan.zhang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.