This patch adds 3DES CBC mode cipher algorithm. Signed-off-by: Nagadheeraj Rottela <rnagadhee...@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