get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 42158,
    "url": "http://patches.dpdk.org/api/patches/42158/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1530631466-26427-2-git-send-email-shally.verma@caviumnetworks.com/",
    "project": {
        "id": 1,
        "url": "http://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": "<1530631466-26427-2-git-send-email-shally.verma@caviumnetworks.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1530631466-26427-2-git-send-email-shally.verma@caviumnetworks.com",
    "date": "2018-07-03T15:24:23",
    "name": "[v4,1/4] lib/cryptodev: add asymmetric algos in cryptodev",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "a47494bccabe97d95089112b8424817815bb9e7f",
    "submitter": {
        "id": 960,
        "url": "http://patches.dpdk.org/api/people/960/?format=api",
        "name": "Shally Verma",
        "email": "shally.verma@caviumnetworks.com"
    },
    "delegate": {
        "id": 22,
        "url": "http://patches.dpdk.org/api/users/22/?format=api",
        "username": "pdelarag",
        "first_name": "Pablo",
        "last_name": "de Lara Guarch",
        "email": "pablo.de.lara.guarch@intel.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1530631466-26427-2-git-send-email-shally.verma@caviumnetworks.com/mbox/",
    "series": [
        {
            "id": 375,
            "url": "http://patches.dpdk.org/api/series/375/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=375",
            "date": "2018-07-03T15:24:22",
            "name": "crypto: add asym crypto support",
            "version": 4,
            "mbox": "http://patches.dpdk.org/series/375/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/42158/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/42158/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 C7F8F1BF51;\n\tTue,  3 Jul 2018 17:25:20 +0200 (CEST)",
            "from NAM02-SN1-obe.outbound.protection.outlook.com\n\t(mail-sn1nam02on0040.outbound.protection.outlook.com [104.47.36.40])\n\tby dpdk.org (Postfix) with ESMTP id 254831BF4C\n\tfor <dev@dpdk.org>; Tue,  3 Jul 2018 17:25:19 +0200 (CEST)",
            "from hyd1sverma-dt.caveonetworks.com (115.113.156.2) by\n\tDM5PR0701MB3640.namprd07.prod.outlook.com (2603:10b6:4:7e::12) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n\t15.20.906.24; Tue, 3 Jul 2018 15:25:15 +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=G1O6MRPBDcY1eCBuXiC7C0R8CBPI7AhaPFD5N8QCQYI=;\n\tb=eJevX0yrLv6/e84rq4q2rry4zNwRonjDGwyyfsFVzn3nh0AJftcuszePO8Bs4DlxGMqBaMi9891y11Xi9ro1IVGiS2mVgHp2H2H8FkSoJdLGrlvAKzG7VucWe7cS3XnBwDh2DaTsNL1wnEW5PsOB8oqsNQ+JvOBKDLofrA+oKAU=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=Shally.Verma@cavium.com; ",
        "From": "Shally Verma <shally.verma@caviumnetworks.com>",
        "To": "pablo.de.lara.guarch@intel.com",
        "Cc": "dev@dpdk.org, pathreya@caviumnetworks.com, nmurthy@caviumnetworks.com,\n\tSunila Sahu <sunila.sahu@caviumnetworks.com>,\n\tAshish Gupta <ashish.gupta@caviumnetworks.com>,\n\tUmesh Kartha <umesh.kartha@caviumnetworks.com>",
        "Date": "Tue,  3 Jul 2018 20:54:23 +0530",
        "Message-Id": "<1530631466-26427-2-git-send-email-shally.verma@caviumnetworks.com>",
        "X-Mailer": "git-send-email 1.9.1",
        "In-Reply-To": "<1530631466-26427-1-git-send-email-shally.verma@caviumnetworks.com>",
        "References": "<1530631466-26427-1-git-send-email-shally.verma@caviumnetworks.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[115.113.156.2]",
        "X-ClientProxiedBy": "PN1PR0101CA0014.INDPRD01.PROD.OUTLOOK.COM\n\t(2603:1096:c00:e::24) To DM5PR0701MB3640.namprd07.prod.outlook.com\n\t(2603:10b6:4:7e::12)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "f33232fe-e36f-4265-1d95-08d5e0f92eb2",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(7020095)(4652040)(8989117)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(8990107)(5600053)(711020)(2017052603328)(7153060)(7193020);\n\tSRVR:DM5PR0701MB3640; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; DM5PR0701MB3640;\n\t3:EEv/2GFygDwBe9B2J1EySzwlm/mYOWrkYi84haLfYYUHmapTjGb3WbdPwT8OHPcBWZt6AtSfHyUjMsSovjCUnIiLJPF4H4u779kDuBqGPEfmFpBSxGBY8ztWmSv6r8tgwTKrEEM/2FuQS521qA8Nduik8SFv26P29njLQH0sTN9PlqZgmNHeS841l+CDtKOGjtXV8nGgrfC/I35qzfnKRPjMHWcbnP/tiVw6cVa2D+HsZYRrd/nCUpU9oSsoX7h/;\n\t25:jWtQgq0BOiygSnXzaDNOjmXtlW+B7KbbVJLH8XyUKqCCsKF71I8Vr/Br5zVbm/KlfddThroUkNlp0XVGaHv7ik/lEABXIvqkNZSYy7uPJJGleHXX5ZYmP3jBBzR1Kg4BDN+n2a9E7mZWJMFYM4UVsrtofmOS0A85gu220wNihXHVXNGz5/9sT8PFzgb8w6nT59i9mU+BieRFoS+VBaxxcwca3XPN6yHgmZrH08WawG4uDVJMlSQdVirA49kFK2LADoCGOtK5oJIlZOSiKuReMe5s4NMWYTWF68NZF/iZpsFHOZya8s3e9FwqfnUe5LWeV/VSpWjHthXdTpd2acyurw==;\n\t31:d6iFi+e+RiTYTjNaVQlzCjYDoswZf/EIHfuWgGddARTI2TYNUXeh8by32fZys+1Itmu+yguWmh5pZ+QHHGBSE9uRU5o+vXqCwcA+pD5CgR1GAGL1Bvyyqvt3SrDsSAntw8sFt+nS6DiJR3RT24wu/iSO8LRswwhDo+1OPsIQlyn1Amcyq+c1N4wwP6xdZtVjopgGG+7pz4W5QnxO03120Hd8RhPnum1PLvldrP7qXBc=",
            "1; DM5PR0701MB3640;\n\t20:1sGNBLKtuTXtfZ9qU+5YekRW38xd9mX/m7y5zGMuqUGDJl12WerjjjbPsKv1btjhIp/yQJsFqFz4Cj8xZm40xddvHHz87JPnnzZJvaA6F5OJxVQ2DNhCSnDhtExoRbtjFCRdO7Kn67verQ0JV3eMV03Bh70QmH0/BULFiBEfSQ3QTgFsH+viYV9qcaEQ71IqJVJEupTDtRBvGWoIsYajAy5m+0lXgqEwEZ5huK5+nlAc6KgSS10FPLpPvRy8PV2uHP5VnW904AKxvLG0L9TYGeAL3g9jPp5YBERYhXjCwyD0YEPBr5/q9KIl69buGU9miJzshIf6cOXRlAx8LOGK3yuB+fc1NJWsaYOyOG3GNMMHOsMnDDGycJgRVqiNn2qFdSvpBV7X3IV1vpN/ahygl7RoKiL/F7bBOV93xN7kvXNxt/J+AOD7vj8oZ96B+urNm2KAFxkgESb6Js32rfKRRQqLBtM6pZcCDLSJ/1u2lEXlaEw6WomYcH0P5GW7kHYgGDSdWXVGG5rqdx6j/iYNz6jPWEeLLgdvDhEbsWqHJB0GJanx4cWiJPIgktj2zWqCHEJl5p0eYjn5Wbe7p0M7blIxeloypTgoYFn82amB6sA=;\n\t4:xwYV2ER77eaF/9v4S+BzCqiHnUInZUlEDjl/wZhE27oli2rfFosD1XP8kxdNZbaimbzUQG8X0IkdtKjVfnbAMURibs8Hc0UHIrgOHJ8uKAip7ipyKyZMVQwPsLRdEavb6OGeBKV4WccJU1PNqnbuFojfcvQF2B9RTbxuvT1FHvkwaY32HSmQH9a2cj8w2HeWVE/2cVtp3PY5v6SvQw9v49ljdDS85i/otO8UjAj1eJHze2KLHRBifLvR4WtYepARYdtOQRjUYt+Z7+8BFNcrjQ==",
            "=?us-ascii?Q?1; DM5PR0701MB3640;\n\t23:41fqeIx47kx+r+3SfteOXgcjbzR0JMSfN5aAo1x?=\n\tiy6rYaocyhdTLHf060x5S6zKMylRUkqqn8uFf7HZhs0xf13EGkp9hv8h4S9lZM8P4+Mjx4A+Rnno4s8CPzgNaa60v0KunvoTFupQHDQKLRex1D6QTWjOj55qV6S+Dn4GCe9mm3T1tfHVtfEN73hdmkostQT5fhwyKA8wozbOAJ+eN46ZZsgOma1FANErl/XZvHWzTMozWCX2llG57s/mWftO+8cLzj0I5ZljI5rGkDEsDxKDb2k5RXVyuPcGI+C5iPs/19XoqAY3yNxeG2R2lyVQK042mROg5VbHq9DtjHMSCA1MM/T8+covecrdvFjztQadE71dNn7Byxn5oxwfwKXOEY417oGc2gDMFy4YloP/jDx8NVAeVeNnvP1h5eoqQops1yrsdCEqBHcK1hecLkF+juMi8SxW/o7DVB/YXsrdo8axxhVtFV4iDkdbGKGiA05G9fw7oSQwm/1+Z52kWiwLVIoHK7Zq+1Nl2yjmRzXrqtaPu6t+f6pCzf3EaFb3ZX2jP+FSGG4nqGTLMY8DrKgfilPETqySD7ie7O5iyozKYxlSQqS8EQowl7W6sjfVAPHYIm/IxdNuUP0T2v6tdKtg8rykAh0qzfzvmZG1KTg7Xpoh8jYs2D+ScL8Th9x3BvRbFuQGUsYE1lA+syJ+yonhOvJqu2OUm6KJF/kjHY22RFwxDnIMU5mcuqe5M8Aw8vJi2aCpSvIK2sQRiFDMsYpPRW4+QkilSw+tq1DHjzrAV+ZWNGH9phZyaS4oIdCraxSKI95WsgNdENKXbx5P+25v2Ihu7FCH1bdMBLR+7zJIqUlxUWVx+uqTVJ8YDpdi29lGfr8V3GKjLf4DckUQM7k+W3YYxw3LS3t56eaToXzZ981ed/sOALxwlxpmq3QUcSlituAfv+Jgzx4QX9/VE7bqGB8afW3hRUlvmhuVL08RWI4Nvt8bH5SRKnvX4g5yo7s/70VqkwI0s3RAShHZ3C2HJvC1cF6hNuEfmtL63jBFkhG+1VzHpvh/hDxrYvuUgdViYqAHFq1GBV9GR6OIP/b9UM378zWmYO931gmNaag5v1mJKWShyeSPeUdotjQxiSMI3rORH/R68aiwX4AIgZTkce9X2k9FtKhNwwLFikKOXh0/N1n7BTWMEaKEUGAfbjV9CNwZoHUQNaBP3eddzkCiL6aHmEV86AyaYpBPg1OtYWXh8e3dlJXuJBoAfVdNWTMyvGSbbLO350iU+V2G5zgHQ6K0WsTWGR9TJvG1iO6Oqx9jv2otf9Xy3qp0WHvB9b2MX9pTdp43njGbHkjK0pWHLO1fp4UiWdnyVhDp+EdeEkSxH36PqIkNpWVRTEzNyXwwOYO6p22Xb7tsJMT2aBmdE",
            "1; DM5PR0701MB3640;\n\t6:ct54ntAP4Ju70S/sNUZZBLHOJBrOWX27KKJ/Di5OvSGqa/ZArmGulcJnX6ESOWQGA3p4/4vFHUZPQ0Guoy71QmUE0X5V0noZjAru0RwGKw/56rrhrzL5eKgZVlsIubzSZO4XwDGI7/9iU6TlljZ9tQL2r6H2L8/YwCAmJqFvftdQBl3CH67tOym88f46fMYv96ILWu4kbdu934+Skezc3Kq5OEIh37hyR/3W0IUQZhC6f+Wy29LQvzRJa9QffpVoyiwu3Qn5QwDxnClUrIbdBvx2GCkjWeKXO4VyMoFnek4JCd1lnJ8YA29+Mdi1SDOPddMuPyF7QdOzMrkRmJ35Q7YiPsLVukpR/oUTqLcAAFwES1DHIDv3h7qi38th5QNT+TuTZV6+DIWIAJcus93KutJGTNGxq5sNW9mzmERhpXu1CrOnX4YqvAaUtYqdd6eOQfv70ICXyFl14Mf/Z7knIA==;\n\t5:dKPx+qCQYoFBjvrSFGZgeryr2A0OEsRaQyfem0KRBOSYH/KqorsSL27s+EbtlyyFo3ue+Hf1eWJ9zznTF9oRAkFFDZn0Hm7Z3Z9i0cP/LnFos0q2UUGYRZvTxuLl+pCtvsGAfmsTn1AXVSdzl3N/yNbDfU5/SMcZzgPWR5S25PE=;\n\t24:1hLTnQIKljqRcZXUSyt7hJi0lctyKPmTXz3f190qnAvulhnKW2zIey1Mr/i+unLk5XUL6swT3E2nUo88V5omAr+FTL8vfshKy6B60i5WJrc=",
            "1; DM5PR0701MB3640;\n\t7:tOuXDeNLzKVeHr4QiYkZD32ImItnLh8r8/lhKSmnnXYZrXAwljUUl33ztBojZSwLwdBoUg1X3tkLeGJvl5HXkh5wLzX1vH81uIS1quq5narNu1Dn4LMO1WseTOtrCx+l/Q15riJavTEiL8+zhj+KOzrzTbSMqEts1Dn0TRN/G9wEzf/M900YMnhnZRflL6+irXWGJlAl1nfRY8R1tHsGyE2LoujjN8QjlQLRbbjyvQ+KQESYV29JSj3D8+BM42UW"
        ],
        "X-MS-TrafficTypeDiagnostic": "DM5PR0701MB3640:",
        "X-Microsoft-Antispam-PRVS": "<DM5PR0701MB3640CA608495DCC5ED22FBE7F0420@DM5PR0701MB3640.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)(5005006)(8121501046)(93006095)(10201501046)(3231254)(944501410)(52105095)(3002001)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(20161123558120)(20161123564045)(6072148)(201708071742011)(7699016);\n\tSRVR:DM5PR0701MB3640; BCL:0; PCL:0; RULEID:; SRVR:DM5PR0701MB3640; ",
        "X-Forefront-PRVS": "0722981D2A",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(136003)(346002)(376002)(39860400002)(396003)(366004)(199004)(189003)(50226002)(53936002)(55236004)(316002)(6506007)(107886003)(54906003)(42882007)(305945005)(386003)(68736007)(51416003)(7736002)(4326008)(72206003)(8676002)(6486002)(478600001)(25786009)(81156014)(81166006)(76176011)(2361001)(6512007)(97736004)(69596002)(6116002)(16526019)(3846002)(186003)(2351001)(44832011)(5660300001)(6666003)(6916009)(53416004)(8936002)(66066001)(47776003)(476003)(106356001)(16586007)(956004)(2616005)(11346002)(105586002)(2906002)(52116002)(446003)(50466002)(14444005)(26005)(48376002)(36756003)(486006)(473944003);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR0701MB3640;\n\tH:hyd1sverma-dt.caveonetworks.com; FPR:; SPF:None; LANG:en;\n\tPTR:InfoNoRecords; A:1; MX:1; ",
        "Received-SPF": "None (protection.outlook.com: cavium.com does not designate\n\tpermitted sender hosts)",
        "X-Microsoft-Antispam-Message-Info": "cRdnxwf7UBiogmNJvmfiDXZ0LzHIcAKKK3YdniFOBgwKj4ICgbDeovoi+PVzVXw8VPZFLb7w0vMkNwzOXIqoAz+p6TD4I+vZy+FiyB6QPm7q0iowJ7hos65iE/t4uVxM3lusJ259Zb+TYJ69iytezlMJBR3GBnto+xYSXYz6iQMdVh2zVu3yYGJDibDDjONEDyAY2l0OYKn8XTRwFxabBCymKhifKQRxFHpxPAjhTQRtLRid5Hl8tIvo3xk2iWssXwUi3SVsuGj4/uRBqSHXcyE8arNke9Vhm2XJ7pfmEoT0gyzSKcg6Y4BM4RyoEl+xsnYEiTEZKWcR7V/CzogMSXv5VsZUllQCgxJ7DNrWais=",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "caviumnetworks.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "03 Jul 2018 15:25:15.3449\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "f33232fe-e36f-4265-1d95-08d5e0f92eb2",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "711e4ccf-2e9b-4bcf-a551-4094005b6194",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DM5PR0701MB3640",
        "Subject": "[dpdk-dev] [PATCH v4 1/4] lib/cryptodev: add asymmetric algos in\n\tcryptodev",
        "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": "Add rte_crypto_asym.h with supported xfrms\nand associated op structures and APIs\n\nAPI currently supports:\n- RSA Encrypt, Decrypt, Sign and Verify\n- Modular Exponentiation and Inversion\n- DSA Sign and Verify\n- Deffie-hellman private key exchange\n- Deffie-hellman public key exchange\n- Deffie-hellman shared secret compute\n- Deffie-hellman public/private key pair generation\nusing xform chain\n\nSigned-off-by: Shally Verma <shally.verma@caviumnetworks.com>\nSigned-off-by: Sunila Sahu <sunila.sahu@caviumnetworks.com>\nSigned-off-by: Ashish Gupta <ashish.gupta@caviumnetworks.com>\nSigned-off-by: Umesh Kartha <umesh.kartha@caviumnetworks.com>\n---\n lib/librte_cryptodev/Makefile          |   1 +\n lib/librte_cryptodev/meson.build       |   3 +-\n lib/librte_cryptodev/rte_crypto_asym.h | 496 +++++++++++++++++++++++++++++++++\n 3 files changed, 499 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/lib/librte_cryptodev/Makefile b/lib/librte_cryptodev/Makefile\nindex bba8dee..c114888 100644\n--- a/lib/librte_cryptodev/Makefile\n+++ b/lib/librte_cryptodev/Makefile\n@@ -23,6 +23,7 @@ SYMLINK-y-include += rte_crypto.h\n SYMLINK-y-include += rte_crypto_sym.h\n SYMLINK-y-include += rte_cryptodev.h\n SYMLINK-y-include += rte_cryptodev_pmd.h\n+SYMLINK-y-include += rte_crypto_asym.h\n \n # versioning export map\n EXPORT_MAP := rte_cryptodev_version.map\ndiff --git a/lib/librte_cryptodev/meson.build b/lib/librte_cryptodev/meson.build\nindex bd5fed8..295f509 100644\n--- a/lib/librte_cryptodev/meson.build\n+++ b/lib/librte_cryptodev/meson.build\n@@ -6,5 +6,6 @@ sources = files('rte_cryptodev.c', 'rte_cryptodev_pmd.c')\n headers = files('rte_cryptodev.h',\n \t'rte_cryptodev_pmd.h',\n \t'rte_crypto.h',\n-\t'rte_crypto_sym.h')\n+\t'rte_crypto_sym.h',\n+\t'rte_crypto_asym.h')\n deps += ['kvargs', 'mbuf']\ndiff --git a/lib/librte_cryptodev/rte_crypto_asym.h b/lib/librte_cryptodev/rte_crypto_asym.h\nnew file mode 100644\nindex 0000000..7f88b57\n--- /dev/null\n+++ b/lib/librte_cryptodev/rte_crypto_asym.h\n@@ -0,0 +1,496 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright(c) 2018 Cavium Networks\n+ */\n+\n+#ifndef _RTE_CRYPTO_ASYM_H_\n+#define _RTE_CRYPTO_ASYM_H_\n+\n+/**\n+ * @file rte_crypto_asym.h\n+ *\n+ * RTE Definitions for Asymmetric Cryptography\n+ *\n+ * Defines asymmetric algorithms and modes, as well as supported\n+ * asymmetric crypto operations.\n+ */\n+\n+#ifdef __cplusplus\n+extern \"C\" {\n+#endif\n+\n+#include <string.h>\n+#include <stdint.h>\n+\n+#include <rte_memory.h>\n+#include <rte_mempool.h>\n+#include <rte_common.h>\n+\n+typedef struct rte_crypto_param_t {\n+\tuint8_t *data;\n+\t/**< pointer to buffer holding data */\n+\trte_iova_t iova;\n+\t/**< IO address of data buffer */\n+\tsize_t length;\n+\t/**< length of data in bytes */\n+} rte_crypto_param;\n+\n+/** asym xform type name strings */\n+extern const char *\n+rte_crypto_asym_xform_strings[];\n+\n+/** asym operations type name strings */\n+extern const char *\n+rte_crypto_asym_op_strings[];\n+\n+/**\n+ * Asymmetric crypto transformation types.\n+ * Each xform type maps to one asymmetric algorithm\n+ * performing specific operation\n+ *\n+ */\n+enum rte_crypto_asym_xform_type {\n+\tRTE_CRYPTO_ASYM_XFORM_UNSPECIFIED = 0,\n+\t/**< Invalid xform. */\n+\tRTE_CRYPTO_ASYM_XFORM_NONE,\n+\t/**< Xform type None.\n+\t * May be supported by PMD to support\n+\t * passthrough op for debugging purpose.\n+\t * if xform_type none , op_type is disregarded.\n+\t */\n+\tRTE_CRYPTO_ASYM_XFORM_RSA,\n+\t/**< RSA. Performs Encrypt, Decrypt, Sign and Verify.\n+\t * Refer to rte_crypto_asym_op_type\n+\t */\n+\tRTE_CRYPTO_ASYM_XFORM_DH,\n+\t/**< Deffie-Hellman.\n+\t * Performs Key Generate and Shared Secret Compute.\n+\t * Refer to rte_crypto_asym_op_type\n+\t */\n+\tRTE_CRYPTO_ASYM_XFORM_DSA,\n+\t/**< Digital Signature Algorithm\n+\t * Performs Signature Generation and Verification.\n+\t * Refer to rte_crypto_asym_op_type\n+\t */\n+\tRTE_CRYPTO_ASYM_XFORM_MODINV,\n+\t/**< Modular Inverse\n+\t * Perform Modulus inverse b^(-1) mod n\n+\t */\n+\tRTE_CRYPTO_ASYM_XFORM_MODEX,\n+\t/**< Modular Exponentiation\n+\t * Perform Modular Exponentiation b^e mod n\n+\t */\n+\tRTE_CRYPTO_ASYM_XFORM_TYPE_LIST_END\n+\t/**< End of list */\n+};\n+\n+/**\n+ * Asymmetric crypto operation type variants\n+ */\n+enum rte_crypto_asym_op_type {\n+\tRTE_CRYPTO_ASYM_OP_ENCRYPT,\n+\t/**< Asymmetric Encrypt operation */\n+\tRTE_CRYPTO_ASYM_OP_DECRYPT,\n+\t/**< Asymmetric Decrypt operation */\n+\tRTE_CRYPTO_ASYM_OP_SIGN,\n+\t/**< Signature Generation operation */\n+\tRTE_CRYPTO_ASYM_OP_VERIFY,\n+\t/**< Signature Verification operation */\n+\tRTE_CRYPTO_ASYM_OP_PRIVATE_KEY_GENERATE,\n+\t/**< DH Private Key generation operation */\n+\tRTE_CRYPTO_ASYM_OP_PUBLIC_KEY_GENERATE,\n+\t/**< DH Public Key generation operation */\n+\tRTE_CRYPTO_ASYM_OP_SHARED_SECRET_COMPUTE,\n+\t/**< DH Shared Secret compute operation */\n+\tRTE_CRYPTO_ASYM_OP_LIST_END\n+};\n+\n+/**\n+ * Padding types for RSA signature.\n+ */\n+enum rte_crypto_rsa_padding_type {\n+\tRTE_CRYPTO_RSA_PADDING_NONE = 0,\n+\t/**< RSA no padding scheme */\n+\tRTE_CRYPTO_RSA_PKCS1_V1_5_BT0,\n+\t/**< RSA PKCS#1 V1.5 Block Type 0 padding scheme\n+\t * as descibed in rfc2313\n+\t */\n+\tRTE_CRYPTO_RSA_PKCS1_V1_5_BT1,\n+\t/**< RSA PKCS#1 V1.5 Block Type 01 padding scheme\n+\t * as descibed in rfc2313\n+\t */\n+\tRTE_CRYPTO_RSA_PKCS1_V1_5_BT2,\n+\t/**< RSA PKCS#1 V1.5 Block Type 02 padding scheme\n+\t * as descibed in rfc2313\n+\t */\n+\tRTE_CRYPTO_RSA_PADDING_OAEP,\n+\t/**< RSA PKCS#1 OAEP padding scheme */\n+\tRTE_CRYPTO_RSA_PADDING_PSS,\n+\t/**< RSA PKCS#1 PSS padding scheme */\n+\tRTE_CRYPTO_RSA_PADDING_TYPE_LIST_END\n+};\n+\n+/**\n+ * RSA private key type enumeration\n+ *\n+ * enumerates private key format required to perform RSA crypto\n+ * transform.\n+ *\n+ */\n+enum rte_crypto_rsa_priv_key_type {\n+\tRTE_RSA_KEY_TYPE_EXP,\n+\t/**< RSA private key is an exponent */\n+\tRTE_RSA_KET_TYPE_QT,\n+\t/**< RSA private key is in quintuple format\n+\t * See rte_crypto_rsa_priv_key_qt\n+\t */\n+};\n+\n+/**\n+ * Structure describing RSA private key in quintuple format.\n+ * See PKCS V1.5 RSA Cryptography Standard.\n+ */\n+struct rte_crypto_rsa_priv_key_qt {\n+\trte_crypto_param p;\n+\t/**< p - Private key component P\n+\t * Private key component of RSA parameter  required for CRT method\n+\t * of private key operations in Octet-string network byte order\n+\t * format.\n+\t */\n+\n+\trte_crypto_param q;\n+\t/**< q - Private key component Q\n+\t * Private key component of RSA parameter  required for CRT method\n+\t * of private key operations in Octet-string network byte order\n+\t * format.\n+\t */\n+\n+\trte_crypto_param dP;\n+\t/**< dP - Private CRT component\n+\t * Private CRT component of RSA parameter  required for CRT method\n+\t * RSA private key operations in Octet-string network byte order\n+\t * format.\n+\t * dP = d mod ( p - 1 )\n+\t */\n+\n+\trte_crypto_param dQ;\n+\t/**< dQ - Private CRT component\n+\t * Private CRT component of RSA parameter  required for CRT method\n+\t * RSA private key operations in Octet-string network byte order\n+\t * format.\n+\t * dQ = d mod ( q - 1 )\n+\t */\n+\n+\trte_crypto_param qInv;\n+\t/**< qInv - Private CRT component\n+\t * Private CRT component of RSA parameter  required for CRT method\n+\t * RSA private key operations in Octet-string network byte order\n+\t * format.\n+\t * qInv = inv q mod p\n+\t */\n+};\n+\n+/**\n+ * Asymmetric RSA transform data\n+ *\n+ * Structure describing RSA xform params\n+ *\n+ */\n+struct rte_crypto_rsa_xform {\n+\trte_crypto_param n;\n+\t/**< n - Prime modulus\n+\t * Prime modulus data of RSA operation in Octet-string network\n+\t * byte order format.\n+\t */\n+\n+\trte_crypto_param e;\n+\t/**< e - Public key exponent\n+\t * Public key exponent used for RSA public key operations in Octet-\n+\t * string network byte order format.\n+\t */\n+\n+\tenum rte_crypto_rsa_priv_key_type key_type;\n+\n+\t__extension__\n+\tunion {\n+\t\t\trte_crypto_param d;\n+\t\t\t/**< d - Private key exponent\n+\t\t\t * Private key exponent used for RSA\n+\t\t\t * private key operations in\n+\t\t\t * Octet-string  network byte order format.\n+\t\t\t */\n+\n+\t\t\tstruct rte_crypto_rsa_priv_key_qt qt;\n+\t\t\t/**< qt - Private key in quintuple format */\n+\t};\n+};\n+\n+/**\n+ * Asymmetric Modular exponentiation transform data\n+ *\n+ * Structure describing modular exponentation xform param\n+ *\n+ */\n+struct rte_crypto_modex_xform {\n+\trte_crypto_param modulus;\n+\t/**< modulus\n+\t * Prime modulus of the modexp transform operation in octet-string\n+\t * network byte order format.\n+\t */\n+\n+\trte_crypto_param exponent;\n+\t/**< exponent\n+\t * Private exponent of the modexp transform operation in\n+\t * octet-string network byte order format.\n+\t */\n+};\n+\n+/**\n+ * Asymmetric modular inverse transform operation\n+ *\n+ * Structure describing modulus inverse xform params\n+ *\n+ */\n+struct rte_crypto_modinv_xform {\n+\trte_crypto_param modulus;\n+\t/**<\n+\t * Pointer to the prime modulus data for modular\n+\t * inverse operation in octet-string network byte\n+\t * order format.\n+\t */\n+};\n+\n+/**\n+ * Asymmetric DH transform data\n+ *\n+ * Structure describing deffie-hellman xform params\n+ *\n+ */\n+struct rte_crypto_dh_xform {\n+\tenum rte_crypto_asym_op_type type;\n+\t/**< Setup xform for key generate or shared secret compute */\n+\n+\trte_crypto_param p;\n+\t/**< p : Prime modulus data\n+\t * DH prime modulous data in octet-string network byte order format.\n+\t *\n+\t */\n+\n+\trte_crypto_param g;\n+\t/**< g : Generator\n+\t * DH group generator data in octet-string network byte order\n+\t * format.\n+\t *\n+\t */\n+};\n+\n+/**\n+ * Asymmetric Digital Signature transform operation\n+ *\n+ * Structure describing DSA xform params\n+ *\n+ */\n+struct rte_crypto_dsa_xform {\n+\trte_crypto_param p;\n+\t/**< p - Prime modulus\n+\t * Prime modulus data for DSA operation in Octet-string network byte\n+\t * order format.\n+\t */\n+\trte_crypto_param q;\n+\t/**< q : Order of the subgroup.\n+\t * Order of the subgroup data in Octet-string network byte order\n+\t * format.\n+\t * (p-1) % q = 0\n+\t */\n+\trte_crypto_param g;\n+\t/**< g: Generator of the subgroup\n+\t * Generator  data in Octet-string network byte order format.\n+\t */\n+\trte_crypto_param x;\n+\t/**< x: Private key of the signer in octet-string network\n+\t * byte order format.\n+\t * Used when app has pre-defined private key.\n+\t * Valid only when xform chain is DSA ONLY.\n+\t * if xform chain is DH private key generate + DSA, then DSA sign\n+\t * compute will use internally generated key.\n+\t */\n+};\n+\n+/**\n+ * Operations params for modular operations:\n+ * exponentiation and invert\n+ *\n+ */\n+struct rte_crypto_mod_op_param {\n+\trte_crypto_param base;\n+\t/**<\n+\t * Pointer to base of modular exponentiation/inversion data in\n+\t * Octet-string network byte order format.\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+\t__extension__\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/**< Modulus 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+\t};\n+};\n+\n+struct rte_cryptodev_asym_session;\n+\n+/**\n+ * RSA operation params\n+ *\n+ */\n+struct rte_crypto_rsa_op_param {\n+\tenum rte_crypto_asym_op_type op_type;\n+\t/**< Type of RSA operation for transform */;\n+\n+\trte_crypto_param message;\n+\t/**<\n+\t * Pointer to data\n+\t * - to be encrypted for RSA public encrypt.\n+\t * - to be decrypted for RSA private decrypt.\n+\t * - to be signed for RSA sign generation.\n+\t * - to be authenticated for RSA sign verification.\n+\t */\n+\n+\trte_crypto_param sign;\n+\t/**<\n+\t * Pointer to RSA signature data. If operation is RSA\n+\t * sign @ref RTE_CRYPTO_RSA_OP_SIGN, buffer will be\n+\t * over-written with generated signature.\n+\t *\n+\t * Length of the signature data will be equal to the\n+\t * RSA prime modulus length.\n+\t */\n+\n+\tenum rte_crypto_rsa_padding_type pad;\n+\t/**< RSA padding scheme to be used for transform */\n+\n+\tenum rte_crypto_auth_algorithm md;\n+\t/**< Hash algorithm to be used for data hash if padding\n+\t * scheme is either OAEP or PSS. Valid hash algorithms\n+\t * are:\n+\t * MD5, SHA1, SHA224, SHA256, SHA384, SHA512\n+\t */\n+\n+\tenum rte_crypto_auth_algorithm mgf1md;\n+\t/**<\n+\t * Hash algorithm to be used for mask generation if\n+\t * padding scheme is either OAEP or PSS. If padding\n+\t * scheme is unspecified data hash algorithm is used\n+\t * for mask generation. Valid hash algorithms are:\n+\t * MD5, SHA1, SHA224, SHA256, SHA384, SHA512\n+\t */\n+};\n+\n+/**\n+ * Deffie-Hellman Operations params.\n+ * @note:\n+ */\n+struct rte_crypto_dh_op_param {\n+\trte_crypto_param pub_key;\n+\t/**<\n+\t * Output generated public key when xform type is\n+\t * DH PUB_KEY_GENERATION.\n+\t * Input peer public key when xform type is DH\n+\t * SHARED_SECRET_COMPUTATION\n+\t * pub_key is in octet-string network byte order format.\n+\t *\n+\t */\n+\n+\trte_crypto_param priv_key;\n+\t/**<\n+\t * Output generated private key if xform type is\n+\t * DH PRIVATE_KEY_GENERATION\n+\t * Input when xform type is DH SHARED_SECRET_COMPUTATION.\n+\t * priv_key is in octet-string network byte order format.\n+\t *\n+\t */\n+\n+\trte_crypto_param shared_secret;\n+\t/**<\n+\t * Output with calculated shared secret\n+\t * when dh xform set up with op type = SHARED_SECRET_COMPUTATION.\n+\t * shared_secret is an octet-string network byte order format.\n+\t *\n+\t */\n+};\n+\n+/**\n+ * DSA Operations params\n+ *\n+ */\n+struct rte_crypto_dsa_op_param {\n+\tenum rte_crypto_asym_op_type op_type;\n+\t/**< Signature Generation or Verification */\n+\trte_crypto_param message;\n+\t/**< input message to be signed or verified */\n+\trte_crypto_param r;\n+\t/**< dsa sign component 'r' value\n+\t *\n+\t * output if op_type = sign generate,\n+\t * input if op_type = sign verify\n+\t */\n+\trte_crypto_param s;\n+\t/**< dsa sign component 's' value\n+\t *\n+\t * output if op_type = sign generate,\n+\t * input if op_type = sign verify\n+\t */\n+\trte_crypto_param y;\n+\t/**< y : Public key of the signer.\n+\t * Public key data of the signer in Octet-string network byte order\n+\t * format.\n+\t * y = g^x mod p\n+\t */\n+};\n+\n+/**\n+ * Asymmetric Cryptographic Operation.\n+ *\n+ * Structure describing asymmetric crypto operation params.\n+ *\n+ */\n+struct rte_crypto_asym_op {\n+\tstruct rte_cryptodev_asym_session *session;\n+\t/**< Handle for the initialised session context */\n+\n+\t__extension__\n+\tunion {\n+\t\tstruct rte_crypto_rsa_op_param rsa;\n+\t\tstruct rte_crypto_mod_op_param modex;\n+\t\tstruct rte_crypto_mod_op_param modinv;\n+\t\tstruct rte_crypto_dh_op_param dh;\n+\t\tstruct rte_crypto_dsa_op_param dsa;\n+\t};\n+} __rte_cache_aligned;\n+\n+#ifdef __cplusplus\n+}\n+#endif\n+\n+#endif /* _RTE_CRYPTO_ASYM_H_ */\n",
    "prefixes": [
        "v4",
        "1/4"
    ]
}