Add SHA224 and SHA256 HMAC algorithms and it's corresponding tests.

Signed-off-by: Nagadheeraj Rottela <[email protected]>
---
 app/test/test_cryptodev_aes_test_vectors.h      | 18 +++++++----
 doc/guides/cryptodevs/features/nitrox.ini       |  2 ++
 drivers/crypto/nitrox/nitrox_sym.c              |  6 ++++
 drivers/crypto/nitrox/nitrox_sym_capabilities.c | 42 +++++++++++++++++++++++++
 4 files changed, 62 insertions(+), 6 deletions(-)

diff --git a/app/test/test_cryptodev_aes_test_vectors.h 
b/app/test/test_cryptodev_aes_test_vectors.h
index 476459b66..46239efb7 100644
--- a/app/test/test_cryptodev_aes_test_vectors.h
+++ b/app/test/test_cryptodev_aes_test_vectors.h
@@ -1723,7 +1723,8 @@ static const struct blockcipher_test_case 
aes_chain_test_cases[] = {
                        BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
                        BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
                        BLOCKCIPHER_TEST_TARGET_PMD_CCP |
-                       BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
+                       BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
+                       BLOCKCIPHER_TEST_TARGET_PMD_NITROX
        },
        {
                .test_descr = "AES-128-CBC HMAC-SHA256 Encryption Digest "
@@ -1732,7 +1733,8 @@ static const struct blockcipher_test_case 
aes_chain_test_cases[] = {
                .op_mask = BLOCKCIPHER_TEST_OP_ENC_AUTH_GEN,
                .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
                        BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-                       BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
+                       BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
+                       BLOCKCIPHER_TEST_TARGET_PMD_NITROX
        },
        {
                .test_descr = "AES-128-CBC HMAC-SHA256 Decryption Digest "
@@ -1748,7 +1750,8 @@ static const struct blockcipher_test_case 
aes_chain_test_cases[] = {
                        BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
                        BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
                        BLOCKCIPHER_TEST_TARGET_PMD_CCP |
-                       BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
+                       BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
+                       BLOCKCIPHER_TEST_TARGET_PMD_NITROX
        },
        {
                .test_descr = "AES-128-CBC HMAC-SHA256 Decryption Digest "
@@ -1757,7 +1760,8 @@ static const struct blockcipher_test_case 
aes_chain_test_cases[] = {
                .op_mask = BLOCKCIPHER_TEST_OP_AUTH_VERIFY_DEC,
                .pmd_mask = BLOCKCIPHER_TEST_TARGET_PMD_ARMV8 |
                        BLOCKCIPHER_TEST_TARGET_PMD_MVSAM |
-                       BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
+                       BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
+                       BLOCKCIPHER_TEST_TARGET_PMD_NITROX
        },
        {
                .test_descr = "AES-128-CBC HMAC-SHA512 Encryption Digest",
@@ -1898,7 +1902,8 @@ static const struct blockcipher_test_case 
aes_chain_test_cases[] = {
                        BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
                        BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
                        BLOCKCIPHER_TEST_TARGET_PMD_CCP |
-                       BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
+                       BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
+                       BLOCKCIPHER_TEST_TARGET_PMD_NITROX
        },
        {
                .test_descr = "AES-128-CBC HMAC-SHA224 Decryption Digest "
@@ -1913,7 +1918,8 @@ static const struct blockcipher_test_case 
aes_chain_test_cases[] = {
                        BLOCKCIPHER_TEST_TARGET_PMD_DPAA_SEC |
                        BLOCKCIPHER_TEST_TARGET_PMD_CAAM_JR |
                        BLOCKCIPHER_TEST_TARGET_PMD_CCP |
-                       BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX
+                       BLOCKCIPHER_TEST_TARGET_PMD_OCTEONTX |
+                       BLOCKCIPHER_TEST_TARGET_PMD_NITROX
        },
        {
                .test_descr = "AES-128-CBC HMAC-SHA384 Encryption Digest",
diff --git a/doc/guides/cryptodevs/features/nitrox.ini 
b/doc/guides/cryptodevs/features/nitrox.ini
index 9f9e2619c..ddc3c05f4 100644
--- a/doc/guides/cryptodevs/features/nitrox.ini
+++ b/doc/guides/cryptodevs/features/nitrox.ini
@@ -26,6 +26,8 @@ AES CBC (256)  = Y
 ;
 [Auth]
 SHA1 HMAC    = Y
+SHA224 HMAC  = Y
+SHA256 HMAC  = Y
 
 ;
 ; Supported AEAD algorithms of the 'nitrox' crypto driver.
diff --git a/drivers/crypto/nitrox/nitrox_sym.c 
b/drivers/crypto/nitrox/nitrox_sym.c
index 2056e1aae..bba9dbc5b 100644
--- a/drivers/crypto/nitrox/nitrox_sym.c
+++ b/drivers/crypto/nitrox/nitrox_sym.c
@@ -399,6 +399,12 @@ get_flexi_auth_type(enum rte_crypto_auth_algorithm algo)
        case RTE_CRYPTO_AUTH_SHA1_HMAC:
                type = AUTH_SHA1;
                break;
+       case RTE_CRYPTO_AUTH_SHA224_HMAC:
+               type = AUTH_SHA2_SHA224;
+               break;
+       case RTE_CRYPTO_AUTH_SHA256_HMAC:
+               type = AUTH_SHA2_SHA256;
+               break;
        default:
                NITROX_LOG(ERR, "Algorithm not supported %d\n", algo);
                type = AUTH_INVALID;
diff --git a/drivers/crypto/nitrox/nitrox_sym_capabilities.c 
b/drivers/crypto/nitrox/nitrox_sym_capabilities.c
index aa1ff2638..47ceead73 100644
--- a/drivers/crypto/nitrox/nitrox_sym_capabilities.c
+++ b/drivers/crypto/nitrox/nitrox_sym_capabilities.c
@@ -26,6 +26,48 @@ static const struct rte_cryptodev_capabilities 
nitrox_capabilities[] = {
                        }, }
                }, }
        },
+       {       /* SHA224 HMAC */
+               .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
+               {.sym = {
+                       .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
+                       {.auth = {
+                               .algo = RTE_CRYPTO_AUTH_SHA224_HMAC,
+                               .block_size = 64,
+                               .key_size = {
+                                       .min = 1,
+                                       .max = 64,
+                                       .increment = 1
+                               },
+                               .digest_size = {
+                                       .min = 1,
+                                       .max = 28,
+                                       .increment = 1
+                               },
+                               .iv_size = { 0 }
+                       }, }
+               }, }
+       },
+       {       /* SHA256 HMAC */
+               .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
+               {.sym = {
+                       .xform_type = RTE_CRYPTO_SYM_XFORM_AUTH,
+                       {.auth = {
+                               .algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
+                               .block_size = 64,
+                               .key_size = {
+                                       .min = 1,
+                                       .max = 64,
+                                       .increment = 1
+                               },
+                               .digest_size = {
+                                       .min = 1,
+                                       .max = 32,
+                                       .increment = 1
+                               },
+                               .iv_size = { 0 }
+                       }, }
+               }, }
+       },
        {       /* AES CBC */
                .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
                {.sym = {
-- 
2.13.6

Reply via email to