All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brian Dooley <brian.dooley@intel.com>
To: Brian Dooley <brian.dooley@intel.com>
Cc: dev@dpdk.org, stable@dpdk.org, gakhil@marvell.com,
	Kai Ji <kai.ji@intel.com>,
	Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
Subject: [PATCH v5] examples/fips_validation: add parsing for AES CTR
Date: Fri,  7 Oct 2022 16:58:29 +0000	[thread overview]
Message-ID: <20221007165829.732961-1-brian.dooley@intel.com> (raw)
In-Reply-To: <20220930085302.317536-1-brian.dooley@intel.com>

Added functionality to parse algorithm for AES CTR test

Signed-off-by: Brian Dooley <brian.dooley@intel.com>
Acked-by: Kai Ji <kai.ji@intel.com>
Acked-by: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
---
v2: fix clang warning for int-in-bool-context
---
v3: in reply to fix and patchwork CI
---
v4: missing acks
---
v5: add documentation
---
 doc/guides/sample_app_ug/fips_validation.rst   | 2 ++
 examples/fips_validation/fips_validation.c     | 2 ++
 examples/fips_validation/fips_validation.h     | 2 ++
 examples/fips_validation/fips_validation_aes.c | 5 +++++
 examples/fips_validation/main.c                | 9 +++++++--
 5 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/doc/guides/sample_app_ug/fips_validation.rst b/doc/guides/sample_app_ug/fips_validation.rst
index 6f4bd34726..6e5885e23b 100644
--- a/doc/guides/sample_app_ug/fips_validation.rst
+++ b/doc/guides/sample_app_ug/fips_validation.rst
@@ -61,6 +61,8 @@ ACVP
     * AES-CBC (128,192,256) - AFT, MCT
     * AES-GCM (128,192,256) - AFT
     * AES-CMAC (128,192,256) - AFT
+    * AES-CTR (128,192,256) - AFT, CTR
+    * AES-GMAC (128,192,256) - AFT
     * AES-XTS (128,256) - AFT
     * HMAC (SHA1, SHA224, SHA256, SHA384, SHA512)
     * SHA (1, 256, 384, 512) - AFT, MCT
diff --git a/examples/fips_validation/fips_validation.c b/examples/fips_validation/fips_validation.c
index cd905b2c5b..016888fe7f 100644
--- a/examples/fips_validation/fips_validation.c
+++ b/examples/fips_validation/fips_validation.c
@@ -468,6 +468,8 @@ fips_test_parse_one_json_vector_set(void)
 		info.algo = FIPS_TEST_ALGO_AES_CBC;
 	else if (strstr(algo_str, "AES-XTS"))
 		info.algo = FIPS_TEST_ALGO_AES_XTS;
+	else if (strstr(algo_str, "AES-CTR"))
+		info.algo = FIPS_TEST_ALGO_AES_CTR;
 	else if (strstr(algo_str, "SHA"))
 		info.algo = FIPS_TEST_ALGO_SHA;
 	else
