get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 105464,
    "url": "http://patchwork.dpdk.org/api/patches/105464/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20211228092421.22602-3-arkadiuszx.kusztal@intel.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": "<20211228092421.22602-3-arkadiuszx.kusztal@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20211228092421.22602-3-arkadiuszx.kusztal@intel.com",
    "date": "2021-12-28T09:24:21",
    "name": "[2/2] crypto/qat: add named elliptic curves",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "22664750b725229f03f7bc5a1438a764cd268a3d",
    "submitter": {
        "id": 452,
        "url": "http://patchwork.dpdk.org/api/people/452/?format=api",
        "name": "Arkadiusz Kusztal",
        "email": "arkadiuszx.kusztal@intel.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/20211228092421.22602-3-arkadiuszx.kusztal@intel.com/mbox/",
    "series": [
        {
            "id": 21034,
            "url": "http://patchwork.dpdk.org/api/series/21034/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=21034",
            "date": "2021-12-28T09:24:19",
            "name": "crypto/qat: add asymmetric crypto algorithms",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/21034/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/105464/comments/",
    "check": "fail",
    "checks": "http://patchwork.dpdk.org/api/patches/105464/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 7AD29A034F;\n\tTue, 28 Dec 2021 10:25:12 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id E184D410E3;\n\tTue, 28 Dec 2021 10:25:09 +0100 (CET)",
            "from mga02.intel.com (mga02.intel.com [134.134.136.20])\n by mails.dpdk.org (Postfix) with ESMTP id 8655840040\n for <dev@dpdk.org>; Tue, 28 Dec 2021 10:25:07 +0100 (CET)",
            "from orsmga005.jf.intel.com ([10.7.209.41])\n by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 28 Dec 2021 01:24:33 -0800",
            "from silpixa00400308.ir.intel.com ([10.237.214.95])\n by orsmga005.jf.intel.com with ESMTP; 28 Dec 2021 01:24:32 -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=1640683507; x=1672219507;\n h=from:to:cc:subject:date:message-id:in-reply-to: references;\n bh=cEehkB/XplEGNi4vtjOiGv2dWUMsej1US6aFZb9RPuc=;\n b=CnLpTprJW+ghuBd8JK+cA1IAY5tWkQSZmZEPc5op4n78Y7BSE+um9+4d\n j4aOS+o8zkOV+/ml2ffrMz2N4SOOTkcIRqWDNVxY5vzdUqFMtAs7gPXTu\n W0IDS2xYoFC3P4wPDhZcGHv2Vrc7zEt0bsGbN6jCFbCmKhoRT7lC5N0//\n j60Jzn4fnPlPr+3+tK1TfV55Lecy/H4ey9WRxO43/4H1FyMlX7Gv+HV/j\n UHBbBpf+idaIOEixCTo+SIWF1dYExhf7YNm64ltXtZKgtVkyFqLa44A65\n o4faGBl/ONA4ZZBd7btlwr7nQkWL3tieqwhpH3UlNezaa2Jg8XplEBq2H Q==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6200,9189,10210\"; a=\"228645411\"",
            "E=Sophos;i=\"5.88,242,1635231600\"; d=\"scan'208\";a=\"228645411\"",
            "E=Sophos;i=\"5.88,242,1635231600\"; d=\"scan'208\";a=\"686542972\""
        ],
        "X-ExtLoop1": "1",
        "From": "Arek Kusztal <arkadiuszx.kusztal@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "gakhil@marvell.com, roy.fan.zhang@intel.com,\n Arek Kusztal <arkadiuszx.kusztal@intel.com>",
        "Subject": "[PATCH 2/2] crypto/qat: add named elliptic curves",
        "Date": "Tue, 28 Dec 2021 09:24:21 +0000",
        "Message-Id": "<20211228092421.22602-3-arkadiuszx.kusztal@intel.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20211228092421.22602-1-arkadiuszx.kusztal@intel.com>",
        "References": "<20211228092421.22602-1-arkadiuszx.kusztal@intel.com>",
        "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": "This patch adds secp256r1 and 521r1 elliptic curves to Intel\nQuickAssist Technology PMD.\n\nSigned-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>\n---\n drivers/crypto/qat/qat_asym.c |  15 ++++\n drivers/crypto/qat/qat_ec.h   | 203 ++++++++++++++++++++++++++++++++++++++++++\n 2 files changed, 218 insertions(+)\n create mode 100644 drivers/crypto/qat/qat_ec.h",
    "diff": "diff --git a/drivers/crypto/qat/qat_asym.c b/drivers/crypto/qat/qat_asym.c\nindex 7fb4b0205a..e0773e819c 100644\n--- a/drivers/crypto/qat/qat_asym.c\n+++ b/drivers/crypto/qat/qat_asym.c\n@@ -8,6 +8,7 @@\n #include \"icp_qat_fw_pke.h\"\n #include \"icp_qat_fw.h\"\n #include \"qat_pke_functionality_arrays.h\"\n+#include \"qat_ec.h\"\n \n #if RTE_LOG_DP_LEVEL >= RTE_LOG_DEBUG\n #define HEXDUMP(name, where, size) QAT_DP_HEXDUMP_LOG(DEBUG, name, \\\n@@ -43,6 +44,20 @@\n \t\twhat.data, \\\n \t\twhat.length)\n \n+#define SET_PKE_LN_9A(where, what, how, idx) \\\n+\t\trte_memcpy(&where[idx * RTE_ALIGN_CEIL(how, 8)] + \\\n+\t\t\tRTE_ALIGN_CEIL(how, 8) - \\\n+\t\t\twhat.length, \\\n+\t\t\twhat.data, \\\n+\t\t\twhat.length)\n+\n+#define SET_PKE_LN_EC(where, what, how, idx) \\\n+\t\trte_memcpy(&where[idx * RTE_ALIGN_CEIL(how, 8)] + \\\n+\t\t\tRTE_ALIGN_CEIL(how, 8) - \\\n+\t\t\thow, \\\n+\t\t\twhat.data, \\\n+\t\t\thow)\n+\n static void\n request_init(struct icp_qat_fw_pke_request *qat_req)\n {\ndiff --git a/drivers/crypto/qat/qat_ec.h b/drivers/crypto/qat/qat_ec.h\nnew file mode 100644\nindex 0000000000..756190aae0\n--- /dev/null\n+++ b/drivers/crypto/qat/qat_ec.h\n@@ -0,0 +1,203 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright(c) 2021 Intel Corporation\n+ */\n+\n+#ifndef _QAT_EC_H_\n+#define _QAT_EC_H_\n+\n+#define EC_MAX_SIZE\t571\n+\n+#include <rte_crypto_asym.h>\n+\n+typedef struct {\n+\tuint8_t data[EC_MAX_SIZE >> 3];\n+} buffer;\n+\n+enum EC_NAME {\n+\tSECP256R1\t= 1,\n+\tSECP384R1,\n+\tSECP521R1,\n+};\n+\n+struct elliptic_curve {\n+\tconst char *name;\n+\tuint32_t bytesize;\n+\tbuffer x;\n+\tbuffer y;\n+\tbuffer n;\n+\tbuffer p;\n+\tbuffer a;\n+\tbuffer b;\n+\tbuffer h;\n+};\n+\n+static struct elliptic_curve __rte_unused curve[] = {\n+\t[SECP256R1] = {\n+\t\t.name = \"secp256r1\",\n+\t\t.bytesize = 32,\n+\t\t.x = {\n+\t\t\t.data = {\n+\t\t\t\t0x6B, 0x17, 0xD1, 0xF2, 0xE1, 0x2C, 0x42, 0x47,\n+\t\t\t\t0xF8, 0xBC, 0xE6, 0xE5, 0x63, 0xA4, 0x40, 0xF2,\n+\t\t\t\t0x77, 0x03, 0x7D, 0x81, 0x2D, 0xEB, 0x33, 0xA0,\n+\t\t\t\t0xF4, 0xA1, 0x39, 0x45, 0xD8, 0x98, 0xC2, 0x96,\n+\t\t\t\t},\n+\t\t},\n+\t\t.y = {\n+\t\t\t.data = {\n+\t\t\t\t0x4F, 0xE3, 0x42, 0xE2, 0xFE, 0x1A, 0x7F, 0x9B,\n+\t\t\t\t0x8E, 0xE7, 0xEB, 0x4A, 0x7C, 0x0F, 0x9E, 0x16,\n+\t\t\t\t0x2B, 0xCE, 0x33, 0x57, 0x6B, 0x31, 0x5E, 0xCE,\n+\t\t\t\t0xCB, 0xB6, 0x40, 0x68, 0x37, 0xBF, 0x51, 0xF5,\n+\t\t\t\t},\n+\t\t},\n+\t\t.n = {\n+\t\t\t.data = {\n+\t\t\t\t0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,\n+\t\t\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n+\t\t\t\t0xBC, 0xE6, 0xFA, 0xAD, 0xA7, 0x17, 0x9E, 0x84,\n+\t\t\t\t0xF3, 0xB9, 0xCA, 0xC2, 0xFC, 0x63, 0x25, 0x51,\n+\t\t\t\t},\n+\t\t},\n+\t\t.p = {\n+\t\t\t.data = {\n+\t\t\t\t0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x01,\n+\t\t\t\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n+\t\t\t\t0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,\n+\t\t\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n+\t\t\t\t},\n+\t\t},\n+\t\t.a = {\n+\t\t\t.data = {\n+\t\t\t\t0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x01,\n+\t\t\t\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n+\t\t\t\t0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,\n+\t\t\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC,\n+\t\t\t\t},\n+\t\t},\n+\t\t.b = {\n+\t\t\t.data = {\n+\t\t\t\t0x5A, 0xC6, 0x35, 0xD8, 0xAA, 0x3A, 0x93, 0xE7,\n+\t\t\t\t0xB3, 0xEB, 0xBD, 0x55, 0x76, 0x98, 0x86, 0xBC,\n+\t\t\t\t0x65, 0x1D, 0x06, 0xB0, 0xCC, 0x53, 0xB0, 0xF6,\n+\t\t\t\t0x3B, 0xCE, 0x3C, 0x3E, 0x27, 0xD2, 0x60, 0x4B,\n+\t\t\t\t},\n+\t\t},\n+\t\t.h = {\n+\t\t\t.data = {\n+\t\t\t\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n+\t\t\t\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n+\t\t\t\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n+\t\t\t\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,\n+\t\t\t\t},\n+\t\t},\n+\t},\n+\n+\t[SECP521R1] = {\n+\t\t.name = \"secp521r1\",\n+\t\t.bytesize = 66,\n+\t\t.x = {\n+\t\t\t.data = {\n+\t\t\t\t0x00, 0xC6, 0x85, 0x8E, 0x06, 0xB7, 0x04, 0x04,\n+\t\t\t\t0xE9, 0xCD, 0x9E, 0x3E, 0xCB, 0x66, 0x23, 0x95,\n+\t\t\t\t0xB4,\n+\t\t\t\t0x42, 0x9C, 0x64, 0x81, 0x39, 0x05, 0x3F, 0xB5,\n+\t\t\t\t0x21, 0xF8, 0x28, 0xAF, 0x60, 0x6B, 0x4D, 0x3D,\n+\t\t\t\t0xBA, 0xA1, 0x4B, 0x5E, 0x77, 0xEF, 0xE7, 0x59,\n+\t\t\t\t0x28, 0xFE, 0x1D, 0xC1, 0x27, 0xA2, 0xFF, 0xA8,\n+\t\t\t\t0xDE, 0x33, 0x48, 0xB3, 0xC1, 0x85, 0x6A, 0x42,\n+\t\t\t\t0x9B, 0xF9, 0x7E, 0x7E, 0x31, 0xC2, 0xE5, 0xBD,\n+\t\t\t\t0x66,\n+\t\t\t\t},\n+\t\t},\n+\t\t.y = {\n+\t\t\t.data = {\n+\t\t\t\t0x01, 0x18, 0x39, 0x29, 0x6A, 0x78, 0x9A, 0x3B,\n+\t\t\t\t0xC0, 0x04, 0x5C, 0x8A, 0x5F, 0xB4, 0x2C, 0x7D,\n+\t\t\t\t0x1B, 0xD9, 0x98, 0xF5, 0x44, 0x49, 0x57, 0x9B,\n+\t\t\t\t0x44, 0x68, 0x17, 0xAF, 0xBD, 0x17, 0x27, 0x3E,\n+\t\t\t\t0x66, 0x2C, 0x97, 0xEE, 0x72, 0x99, 0x5E, 0xF4,\n+\t\t\t\t0x26, 0x40, 0xC5, 0x50, 0xB9, 0x01, 0x3F, 0xAD,\n+\t\t\t\t0x07, 0x61, 0x35, 0x3C, 0x70, 0x86, 0xA2, 0x72,\n+\t\t\t\t0xC2, 0x40, 0x88, 0xBE, 0x94, 0x76, 0x9F, 0xD1,\n+\t\t\t\t0x66, 0x50,\n+\t\t\t\t},\n+\t\t},\n+\t\t.n = {\n+\t\t\t.data = {\n+\t\t\t\t0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n+\t\t\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n+\t\t\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n+\t\t\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n+\t\t\t\t0xFF, 0xFA, 0x51, 0x86, 0x87, 0x83, 0xBF, 0x2F,\n+\t\t\t\t0x96, 0x6B, 0x7F, 0xCC, 0x01, 0x48, 0xF7, 0x09,\n+\t\t\t\t0xA5, 0xD0, 0x3B, 0xB5, 0xC9, 0xB8, 0x89, 0x9C,\n+\t\t\t\t0x47, 0xAE, 0xBB, 0x6F, 0xB7, 0x1E, 0x91, 0x38,\n+\t\t\t\t0x64, 0x09,\n+\t\t\t\t},\n+\t\t},\n+\t\t.p = {\n+\t\t\t.data = {\n+\t\t\t\t0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n+\t\t\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n+\t\t\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n+\t\t\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n+\t\t\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n+\t\t\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n+\t\t\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n+\t\t\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n+\t\t\t\t0xFF, 0xFF,\n+\t\t\t\t},\n+\t\t},\n+\t\t.a = {\n+\t\t\t.data = {\n+\t\t\t\t0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n+\t\t\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n+\t\t\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n+\t\t\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n+\t\t\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n+\t\t\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n+\t\t\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n+\t\t\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n+\t\t\t\t0xFF, 0xFC,\n+\t\t\t\t},\n+\t\t},\n+\t\t.b = {\n+\t\t\t.data = {\n+\t\t\t\t0x00, 0x51, 0x95, 0x3E, 0xB9, 0x61, 0x8E, 0x1C,\n+\t\t\t\t0x9A, 0x1F, 0x92, 0x9A, 0x21, 0xA0, 0xB6, 0x85,\n+\t\t\t\t0x40, 0xEE, 0xA2, 0xDA, 0x72, 0x5B, 0x99, 0xB3,\n+\t\t\t\t0x15, 0xF3, 0xB8, 0xB4, 0x89, 0x91, 0x8E, 0xF1,\n+\t\t\t\t0x09, 0xE1, 0x56, 0x19, 0x39, 0x51, 0xEC, 0x7E,\n+\t\t\t\t0x93, 0x7B, 0x16, 0x52, 0xC0, 0xBD, 0x3B, 0xB1,\n+\t\t\t\t0xBF, 0x07, 0x35, 0x73, 0xDF, 0x88, 0x3D, 0x2C,\n+\t\t\t\t0x34, 0xF1, 0xEF, 0x45, 0x1F, 0xD4, 0x6B, 0x50,\n+\t\t\t\t0x3F, 0x00,\n+\t\t\t\t},\n+\t\t},\n+\t\t.h = {\n+\t\t\t.data = {\n+\t\t\t\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n+\t\t\t\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n+\t\t\t\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n+\t\t\t\t0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n+\t\t\t\t0x00, 0x01,\n+\t\t\t\t},\n+\t\t},\n+\t}\n+};\n+\n+static int __rte_unused\n+pick_curve(struct rte_crypto_asym_xform *xform)\n+{\n+\tswitch (xform->ec.curve_id) {\n+\tcase RTE_CRYPTO_EC_GROUP_SECP256R1:\n+\t\treturn SECP256R1;\n+\tcase RTE_CRYPTO_EC_GROUP_SECP521R1:\n+\t\treturn SECP521R1;\n+\tdefault:\n+\t\treturn -1;\n+\t}\n+}\n+\n+#endif\n",
    "prefixes": [
        "2/2"
    ]
}