get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 40866,
    "url": "https://patches.dpdk.org/api/patches/40866/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1528476325-15585-6-git-send-email-anoob.joseph@caviumnetworks.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": "<1528476325-15585-6-git-send-email-anoob.joseph@caviumnetworks.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1528476325-15585-6-git-send-email-anoob.joseph@caviumnetworks.com",
    "date": "2018-06-08T16:45:14",
    "name": "[dpdk-dev,05/16] crypto/cpt/base: add sym crypto session init API for CPT",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "ab34f79153ee65c47061e8d9d6b44fcdfda58d8d",
    "submitter": {
        "id": 893,
        "url": "https://patches.dpdk.org/api/people/893/?format=api",
        "name": "Anoob Joseph",
        "email": "anoob.joseph@caviumnetworks.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/1528476325-15585-6-git-send-email-anoob.joseph@caviumnetworks.com/mbox/",
    "series": [
        {
            "id": 58,
            "url": "https://patches.dpdk.org/api/series/58/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=58",
            "date": "2018-06-08T16:45:09",
            "name": "Adding Cavium's crypto device(CPT) driver",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/58/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/40866/comments/",
    "check": "warning",
    "checks": "https://patches.dpdk.org/api/patches/40866/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 937A91BB15;\n\tFri,  8 Jun 2018 18:49:04 +0200 (CEST)",
            "from NAM04-SN1-obe.outbound.protection.outlook.com\n\t(mail-eopbgr700060.outbound.protection.outlook.com [40.107.70.60])\n\tby dpdk.org (Postfix) with ESMTP id CC87A5F51\n\tfor <dev@dpdk.org>; Fri,  8 Jun 2018 18:49:02 +0200 (CEST)",
            "from ajoseph83.caveonetworks.com.caveonetworks.com (115.113.156.2)\n\tby SN6PR07MB4911.namprd07.prod.outlook.com (2603:10b6:805:3c::29)\n\twith Microsoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.820.15;\n\tFri, 8 Jun 2018 16:48:57 +0000"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=ldTWjNoVL7TvTh5D4TY90xAllWKgl3P2AtEB0VejBX0=;\n\tb=LRfb12HJXbRInyonyHPyMFSff0SlafKPsNyh1KMg2FPxsI/mSnz8pz/S4YGvS8bF1052hwaHgFydJ8jGlJoheHYJ31eBvlv45HY0Km3HCH18vnC91MI8ZQ/3WuEKKtcgOPHUxUVYM1s6s5PkhDpqGfdnpqk5FdxzjNDIfESa6mo=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=Anoob.Joseph@cavium.com; ",
        "From": "Anoob Joseph <anoob.joseph@caviumnetworks.com>",
        "To": "Akhil Goyal <akhil.goyal@nxp.com>,\n\tPablo de Lara <pablo.de.lara.guarch@intel.com>,\n\tThomas Monjalon <thomas@monjalon.net>",
        "Cc": "Ankur Dwivedi <ankur.dwivedi@cavium.com>,\n\tJerin Jacob <jerin.jacob@caviumnetworks.com>,\n\tMurthy NSSR <Nidadavolu.Murthy@cavium.com>,\n\tNarayana Prasad <narayanaprasad.athreya@caviumnetworks.com>,\n\tNithin Dabilpuram <nithin.dabilpuram@cavium.com>,\n\tRagothaman Jayaraman <Ragothaman.Jayaraman@cavium.com>,\n\tSrisivasubramanian Srinivasan\n\t<Srisivasubramanian.Srinivasan@cavium.com>, dev@dpdk.org",
        "Date": "Fri,  8 Jun 2018 22:15:14 +0530",
        "Message-Id": "<1528476325-15585-6-git-send-email-anoob.joseph@caviumnetworks.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1528476325-15585-1-git-send-email-anoob.joseph@caviumnetworks.com>",
        "References": "<1528476325-15585-1-git-send-email-anoob.joseph@caviumnetworks.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[115.113.156.2]",
        "X-ClientProxiedBy": "BM1PR01CA0071.INDPRD01.PROD.OUTLOOK.COM\n\t(2603:1096:b00:1::11) To SN6PR07MB4911.namprd07.prod.outlook.com\n\t(2603:10b6:805:3c::29)",
        "X-MS-PublicTrafficType": "Email",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(7020095)(4652020)(5600026)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020);\n\tSRVR:SN6PR07MB4911; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; SN6PR07MB4911;\n\t3:MfLz9YIwKsbIiGJ0NbiT6tmOpSXFbatbgvdqRwGqouy7nqf8HL1N18ho3gXAWxCtfnsi71bCLw5FW3YJmv8nuszqxVFgzxjU5Rd65Qj08RHHHogLNQ3pieBAqknKNsGR7Kfp91OJOlnfhgWiEnBJ1g9UzB+KPnZPed0HYJECyXny+DP+vkyXz63C7KBWTwhWEibDPL/lb5OSCGfmPzPPxLb6IAEzmJhEVb3p2agyVxo8Iu0gARQxPS711CWINYZZ;\n\t25:8DHggaIU2KBJXPxf6/tjUjaqKy/seX0WCHe/US4JC1qRIEakfHu0jC6293hYVDe7qzUKkoMkEIvRc9tfb3oacPtUXDfggMz+qwxRm1HxC/cNda5nH0vvjNtrwh12uB/MUDymNm8QWWY5g4tmu8y1CrmWZwUUrRjs5KiZacy7elYgidVeBFzXoIVBUsOhU7FAADVKvZweVw9N3zhWiGlSmH5pckOcu7cSOel7lVBrQrq4jqKzHvMXr2i2d3YEWWt+tOyU8RzoBckFS+5LBVi7ZMphdAV0CiqZJ79raY0bhd7goHfwaW/xNZCEvyeSznYI7Un+asHjuQ8rRlgx9aGzsQ==;\n\t31:SQ6XYuy5ffyIyPRXh2xG4CZ0fUY/bd9f67orjpF0cWDFRRBs+dC8oDZpO/j0ofZgn56wvCk6BYB6i2TbtHfWUOx7omtkri4dj1jQDP1oc8/uqgo/YaK/gqSP4tWzdRoo7aPA6XGr9m3hqrG0x9B+qL3tZC0caaCBrT6Lra6/yPX4w6E/uDo5S/DSlvHeNNXV3Wj4ERHyK2LW9hyu8PD5l8AR9PUITfYEwIJabc2v5QM=",
            "1; SN6PR07MB4911;\n\t20:YulIAc3qkXt4B2o+8BkLLDWum12NssoDZFH7ldoo3TzN9BCytseoHyYwbd/Ltt1MowlXThzHNFugCZbvKKtte7Dmpk4NTKVHTRfCDn/yR6OCXC04LTuMLrgM1GfHxDsWeBrai4gFRWqQXYvYLyvZXJDrwhqJ/BD/Vdz4E7WLNKaJxKL69G6k0IVL8R5eixbFrYY8cpnztVbPcTIM3UK3Ekic/4J4J+h8GTAcbu10aNP2pSqW9YC3bKeyBZ7rKIXHiE7qv+uyH6jBg8yryVe5p9U8r3gtku+BLXf+dXnF7Loll3YG252DYZB76xq8msjE6M+8XbhdUCkVo1udWCLmLKfaBvpDedGtyx3gpi/xHzwCK6ZRZMgSsu3ADB5CVXXBLgDPpM0gvw9xxVHDU5aYHOhQKwAIeZkTJVe8W9u+/JrEArH/OqeQi6PulB3DzS5gZbumu0gM6Xmq4LtjFR4A/0ON0z+nRdd6sBka51Xkwy/JlNjub0Mi76/BkW66PVfOz8DDE8JoJi3SM21+KlEbQSq87Dn4R0F6asEjHoIZkHV0V/sfW16aP3mapZSQtq2mMs20/lXl40c1H+ND12R2XLxmhmJvBxstozh464jBjoE=;\n\t4:p3Bkb4Q/xTkv2iuOx6jjqA4NP5NdthIeyQarRfsZz9LDm2LPQS4A4sSTP/9vSlVcqWTx+8nPcm0+Oqe/gGT5cPu8s6VzEHv5VXeeC4SADw0fl4qfiAD3H0Qvi/8dsou0IDkfvJpwadTqrJAacx1yUK2iXTCDrDwwEMfClz3H+ffj01ZxD4vLizvYCGeJmXkDI+S9X2uNRahO665QdWPRgCWGtI3duqS1Y6svtC9JtiIV8JU98iNbz2ZZ09vKTrACBVkca2wOZqeEAtmp/TdDpQ==",
            "=?us-ascii?Q?1; SN6PR07MB4911;\n\t23:4dbpgOY8A/ueP8U2NCXnTIYRZWYFa+1UsSh2nt1y8?=\n\tPqOdYqZZ+z9/SsEP39H9wJQz3CrZ7OcNw+QkXWzVI/Yvt+RP928ssw6oZ4Eev+9YWNgxszXCnQqWOZmiefDwtFLaz7co/LRUNzOpPW3/k3eIZk+zDOtjO6Klm+hZbdmUCiHIonRsA35q0whAAGMGYVLU3/PXOwTJyWdlMUmmmwI65+kGbzAzG+RGOO2t2uUlqLt38J68CY2by5Wr3H+QcBuRA21pk3d6WuT0Wmz3v8Rbt2q8m1u//iUcuzcGNlARxydoXfue3ROMtDYErf3V4THuGiNCx6YB06b5gPnkZu3t+L1rv1xNhOaZD8NAORRtBHU/0d3WHL6zILGECr826+d8k4CEoGZTiX8u9emSZ/9VewxmxWFu/WVHRVLnDrpqAe1XR9FSs8FOkzpDtgP3+y5sSPjXIRLmWMjlGD3FA3/Y0bv04XCuOsZHJ9UMW9nUC9FSs6wUfmAQUfHabtZSPoAqcTRwYHCDckbBvudRNNKO39/wuPoxc5Qvq5b+3ItQhIa8uOZVe439H5BA0pulazgK/m0njcwxnVgs4bF0L5KNhGL2r5SpWzqNq+RPktOjJ00eyrZTwfGdPjkJaXUKDKWA05eRRJ4ahiB2L0Q4UHhs+O9kDp08S+o6pokmW8pew2cxxyZ3h6+i9ZerZsH9Ar6yQKI6fTa2dWCtcKHJreWgOX4oSrafiGheC1SVFq+xhZXpiwlPx6tgEoReDNQxQoflP31l5YtbGFi8z5K72o9IFbGGOfBU3R4t4FHfgjHQPYlXiy5eEDjFsSuE4Q6b0ZR2TDget5+V7eD+Ugy/KZV6D+HUMnl32HfJEFA+eqWfdRVAArAdobZPt68KnPFJ6+GacrRnOtrlMICo6s0KxSrc4SfIFonnxn1e/h+OdKy0T4MKYQm+jWsp/Tz2IxkNptVTAs/O2bvUg11dXwDwKLSOxQXKZnPxsoDMN1md78xfuH8yLajleoZpRbO/Bd8ZWFJUrt98BNkQA+eHQ7LnaHPX+zO9gTuQA0ibYOjEmNySfDhPkxflvJ3eOpvCvUSDOt3M3iZROpzsFtUFhTxNP+0NW6ubbGk5gt6KQcCa9XA780WfioZgTAnW62zzvOAJsXKw33g9v6TsRZKTQH5+jxhPZXzjJ00EEXtGQ2QLPRPURqGYvQSfC60219o8xHwg4oz+ixT5bWMbir54olz+5en+9WJL6LvtmlB50zJlx6w8HyaeMF0c0cpCnTdW1++fWkzW3YqZjyII16Q6q4+285PqJC233ujBWz+teRIp3ki6Os=",
            "1; SN6PR07MB4911;\n\t6:Q80P3jMoHMgMCCU/Yc0SaQ8xNh2XsjuPaBGTXXjn7WDXLtpHpqnODB6AZqq5QOwI6nWVvqR5t3SE9/Kcl8kM83lhwUp+jG+zxJv0vxSv5pYHlTWmrUp3wTWLjIck3x0yF8jFmy2pQm7DiR+Z9VMyyvMfy2f7xBgIhIffIeVuwN8d6zkf6MJJQC0bzlrDL6CwIRrDbBlToPSpYjGjS1h/PM+vohQRBesZwQE1FEQL+uVzMGreghKFre56gtvBEc1Czo9ejKLz+2VolgkgwtwnSqPfzwzH8aSAxiFoyEzQDsQkr3yp4XIhR4bVeLbZwO78BNu0Edt+g4nqlyxWiQXSbg3UzTKlCHqxzD5REJ5ka1UzGnJGjNARGHk5q0A15u0htLH+159hM/NFf7EtO+X9QKhOzM/NXWYB7tccRzj9eww4IY0LZUuJSuLJBMxjAvV5uV2xa0VRi5VxUH/xjuRcOw==;\n\t5:9qlCILD2A7VrlYCNeG62+qTIT4LjHIlJvVLnY45xBrwl6mAuW9j/o1vh5/P/DarvpjAX2JXkzoq4RHa1EegKmq/HrmDR0edu2Ztu3U1R2FhOIaL9yOX4H6f/yBc2McWD4vWFA65e5B97gNfBZ/ovbECZJRPgabvSO+ARgJRXTDQ=;\n\t24:hYeULtQS6r/vGnOFHysM/FRzy0/Qj1XcgvMOAIBVGqsCBXjV3KBE64UZoHjZ4IgLXFyKUdS2xzkthE10D4dwnBv355jktsxSxPnkE0ALQqw=",
            "1; SN6PR07MB4911;\n\t7:klE71pnF6bte4bjFYi/R8iA2gpTWhdtI+QDXcaMROyk7WL6MBUR+A4wA+osuQMCC7LaTSciV5znasIPs9Bz7mlbHOau9nBOR8S+lkFshefOfCl1LHGPUy+beBC9Uuw//8jUxg2tfDrLNkrwk9ZgOKRL/lpaimKOZBqAJd7cKuaTwYeh4DyRI4r09pJDCB92kkJ6qUv6NBcftaSJZ+okJCTCmCDjTy04T4ouIAzHhvc7x1l2HFBxynUcRk9ciY9Sh"
        ],
        "X-MS-TrafficTypeDiagnostic": "SN6PR07MB4911:",
        "X-Microsoft-Antispam-PRVS": "<SN6PR07MB4911044E0FFCD21ED32BABA1F87B0@SN6PR07MB4911.namprd07.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:;",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(93006095)(3002001)(3231254)(944501410)(52105095)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(20161123558120)(20161123564045)(6072148)(201708071742011)(7699016);\n\tSRVR:SN6PR07MB4911; BCL:0; PCL:0; RULEID:; SRVR:SN6PR07MB4911; ",
        "X-Forefront-PRVS": "06973FFAD3",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(376002)(396003)(346002)(39380400002)(366004)(39860400002)(189003)(199004)(26005)(52116002)(956004)(305945005)(8676002)(81156014)(50226002)(8936002)(81166006)(7736002)(68736007)(105586002)(106356001)(3846002)(6116002)(72206003)(478600001)(6486002)(97736004)(6506007)(16586007)(6512007)(53936002)(47776003)(486006)(25786009)(5660300001)(50466002)(48376002)(6666003)(4326008)(54906003)(76176011)(36756003)(110136005)(66066001)(8656006)(2906002)(316002)(55236004)(11346002)(16526019)(386003)(186003)(59450400001)(446003)(476003)(42882007)(44832011)(2616005)(51416003);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:SN6PR07MB4911;\n\tH:ajoseph83.caveonetworks.com.caveonetworks.com; FPR:; SPF:None;\n\tLANG:en; PTR:InfoNoRecords; MX:1; A:1; ",
        "Received-SPF": "None (protection.outlook.com: cavium.com does not designate\n\tpermitted sender hosts)",
        "X-Microsoft-Antispam-Message-Info": "dkXO8AE76qI+3G8t4oR4XyTiDj1qHYEcRYfvPSiSeBA1Od9IrnpMJeQUXEMhjMW5fPArnCeWFV0HbZzujJytiBuQCfCP7WDGw8i/UoYC5J09bYNJX0LNAkxTeJEn1zxo+jHFxYlNEO2YSU37tpidQsGC6M6OR+BR2GQY+4ZweSyB4AJKOC2VNKqgrKHccNfi",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-MS-Office365-Filtering-Correlation-Id": "74802a8b-7ef5-4637-5242-08d5cd5fbc85",
        "X-OriginatorOrg": "caviumnetworks.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "08 Jun 2018 16:48:57.4638\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "74802a8b-7ef5-4637-5242-08d5cd5fbc85",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "711e4ccf-2e9b-4bcf-a551-4094005b6194",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "SN6PR07MB4911",
        "Subject": "[dpdk-dev] [PATCH 05/16] crypto/cpt/base: add sym crypto session\n\tinit API for CPT",
        "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://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: Ankur Dwivedi <ankur.dwivedi@cavium.com>\n\nAdds symmetric crypto session init API dependent on hardware/microcode.\n\nSigned-off-by: Ankur Dwivedi <ankur.dwivedi@cavium.com>\nSigned-off-by: Murthy NSSR <Nidadavolu.Murthy@cavium.com>\nSigned-off-by: Nithin Dabilpuram <nithin.dabilpuram@cavium.com>\nSigned-off-by: Ragothaman Jayaraman <Ragothaman.Jayaraman@cavium.com>\nSigned-off-by: Srisivasubramanian Srinivasan <Srisivasubramanian.Srinivasan@cavium.com>\n---\n drivers/crypto/cpt/base/cpt_ops.c | 308 ++++++++++++++++++++++++++++++++++++++\n 1 file changed, 308 insertions(+)\n create mode 100644 drivers/crypto/cpt/base/cpt_ops.c",
    "diff": "diff --git a/drivers/crypto/cpt/base/cpt_ops.c b/drivers/crypto/cpt/base/cpt_ops.c\nnew file mode 100644\nindex 0000000..e340006\n--- /dev/null\n+++ b/drivers/crypto/cpt/base/cpt_ops.c\n@@ -0,0 +1,308 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright(c) 2017 Cavium, Inc\n+ */\n+\n+#include \"cpt_request_mgr.h\"\n+\n+#define __hot __attribute__((hot))\n+\n+#define FC_GEN\t\t0x1\n+#define ZUC_SNOW3G\t0x2\n+#define KASUMI\t\t0x3\n+#define HASH_HMAC\t0x4\n+\n+struct cpt_ctx {\n+\t/* Below fields are accessed by sw */\n+\tuint64_t enc_cipher\t:8;\n+\tuint64_t hash_type\t:8;\n+\tuint64_t mac_len\t:8;\n+\tuint64_t auth_key_len\t:8;\n+\tuint64_t fc_type\t:4;\n+\tuint64_t hmac\t\t:1;\n+\tuint64_t zsk_flags\t:3;\n+\tuint64_t k_ecb\t\t:1;\n+\tuint64_t snow3g\t\t:1; /* Set if it is snow3g and not ZUC */\n+\tuint64_t rsvd\t\t:22;\n+\t/* Below fields are accessed by hardware */\n+\tunion {\n+\t\tmc_fc_context_t fctx;\n+\t\tmc_zuc_snow3g_ctx_t zs_ctx;\n+\t\tmc_kasumi_ctx_t k_ctx;\n+\t};\n+\tuint8_t  auth_key[64];\n+};\n+\n+static uint8_t zuc_d[32] = {\n+\t0x44, 0xD7, 0x26, 0xBC, 0x62, 0x6B, 0x13, 0x5E,\n+\t0x57, 0x89, 0x35, 0xE2, 0x71, 0x35, 0x09, 0xAF,\n+\t0x4D, 0x78, 0x2F, 0x13, 0x6B, 0xC4, 0x1A, 0xF1,\n+\t0x5E, 0x26, 0x3C, 0x4D, 0x78, 0x9A, 0x47, 0xAC\n+};\n+\n+static void gen_key_snow3g(uint8_t *ck, uint32_t *keyx)\n+{\n+\tint i, base;\n+\n+\tfor (i = 0; i < 4; i++) {\n+\t\tbase = 4 * i;\n+\t\tkeyx[3 - i] = (ck[base] << 24) | (ck[base + 1] << 16) |\n+\t\t\t(ck[base + 2] << 8) | (ck[base + 3]);\n+\t\tkeyx[3 - i] = htobe32(keyx[3 - i]);\n+\t}\n+}\n+\n+#define MAX_IV_LEN 16\n+\n+int cpt_fc_get_op_meta_len(void)\n+{\n+\tuint32_t len = 0;\n+\n+\tlen += sizeof(cpt_request_info_t);\n+\tlen += OFFSET_CONTROL_BYTES + MAX_IV_LEN;\n+\tlen += ROUNDUP8(SG_LIST_HDR_SIZE +\n+\t\t\t(ROUNDUP4(MAX_SG_IN_OUT_CNT) >> 2) * SG_ENTRY_SIZE);\n+\tlen += 2 * COMPLETION_CODE_SIZE;\n+\tlen += 2 * sizeof(cpt_res_s_t);\n+\treturn len;\n+}\n+\n+/* Provides meta length required when it is\n+ * direct mode i.e single buf inplace\n+ */\n+int32_t cpt_fc_get_op_sb_meta_len(void)\n+{\n+\tuint32_t len = 0;\n+\n+\t/* Request structure */\n+\tlen = sizeof(cpt_request_info_t);\n+\t/* CPT HW result structure plus extra as it is aligned */\n+\tlen += 2*sizeof(cpt_res_s_t);\n+\n+\treturn len;\n+}\n+\n+int32_t cpt_fc_get_ctx_len(void)\n+{\n+\treturn sizeof(struct cpt_ctx);\n+}\n+\n+int\n+cpt_fc_ciph_set_key(cpt_instance_t *instance,\n+\t\t    void *ctx, cipher_type_t type, uint8_t *key,\n+\t\t    uint16_t key_len, uint8_t *salt)\n+{\n+\tstruct cpt_ctx *cpt_ctx = ctx;\n+\tmc_fc_context_t *fctx = &cpt_ctx->fctx;\n+\tmc_aes_type_t aes_key_type = 0;\n+\tuint64_t *ctrl_flags;\n+\n+\t(void) instance;\n+\n+\tif (!type) {\n+\t\t/* to support passthrough case */\n+\n+\t\tcpt_ctx->fc_type = FC_GEN;\n+\t\tctrl_flags = (uint64_t *)&(fctx->enc.enc_ctrl.flags);\n+\t\tcpt_ctx->enc_cipher = 0;\n+\n+\t\t*ctrl_flags = be64toh(*ctrl_flags);\n+\t\tP_ENC_CTRL(fctx).enc_cipher = 0;\n+\t\t*ctrl_flags = htobe64(*ctrl_flags);\n+\n+\t\treturn 0;\n+\t}\n+\n+\tif ((type >= ZUC_EEA3) && (type <= KASUMI_F8_ECB)) {\n+\t\tuint32_t keyx[4];\n+\n+\t\tif (key_len != 16)\n+\t\t\treturn -1;\n+\n+\t\t/* No support for AEAD yet */\n+\t\tif (cpt_ctx->hash_type)\n+\t\t\treturn -1;\n+\n+\t\t/* For ZUC/SNOW3G/Kasumi */\n+\t\tswitch (type) {\n+\t\tcase SNOW3G_UEA2:\n+\t\t\tcpt_ctx->snow3g = 1;\n+\t\t\tgen_key_snow3g(key, keyx);\n+\t\t\tmemcpy(cpt_ctx->zs_ctx.ci_key, keyx, key_len);\n+\t\t\tcpt_ctx->fc_type = ZUC_SNOW3G;\n+\t\t\tcpt_ctx->zsk_flags = 0;\n+\t\t\tbreak;\n+\t\tcase ZUC_EEA3:\n+\t\t\tcpt_ctx->snow3g = 0;\n+\t\t\tmemcpy(cpt_ctx->zs_ctx.ci_key, key, key_len);\n+\t\t\tmemcpy(cpt_ctx->zs_ctx.zuc_const, zuc_d, 32);\n+\t\t\tcpt_ctx->fc_type = ZUC_SNOW3G;\n+\t\t\tcpt_ctx->zsk_flags = 0;\n+\t\t\tbreak;\n+\t\tcase KASUMI_F8_ECB:\n+\t\t\t/* Kasumi ECB mode */\n+\t\t\tcpt_ctx->k_ecb = 1;\n+\t\t\tmemcpy(cpt_ctx->k_ctx.ci_key, key, key_len);\n+\t\t\tcpt_ctx->zsk_flags = 0;\n+\t\t\tcpt_ctx->fc_type = KASUMI;\n+\t\t\tbreak;\n+\t\tcase KASUMI_F8_CBC:\n+\t\t\tmemcpy(cpt_ctx->k_ctx.ci_key, key, key_len);\n+\t\t\tcpt_ctx->zsk_flags = 0;\n+\t\t\tcpt_ctx->fc_type = KASUMI;\n+\t\t\tbreak;\n+\t\tdefault:\n+\t\t\treturn -1;\n+\t\t}\n+\t\tcpt_ctx->enc_cipher = type;\n+\t\treturn 0;\n+\t}\n+\n+\tfctx = &cpt_ctx->fctx;\n+\t/* Even though iv source is from dptr,\n+\t * aes_gcm salt is taken from ctx\n+\t */\n+\tif (salt && (type == AES_GCM)) {\n+\t\tmemcpy(fctx->enc.encr_iv, salt, 4);\n+\t\t/* Assuming it was just salt update\n+\t\t * and nothing else\n+\t\t */\n+\t\tif (!key)\n+\t\t\treturn 0;\n+\t}\n+\n+\tcpt_ctx->fc_type = FC_GEN;\n+\tctrl_flags = (uint64_t *)&(fctx->enc.enc_ctrl.flags);\n+\t*ctrl_flags = be64toh(*ctrl_flags);\n+\n+\tcpt_ctx->enc_cipher = type;\n+\t/* For GMAC auth, cipher must be NULL */\n+\tif (cpt_ctx->hash_type != GMAC_TYPE)\n+\t\tP_ENC_CTRL(fctx).enc_cipher = type;\n+\n+\tif (type == AES_XTS)\n+\t\tkey_len = key_len / 2;\n+\n+\t/* key len only for AES */\n+\tif ((type != DES3_CBC) &&\n+\t    (type != DES3_ECB)) {\n+\t\tswitch (key_len) {\n+\t\tcase BYTE_16:\n+\t\t\taes_key_type = AES_128_BIT;\n+\t\t\tbreak;\n+\t\tcase BYTE_24:\n+\t\t\taes_key_type = AES_192_BIT;\n+\t\t\tif (type == AES_XTS) {\n+\t\t\t\tPMD_DRV_LOG(ERR, \"Invalid AES key len for\"\n+\t\t\t\t\t    \" XTS\\n\");\n+\t\t\t\treturn -1;\n+\t\t\t}\n+\t\t\tbreak;\n+\t\tcase BYTE_32:\n+\t\t\taes_key_type = AES_256_BIT;\n+\t\t\tbreak;\n+\t\tdefault:\n+\t\t\tPMD_DRV_LOG(ERR, \"Invalid AES key len\\n\");\n+\t\t\treturn -1;\n+\t\t}\n+\n+\t\tP_ENC_CTRL(fctx).aes_key = aes_key_type;\n+\t}\n+\t/*\n+\t * We need to always say iv is from DPTR as user can\n+\t * sometimes override IV per operation\n+\t */\n+\tP_ENC_CTRL(fctx).iv_source = FROM_DPTR;\n+\n+\tmemcpy(fctx->enc.encr_key, key, key_len);\n+\tif (type == AES_XTS) {\n+\t\t/* Copy key2 for XTS into ipad */\n+\t\tmemset(fctx->hmac.ipad, 0, sizeof(fctx->hmac.ipad));\n+\t\tmemcpy(fctx->hmac.ipad, &key[key_len], key_len);\n+\t}\n+\n+\t*ctrl_flags = htobe64(*ctrl_flags);\n+\n+\treturn 0;\n+}\n+\n+int\n+cpt_fc_auth_set_key(cpt_instance_t *instance,\n+\t\t    void *ctx, auth_type_t type, uint8_t *key,\n+\t\t    uint16_t key_len, uint16_t mac_len)\n+{\n+\tstruct cpt_ctx *cpt_ctx = ctx;\n+\tmc_fc_context_t *fctx = &cpt_ctx->fctx;\n+\tuint64_t *ctrl_flags = NULL;\n+\n+\t(void) instance;\n+\n+\tif ((type >= ZUC_EIA3) && (type <= KASUMI_F9_ECB)) {\n+\t\tuint32_t keyx[4];\n+\n+\t\tif (key_len != 16)\n+\t\t\treturn -1;\n+\t\t/* No support for AEAD yet */\n+\t\tif (cpt_ctx->enc_cipher)\n+\t\t\treturn -1;\n+\t\t/* For ZUC/SNOW3G/Kasumi */\n+\t\tswitch (type) {\n+\t\tcase SNOW3G_UIA2:\n+\t\t\tcpt_ctx->snow3g = 1;\n+\t\t\tgen_key_snow3g(key, keyx);\n+\t\t\tmemcpy(cpt_ctx->zs_ctx.ci_key, keyx, key_len);\n+\t\t\tcpt_ctx->fc_type = ZUC_SNOW3G;\n+\t\t\tcpt_ctx->zsk_flags = 0x1;\n+\t\t\tbreak;\n+\t\tcase ZUC_EIA3:\n+\t\t\tcpt_ctx->snow3g = 0;\n+\t\t\tmemcpy(cpt_ctx->zs_ctx.ci_key, key, key_len);\n+\t\t\tmemcpy(cpt_ctx->zs_ctx.zuc_const, zuc_d, 32);\n+\t\t\tcpt_ctx->fc_type = ZUC_SNOW3G;\n+\t\t\tcpt_ctx->zsk_flags = 0x1;\n+\t\t\tbreak;\n+\t\tcase KASUMI_F9_ECB:\n+\t\t\t/* Kasumi ECB mode */\n+\t\t\tcpt_ctx->k_ecb = 1;\n+\t\t\tmemcpy(cpt_ctx->k_ctx.ci_key, key, key_len);\n+\t\t\tcpt_ctx->fc_type = KASUMI;\n+\t\t\tcpt_ctx->zsk_flags = 0x1;\n+\t\t\tbreak;\n+\t\tcase KASUMI_F9_CBC:\n+\t\t\tmemcpy(cpt_ctx->k_ctx.ci_key, key, key_len);\n+\t\t\tcpt_ctx->fc_type = KASUMI;\n+\t\t\tcpt_ctx->zsk_flags = 0x1;\n+\t\t\tbreak;\n+\t\tdefault:\n+\t\t\treturn -1;\n+\t\t}\n+\t\tcpt_ctx->mac_len = 4;\n+\t\tcpt_ctx->hash_type = type;\n+\t\treturn 0;\n+\t}\n+\n+\tif (!cpt_ctx->fc_type || !cpt_ctx->enc_cipher)\n+\t\tcpt_ctx->fc_type = HASH_HMAC;\n+\n+\tctrl_flags = (uint64_t *)&fctx->enc.enc_ctrl.flags;\n+\t*ctrl_flags = be64toh(*ctrl_flags);\n+\n+\t/* For GMAC auth, cipher must be NULL */\n+\tif (type == GMAC_TYPE)\n+\t\tP_ENC_CTRL(fctx).enc_cipher = 0;\n+\n+\tP_ENC_CTRL(fctx).hash_type = cpt_ctx->hash_type = type;\n+\tP_ENC_CTRL(fctx).mac_len = cpt_ctx->mac_len = mac_len;\n+\n+\tif (key_len) {\n+\t\tcpt_ctx->hmac = 1;\n+\t\tmemset(cpt_ctx->auth_key, 0, sizeof(cpt_ctx->auth_key));\n+\t\tmemcpy(cpt_ctx->auth_key, key, key_len);\n+\t\tcpt_ctx->auth_key_len = key_len;\n+\t\tmemset(fctx->hmac.ipad, 0, sizeof(fctx->hmac.ipad));\n+\t\tmemset(fctx->hmac.opad, 0, sizeof(fctx->hmac.opad));\n+\t\tmemcpy(fctx->hmac.opad, key, key_len);\n+\t\tP_ENC_CTRL(fctx).auth_input_type = 1;\n+\t}\n+\t*ctrl_flags = htobe64(*ctrl_flags);\n+\treturn 0;\n+}\n",
    "prefixes": [
        "dpdk-dev",
        "05/16"
    ]
}