Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/56041/?format=api
https://patches.dpdk.org/api/patches/56041/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/patch/20190703153759.1508-4-arkadiuszx.kusztal@intel.com/", "project": { "id": 1, "url": "https://patches.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": "<20190703153759.1508-4-arkadiuszx.kusztal@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20190703153759.1508-4-arkadiuszx.kusztal@intel.com", "date": "2019-07-03T15:37:59", "name": "[v2,3/3] test: rework rsa test implementation", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "b2a4c00189e10d37a7b42404a0442b11acb9a67d", "submitter": { "id": 452, "url": "https://patches.dpdk.org/api/people/452/?format=api", "name": "Arkadiusz Kusztal", "email": "arkadiuszx.kusztal@intel.com" }, "delegate": { "id": 6690, "url": "https://patches.dpdk.org/api/users/6690/?format=api", "username": "akhil", "first_name": "akhil", "last_name": "goyal", "email": "gakhil@marvell.com" }, "mbox": "https://patches.dpdk.org/project/dpdk/patch/20190703153759.1508-4-arkadiuszx.kusztal@intel.com/mbox/", "series": [ { "id": 5316, "url": "https://patches.dpdk.org/api/series/5316/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=5316", "date": "2019-07-03T15:37:56", "name": "Rework API for RSA algorithm in asymmetric crypto", "version": 2, "mbox": "https://patches.dpdk.org/series/5316/mbox/" } ], "comments": "https://patches.dpdk.org/api/patches/56041/comments/", "check": "fail", "checks": "https://patches.dpdk.org/api/patches/56041/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 333EA5B3A;\n\tWed, 3 Jul 2019 17:39:28 +0200 (CEST)", "from mga06.intel.com (mga06.intel.com [134.134.136.31])\n\tby dpdk.org (Postfix) with ESMTP id 562BB58C4\n\tfor <dev@dpdk.org>; Wed, 3 Jul 2019 17:39:25 +0200 (CEST)", "from fmsmga001.fm.intel.com ([10.253.24.23])\n\tby orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t03 Jul 2019 08:39:24 -0700", "from damiannx-mobl1.ger.corp.intel.com (HELO\n\takusztax-MOBL.ger.corp.intel.com) ([10.104.14.182])\n\tby fmsmga001.fm.intel.com with ESMTP; 03 Jul 2019 08:39:22 -0700" ], "X-Amp-Result": "SKIPPED(no attachment in message)", "X-Amp-File-Uploaded": "False", "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.63,446,1557212400\"; d=\"scan'208\";a=\"184788201\"", "From": "Arek Kusztal <arkadiuszx.kusztal@intel.com>", "To": "dev@dpdk.org", "Cc": "akhil.goyal@nxp.com, fiona.trahe@intel.com,\n\tshally.verma@caviumnetworks.com,\n\tArek Kusztal <arkadiuszx.kusztal@intel.com>", "Date": "Wed, 3 Jul 2019 17:37:59 +0200", "Message-Id": "<20190703153759.1508-4-arkadiuszx.kusztal@intel.com>", "X-Mailer": "git-send-email 2.19.1.windows.1", "In-Reply-To": "<20190703153759.1508-1-arkadiuszx.kusztal@intel.com>", "References": "<20190703153759.1508-1-arkadiuszx.kusztal@intel.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[dpdk-dev] [PATCH v2 3/3] test: rework rsa test implementation", "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 commit reworks rsa test implementation to be conformant\nto the RSA API.\nSimulation of PKCS1_5 padding was added to be used with PADDING_NONE\noption.\n\nSigned-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>\n---\n app/test/test_cryptodev_asym.c | 44 ++++++++++++++++++++++++-------\n app/test/test_cryptodev_asym_util.h | 52 +++++++++++++++++++++++++++++++++++++\n 2 files changed, 87 insertions(+), 9 deletions(-)", "diff": "diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c\nindex fc92d3d..ae43861 100644\n--- a/app/test/test_cryptodev_asym.c\n+++ b/app/test/test_cryptodev_asym.c\n@@ -402,7 +402,7 @@ test_rsa_sign_verify(void)\n \tasym_op->rsa.message.data = input_buf;\n \tasym_op->rsa.message.length = rsaplaintext.len;\n \tasym_op->rsa.sign.data = output_buf;\n-\tasym_op->rsa.pad = RTE_CRYPTO_RSA_PKCS1_V1_5_BT1;\n+\tasym_op->rsa.padding = RTE_CRYPTO_RSA_PADDING_PKCS1;\n \n \tdebug_hexdump(stdout, \"message\", asym_op->rsa.message.data,\n \t\t\tasym_op->rsa.message.length);\n@@ -437,7 +437,7 @@ test_rsa_sign_verify(void)\n \n \t/* Verify sign */\n \tasym_op->rsa.op_type = RTE_CRYPTO_ASYM_OP_VERIFY;\n-\tasym_op->rsa.pad = RTE_CRYPTO_RSA_PKCS1_V1_5_BT2;\n+\tasym_op->rsa.padding = RTE_CRYPTO_RSA_PADDING_PKCS1;\n \n \t/* Process crypto operation */\n \tif (rte_cryptodev_enqueue_burst(dev_id, 0, &op, 1) != 1) {\n@@ -483,7 +483,7 @@ test_rsa_sign_verify(void)\n }\n \n static int\n-test_rsa_enc_dec(void)\n+test_rsa_enc_dec(enum rte_crypto_rsa_padding_type padding)\n {\n \tstruct crypto_testsuite_params *ts_params = &testsuite_params;\n \tstruct rte_mempool *op_mpool = ts_params->op_mpool;\n@@ -495,6 +495,7 @@ test_rsa_enc_dec(void)\n \tstruct rte_cryptodev_asym_session *sess = NULL;\n \tint status = TEST_SUCCESS;\n \tuint8_t input_buf[TEST_DATA_SIZE] = {0};\n+\tuint8_t cipher_buf[TEST_DATA_SIZE] = {0};\n \n \t/* test case supports op with exponent key only,\n \t * Check in PMD feature flag for RSA exponent key type support.\n@@ -542,12 +543,18 @@ test_rsa_enc_dec(void)\n \tasym_op = op->asym;\n \t/*Compute encryption on the test vector */\n \tasym_op->rsa.op_type = RTE_CRYPTO_ASYM_OP_ENCRYPT;\n-\n-\tmemcpy(input_buf, rsaplaintext.data,\n-\t\t\trsaplaintext.len);\n \tasym_op->rsa.message.data = input_buf;\n \tasym_op->rsa.message.length = rsaplaintext.len;\n-\tasym_op->rsa.pad = RTE_CRYPTO_RSA_PKCS1_V1_5_BT2;\n+\tasym_op->rsa.cipher.data = cipher_buf;\n+\tasym_op->rsa.cipher.length = 0;\n+\tasym_op->rsa.padding = padding;\n+\tif (padding == RTE_CRYPTO_RSA_PADDING_NONE) {\n+\t\trsa_simulate_pkcs1_5_padding(0, input_buf, rsa_xform.rsa.n.length,\n+\t\t\t\trsaplaintext.data, rsaplaintext.len);\n+\t\tasym_op->rsa.message.length = rsa_xform.rsa.n.length;\n+\t} else\n+\t\tmemcpy(input_buf, rsaplaintext.data,\n+\t\t\t\trsaplaintext.len);\n \n \tdebug_hexdump(stdout, \"message\", asym_op->rsa.message.data,\n \t\t\tasym_op->rsa.message.length);\n@@ -581,7 +588,7 @@ test_rsa_enc_dec(void)\n \t/* Use the resulted output as decryption Input vector*/\n \tasym_op = result_op->asym;\n \tasym_op->rsa.op_type = RTE_CRYPTO_ASYM_OP_DECRYPT;\n-\tasym_op->rsa.pad = RTE_CRYPTO_RSA_PKCS1_V1_5_BT1;\n+\tasym_op->rsa.padding = padding;\n \n \t/* Process crypto operation */\n \tif (rte_cryptodev_enqueue_burst(dev_id, 0, &op, 1) != 1) {\n@@ -604,7 +611,15 @@ test_rsa_enc_dec(void)\n \t}\n \tstatus = TEST_SUCCESS;\n \tint ret = 0;\n+\n+\tif (padding == RTE_CRYPTO_RSA_PADDING_NONE) {\n+\t\tresult_op->asym->rsa.message.length =\n+\t\t\t\trsa_simulate_strip_pkcs1_5_padding(result_op->asym->rsa.message.data,\n+\t\t\t\trsa_xform.rsa.n.length);\n+\t}\n+\n \tret = rsa_verify(&rsaplaintext, result_op);\n+\n \tif (ret)\n \t\tstatus = TEST_FAILED;\n \n@@ -624,6 +639,16 @@ test_rsa_enc_dec(void)\n }\n \n static int\n+test_rsa_enc_dec_pkcs_1(void){\n+\treturn test_rsa_enc_dec(RTE_CRYPTO_RSA_PADDING_PKCS1);\n+}\n+\n+static int\n+test_rsa_enc_dec_pkcs_1_none(void){\n+\treturn test_rsa_enc_dec(RTE_CRYPTO_RSA_PADDING_NONE);\n+}\n+\n+static int\n testsuite_setup(void)\n {\n \tstruct crypto_testsuite_params *ts_params = &testsuite_params;\n@@ -1684,7 +1709,8 @@ static struct unit_test_suite cryptodev_openssl_asym_testsuite = {\n \t\tTEST_CASE_ST(ut_setup, ut_teardown, test_capability),\n \t\tTEST_CASE_ST(ut_setup, ut_teardown, test_dsa),\n \t\tTEST_CASE_ST(ut_setup, ut_teardown, test_dh_keygenration),\n-\t\tTEST_CASE_ST(ut_setup, ut_teardown, test_rsa_enc_dec),\n+\t\tTEST_CASE_ST(ut_setup, ut_teardown, test_rsa_enc_dec_pkcs_1),\n+\t\tTEST_CASE_ST(ut_setup, ut_teardown, test_rsa_enc_dec_pkcs_1_none),\n \t\tTEST_CASE_ST(ut_setup, ut_teardown, test_rsa_sign_verify),\n \t\tTEST_CASE_ST(ut_setup, ut_teardown, test_mod_inv),\n \t\tTEST_CASE_ST(ut_setup, ut_teardown, test_mod_exp),\ndiff --git a/app/test/test_cryptodev_asym_util.h b/app/test/test_cryptodev_asym_util.h\nindex b3d9fb4..484b967 100644\n--- a/app/test/test_cryptodev_asym_util.h\n+++ b/app/test/test_cryptodev_asym_util.h\n@@ -7,6 +7,58 @@\n \n /* Below Apis compare resulted buffer to original test vector */\n \n+/*\n+ * Two functions below simulate pkcs 1.5 padding and serves only as an example,\n+ * both offer no security.\n+ */\n+static inline int rsa_simulate_pkcs1_5_padding(int op, uint8_t *p,\n+\t\tint key_size, const uint8_t *src, int len) {\n+\n+\tint ps_len;\n+\n+\tif (len > key_size - 11)\n+\t\treturn -1;\n+\tps_len = key_size - len - 3;\n+\n+\t*(p++) = 0;\n+\t*(p++) = op ? 1 : 2;\n+\tif (op) {\n+\t\twhile (ps_len--)\n+\t\t\t*p = 0xFF;\n+\t} else {\n+\t\twhile (ps_len--) {\n+\t\t\t*p = (uint8_t)rand();\n+\t\t\t*p ^= !(*p);\n+\t\t\tp++;\n+\t\t}\n+\t}\n+\n+\t*(p++) = 0;\n+\tmemcpy(p, src, len);\n+\n+\treturn 0;\n+}\n+\n+static inline int rsa_simulate_strip_pkcs1_5_padding(uint8_t *src,\n+\t\tint key_size) {\n+\tuint8_t tmp[key_size], *orig_src = src;\n+\tint i = 1;\n+\t++src;\n+\twhile (*(src) && i < key_size) {\n+\t\t++i;\n+\t\t++src;\n+\t}\n+\tif (i == key_size)\n+\t\treturn -1;\n+\n+\t++i;\n+\t++src;\n+\n+\tmemcpy(tmp, src, key_size - i);\n+\tmemcpy(orig_src, tmp, key_size - i);\n+\treturn key_size - i;\n+}\n+\n static inline int rsa_verify(struct rsa_test_data *rsa_param,\n \t\tstruct rte_crypto_op *result_op)\n {\n", "prefixes": [ "v2", "3/3" ] }{ "id": 56041, "url": "