From: Nagadheeraj Rottela <rnagadheeraj@marvell.com>
To: <akhil.goyal@nxp.com>
Cc: <dev@dpdk.org>, <jsrikanth@marvell.com>,
Nagadheeraj Rottela <rnagadheeraj@marvell.com>
Subject: [dpdk-dev] [PATCH] crypto/nitrox: add 3DES-CBC support
Date: Fri, 13 Mar 2020 17:13:37 +0530 [thread overview]
Message-ID: <20200313114337.28811-1-rnagadheeraj@marvell.com> (raw)
This patch adds 3DES CBC mode cipher algorithm.
Signed-off-by: Nagadheeraj Rottela <rnagadheeraj@marvell.com>
---
app/test/test_cryptodev.c | 1 +
app/test/test_cryptodev_des_test_vectors.h | 6 ++++--
doc/guides/cryptodevs/features/nitrox.ini | 1 +
doc/guides/cryptodevs/nitrox.rst | 2 ++
drivers/crypto/nitrox/nitrox_sym.c | 4 ++++
drivers/crypto/nitrox/nitrox_sym_capabilities.c | 21 ++++++++++++++++++++-
6 files changed, 32 insertions(+), 3 deletions(-)
diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
index 7b1ef5c86..e8dd8f754 100644
--- a/app/test/test_cryptodev.c
+++ b/app/test/test_cryptodev.c
@@ -13117,6 +13117,7 @@ static struct unit_test_suite cryptodev_nitrox_testsuite = {
TEST_CASE_ST(ut_setup, ut_teardown,
test_device_configure_invalid_queue_pair_ids),
TEST_CASE_ST(ut_setup, ut_teardown, test_AES_chain_all),
+ TEST_CASE_ST(ut_setup, ut_teardown, test_3DES_chain_all),
TEST_CASES_END() /**< NULL terminate unit test array */
}
diff --git a/app/test/test_cryptodev_des_test_vectors.h b/app/test/test_cryptodev_des_test_vectors.h
index 0a362d980..d8a62d2b5 100644
--- a/app/test/test_cryptodev_des_test_vectors.h
+++ b/app/test/test_cryptodev_des_test_vectors.h
@@ -1115,7 +1115,8 @@ static const struct blockcipher_test_case triple_des_chain_test_cases[] = {
BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
BLOCKCIPHER_TEST_TARGET_PMD_CCP |
BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
- BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
+ BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2 |
+ BLOCKCIPHER_TEST_TARGET_PMD_NITROX
},
{
.test_descr = "3DES-192-CBC HMAC-SHA1 Decryption Digest Verify",
@@ -1129,7 +1130,8 @@ static const struct blockcipher_test_case triple_des_chain_test_cases[] = {
BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
BLOCKCIPHER_TEST_TARGET_PMD_CCP |
BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
- BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2
+ BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX2 |
+ BLOCKCIPHER_TEST_TARGET_PMD_NITROX
},
{
.test_descr = "3DES-192-CBC SHA1 Encryption Digest",
diff --git a/doc/guides/cryptodevs/features/nitrox.ini b/doc/guides/cryptodevs/features/nitrox.ini
index ddc3c05f4..183494731 100644
--- a/doc/guides/cryptodevs/features/nitrox.ini
+++ b/doc/guides/cryptodevs/features/nitrox.ini
@@ -20,6 +20,7 @@ OOP LB In LB Out = Y
AES CBC (128) = Y
AES CBC (192) = Y
AES CBC (256) = Y
+3DES CBC = Y
;
; Supported authentication algorithms of the 'nitrox' crypto driver.
diff --git a/doc/guides/cryptodevs/nitrox.rst b/doc/guides/cryptodevs/nitrox.rst
index f8a527c05..85f5212b6 100644
--- a/doc/guides/cryptodevs/nitrox.rst
+++ b/doc/guides/cryptodevs/nitrox.rst
@@ -18,6 +18,7 @@ Nitrox crypto PMD has support for:
Cipher algorithms:
* ``RTE_CRYPTO_CIPHER_AES_CBC``
+* ``RTE_CRYPTO_CIPHER_3DES_CBC``
Hash algorithms:
@@ -29,6 +30,7 @@ Limitations
-----------
* AES_CBC Cipher Only combination is not supported.
+* 3DES Cipher Only combination is not supported.
* Session-less APIs are not supported.
Installation
diff --git a/drivers/crypto/nitrox/nitrox_sym.c b/drivers/crypto/nitrox/nitrox_sym.c
index 56410c44d..c7aa3fd1b 100644
--- a/drivers/crypto/nitrox/nitrox_sym.c
+++ b/drivers/crypto/nitrox/nitrox_sym.c
@@ -314,6 +314,10 @@ get_flexi_cipher_type(enum rte_crypto_cipher_algorithm algo, bool *is_aes)
type = CIPHER_AES_CBC;
*is_aes = true;
break;
+ case RTE_CRYPTO_CIPHER_3DES_CBC:
+ type = CIPHER_3DES_CBC;
+ *is_aes = false;
+ break;
default:
type = CIPHER_INVALID;
NITROX_LOG(ERR, "Algorithm not supported %d\n", algo);
diff --git a/drivers/crypto/nitrox/nitrox_sym_capabilities.c b/drivers/crypto/nitrox/nitrox_sym_capabilities.c
index 47ceead73..dc4df9185 100644
--- a/drivers/crypto/nitrox/nitrox_sym_capabilities.c
+++ b/drivers/crypto/nitrox/nitrox_sym_capabilities.c
@@ -88,7 +88,26 @@ static const struct rte_cryptodev_capabilities nitrox_capabilities[] = {
}, }
}, }
},
-
+ { /* 3DES CBC */
+ .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
+ {.sym = {
+ .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
+ {.cipher = {
+ .algo = RTE_CRYPTO_CIPHER_3DES_CBC,
+ .block_size = 8,
+ .key_size = {
+ .min = 24,
+ .max = 24,
+ .increment = 0
+ },
+ .iv_size = {
+ .min = 8,
+ .max = 8,
+ .increment = 0
+ }
+ }, }
+ }, }
+ },
RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()
};
--
2.13.6
next reply other threads:[~2020-03-13 11:43 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-13 11:43 Nagadheeraj Rottela [this message]
2020-03-25 18:48 ` Akhil Goyal
2020-03-27 6:38 ` Nagadheeraj Rottela
2020-04-01 14:08 ` Akhil Goyal
2020-04-03 9:20 ` Nagadheeraj Rottela
2020-04-05 17:02 ` 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=20200313114337.28811-1-rnagadheeraj@marvell.com \
--to=rnagadheeraj@marvell.com \
--cc=akhil.goyal@nxp.com \
--cc=dev@dpdk.org \
--cc=jsrikanth@marvell.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).