get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/60981/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 60981,
    "url": "http://patchwork.dpdk.org/api/patches/60981/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20191011163233.31017-8-hemant.agrawal@nxp.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20191011163233.31017-8-hemant.agrawal@nxp.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20191011163233.31017-8-hemant.agrawal@nxp.com",
    "date": "2019-10-11T16:32:30",
    "name": "[07/10] test/crypto: add test to test ESN like case",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "3bb8dc5a07114f355147da383118062c0d04146b",
    "submitter": {
        "id": 477,
        "url": "http://patchwork.dpdk.org/api/people/477/?format=api",
        "name": "Hemant Agrawal",
        "email": "hemant.agrawal@nxp.com"
    },
    "delegate": {
        "id": 6690,
        "url": "http://patchwork.dpdk.org/api/users/6690/?format=api",
        "username": "akhil",
        "first_name": "akhil",
        "last_name": "goyal",
        "email": "gakhil@marvell.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20191011163233.31017-8-hemant.agrawal@nxp.com/mbox/",
    "series": [
        {
            "id": 6807,
            "url": "http://patchwork.dpdk.org/api/series/6807/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=6807",
            "date": "2019-10-11T16:32:23",
            "name": "NXP DPAAx crypto fixes",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/6807/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/60981/comments/",
    "check": "fail",
    "checks": "http://patchwork.dpdk.org/api/patches/60981/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id DA1E11EB73;\n\tFri, 11 Oct 2019 18:35:31 +0200 (CEST)",
            "from inva020.nxp.com (inva020.nxp.com [92.121.34.13])\n\tby dpdk.org (Postfix) with ESMTP id 8C6CA1EB4F\n\tfor <dev@dpdk.org>; Fri, 11 Oct 2019 18:35:18 +0200 (CEST)",
            "from inva020.nxp.com (localhost [127.0.0.1])\n\tby inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 700091A0587;\n\tFri, 11 Oct 2019 18:35:18 +0200 (CEST)",
            "from invc005.ap-rdc01.nxp.com (invc005.ap-rdc01.nxp.com\n\t[165.114.16.14])\n\tby inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id BBF481A020A;\n\tFri, 11 Oct 2019 18:35:15 +0200 (CEST)",
            "from bf-netperf1.ap.freescale.net (bf-netperf1.ap.freescale.net\n\t[10.232.133.63])\n\tby invc005.ap-rdc01.nxp.com (Postfix) with ESMTP id B606B402E4;\n\tSat, 12 Oct 2019 00:35:12 +0800 (SGT)"
        ],
        "From": "Hemant Agrawal <hemant.agrawal@nxp.com>",
        "To": "dev@dpdk.org",
        "Cc": "akhil.goyal@nxp.com, Hemant Agrawal <hemant.agrawal@nxp.com>,\n\tVakul Garg <vakul.garg@nxp.com>",
        "Date": "Fri, 11 Oct 2019 22:02:30 +0530",
        "Message-Id": "<20191011163233.31017-8-hemant.agrawal@nxp.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20191011163233.31017-1-hemant.agrawal@nxp.com>",
        "References": "<20191011163233.31017-1-hemant.agrawal@nxp.com>",
        "X-Virus-Scanned": "ClamAV using ClamSMTP",
        "Subject": "[dpdk-dev] [PATCH 07/10] test/crypto: add test to test ESN like case",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "This patch add support for case when there is auth only header and\nauth only tailroom area. This simulates the cases of IPSEC ESN cases.\n\nThis patch also enable the new test case for openssl, dpaaX platforms.\n\nSigned-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>\nSigned-off-by: Vakul Garg <vakul.garg@nxp.com>\n---\n app/test/test_cryptodev.c                  | 287 ++++++++++++++++++++-\n app/test/test_cryptodev_aes_test_vectors.h |  67 +++++\n 2 files changed, 349 insertions(+), 5 deletions(-)",
    "diff": "diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c\nindex c4c730495..ec0473016 100644\n--- a/app/test/test_cryptodev.c\n+++ b/app/test/test_cryptodev.c\n@@ -9741,6 +9741,8 @@ test_AES_GMAC_authentication_verify_test_case_4(void)\n \n struct test_crypto_vector {\n \tenum rte_crypto_cipher_algorithm crypto_algo;\n+\tunsigned int cipher_offset;\n+\tunsigned int cipher_len;\n \n \tstruct {\n \t\tuint8_t data[64];\n@@ -9763,6 +9765,7 @@ struct test_crypto_vector {\n \t} ciphertext;\n \n \tenum rte_crypto_auth_algorithm auth_algo;\n+\tunsigned int auth_offset;\n \n \tstruct {\n \t\tuint8_t data[128];\n@@ -9838,6 +9841,8 @@ aes128_gmac_test_vector = {\n static const struct test_crypto_vector\n aes128cbc_hmac_sha1_test_vector = {\n \t.crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,\n+\t.cipher_offset = 0,\n+\t.cipher_len = 512,\n \t.cipher_key = {\n \t\t.data = {\n \t\t\t0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,\n@@ -9861,6 +9866,7 @@ aes128cbc_hmac_sha1_test_vector = {\n \t\t.len = 512\n \t},\n \t.auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,\n+\t.auth_offset = 0,\n \t.auth_key = {\n \t\t.data = {\n \t\t\t0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,\n@@ -9879,6 +9885,53 @@ aes128cbc_hmac_sha1_test_vector = {\n \t}\n };\n \n+static const struct test_crypto_vector\n+aes128cbc_hmac_sha1_aad_test_vector = {\n+\t.crypto_algo = RTE_CRYPTO_CIPHER_AES_CBC,\n+\t.cipher_offset = 12,\n+\t.cipher_len = 496,\n+\t.cipher_key = {\n+\t\t.data = {\n+\t\t\t0xE4, 0x23, 0x33, 0x8A, 0x35, 0x64, 0x61, 0xE2,\n+\t\t\t0x49, 0x03, 0xDD, 0xC6, 0xB8, 0xCA, 0x55, 0x7A\n+\t\t},\n+\t\t.len = 16\n+\t},\n+\t.iv = {\n+\t\t.data = {\n+\t\t\t0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\n+\t\t\t0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F\n+\t\t},\n+\t\t.len = 16\n+\t},\n+\t.plaintext = {\n+\t\t.data = plaintext_hash,\n+\t\t.len = 512\n+\t},\n+\t.ciphertext = {\n+\t\t.data = ciphertext512_aes128cbc_aad,\n+\t\t.len = 512\n+\t},\n+\t.auth_algo = RTE_CRYPTO_AUTH_SHA1_HMAC,\n+\t.auth_offset = 0,\n+\t.auth_key = {\n+\t\t.data = {\n+\t\t\t0xF8, 0x2A, 0xC7, 0x54, 0xDB, 0x96, 0x18, 0xAA,\n+\t\t\t0xC3, 0xA1, 0x53, 0xF6, 0x1F, 0x17, 0x60, 0xBD,\n+\t\t\t0xDE, 0xF4, 0xDE, 0xAD\n+\t\t},\n+\t\t.len = 20\n+\t},\n+\t.digest = {\n+\t\t.data = {\n+\t\t\t0x1F, 0x6A, 0xD2, 0x8B, 0x4B, 0xB3, 0xC0, 0x9E,\n+\t\t\t0x86, 0x9B, 0x3A, 0xF2, 0x00, 0x5B, 0x4F, 0x08,\n+\t\t\t0x62, 0x8D, 0x62, 0x65\n+\t\t},\n+\t\t.len = 20\n+\t}\n+};\n+\n static void\n data_corruption(uint8_t *data)\n {\n@@ -10121,11 +10174,11 @@ create_cipher_auth_operation(struct crypto_testsuite_params *ts_params,\n \trte_memcpy(rte_crypto_op_ctod_offset(ut_params->op, uint8_t *, IV_OFFSET),\n \t\t\treference->iv.data, reference->iv.len);\n \n-\tsym_op->cipher.data.length = reference->ciphertext.len;\n-\tsym_op->cipher.data.offset = 0;\n+\tsym_op->cipher.data.length = reference->cipher_len;\n+\tsym_op->cipher.data.offset = reference->cipher_offset;\n \n-\tsym_op->auth.data.length = reference->ciphertext.len;\n-\tsym_op->auth.data.offset = 0;\n+\tsym_op->auth.data.length = reference->plaintext.len;\n+\tsym_op->auth.data.offset = reference->auth_offset;\n \n \treturn 0;\n }\n@@ -10336,6 +10389,193 @@ test_authenticated_decryption_fail_when_corruption(\n \treturn 0;\n }\n \n+static int\n+test_authenticated_encryt_with_esn(\n+\t\tstruct crypto_testsuite_params *ts_params,\n+\t\tstruct crypto_unittest_params *ut_params,\n+\t\tconst struct test_crypto_vector *reference)\n+{\n+\tint retval;\n+\n+\tuint8_t *authciphertext, *plaintext, *auth_tag;\n+\tuint16_t plaintext_pad_len;\n+\tuint8_t cipher_key[reference->cipher_key.len + 1];\n+\tuint8_t auth_key[reference->auth_key.len + 1];\n+\n+\t/* Create session */\n+\tmemcpy(cipher_key, reference->cipher_key.data,\n+\t\t\treference->cipher_key.len);\n+\tmemcpy(auth_key, reference->auth_key.data, reference->auth_key.len);\n+\n+\t/* Setup Cipher Parameters */\n+\tut_params->cipher_xform.type = RTE_CRYPTO_SYM_XFORM_CIPHER;\n+\tut_params->cipher_xform.cipher.algo = reference->crypto_algo;\n+\tut_params->cipher_xform.cipher.op = RTE_CRYPTO_CIPHER_OP_ENCRYPT;\n+\tut_params->cipher_xform.cipher.key.data = cipher_key;\n+\tut_params->cipher_xform.cipher.key.length = reference->cipher_key.len;\n+\tut_params->cipher_xform.cipher.iv.offset = IV_OFFSET;\n+\tut_params->cipher_xform.cipher.iv.length = reference->iv.len;\n+\n+\tut_params->cipher_xform.next = &ut_params->auth_xform;\n+\n+\t/* Setup Authentication Parameters */\n+\tut_params->auth_xform.type = RTE_CRYPTO_SYM_XFORM_AUTH;\n+\tut_params->auth_xform.auth.op = RTE_CRYPTO_AUTH_OP_GENERATE;\n+\tut_params->auth_xform.auth.algo = reference->auth_algo;\n+\tut_params->auth_xform.auth.key.length = reference->auth_key.len;\n+\tut_params->auth_xform.auth.key.data = auth_key;\n+\tut_params->auth_xform.auth.digest_length = reference->digest.len;\n+\tut_params->auth_xform.next = NULL;\n+\n+\t/* Create Crypto session*/\n+\tut_params->sess = rte_cryptodev_sym_session_create(\n+\t\t\tts_params->session_mpool);\n+\n+\trte_cryptodev_sym_session_init(ts_params->valid_devs[0],\n+\t\t\t\tut_params->sess,\n+\t\t\t\t&ut_params->cipher_xform,\n+\t\t\t\tts_params->session_priv_mpool);\n+\n+\tTEST_ASSERT_NOT_NULL(ut_params->sess, \"Session creation failed\");\n+\n+\tut_params->ibuf = rte_pktmbuf_alloc(ts_params->mbuf_pool);\n+\tTEST_ASSERT_NOT_NULL(ut_params->ibuf,\n+\t\t\t\"Failed to allocate input buffer in mempool\");\n+\n+\t/* clear mbuf payload */\n+\tmemset(rte_pktmbuf_mtod(ut_params->ibuf, uint8_t *), 0,\n+\t\t\trte_pktmbuf_tailroom(ut_params->ibuf));\n+\n+\tplaintext = (uint8_t *)rte_pktmbuf_append(ut_params->ibuf,\n+\t\t\treference->plaintext.len);\n+\tTEST_ASSERT_NOT_NULL(plaintext, \"no room to append plaintext\");\n+\tmemcpy(plaintext, reference->plaintext.data, reference->plaintext.len);\n+\n+\t/* Create operation */\n+\tretval = create_cipher_auth_operation(ts_params,\n+\t\t\tut_params,\n+\t\t\treference, 0);\n+\n+\tif (retval < 0)\n+\t\treturn retval;\n+\n+\tut_params->op = process_crypto_request(ts_params->valid_devs[0],\n+\t\t\tut_params->op);\n+\n+\tTEST_ASSERT_NOT_NULL(ut_params->op, \"no crypto operation returned\");\n+\n+\tTEST_ASSERT_EQUAL(ut_params->op->status, RTE_CRYPTO_OP_STATUS_SUCCESS,\n+\t\t\t\"crypto op processing failed\");\n+\n+\tplaintext_pad_len = RTE_ALIGN_CEIL(reference->plaintext.len, 16);\n+\n+\tauthciphertext = rte_pktmbuf_mtod_offset(ut_params->ibuf, uint8_t *,\n+\t\t\tut_params->op->sym->auth.data.offset);\n+\tauth_tag = authciphertext + plaintext_pad_len;\n+\tdebug_hexdump(stdout, \"ciphertext:\", authciphertext,\n+\t\t\treference->ciphertext.len);\n+\tdebug_hexdump(stdout, \"auth tag:\", auth_tag, reference->digest.len);\n+\n+\t/* Validate obuf */\n+\tTEST_ASSERT_BUFFERS_ARE_EQUAL(\n+\t\t\tauthciphertext,\n+\t\t\treference->ciphertext.data,\n+\t\t\treference->ciphertext.len,\n+\t\t\t\"Ciphertext data not as expected\");\n+\n+\tTEST_ASSERT_BUFFERS_ARE_EQUAL(\n+\t\t\tauth_tag,\n+\t\t\treference->digest.data,\n+\t\t\treference->digest.len,\n+\t\t\t\"Generated digest not as expected\");\n+\n+\treturn TEST_SUCCESS;\n+\n+}\n+\n+static int\n+test_authenticated_decrypt_with_esn(\n+\t\tstruct crypto_testsuite_params *ts_params,\n+\t\tstruct crypto_unittest_params *ut_params,\n+\t\tconst struct test_crypto_vector *reference)\n+{\n+\tint retval;\n+\n+\tuint8_t *ciphertext;\n+\tuint8_t cipher_key[reference->cipher_key.len + 1];\n+\tuint8_t auth_key[reference->auth_key.len + 1];\n+\n+\t/* Create session */\n+\tmemcpy(cipher_key, reference->cipher_key.data,\n+\t\t\treference->cipher_key.len);\n+\tmemcpy(auth_key, reference->auth_key.data, reference->auth_key.len);\n+\n+\t/* Setup Authentication Parameters */\n+\tut_params->auth_xform.type = RTE_CRYPTO_SYM_XFORM_AUTH;\n+\tut_params->auth_xform.auth.op = RTE_CRYPTO_AUTH_OP_VERIFY;\n+\tut_params->auth_xform.auth.algo = reference->auth_algo;\n+\tut_params->auth_xform.auth.key.length = reference->auth_key.len;\n+\tut_params->auth_xform.auth.key.data = auth_key;\n+\tut_params->auth_xform.auth.digest_length = reference->digest.len;\n+\tut_params->auth_xform.next = &ut_params->cipher_xform;\n+\n+\t/* Setup Cipher Parameters */\n+\tut_params->cipher_xform.type = RTE_CRYPTO_SYM_XFORM_CIPHER;\n+\tut_params->cipher_xform.next = NULL;\n+\tut_params->cipher_xform.cipher.algo = reference->crypto_algo;\n+\tut_params->cipher_xform.cipher.op = RTE_CRYPTO_CIPHER_OP_DECRYPT;\n+\tut_params->cipher_xform.cipher.key.data = cipher_key;\n+\tut_params->cipher_xform.cipher.key.length = reference->cipher_key.len;\n+\tut_params->cipher_xform.cipher.iv.offset = IV_OFFSET;\n+\tut_params->cipher_xform.cipher.iv.length = reference->iv.len;\n+\n+\t/* Create Crypto session*/\n+\tut_params->sess = rte_cryptodev_sym_session_create(\n+\t\t\tts_params->session_mpool);\n+\n+\trte_cryptodev_sym_session_init(ts_params->valid_devs[0],\n+\t\t\t\tut_params->sess,\n+\t\t\t\t&ut_params->auth_xform,\n+\t\t\t\tts_params->session_priv_mpool);\n+\n+\tTEST_ASSERT_NOT_NULL(ut_params->sess, \"Session creation failed\");\n+\n+\tut_params->ibuf = rte_pktmbuf_alloc(ts_params->mbuf_pool);\n+\tTEST_ASSERT_NOT_NULL(ut_params->ibuf,\n+\t\t\t\"Failed to allocate input buffer in mempool\");\n+\n+\t/* clear mbuf payload */\n+\tmemset(rte_pktmbuf_mtod(ut_params->ibuf, uint8_t *), 0,\n+\t\t\trte_pktmbuf_tailroom(ut_params->ibuf));\n+\n+\tciphertext = (uint8_t *)rte_pktmbuf_append(ut_params->ibuf,\n+\t\t\treference->ciphertext.len);\n+\tTEST_ASSERT_NOT_NULL(ciphertext, \"no room to append ciphertext\");\n+\tmemcpy(ciphertext, reference->ciphertext.data,\n+\t\t\treference->ciphertext.len);\n+\n+\t/* Create operation */\n+\tretval = create_cipher_auth_verify_operation(ts_params,\n+\t\t\tut_params,\n+\t\t\treference);\n+\n+\tif (retval < 0)\n+\t\treturn retval;\n+\n+\tut_params->op = process_crypto_request(ts_params->valid_devs[0],\n+\t\t\tut_params->op);\n+\n+\tTEST_ASSERT_NOT_NULL(ut_params->op, \"failed crypto process\");\n+\tTEST_ASSERT_EQUAL(ut_params->op->status,\n+\t\t\tRTE_CRYPTO_OP_STATUS_SUCCESS,\n+\t\t\t\"crypto op processing passed\");\n+\n+\tut_params->obuf = ut_params->op->sym->m_src;\n+\tTEST_ASSERT_NOT_NULL(ut_params->obuf, \"failed to retrieve obuf\");\n+\n+\treturn 0;\n+}\n+\n static int\n create_aead_operation_SGL(enum rte_crypto_aead_operation op,\n \t\tconst struct aead_test_data *tdata,\n@@ -10809,6 +11049,24 @@ auth_decryption_AES128CBC_HMAC_SHA1_fail_tag_corrupt(void)\n \t\t\t&aes128cbc_hmac_sha1_test_vector);\n }\n \n+static int\n+auth_encrypt_AES128CBC_HMAC_SHA1_esn_check(void)\n+{\n+\treturn test_authenticated_encryt_with_esn(\n+\t\t\t&testsuite_params,\n+\t\t\t&unittest_params,\n+\t\t\t&aes128cbc_hmac_sha1_aad_test_vector);\n+}\n+\n+static int\n+auth_decrypt_AES128CBC_HMAC_SHA1_esn_check(void)\n+{\n+\treturn test_authenticated_decrypt_with_esn(\n+\t\t\t&testsuite_params,\n+\t\t\t&unittest_params,\n+\t\t\t&aes128cbc_hmac_sha1_aad_test_vector);\n+}\n+\n #ifdef RTE_LIBRTE_PMD_CRYPTO_SCHEDULER\n \n /* global AESNI slave IDs for the scheduler test */\n@@ -11830,6 +12088,13 @@ static struct unit_test_suite cryptodev_openssl_testsuite  = {\n \t\tTEST_CASE_ST(ut_setup, ut_teardown,\n \t\t\tauth_decryption_AES128CBC_HMAC_SHA1_fail_tag_corrupt),\n \n+\t\t/* ESN Testcase */\n+\t\tTEST_CASE_ST(ut_setup, ut_teardown,\n+\t\t\tauth_encrypt_AES128CBC_HMAC_SHA1_esn_check),\n+\n+\t\tTEST_CASE_ST(ut_setup, ut_teardown,\n+\t\t\tauth_decrypt_AES128CBC_HMAC_SHA1_esn_check),\n+\n \t\tTEST_CASES_END() /**< NULL terminate unit test array */\n \t}\n };\n@@ -12441,6 +12706,12 @@ static struct unit_test_suite cryptodev_dpaa_sec_testsuite  = {\n \t\tTEST_CASE_ST(ut_setup, ut_teardown,\n \t\t\tauth_decryption_AES128CBC_HMAC_SHA1_fail_tag_corrupt),\n \n+\t\t/* ESN Testcase */\n+\t\tTEST_CASE_ST(ut_setup, ut_teardown,\n+\t\t\tauth_encrypt_AES128CBC_HMAC_SHA1_esn_check),\n+\t\tTEST_CASE_ST(ut_setup, ut_teardown,\n+\t\t\tauth_decrypt_AES128CBC_HMAC_SHA1_esn_check),\n+\n \t\tTEST_CASES_END() /**< NULL terminate unit test array */\n \t}\n };\n@@ -12454,7 +12725,6 @@ static struct unit_test_suite cryptodev_dpaa2_sec_testsuite  = {\n \t\t\ttest_device_configure_invalid_dev_id),\n \t\tTEST_CASE_ST(ut_setup, ut_teardown,\n \t\t\ttest_multi_session),\n-\n \t\tTEST_CASE_ST(ut_setup, ut_teardown,\n \t\t\ttest_AES_chain_dpaa2_sec_all),\n \t\tTEST_CASE_ST(ut_setup, ut_teardown,\n@@ -12710,6 +12980,13 @@ static struct unit_test_suite cryptodev_dpaa2_sec_testsuite  = {\n \t\tTEST_CASE_ST(ut_setup, ut_teardown,\n \t\t\tauth_decryption_AES128CBC_HMAC_SHA1_fail_tag_corrupt),\n \n+\t\t/* ESN Testcase */\n+\t\tTEST_CASE_ST(ut_setup, ut_teardown,\n+\t\t\tauth_encrypt_AES128CBC_HMAC_SHA1_esn_check),\n+\n+\t\tTEST_CASE_ST(ut_setup, ut_teardown,\n+\t\t\tauth_decrypt_AES128CBC_HMAC_SHA1_esn_check),\n+\n \t\tTEST_CASES_END() /**< NULL terminate unit test array */\n \t}\n };\ndiff --git a/app/test/test_cryptodev_aes_test_vectors.h b/app/test/test_cryptodev_aes_test_vectors.h\nindex 46239efb7..54a5d75b2 100644\n--- a/app/test/test_cryptodev_aes_test_vectors.h\n+++ b/app/test/test_cryptodev_aes_test_vectors.h\n@@ -356,6 +356,73 @@ static const struct blockcipher_test_data null_test_data_chain_x1_multiple = {\n \t}\n };\n \n+static const uint8_t ciphertext512_aes128cbc_aad[] = {\n+\t0x57, 0x68, 0x61, 0x74, 0x20, 0x61, 0x20, 0x6C,\n+\t0x6F, 0x75, 0x73, 0x79, 0x6D, 0x70, 0xB4, 0xAD,\n+\t0x09, 0x7C, 0xD7, 0x52, 0xD6, 0xF2, 0xBF, 0xD1,\n+\t0x9D, 0x79, 0xC6, 0xB6, 0x8F, 0x94, 0xEB, 0xD8,\n+\t0xBA, 0x5E, 0x01, 0x49, 0x7D, 0xB3, 0xC5, 0xFE,\n+\t0x18, 0xF4, 0xE3, 0x60, 0x8C, 0x84, 0x68, 0x13,\n+\t0x33, 0x06, 0x85, 0x60, 0xD3, 0xE7, 0x8A, 0xB5,\n+\t0x23, 0xA2, 0xDE, 0x52, 0x5C, 0xB6, 0x26, 0x37,\n+\t0xBB, 0x23, 0x8A, 0x38, 0x07, 0x85, 0xB6, 0x2E,\n+\t0xC3, 0x69, 0x57, 0x79, 0x6B, 0xE4, 0xD7, 0x86,\n+\t0x23, 0x72, 0x4C, 0x65, 0x49, 0x08, 0x1E, 0xF3,\n+\t0xCC, 0x71, 0x4C, 0x45, 0x97, 0x03, 0xBC, 0xA0,\n+\t0x9D, 0xF0, 0x4F, 0x5D, 0xEC, 0x40, 0x6C, 0xC6,\n+\t0x52, 0xC0, 0x9D, 0x1C, 0xDC, 0x8B, 0xC2, 0xFA,\n+\t0x35, 0xA7, 0x3A, 0x00, 0x04, 0x1C, 0xA6, 0x91,\n+\t0x5D, 0xEB, 0x07, 0xA1, 0xB9, 0x3E, 0xD1, 0xB6,\n+\t0xCA, 0x96, 0xEC, 0x71, 0xF7, 0x7D, 0xB6, 0x09,\n+\t0x3D, 0x19, 0x6E, 0x75, 0x03, 0xC3, 0x1A, 0x4E,\n+\t0x5B, 0x4D, 0xEA, 0xD9, 0x92, 0x96, 0x01, 0xFB,\n+\t0xA3, 0xC2, 0x6D, 0xC4, 0x17, 0x6B, 0xB4, 0x3B,\n+\t0x1E, 0x87, 0x54, 0x26, 0x95, 0x63, 0x07, 0x73,\n+\t0xB6, 0xBA, 0x52, 0xD7, 0xA7, 0xD0, 0x9C, 0x75,\n+\t0x8A, 0xCF, 0xC4, 0x3C, 0x4A, 0x55, 0x0E, 0x53,\n+\t0xEC, 0xE0, 0x31, 0x51, 0xB7, 0xB7, 0xD2, 0xB4,\n+\t0xF3, 0x2B, 0x70, 0x6D, 0x15, 0x9E, 0x57, 0x30,\n+\t0x72, 0xE5, 0xA4, 0x71, 0x5F, 0xA4, 0xE8, 0x7C,\n+\t0x46, 0x58, 0x36, 0x71, 0x91, 0x55, 0xAA, 0x99,\n+\t0x3B, 0x3F, 0xF6, 0xA2, 0x9D, 0x27, 0xBF, 0xC2,\n+\t0x62, 0x2C, 0x85, 0xB7, 0x51, 0xDD, 0xFD, 0x7B,\n+\t0x8B, 0xB5, 0xDD, 0x2A, 0x73, 0xF8, 0x93, 0x9A,\n+\t0x3F, 0xAD, 0x1D, 0xF0, 0x46, 0xD1, 0x76, 0x83,\n+\t0x71, 0x4E, 0xD3, 0x0D, 0x64, 0x8C, 0xC3, 0xE6,\n+\t0x03, 0xED, 0xE8, 0x53, 0x23, 0x1A, 0xC7, 0x86,\n+\t0xEB, 0x87, 0xD6, 0x78, 0xF9, 0xFB, 0x9C, 0x1D,\n+\t0xE7, 0x4E, 0xC0, 0x70, 0x27, 0x7A, 0x43, 0xE2,\n+\t0x5D, 0xA4, 0x10, 0x40, 0xBE, 0x61, 0x0D, 0x2B,\n+\t0x25, 0x08, 0x75, 0x91, 0xB5, 0x5A, 0x26, 0xC8,\n+\t0x32, 0xA7, 0xC6, 0x88, 0xBF, 0x75, 0x94, 0xCC,\n+\t0x58, 0xA4, 0xFE, 0x2F, 0xF7, 0x5C, 0xD2, 0x36,\n+\t0x66, 0x55, 0xF0, 0xEA, 0xF5, 0x64, 0x43, 0xE7,\n+\t0x6D, 0xE0, 0xED, 0xA1, 0x10, 0x0A, 0x84, 0x07,\n+\t0x11, 0x88, 0xFA, 0xA1, 0xD3, 0xA0, 0x00, 0x5D,\n+\t0xEB, 0xB5, 0x62, 0x01, 0x72, 0xC1, 0x9B, 0x39,\n+\t0x0B, 0xD3, 0xAF, 0x04, 0x19, 0x42, 0xEC, 0xFF,\n+\t0x4B, 0xB3, 0x5E, 0x87, 0x27, 0xE4, 0x26, 0x57,\n+\t0x76, 0xCD, 0x36, 0x31, 0x5B, 0x94, 0x74, 0xFF,\n+\t0x33, 0x91, 0xAA, 0xD1, 0x45, 0x34, 0xC2, 0x11,\n+\t0xF0, 0x35, 0x44, 0xC9, 0xD5, 0xA2, 0x5A, 0xC2,\n+\t0xE9, 0x9E, 0xCA, 0xE2, 0x6F, 0xD2, 0x40, 0xB4,\n+\t0x93, 0x42, 0x78, 0x20, 0x92, 0x88, 0xC7, 0x16,\n+\t0xCF, 0x15, 0x54, 0x7B, 0xE1, 0x46, 0x38, 0x69,\n+\t0xB8, 0xE4, 0xF1, 0x81, 0xF0, 0x08, 0x6F, 0x92,\n+\t0x6D, 0x1A, 0xD9, 0x93, 0xFA, 0xD7, 0x35, 0xFE,\n+\t0x7F, 0x59, 0x43, 0x1D, 0x3A, 0x3B, 0xFC, 0xD0,\n+\t0x14, 0x95, 0x1E, 0xB2, 0x04, 0x08, 0x4F, 0xC6,\n+\t0xEA, 0xE8, 0x22, 0xF3, 0xD7, 0x66, 0x93, 0xAA,\n+\t0xFD, 0xA0, 0xFE, 0x03, 0x96, 0x54, 0x78, 0x35,\n+\t0x18, 0xED, 0xB7, 0x2F, 0x40, 0xE3, 0x8E, 0x22,\n+\t0xC6, 0xDA, 0xB0, 0x8E, 0xA0, 0xA1, 0x62, 0x03,\n+\t0x63, 0x34, 0x11, 0xF5, 0x9E, 0xAA, 0x6B, 0xC4,\n+\t0x14, 0x75, 0x4C, 0xF4, 0xD8, 0xD9, 0xF1, 0x76,\n+\t0xE3, 0xD3, 0x55, 0xCE, 0x22, 0x7D, 0x4A, 0xB7,\n+\t0xBB, 0x7F, 0x4F, 0x09, 0x88, 0x70, 0x6E, 0x09,\n+\t0x84, 0x6B, 0x24, 0x19, 0x2C, 0x20, 0x73, 0x75\n+};\n+\n /* AES128-CTR-SHA1 test vector */\n static const struct blockcipher_test_data aes_test_data_1 = {\n \t.crypto_algo = RTE_CRYPTO_CIPHER_AES_CTR,\n",
    "prefixes": [
        "07/10"
    ]
}