Received: by 2002:a25:e7d8:0:0:0:0:0 with SMTP id e207csp1590398ybh; Fri, 13 Mar 2020 04:03:45 -0700 (PDT) X-Google-Smtp-Source: ADFU+vvFc/1UolN08+ADLYtMUx7K8bLsIw5i6/6ONl6eaq6u8epnZeqPXLTe7Aj/zW/mJc1L8ThI X-Received: by 2002:a05:6830:4a6:: with SMTP id l6mr10963024otd.61.1584097424884; Fri, 13 Mar 2020 04:03:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1584097424; cv=none; d=google.com; s=arc-20160816; b=sfJECN/tgTyluTkD6YuiuKT6yJo58C/FGfUH/Ol6luPYl4orMqtypbJMruXDnqAao1 uAncnttIOfOvvQxaGi+KUQZpnWPPSv3Y5EJgB9BUfnDIlyObhWP6Odc7Os1ZgAulwIHx 2SdUJBCG5h2XcHM2EGcBfJmEj92Ydz4uknwV8SI4WLRXsRK04IH6y9kqUQ0lLgdnX9cX l3HC010ToYM532CtkqkbNcEK2vZ6+y9wSt6sMFvmc5pfi3z4qrpCCJFaz9En60uVS2nz 6Kr60FS/WEWOBIKfxOIJM7Kr7+QQ5tyOSLdAp4SeqC+1/oEUzE+XgHhW5kpgN4nARDus 8VZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:date:message-id:subject:cc:to:from; bh=BPEEdV0PefVjLhfOXQeNfsYAwU05l/lDrcw9PJAoXGU=; b=GmWo7rLLr9VdghM3GoqUeLYn+fn1tf5CK0lEylO5k2qVh5D59JKv3HjWNmw64JLjvi 7ZUrQbZnZgaIEuG8N8+NhZgzBsQw6fmRlcAGpYnSBVFAKkPYMk+wgLQU8PGIzOKOqU2A U4C4jrjIRKhXeoLdx2px7Z5EM/W9yNvmVf5mJUmPeLYLyPJwnbxbliklPszcgNEy0mjn ddU82tlu1Yn2zgFJz+392EI6DTECZGq3SkOxyzFWuo8MLpAaxAw0D3ltL1z8OqYY5Bjn KAa93EhhJcVqTKqQdOzbNCFr6QnVtuRnVXQHINqN6elbjjymbKTunho+7t9TA1RjEByT 52Sw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-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 x16si4128970otp.180.2020.03.13.04.03.24; Fri, 13 Mar 2020 04:03:44 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-crypto-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-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726414AbgCMLDC (ORCPT + 99 others); Fri, 13 Mar 2020 07:03:02 -0400 Received: from verein.lst.de ([213.95.11.211]:41916 "EHLO verein.lst.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726387AbgCMLDC (ORCPT ); Fri, 13 Mar 2020 07:03:02 -0400 Received: by verein.lst.de (Postfix, from userid 2005) id 94A0668C4E; Fri, 13 Mar 2020 12:02:58 +0100 (CET) From: Torsten Duwe To: Catalin Marinas , Will Deacon Cc: Herbert Xu , "David S. Miller" , Russell King , linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [Patch][Fix] crypto: arm{,64} neon: memzero_explicit aes-cbc key Message-Id: <20200313110258.94A0668C4E@verein.lst.de> Date: Fri, 13 Mar 2020 12:02:58 +0100 (CET) Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org From: Torsten Duwe At function exit, do not leave the expanded key in the rk struct which got allocated on the stack. Signed-off-by: Torsten Duwe --- Another small fix from our FIPS evaluation. I hope you don't mind I merged arm32 and arm64 into one patch -- this is really simple. --- a/arch/arm/crypto/aes-neonbs-glue.c +++ b/arch/arm/crypto/aes-neonbs-glue.c @@ -138,6 +138,7 @@ static int aesbs_cbc_setkey(struct crypto_skcipher *tfm, const u8 *in_key, kernel_neon_begin(); aesbs_convert_key(ctx->key.rk, rk.key_enc, ctx->key.rounds); kernel_neon_end(); + memzero_explicit(&rk, sizeof(rk)); return crypto_cipher_setkey(ctx->enc_tfm, in_key, key_len); } diff --git a/arch/arm64/crypto/aes-neonbs-glue.c b/arch/arm64/crypto/aes-neonbs-glue.c index e3e27349a9fe..c0b980503643 100644 --- a/arch/arm64/crypto/aes-neonbs-glue.c +++ b/arch/arm64/crypto/aes-neonbs-glue.c @@ -151,6 +151,7 @@ static int aesbs_cbc_setkey(struct crypto_skcipher *tfm, const u8 *in_key, kernel_neon_begin(); aesbs_convert_key(ctx->key.rk, rk.key_enc, ctx->key.rounds); kernel_neon_end(); + memzero_explicit(&rk, sizeof(rk)); return 0; }