From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4971FC43381 for ; Wed, 13 Mar 2019 10:36:33 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1953E2171F for ; Wed, 13 Mar 2019 10:36:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="d8Dy1ylJ"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="VkpqtQuu"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="s2Yx8MYx" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1953E2171F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=huA63ArdMdov4n4SM8+COgPYZRuQBxi670FSYcSbotQ=; b=d8Dy1ylJCLishl pdVlx/w5+meCHq2fq3+PBD4ZozqZObuq+yt7p+nl3/OlUHA4VQKpWM+cwiUfm5d+SHyWfQM0gv9t3 JtXo1P2GUR3kSAZvyWTt+5rICwLV4R+0NxYCmoGdbhcT8DK3iN0CHdOBySaDRCl/3n9JRcCU7tAtT Ue/ulscl2IqYK4vKFjxcEh/8MlzqF42L0D+vkGQn7fbNEdkTskE2BlFL12iHv+tUQ7VxkzN22Ql5O gAb2HMRngE1R/zKIwS11/O6zizs6OWfOygYJxmWVqXozJVw0MKcZOEEtMkI2/sZjHg54txydKQXKQ DHFJFKlsBKFKlt6/eOGA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1h41FJ-0008Rc-Gi; Wed, 13 Mar 2019 10:36:25 +0000 Received: from merlin.infradead.org ([2001:8b0:10b:1231::1]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1h41Ar-0001eR-Ld for linux-arm-kernel@bombadil.infradead.org; Wed, 13 Mar 2019 10:31:49 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=merlin.20170209; h=Content-Transfer-Encoding:MIME-Version: Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=HeLRX/NS1lOs67SiWYHjXNK/8ck1QMbMIfrhjVeE2OU=; b=VkpqtQuuIr4l+U/T3UARx1/GXM bQ27AODmmT84dXMKT50OWw7lvehVh30wBHgTj88VpqkNU4mlqQqiZvZJ/PFB0RQdGOURBXHRWKraj ArHgDiNJ/n7jogyZxqaLjBIGmkUb5/4gG/m9fuFapS/Khp6BdAts9JiWyd/JcCMWBHEVWp9ExzkIx 51T6aEGY0WKOvyQAP7JGk5WPEPR+U9rU0FQg12TZjrbkpj1OqXkr82rTkG4eVAj8Cj2LGv7NPeOCE eJoslHJbNy754O0KJ/fYAHA+rNi5FK4nCDZqn48MOhcwKyef4ttaClarOIp+5JnJAaLvBGr7Y9ihR s36C1dYw==; Received: from mail.kernel.org ([198.145.29.99]) by merlin.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1h3wH8-00053H-Uu for linux-arm-kernel@lists.infradead.org; Wed, 13 Mar 2019 05:17:59 +0000 Received: from sol.localdomain (c-107-3-167-184.hsd1.ca.comcast.net [107.3.167.184]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id E2D4B205C9; Wed, 13 Mar 2019 05:15:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1552454134; bh=BqPvHNXBcRhNcwcIcSrdUJEo7We8vHaELp4KXksgxsc=; h=From:To:Cc:Subject:Date:From; b=s2Yx8MYxZcp/bHGeZ7cVjpG6HlfSNsUFit276r/V40G/QJVw2MSpsbECchDDLUnaV pBQ7Sy7BrSdRKNcwcssMqQojQIcRnVtDg1PJIm7MhYOvzmaCcuFafTRagSUnX8gBBJ AG7z5TxwcJiQi2TUxGqIywG+4/6OQbX4yPuI4ExU= From: Eric Biggers To: linux-crypto@vger.kernel.org, Herbert Xu Subject: [PATCH 0/8] crypto: test the !may_use_simd() fallback code Date: Tue, 12 Mar 2019 22:12:44 -0700 Message-Id: <20190313051252.2917-1-ebiggers@kernel.org> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190313_011759_181102_B28E743E X-CRM114-Status: GOOD ( 11.88 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: x86@kernel.org, linux-arm-kernel@lists.infradead.org, Ard Biesheuvel Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org All crypto API algorithms are supposed to support the case where they are called in a context where SIMD instructions are unusable, e.g. IRQ context on some architectures. However, this isn't tested for by the self-tests, causing bugs to go undetected. This patch series therefore updates the self-tests to test the no-SIMD code. It works by converting all may_use_simd() checks to a new macro crypto_simd_usable(), which also returns false when the self-tests have disabled SIMD in crypto algorithms on the current CPU for test purposes. For now, all no-SIMD testing is limited to the extra crypto self-tests, because it might be a bit too invasive for the regular self-tests. But this could be changed later. This already found bugs in the arm64 implementations of AES-GCM and ChaCha. These are fixed by the first two patches. Following this, the tests pass on x86, arm, and arm64. This patch series is based on top of my other pending patch series "crypto: add SIMD helpers for AEADs". It can also be found in git at: URL: https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux.git Branch: crypto-nosimd-tests Eric Biggers (8): crypto: chacha-generic - fix use as arm64 no-NEON fallback crypto: arm64/gcm-aes-ce - fix no-NEON fallback code crypto: simd,testmgr - introduce crypto_simd_usable() crypto: x86 - convert to use crypto_simd_usable() crypto: arm - convert to use crypto_simd_usable() crypto: arm64 - convert to use crypto_simd_usable() crypto: simd - convert to use crypto_simd_usable() crypto: testmgr - test the !may_use_simd() fallback code arch/arm/crypto/chacha-neon-glue.c | 5 +- arch/arm/crypto/crc32-ce-glue.c | 5 +- arch/arm/crypto/crct10dif-ce-glue.c | 3 +- arch/arm/crypto/ghash-ce-glue.c | 7 +- arch/arm/crypto/nhpoly1305-neon-glue.c | 3 +- arch/arm/crypto/sha1-ce-glue.c | 5 +- arch/arm/crypto/sha1_neon_glue.c | 5 +- arch/arm/crypto/sha2-ce-glue.c | 5 +- arch/arm/crypto/sha256_neon_glue.c | 5 +- arch/arm/crypto/sha512-neon-glue.c | 5 +- arch/arm64/crypto/aes-ce-ccm-glue.c | 7 +- arch/arm64/crypto/aes-ce-glue.c | 5 +- arch/arm64/crypto/aes-glue.c | 4 +- arch/arm64/crypto/aes-neonbs-glue.c | 2 +- arch/arm64/crypto/chacha-neon-glue.c | 5 +- arch/arm64/crypto/crct10dif-ce-glue.c | 5 +- arch/arm64/crypto/ghash-ce-glue.c | 17 ++- arch/arm64/crypto/nhpoly1305-neon-glue.c | 3 +- arch/arm64/crypto/sha1-ce-glue.c | 7 +- arch/arm64/crypto/sha2-ce-glue.c | 7 +- arch/arm64/crypto/sha256-glue.c | 5 +- arch/arm64/crypto/sha3-ce-glue.c | 5 +- arch/arm64/crypto/sha512-ce-glue.c | 7 +- arch/arm64/crypto/sm3-ce-glue.c | 7 +- arch/arm64/crypto/sm4-ce-glue.c | 5 +- arch/x86/crypto/aesni-intel_glue.c | 8 +- arch/x86/crypto/chacha_glue.c | 6 +- arch/x86/crypto/crc32-pclmul_glue.c | 5 +- arch/x86/crypto/crc32c-intel_glue.c | 7 +- arch/x86/crypto/crct10dif-pclmul_glue.c | 7 +- arch/x86/crypto/ghash-clmulni-intel_glue.c | 9 +- arch/x86/crypto/nhpoly1305-avx2-glue.c | 5 +- arch/x86/crypto/nhpoly1305-sse2-glue.c | 5 +- arch/x86/crypto/poly1305_glue.c | 4 +- arch/x86/crypto/sha1_ssse3_glue.c | 7 +- arch/x86/crypto/sha256_ssse3_glue.c | 7 +- arch/x86/crypto/sha512_ssse3_glue.c | 10 +- crypto/chacha_generic.c | 2 +- crypto/simd.c | 8 +- crypto/testmgr.c | 142 +++++++++++++++++---- include/crypto/internal/simd.h | 24 ++++ 41 files changed, 272 insertions(+), 123 deletions(-) -- 2.21.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel