Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/136201/?format=api
https://patches.dpdk.org/api/patches/136201/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/patch/20240129185950.14346-1-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": "<20240129185950.14346-1-arkadiuszx.kusztal@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20240129185950.14346-1-arkadiuszx.kusztal@intel.com", "date": "2024-01-29T18:59:48", "name": "[1/3] cryptodev: add ec points to sm2 op", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "37b645102e650a74ea253f16ad915965e1322499", "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/20240129185950.14346-1-arkadiuszx.kusztal@intel.com/mbox/", "series": [ { "id": 30930, "url": "https://patches.dpdk.org/api/series/30930/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=30930", "date": "2024-01-29T18:59:48", "name": "[1/3] cryptodev: add ec points to sm2 op", "version": 1, "mbox": "https://patches.dpdk.org/series/30930/mbox/" } ], "comments": "https://patches.dpdk.org/api/patches/136201/comments/", "check": "success", "checks": "https://patches.dpdk.org/api/patches/136201/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 4DEF2439C7;\n\tMon, 29 Jan 2024 20:00:00 +0100 (CET)", "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id D36FE402C8;\n\tMon, 29 Jan 2024 19:59:59 +0100 (CET)", "from mgamail.intel.com (mgamail.intel.com [198.175.65.11])\n by mails.dpdk.org (Postfix) with ESMTP id 706BC4026F\n for <dev@dpdk.org>; Mon, 29 Jan 2024 19:59:58 +0100 (CET)", "from orviesa002.jf.intel.com ([10.64.159.142])\n by orvoesa103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 29 Jan 2024 10:59:57 -0800", "from silpixa00400308.ir.intel.com ([10.237.214.154])\n by orviesa002.jf.intel.com with ESMTP; 29 Jan 2024 10:59:55 -0800" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1706554799; x=1738090799;\n h=from:to:cc:subject:date:message-id;\n bh=NUx5Qm4Q7ylP9hqKgUtMb9YIYxDVsSjM6o9a8LxwOeg=;\n b=PenHzU9g6N3FyRhg57nQhsdub3cojOBNlFjtXJd/ZweNlocS5lhcmiAP\n d408lwfsKvuTk/j5haHZ2whn5xDNiMKig/2SdHuo2UnNS5sOfqPi/coYl\n 6+c9PZdok5vQdcPnPYgRCt3JIWbo6+owqS1ZRx0tMw1ToXz7wHtTZxera\n J/PCpJTXxUohumxMUKfCR61GZGdGvywU7uu9LLPHM1ahaQDMTRBIYMiV7\n qvtKeV1WWyv9xSVzv32yNC6idtH4KQiE+GWW9u9ev1yWnAbsRZaGbIopN\n JG/Qg4MBb+WClsTUHY7G+ZQD4q1iEZfrqhLBmJwfAr4MQOkegmPU7R/L6 g==;", "X-IronPort-AV": [ "E=McAfee;i=\"6600,9927,10968\"; a=\"9696122\"", "E=Sophos;i=\"6.05,227,1701158400\";\n d=\"scan'208\";a=\"9696122\"", "E=Sophos;i=\"6.05,227,1701158400\"; d=\"scan'208\";a=\"29632903\"" ], "X-ExtLoop1": "1", "From": "Arkadiusz Kusztal <arkadiuszx.kusztal@intel.com>", "To": "dev@dpdk.org", "Cc": "gakhil@marvell.com, ciara.power@intel.com,\n Arkadiusz Kusztal <arkadiuszx.kusztal@intel.com>", "Subject": "[PATCH 1/3] cryptodev: add ec points to sm2 op", "Date": "Mon, 29 Jan 2024 18:59:48 +0000", "Message-Id": "<20240129185950.14346-1-arkadiuszx.kusztal@intel.com>", "X-Mailer": "git-send-email 2.17.1", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <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 <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org" }, "content": "In the case when PMD cannot support full process of the SM2,\nbut elliptic curve computation only, additional fields\nare needed to handle such a case.\n\nPoints C1, kP therefore were added to the SM2 crypto operation struct.\n\nSigned-off-by: Arkadiusz Kusztal <arkadiuszx.kusztal@intel.com>\n---\n lib/cryptodev/rte_crypto_asym.h | 119 +++++++++++++++++++-------------\n 1 file changed, 71 insertions(+), 48 deletions(-)", "diff": "diff --git a/lib/cryptodev/rte_crypto_asym.h b/lib/cryptodev/rte_crypto_asym.h\nindex 39d3da3952..55620d2d3a 100644\n--- a/lib/cryptodev/rte_crypto_asym.h\n+++ b/lib/cryptodev/rte_crypto_asym.h\n@@ -599,40 +599,6 @@ struct rte_crypto_ecpm_op_param {\n \t/**< Scalar to multiply the input point */\n };\n \n-/**\n- * Asymmetric crypto transform data\n- *\n- * Structure describing asym xforms.\n- */\n-struct rte_crypto_asym_xform {\n-\tstruct rte_crypto_asym_xform *next;\n-\t/**< Pointer to next xform to set up xform chain.*/\n-\tenum rte_crypto_asym_xform_type xform_type;\n-\t/**< Asymmetric crypto transform */\n-\n-\tunion {\n-\t\tstruct rte_crypto_rsa_xform rsa;\n-\t\t/**< RSA xform parameters */\n-\n-\t\tstruct rte_crypto_modex_xform modex;\n-\t\t/**< Modular Exponentiation xform parameters */\n-\n-\t\tstruct rte_crypto_modinv_xform modinv;\n-\t\t/**< Modular Multiplicative Inverse xform parameters */\n-\n-\t\tstruct rte_crypto_dh_xform dh;\n-\t\t/**< DH xform parameters */\n-\n-\t\tstruct rte_crypto_dsa_xform dsa;\n-\t\t/**< DSA xform parameters */\n-\n-\t\tstruct rte_crypto_ec_xform ec;\n-\t\t/**< EC xform parameters, used by elliptic curve based\n-\t\t * operations.\n-\t\t */\n-\t};\n-};\n-\n /**\n * SM2 operation params.\n */\n@@ -658,20 +624,43 @@ struct rte_crypto_sm2_op_param {\n \t * will be overwritten by the PMD with the decrypted length.\n \t */\n \n-\trte_crypto_param cipher;\n-\t/**<\n-\t * Pointer to input data\n-\t * - to be decrypted for SM2 private decrypt.\n-\t *\n-\t * Pointer to output data\n-\t * - for SM2 public encrypt.\n-\t * In this case the underlying array should have been allocated\n-\t * with enough memory to hold ciphertext output (at least X bytes\n-\t * for prime field curve of N bytes and for message M bytes,\n-\t * where X = (C1 || C2 || C3) and computed based on SM2 RFC as\n-\t * C1 (1 + N + N), C2 = M, C3 = N. The cipher.length field will\n-\t * be overwritten by the PMD with the encrypted length.\n-\t */\n+\tunion {\n+\t\trte_crypto_param cipher;\n+\t\t/**<\n+\t\t * Pointer to input data\n+\t\t * - to be decrypted for SM2 private decrypt.\n+\t\t *\n+\t\t * Pointer to output data\n+\t\t * - for SM2 public encrypt.\n+\t\t * In this case the underlying array should have been allocated\n+\t\t * with enough memory to hold ciphertext output (at least X bytes\n+\t\t * for prime field curve of N bytes and for message M bytes,\n+\t\t * where X = (C1 || C2 || C3) and computed based on SM2 RFC as\n+\t\t * C1 (1 + N + N), C2 = M, C3 = N. The cipher.length field will\n+\t\t * be overwritten by the PMD with the encrypted length.\n+\t\t */\n+\t\tstruct {\n+\t\t\tstruct rte_crypto_ec_point C1;\n+\t\t\t/**<\n+\t\t\t * This field is used only when PMD does not support full\n+\t\t\t * process of the SM2 encryption/decryption, but elliptic\n+\t\t\t * curve part only.\n+\t\t\t *\n+\t\t\t * In the case of encryption, it is an output - point C1 = (x1,y1).\n+\t\t\t * In the case of decryption, if is an input - point C1 = (x1,y1)\n+\t\t\t *\n+\t\t\t */\n+\t\t\tstruct rte_crypto_ec_point kP;\n+\t\t\t/**<\n+\t\t\t * This field is used only when PMD does not support full\n+\t\t\t * process of the SM2 encryption/decryption, but elliptic\n+\t\t\t * curve part only.\n+\t\t\t *\n+\t\t\t * It is an output in the encryption case, it is a point\n+\t\t\t * [k]P = (x2,y2)\n+\t\t\t */\n+\t\t};\n+\t};\n \n \trte_crypto_uint id;\n \t/**< The SM2 id used by signer and verifier. */\n@@ -697,6 +686,40 @@ struct rte_crypto_sm2_op_param {\n \t */\n };\n \n+/**\n+ * Asymmetric crypto transform data\n+ *\n+ * Structure describing asym xforms.\n+ */\n+struct rte_crypto_asym_xform {\n+\tstruct rte_crypto_asym_xform *next;\n+\t/**< Pointer to next xform to set up xform chain.*/\n+\tenum rte_crypto_asym_xform_type xform_type;\n+\t/**< Asymmetric crypto transform */\n+\n+\tunion {\n+\t\tstruct rte_crypto_rsa_xform rsa;\n+\t\t/**< RSA xform parameters */\n+\n+\t\tstruct rte_crypto_modex_xform modex;\n+\t\t/**< Modular Exponentiation xform parameters */\n+\n+\t\tstruct rte_crypto_modinv_xform modinv;\n+\t\t/**< Modular Multiplicative Inverse xform parameters */\n+\n+\t\tstruct rte_crypto_dh_xform dh;\n+\t\t/**< DH xform parameters */\n+\n+\t\tstruct rte_crypto_dsa_xform dsa;\n+\t\t/**< DSA xform parameters */\n+\n+\t\tstruct rte_crypto_ec_xform ec;\n+\t\t/**< EC xform parameters, used by elliptic curve based\n+\t\t * operations.\n+\t\t */\n+\t};\n+};\n+\n /**\n * Asymmetric Cryptographic Operation.\n *\n", "prefixes": [ "1/3" ] }{ "id": 136201, "url": "