Received: by 10.223.185.116 with SMTP id b49csp2637140wrg; Thu, 15 Feb 2018 15:08:38 -0800 (PST) X-Google-Smtp-Source: AH8x226DYfDtDqM78VrF2eTZvzaUHC26DL1CVTBNq7MECo2/VWuUUYMSm3dX/dsZEADMAFVzr3ze X-Received: by 2002:a17:902:988b:: with SMTP id s11-v6mr3793746plp.99.1518736118776; Thu, 15 Feb 2018 15:08:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518736118; cv=none; d=google.com; s=arc-20160816; b=eFB3iSQPKEUG8h0lY35i8lShTyuRy0HjjGERmq/fxDAS/BB2bA/1yGWD7GHQE+BEZc vfCWi2QFhM4ls7IkCdlDIO6WQX+uKVQkxmRrKNIZERR+7OAKlVKG5GufAkTUsyCqP13D UrGDkbDJnJKOaFctHAYZUj2gzxIjs1CEWjRdRf05a34LSyoXs9vUVjGyS8nASV3oGFIF MSPtFbwSneqNDDFPQwz5HVKgVWwa0STrXW8GcBxhlp0Ezf+oQxFugjuYEvtvw9XXzDzx MwbdoFUWx71m9OYddDUZFAdOp5MWX9OeGx3YB0+weTob9gFdXq/3jQqHtOA0rUC6kOiZ zqyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=vqgWxxaYYQg0ehK9pj2lutv9yWfe+IN+cbei3stVc7Y=; b=yKiLEKpwsXKbzMQDpoL2XOaDtMZ6dE7Wsh0HJ2POqT2wLGe9MPBaoXDF2wPRuLMrx+ tXgF6AFt41Uwcm46vWVQ+vbhvQchpmltVbFCtjWrEcmUwXtP/Lfzydz7xlgtEZe+9Q03 EKag8jrHg+tDc194LFzkjs93jHOzyEQSOy4qDmoc89h8TaoieDhIb9w2MRyndOQS40rb EnOU6loP5YD2bqy3YCl5nj4hEL8Nsq02dehIShZCqAITiJ+ktcLfOUFIgp5NWL1EWr7z x5H9vqRFIr93wKORQRONHrCNIIE9JIqeFtUk7wac3+I6yWC9GQvwYj+A2SBfZOpv9JfD U+2A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l62si959320pfl.160.2018.02.15.15.08.12; Thu, 15 Feb 2018 15:08:38 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1165189AbeBOPe4 (ORCPT + 99 others); Thu, 15 Feb 2018 10:34:56 -0500 Received: from mail.linuxfoundation.org ([140.211.169.12]:57288 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1165173AbeBOPew (ORCPT ); Thu, 15 Feb 2018 10:34:52 -0500 Received: from localhost (LFbn-1-12258-90.w90-92.abo.wanadoo.fr [90.92.71.90]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id DF62C10FD; Thu, 15 Feb 2018 15:34:50 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Eric Biggers , Herbert Xu Subject: [PATCH 4.14 117/195] crypto: poly1305 - remove ->setkey() method Date: Thu, 15 Feb 2018 16:16:48 +0100 Message-Id: <20180215151711.535617534@linuxfoundation.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180215151705.738773577@linuxfoundation.org> References: <20180215151705.738773577@linuxfoundation.org> User-Agent: quilt/0.65 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Eric Biggers commit a16e772e664b9a261424107784804cffc8894977 upstream. Since Poly1305 requires a nonce per invocation, the Linux kernel implementations of Poly1305 don't use the crypto API's keying mechanism and instead expect the key and nonce as the first 32 bytes of the data. But ->setkey() is still defined as a stub returning an error code. This prevents Poly1305 from being used through AF_ALG and will also break it completely once we start enforcing that all crypto API users (not just AF_ALG) call ->setkey() if present. Fix it by removing crypto_poly1305_setkey(), leaving ->setkey as NULL. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu Signed-off-by: Greg Kroah-Hartman --- arch/x86/crypto/poly1305_glue.c | 1 - crypto/poly1305_generic.c | 17 +++++------------ include/crypto/poly1305.h | 2 -- 3 files changed, 5 insertions(+), 15 deletions(-) --- a/arch/x86/crypto/poly1305_glue.c +++ b/arch/x86/crypto/poly1305_glue.c @@ -164,7 +164,6 @@ static struct shash_alg alg = { .init = poly1305_simd_init, .update = poly1305_simd_update, .final = crypto_poly1305_final, - .setkey = crypto_poly1305_setkey, .descsize = sizeof(struct poly1305_simd_desc_ctx), .base = { .cra_name = "poly1305", --- a/crypto/poly1305_generic.c +++ b/crypto/poly1305_generic.c @@ -47,17 +47,6 @@ int crypto_poly1305_init(struct shash_de } EXPORT_SYMBOL_GPL(crypto_poly1305_init); -int crypto_poly1305_setkey(struct crypto_shash *tfm, - const u8 *key, unsigned int keylen) -{ - /* Poly1305 requires a unique key for each tag, which implies that - * we can't set it on the tfm that gets accessed by multiple users - * simultaneously. Instead we expect the key as the first 32 bytes in - * the update() call. */ - return -ENOTSUPP; -} -EXPORT_SYMBOL_GPL(crypto_poly1305_setkey); - static void poly1305_setrkey(struct poly1305_desc_ctx *dctx, const u8 *key) { /* r &= 0xffffffc0ffffffc0ffffffc0fffffff */ @@ -76,6 +65,11 @@ static void poly1305_setskey(struct poly dctx->s[3] = get_unaligned_le32(key + 12); } +/* + * Poly1305 requires a unique key for each tag, which implies that we can't set + * it on the tfm that gets accessed by multiple users simultaneously. Instead we + * expect the key as the first 32 bytes in the update() call. + */ unsigned int crypto_poly1305_setdesckey(struct poly1305_desc_ctx *dctx, const u8 *src, unsigned int srclen) { @@ -281,7 +275,6 @@ static struct shash_alg poly1305_alg = { .init = crypto_poly1305_init, .update = crypto_poly1305_update, .final = crypto_poly1305_final, - .setkey = crypto_poly1305_setkey, .descsize = sizeof(struct poly1305_desc_ctx), .base = { .cra_name = "poly1305", --- a/include/crypto/poly1305.h +++ b/include/crypto/poly1305.h @@ -31,8 +31,6 @@ struct poly1305_desc_ctx { }; int crypto_poly1305_init(struct shash_desc *desc); -int crypto_poly1305_setkey(struct crypto_shash *tfm, - const u8 *key, unsigned int keylen); unsigned int crypto_poly1305_setdesckey(struct poly1305_desc_ctx *dctx, const u8 *src, unsigned int srclen); int crypto_poly1305_update(struct shash_desc *desc,