diff --git a/examples/fips_validation/fips_validation.h b/examples/fips_validation/fips_validation.h
index 5c1abcbd91..96fdbec41a 100644
--- a/examples/fips_validation/fips_validation.h
+++ b/examples/fips_validation/fips_validation.h
@@ -35,6 +35,7 @@
 enum fips_test_algorithms {
 		FIPS_TEST_ALGO_AES = 0,
 		FIPS_TEST_ALGO_AES_CBC,
+		FIPS_TEST_ALGO_AES_CTR,
 		FIPS_TEST_ALGO_AES_GCM,
 		FIPS_TEST_ALGO_AES_CMAC,
 		FIPS_TEST_ALGO_AES_CCM,
@@ -105,6 +106,7 @@ enum fips_aesavs_test_types {
 	AESAVS_TYPE_MMT,
 	AESAVS_TYPE_MCT,
 	AESAVS_TYPE_AFT,
+	AESAVS_TYPE_CTR,
 };
 
 enum fips_tdes_test_types {
diff --git a/examples/fips_validation/fips_validation_aes.c b/examples/fips_validation/fips_validation_aes.c
index 4f61505bb3..0ef97aa03d 100644
--- a/examples/fips_validation/fips_validation_aes.c
+++ b/examples/fips_validation/fips_validation_aes.c
@@ -30,8 +30,10 @@
 #define TESTTYPE_JSON_STR	"testType"
 #define DIR_JSON_STR		"direction"
 #define KEYLEN_JSON_STR		"keyLen"
+#define OVERFLOW_JSON_STR	"overflow"
 
 #define KEY_JSON_STR	"key"
+#define PAYLOADLEN_JSON_STR	"payloadLen"
 #define IV_JSON_STR	"iv"
 #define PT_JSON_STR	"pt"
 #define CT_JSON_STR	"ct"
@@ -52,6 +54,7 @@ struct {
 		{AESAVS_TYPE_MMT, "MMT"},
 		{AESAVS_TYPE_MCT, "MCT"},
 		{AESAVS_TYPE_AFT, "AFT"},
+		{AESAVS_TYPE_CTR, "CTR"},
 };
 
 struct aes_test_algo {
@@ -60,6 +63,7 @@ struct aes_test_algo {
 } const algo_con[] = {
 		{"CBC", RTE_CRYPTO_CIPHER_AES_CBC},
 		{"ECB", RTE_CRYPTO_CIPHER_AES_ECB},
+		{"CTR", RTE_CRYPTO_CIPHER_AES_CTR},
 };
 
 static int
@@ -291,6 +295,7 @@ parse_test_aes_json_init(void)
 	case AESAVS_TYPE_MCT:
 		info.parse_writeback = parse_test_aes_mct_json_writeback;
 		break;
+	case AESAVS_TYPE_CTR:
 	case AESAVS_TYPE_AFT:
 		info.parse_writeback = parse_test_aes_json_writeback;
 		break;
diff --git a/examples/fips_validation/main.c b/examples/fips_validation/main.c
index f8063b6599..4916d2b12e 100644
--- a/examples/fips_validation/main.c
+++ b/examples/fips_validation/main.c
@@ -761,9 +761,11 @@ prepare_aes_xform(struct rte_crypto_sym_xform *xform)
 	struct rte_crypto_cipher_xform *cipher_xform = &xform->cipher;
 
 	xform->type = RTE_CRYPTO_SYM_XFORM_CIPHER;
-
 	if (info.interim_info.aes_data.cipher_algo == RTE_CRYPTO_CIPHER_AES_CBC)
 		cipher_xform->algo = RTE_CRYPTO_CIPHER_AES_CBC;
+	else if (info.interim_info.aes_data.cipher_algo ==
+			RTE_CRYPTO_CIPHER_AES_CTR)
+		cipher_xform->algo = RTE_CRYPTO_CIPHER_AES_CTR;
 	else
 		cipher_xform->algo = RTE_CRYPTO_CIPHER_AES_ECB;
 
@@ -772,7 +774,8 @@ prepare_aes_xform(struct rte_crypto_sym_xform *xform)
 			RTE_CRYPTO_CIPHER_OP_DECRYPT;
 	cipher_xform->key.data = vec.cipher_auth.key.val;
 	cipher_xform->key.length = vec.cipher_auth.key.len;
-	if (cipher_xform->algo == RTE_CRYPTO_CIPHER_AES_CBC) {
+	if (cipher_xform->algo == RTE_CRYPTO_CIPHER_AES_CBC ||
+			cipher_xform->algo == RTE_CRYPTO_CIPHER_AES_CTR) {
 		cipher_xform->iv.length = vec.iv.len;
 		cipher_xform->iv.offset = IV_OFF;
 	} else {
@@ -1784,6 +1787,7 @@ init_test_ops(void)
 {
 	switch (info.algo) {
 	case FIPS_TEST_ALGO_AES_CBC:
+	case FIPS_TEST_ALGO_AES_CTR:
 	case FIPS_TEST_ALGO_AES:
 		test_ops.prepare_op = prepare_cipher_op;
 		test_ops.prepare_xform  = prepare_aes_xform;
@@ -1995,6 +1999,7 @@ fips_test_one_test_group(void)
 		ret = parse_test_xts_json_init();
 		break;
 	case FIPS_TEST_ALGO_AES_CBC:
+	case FIPS_TEST_ALGO_AES_CTR:
 	case FIPS_TEST_ALGO_AES:
 		ret = parse_test_aes_json_init();
 		break;
-- 
2.25.1


  parent reply	other threads:[~2022-10-07 16:58 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-22 12:23 [PATCH v2] examples/fips_validation: add parsing for AES CTR Brian Dooley
2022-09-15 13:21 ` Ji, Kai
2022-09-16 17:23   ` Gowrishankar Muthukrishnan
2022-09-16 13:53 ` [PATCH v3] " Brian Dooley
2022-09-30  8:53   ` [PATCH v4] " Brian Dooley
2022-10-07 10:48     ` [EXT] " Akhil Goyal
2022-10-10 14:29       ` Dooley, Brian
2022-10-10 15:51         ` Akhil Goyal
2022-10-07 16:58     ` Brian Dooley [this message]
2022-10-10 19:49       ` [EXT] [PATCH v5] " Akhil Goyal

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=20221007165829.732961-1-brian.dooley@intel.com \
    --to=brian.dooley@intel.com \
    --cc=dev@dpdk.org \
    --cc=gakhil@marvell.com \
    --cc=gmuthukrishn@marvell.com \
    --cc=kai.ji@intel.com \
    --cc=stable@dpdk.org \
    /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.