Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2231534/?format=api
{ "id": 2231534, "url": "http://patchwork.ozlabs.org/api/patches/2231534/?format=api", "web_url": "http://patchwork.ozlabs.org/project/ubuntu-kernel/patch/4f75d641a85c7cb60554ff98c70d5d2721fe013c.1777577013.git.massimiliano.pellizzer@canonical.com/", "project": { "id": 15, "url": "http://patchwork.ozlabs.org/api/projects/15/?format=api", "name": "Ubuntu Kernel", "link_name": "ubuntu-kernel", "list_id": "kernel-team.lists.ubuntu.com", "list_email": "kernel-team@lists.ubuntu.com", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<4f75d641a85c7cb60554ff98c70d5d2721fe013c.1777577013.git.massimiliano.pellizzer@canonical.com>", "list_archive_url": null, "date": "2026-04-30T19:28:23", "name": "[SRU,J,v2,2/9] crypto: algif_aead - use memcpy_sglist() instead of null skcipher", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "7ffc82b192d7a2ba77b768a2a9f772c95b906912", "submitter": { "id": 89057, "url": "http://patchwork.ozlabs.org/api/people/89057/?format=api", "name": "Massimiliano Pellizzer", "email": "massimiliano.pellizzer@canonical.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/ubuntu-kernel/patch/4f75d641a85c7cb60554ff98c70d5d2721fe013c.1777577013.git.massimiliano.pellizzer@canonical.com/mbox/", "series": [ { "id": 502368, "url": "http://patchwork.ozlabs.org/api/series/502368/?format=api", "web_url": "http://patchwork.ozlabs.org/project/ubuntu-kernel/list/?series=502368", "date": "2026-04-30T19:28:21", "name": "CVE-2026-31431", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/502368/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2231534/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2231534/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<kernel-team-bounces@lists.ubuntu.com>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (4096-bit key;\n unprotected) header.d=canonical.com header.i=@canonical.com\n header.a=rsa-sha256 header.s=20251003 header.b=EPJE9Y2H;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com\n (client-ip=185.125.189.65; helo=lists.ubuntu.com;\n envelope-from=kernel-team-bounces@lists.ubuntu.com;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from lists.ubuntu.com (lists.ubuntu.com [185.125.189.65])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g644l0Fscz1yHv\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 01 May 2026 05:29:59 +1000 (AEST)", "from localhost ([127.0.0.1] helo=lists.ubuntu.com)\n\tby lists.ubuntu.com with esmtp (Exim 4.86_2)\n\t(envelope-from <kernel-team-bounces@lists.ubuntu.com>)\n\tid 1wIX56-0003xE-GS; Thu, 30 Apr 2026 19:29:52 +0000", "from smtp-relay-internal-1.internal ([10.131.114.114]\n helo=smtp-relay-internal-1.canonical.com)\n by lists.ubuntu.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.86_2) (envelope-from <massimiliano.pellizzer@canonical.com>)\n id 1wIX4l-0002P0-2Y\n for kernel-team@lists.ubuntu.com; Thu, 30 Apr 2026 19:29:31 +0000", "from mail-wm1-f71.google.com (mail-wm1-f71.google.com\n [209.85.128.71])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by smtp-relay-internal-1.canonical.com (Postfix) with ESMTPS id DC4623F637\n for <kernel-team@lists.ubuntu.com>; Thu, 30 Apr 2026 19:29:30 +0000 (UTC)", "by mail-wm1-f71.google.com with SMTP id\n 5b1f17b1804b1-488d8deb75fso8998815e9.3\n for <kernel-team@lists.ubuntu.com>; Thu, 30 Apr 2026 12:29:30 -0700 (PDT)", "from tuxedo-infinitybook (net-93-71-66-38.cust.vodafonedsl.it.\n [93.71.66.38]) by smtp.gmail.com with ESMTPSA id\n ffacd0b85a97d-448e74324a5sm8133217f8f.12.2026.04.30.12.29.29\n for <kernel-team@lists.ubuntu.com>\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Thu, 30 Apr 2026 12:29:29 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com;\n s=20251003; t=1777577370;\n bh=/4GWeNLvyCYlnA/MgHDVqXsQFv+pq5p8LN+tJcoe0eA=;\n h=From:To:Subject:Date:Message-ID:In-Reply-To:References:\n MIME-Version;\n b=EPJE9Y2H94j1WYMd/UY6YkJDtj4wz17VMFTx5TnWzIfWoSHMFsGIDa34HeNAyDHLn\n jzosLjITu2ArM7DWLeb/DyBcbTz8UCRJf/KY3HpA7wB060uAqFZ/AzlRfebW/yQRmH\n 5DFP6FCP7kdPLHT5ovxSwqz4lwUaQu/IqUmhD+gav/rUpOymVWzFEhy18/RZih6RT0\n olIzjf2G1b1WFC79ZUWs0SV0T3ZTapG2wGzA9pvr0xdlHDlXwfqSgqrCpduF73o+y9\n UxUR8lHxLdyx4ycseakuRD8/9M6hQgw9d6XMo0t6rWVCGJl6BFgRTKIvN9z7esEMXU\n 6LmaNQiuVedjUSNWr/fkqwlpo5xFP1+eJF78+RZlkPEjXyMPJPyK1oQZbpiY9dW3rp\n L0m/wWSuWYqInxmPvzGEpT/cVSqoEu2qD2K+rwfyhaw9rGcUsaZKJcAoCTdrncW2Vk\n 9kIIfAk+9LKxxgCr51oD0MjOXgvobjEaI9iTmPa71gdtFA9/vU9G7kjpRX1kFRnERb\n omZpwcQS/RjSPZx9RhCcZQt5O3SX65W6b2iZxsNzLveQR07N+6aEMImUq4xUQkMrB5\n JtA4BtANqRPaynM6NF0lRz3yRMFsg4FoCWJ1WJEmybEfGbR3u6QyrLY1mGc0RYvDv2\n GGD+gRy5QYd4XiUfkto3egQE=", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1777577370; x=1778182170;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to\n :cc:subject:date:message-id:reply-to;\n bh=/4GWeNLvyCYlnA/MgHDVqXsQFv+pq5p8LN+tJcoe0eA=;\n b=UF+Lz39eymJoUs3hzw0aKvkb7CX510pSZyfmpXOLQJcKKi1pUTdd+WrZAffrKZf64x\n 2jNvS+31vqkd2ei7V/PghuFTHQa8OCGccBdDhXmSrX/DgiQ1AihPeNPuVjJkGLyiA5yn\n d5Aepis/2oOjc3EcsiertYitYktvzdE1KUGMWvYm7mpo0+eAZmc7pmo9OWgpfK8j3dR2\n 80IexFVuDdAHtClTleMEcjafonrBPeQ8Mr4Iiw/NYVKBbFqmhYpP184OVVZDXY6IRayF\n 9OaMYYwm/8IQLdbis1am3W2zWPWnPWtCs1AEc2O2WhRitKclm3WQrSXiHUbj86FB1Zz7\n dJhw==", "X-Gm-Message-State": "AOJu0Yx7iPTyV5O9AAxm500sJb9PLEV3/JOm2THJpB3IBF0R/nQ3W/m/\n 4GclCczEaHTRKrZFzj4iJOLH0IGyVx3879iSf+yxBsHMckbZ88rXlAPuAn5/i5m4ooHN6IHyLdR\n y9p5Kip8ze7X+AT2j5/9/WacTqdtvD3hXbydFr9yjwZebELeCIGS04kL4LcP4baHvWnUh0pB8M/\n pnIMnfdvPap75ulQ==", "X-Gm-Gg": "AeBDieutFwN4pGxsByM49h0aoqk0FoZshzi5KLx/I3bfCwPBXx+qz/zd7ay80oCg4zy\n b+M0xSbDSscMlD6FFgXZWq5YpidyBLT/PDDJooYpFbnjjpb0mdXSSPWd6KqElSSxs77s3duuhIa\n qQzd245WJRrSoiYhksZ1qvFrCTKzOx764dwxIpzGRFByfwQFOlLZZjX6YBw4NU2gmL1Z6t3OYHI\n 6b2WJsmAS3igZp4ItZijm4W6rhJKG4SIboffrh2Ob7LT1MY8dnJWPmwm4jO0YF+9973vaG1ibQo\n AjY9KFrkIHbmX8/aMzw16yqDcsz8LqI+FNueevGeJYDddK6EKDthqGwOEB06mKWK7fhEge8AHpP\n eNFOFoJOspdcznq3V3ipMxNIgx8auDvDHIZk70AW9lEebZFlCtNoC+7i3zkBcnQMTc+BGzED6Oz\n XM4ok29SuzLkRfXcYP8rfncpBQYxgceADwCi4dUR9QTM4+NhiB93YzXdWBjaETk69+1NSZLkErI\n H5iCL7a7tJBMA==", "X-Received": [ "by 2002:a05:600c:3552:b0:489:1ca2:eafd with SMTP id\n 5b1f17b1804b1-48a83f6d022mr72933825e9.11.1777577370120;\n Thu, 30 Apr 2026 12:29:30 -0700 (PDT)", "by 2002:a05:600c:3552:b0:489:1ca2:eafd with SMTP id\n 5b1f17b1804b1-48a83f6d022mr72933595e9.11.1777577369648;\n Thu, 30 Apr 2026 12:29:29 -0700 (PDT)" ], "From": "Massimiliano Pellizzer <massimiliano.pellizzer@canonical.com>", "To": "kernel-team@lists.ubuntu.com", "Subject": "[SRU][J][PATCH v2 2/9] crypto: algif_aead - use memcpy_sglist()\n instead of null skcipher", "Date": "Thu, 30 Apr 2026 21:28:23 +0200", "Message-ID": "\n <4f75d641a85c7cb60554ff98c70d5d2721fe013c.1777577013.git.massimiliano.pellizzer@canonical.com>", "X-Mailer": "git-send-email 2.53.0", "In-Reply-To": "<cover.1777577013.git.massimiliano.pellizzer@canonical.com>", "References": "\n <177757626672.818044.11792928639290212185@tuxedo-infinitybook.public>\n <cover.1777577013.git.massimiliano.pellizzer@canonical.com>", "MIME-Version": "1.0", "X-BeenThere": "kernel-team@lists.ubuntu.com", "X-Mailman-Version": "2.1.20", "Precedence": "list", "List-Id": "Kernel team discussions <kernel-team.lists.ubuntu.com>", "List-Unsubscribe": "<https://lists.ubuntu.com/mailman/options/kernel-team>,\n <mailto:kernel-team-request@lists.ubuntu.com?subject=unsubscribe>", "List-Archive": "<https://lists.ubuntu.com/archives/kernel-team>", "List-Post": "<mailto:kernel-team@lists.ubuntu.com>", "List-Help": "<mailto:kernel-team-request@lists.ubuntu.com?subject=help>", "List-Subscribe": "<https://lists.ubuntu.com/mailman/listinfo/kernel-team>,\n <mailto:kernel-team-request@lists.ubuntu.com?subject=subscribe>", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "base64", "Errors-To": "kernel-team-bounces@lists.ubuntu.com", "Sender": "\"kernel-team\" <kernel-team-bounces@lists.ubuntu.com>" }, "content": "From: Eric Biggers <ebiggers@google.com>\n\ncommit f2804d0eee8ddd57aa79d0b82872b74c21e1b69b upstream.\n\nFor copying data between two scatterlists, just use memcpy_sglist()\ninstead of the so-called \"null skcipher\". This is much simpler.\n\nSigned-off-by: Eric Biggers <ebiggers@google.com>\nSigned-off-by: Herbert Xu <herbert@gondor.apana.org.au>\nSigned-off-by: Eric Biggers <ebiggers@kernel.org>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n(cherry picked from commit 17774d99bb4347c6b025ef80b637d6e3f94fe2f7 linux-5.15.y)\nCVE-2026-31431\nSigned-off-by: Massimiliano Pellizzer <massimiliano.pellizzer@canonical.com>\n---\n crypto/Kconfig | 1 -\n crypto/algif_aead.c | 98 ++++++++-------------------------------------\n 2 files changed, 17 insertions(+), 82 deletions(-)", "diff": "diff --git a/crypto/Kconfig b/crypto/Kconfig\nindex db260ccfba51b..15994570627bf 100644\n--- a/crypto/Kconfig\n+++ b/crypto/Kconfig\n@@ -1872,7 +1872,6 @@ config CRYPTO_USER_API_AEAD\n \tdepends on NET\n \tselect CRYPTO_AEAD\n \tselect CRYPTO_SKCIPHER\n-\tselect CRYPTO_NULL\n \tselect CRYPTO_USER_API\n \thelp\n \t This option enables the user-spaces interface for AEAD\ndiff --git a/crypto/algif_aead.c b/crypto/algif_aead.c\nindex 42493b4d8ce46..38a4ab8c90c72 100644\n--- a/crypto/algif_aead.c\n+++ b/crypto/algif_aead.c\n@@ -27,7 +27,6 @@\n #include <crypto/scatterwalk.h>\n #include <crypto/if_alg.h>\n #include <crypto/skcipher.h>\n-#include <crypto/null.h>\n #include <linux/init.h>\n #include <linux/list.h>\n #include <linux/kernel.h>\n@@ -36,19 +35,13 @@\n #include <linux/net.h>\n #include <net/sock.h>\n \n-struct aead_tfm {\n-\tstruct crypto_aead *aead;\n-\tstruct crypto_sync_skcipher *null_tfm;\n-};\n-\n static inline bool aead_sufficient_data(struct sock *sk)\n {\n \tstruct alg_sock *ask = alg_sk(sk);\n \tstruct sock *psk = ask->parent;\n \tstruct alg_sock *pask = alg_sk(psk);\n \tstruct af_alg_ctx *ctx = ask->private;\n-\tstruct aead_tfm *aeadc = pask->private;\n-\tstruct crypto_aead *tfm = aeadc->aead;\n+\tstruct crypto_aead *tfm = pask->private;\n \tunsigned int as = crypto_aead_authsize(tfm);\n \n \t/*\n@@ -64,27 +57,12 @@ static int aead_sendmsg(struct socket *sock, struct msghdr *msg, size_t size)\n \tstruct alg_sock *ask = alg_sk(sk);\n \tstruct sock *psk = ask->parent;\n \tstruct alg_sock *pask = alg_sk(psk);\n-\tstruct aead_tfm *aeadc = pask->private;\n-\tstruct crypto_aead *tfm = aeadc->aead;\n+\tstruct crypto_aead *tfm = pask->private;\n \tunsigned int ivsize = crypto_aead_ivsize(tfm);\n \n \treturn af_alg_sendmsg(sock, msg, size, ivsize);\n }\n \n-static int crypto_aead_copy_sgl(struct crypto_sync_skcipher *null_tfm,\n-\t\t\t\tstruct scatterlist *src,\n-\t\t\t\tstruct scatterlist *dst, unsigned int len)\n-{\n-\tSYNC_SKCIPHER_REQUEST_ON_STACK(skreq, null_tfm);\n-\n-\tskcipher_request_set_sync_tfm(skreq, null_tfm);\n-\tskcipher_request_set_callback(skreq, CRYPTO_TFM_REQ_MAY_SLEEP,\n-\t\t\t\t NULL, NULL);\n-\tskcipher_request_set_crypt(skreq, src, dst, len, NULL);\n-\n-\treturn crypto_skcipher_encrypt(skreq);\n-}\n-\n static int _aead_recvmsg(struct socket *sock, struct msghdr *msg,\n \t\t\t size_t ignored, int flags)\n {\n@@ -93,9 +71,7 @@ static int _aead_recvmsg(struct socket *sock, struct msghdr *msg,\n \tstruct sock *psk = ask->parent;\n \tstruct alg_sock *pask = alg_sk(psk);\n \tstruct af_alg_ctx *ctx = ask->private;\n-\tstruct aead_tfm *aeadc = pask->private;\n-\tstruct crypto_aead *tfm = aeadc->aead;\n-\tstruct crypto_sync_skcipher *null_tfm = aeadc->null_tfm;\n+\tstruct crypto_aead *tfm = pask->private;\n \tunsigned int i, as = crypto_aead_authsize(tfm);\n \tstruct af_alg_async_req *areq;\n \tstruct af_alg_tsgl *tsgl, *tmp;\n@@ -223,10 +199,7 @@ static int _aead_recvmsg(struct socket *sock, struct msghdr *msg,\n \t\t *\t v\t v\n \t\t * RX SGL: AAD || PT || Tag\n \t\t */\n-\t\terr = crypto_aead_copy_sgl(null_tfm, tsgl_src,\n-\t\t\t\t\t areq->first_rsgl.sgl.sg, processed);\n-\t\tif (err)\n-\t\t\tgoto free;\n+\t\tmemcpy_sglist(areq->first_rsgl.sgl.sg, tsgl_src, processed);\n \t\taf_alg_pull_tsgl(sk, processed, NULL, 0);\n \t} else {\n \t\t/*\n@@ -240,11 +213,8 @@ static int _aead_recvmsg(struct socket *sock, struct msghdr *msg,\n \t\t * RX SGL: AAD || CT ----+\n \t\t */\n \n-\t\t /* Copy AAD || CT to RX SGL buffer for in-place operation. */\n-\t\terr = crypto_aead_copy_sgl(null_tfm, tsgl_src,\n-\t\t\t\t\t areq->first_rsgl.sgl.sg, outlen);\n-\t\tif (err)\n-\t\t\tgoto free;\n+\t\t/* Copy AAD || CT to RX SGL buffer for in-place operation. */\n+\t\tmemcpy_sglist(areq->first_rsgl.sgl.sg, tsgl_src, outlen);\n \n \t\t/* Create TX SGL for tag and chain it to RX SGL. */\n \t\tareq->tsgl_entries = af_alg_count_tsgl(sk, processed,\n@@ -378,7 +348,7 @@ static int aead_check_key(struct socket *sock)\n \tint err = 0;\n \tstruct sock *psk;\n \tstruct alg_sock *pask;\n-\tstruct aead_tfm *tfm;\n+\tstruct crypto_aead *tfm;\n \tstruct sock *sk = sock->sk;\n \tstruct alg_sock *ask = alg_sk(sk);\n \n@@ -392,7 +362,7 @@ static int aead_check_key(struct socket *sock)\n \n \terr = -ENOKEY;\n \tlock_sock_nested(psk, SINGLE_DEPTH_NESTING);\n-\tif (crypto_aead_get_flags(tfm->aead) & CRYPTO_TFM_NEED_KEY)\n+\tif (crypto_aead_get_flags(tfm) & CRYPTO_TFM_NEED_KEY)\n \t\tgoto unlock;\n \n \tatomic_dec(&pask->nokey_refcnt);\n@@ -466,54 +436,22 @@ static struct proto_ops algif_aead_ops_nokey = {\n \n static void *aead_bind(const char *name, u32 type, u32 mask)\n {\n-\tstruct aead_tfm *tfm;\n-\tstruct crypto_aead *aead;\n-\tstruct crypto_sync_skcipher *null_tfm;\n-\n-\ttfm = kzalloc(sizeof(*tfm), GFP_KERNEL);\n-\tif (!tfm)\n-\t\treturn ERR_PTR(-ENOMEM);\n-\n-\taead = crypto_alloc_aead(name, type, mask);\n-\tif (IS_ERR(aead)) {\n-\t\tkfree(tfm);\n-\t\treturn ERR_CAST(aead);\n-\t}\n-\n-\tnull_tfm = crypto_get_default_null_skcipher();\n-\tif (IS_ERR(null_tfm)) {\n-\t\tcrypto_free_aead(aead);\n-\t\tkfree(tfm);\n-\t\treturn ERR_CAST(null_tfm);\n-\t}\n-\n-\ttfm->aead = aead;\n-\ttfm->null_tfm = null_tfm;\n-\n-\treturn tfm;\n+\treturn crypto_alloc_aead(name, type, mask);\n }\n \n static void aead_release(void *private)\n {\n-\tstruct aead_tfm *tfm = private;\n-\n-\tcrypto_free_aead(tfm->aead);\n-\tcrypto_put_default_null_skcipher();\n-\tkfree(tfm);\n+\tcrypto_free_aead(private);\n }\n \n static int aead_setauthsize(void *private, unsigned int authsize)\n {\n-\tstruct aead_tfm *tfm = private;\n-\n-\treturn crypto_aead_setauthsize(tfm->aead, authsize);\n+\treturn crypto_aead_setauthsize(private, authsize);\n }\n \n static int aead_setkey(void *private, const u8 *key, unsigned int keylen)\n {\n-\tstruct aead_tfm *tfm = private;\n-\n-\treturn crypto_aead_setkey(tfm->aead, key, keylen);\n+\treturn crypto_aead_setkey(private, key, keylen);\n }\n \n static void aead_sock_destruct(struct sock *sk)\n@@ -522,8 +460,7 @@ static void aead_sock_destruct(struct sock *sk)\n \tstruct af_alg_ctx *ctx = ask->private;\n \tstruct sock *psk = ask->parent;\n \tstruct alg_sock *pask = alg_sk(psk);\n-\tstruct aead_tfm *aeadc = pask->private;\n-\tstruct crypto_aead *tfm = aeadc->aead;\n+\tstruct crypto_aead *tfm = pask->private;\n \tunsigned int ivlen = crypto_aead_ivsize(tfm);\n \n \taf_alg_pull_tsgl(sk, ctx->used, NULL, 0);\n@@ -536,10 +473,9 @@ static int aead_accept_parent_nokey(void *private, struct sock *sk)\n {\n \tstruct af_alg_ctx *ctx;\n \tstruct alg_sock *ask = alg_sk(sk);\n-\tstruct aead_tfm *tfm = private;\n-\tstruct crypto_aead *aead = tfm->aead;\n+\tstruct crypto_aead *tfm = private;\n \tunsigned int len = sizeof(*ctx);\n-\tunsigned int ivlen = crypto_aead_ivsize(aead);\n+\tunsigned int ivlen = crypto_aead_ivsize(tfm);\n \n \tctx = sock_kmalloc(sk, len, GFP_KERNEL);\n \tif (!ctx)\n@@ -566,9 +502,9 @@ static int aead_accept_parent_nokey(void *private, struct sock *sk)\n \n static int aead_accept_parent(void *private, struct sock *sk)\n {\n-\tstruct aead_tfm *tfm = private;\n+\tstruct crypto_aead *tfm = private;\n \n-\tif (crypto_aead_get_flags(tfm->aead) & CRYPTO_TFM_NEED_KEY)\n+\tif (crypto_aead_get_flags(tfm) & CRYPTO_TFM_NEED_KEY)\n \t\treturn -ENOKEY;\n \n \treturn aead_accept_parent_nokey(private, sk);\n", "prefixes": [ "SRU", "J", "v2", "2/9" ] }