From patchwork Thu Apr 17 18:26:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Biggers X-Patchwork-Id: 882001 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F3F512638B2; Thu, 17 Apr 2025 18:27:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914427; cv=none; b=kJVTl9WrCN+2K8SvLBhSJRZB1t4Mm3nr0t7E+kK9IDtZ8Xc9TFA7Iaktx504qTmMbeRwA3Drh28oin0WpBU1DxrP+4D+v5WNvs1JcjR1mE4rKVKthgJfHM5sxez1u3AqxZ5hqpRI0myS/fcKlnwvWZ34ODnYfkRpdIDYSjUH0+A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914427; c=relaxed/simple; bh=5dSTk9hCMalH9KouPCri0ueCaynOtEG8zNL9Aah4GBw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=H6niflPSxzhq3hJMWErlIauQgj131g6kR3XHmD/I+BwEErNZRiAS4N/SRFJ7WBdmmfLTfrMUPKYAElsazMDguUE77XKzzcwpawGnx0X3z+q0PaeCfSSl1+42adQvt3NamZ5qYXl6dM9FyHhZ58IHNApL0BKYIfQLG07Ei6KepXE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dNicRjUq; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dNicRjUq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0D1FFC4CEFC; Thu, 17 Apr 2025 18:27:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744914426; bh=5dSTk9hCMalH9KouPCri0ueCaynOtEG8zNL9Aah4GBw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dNicRjUq6+lSEG5MUjPWjKxrQv9g7Uqlt4v1mUDqOzfDmTlQ78EnINfC/7p4hhuLf unDZ581a3lk1/CyVkyU/eRAe8C1IEg8saysLWZqDZWXoA45KcXcO4coHUJBFTuU3UU +xsr3CESWT7KSNaneo8H65gLiuHccxH4KxKzFFMUUZGv2t6JHGf1kSabQmxcF0YHfK mOf5Xw8XfiwsxdjEmQE1c84/BkqF9yF6Tj0betPMHuynJy3dKUlBW0wahGrgSTudTe CMjPBeWPikTExhX+uBX+hcFcEgCFnb0elSvHf6BGxQc70WYDafl8soF2IP0mVYCoWJ eIX8TaKHJUMvQ== From: Eric Biggers To: linux-crypto@vger.kernel.org Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org, "Jason A . Donenfeld " , Ard Biesheuvel Subject: [PATCH 01/15] crypto: arm - remove CRYPTO dependency of library functions Date: Thu, 17 Apr 2025 11:26:09 -0700 Message-ID: <20250417182623.67808-2-ebiggers@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250417182623.67808-1-ebiggers@kernel.org> References: <20250417182623.67808-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Eric Biggers Continue disentangling the crypto library functions from the generic crypto infrastructure by removing the unnecessary CRYPTO dependency of CRYPTO_BLAKE2S_ARM, CRYPTO_CHACHA20_NEON, and CRYPTO_POLY1305_ARM. To do this, make arch/arm/crypto/Kconfig be sourced regardless of CRYPTO, and explicitly list the CRYPTO dependency in the symbols that do need it. Signed-off-by: Eric Biggers --- arch/arm/Kconfig | 2 ++ arch/arm/crypto/Kconfig | 24 +++++++++++++----------- crypto/Kconfig | 3 --- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 25ed6f1a7c7a..86fcce738887 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1753,5 +1753,7 @@ config ARCH_HIBERNATION_POSSIBLE bool depends on MMU default y if ARCH_SUSPEND_POSSIBLE endmenu + +source "arch/arm/crypto/Kconfig" diff --git a/arch/arm/crypto/Kconfig b/arch/arm/crypto/Kconfig index 3530e7c80793..a03017a6dbc4 100644 --- a/arch/arm/crypto/Kconfig +++ b/arch/arm/crypto/Kconfig @@ -2,11 +2,11 @@ menu "Accelerated Cryptographic Algorithms for CPU (arm)" config CRYPTO_CURVE25519_NEON tristate - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_KPP select CRYPTO_LIB_CURVE25519_GENERIC select CRYPTO_ARCH_HAVE_LIB_CURVE25519 default CRYPTO_LIB_CURVE25519_INTERNAL help @@ -15,11 +15,11 @@ config CRYPTO_CURVE25519_NEON Architecture: arm with - NEON (Advanced SIMD) extensions config CRYPTO_GHASH_ARM_CE tristate "Hash functions: GHASH (PMULL/NEON/ARMv8 Crypto Extensions)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_AEAD select CRYPTO_HASH select CRYPTO_CRYPTD select CRYPTO_LIB_AES select CRYPTO_LIB_GF128MUL @@ -36,11 +36,11 @@ config CRYPTO_GHASH_ARM_CE that is part of the ARMv8 Crypto Extensions, or a slower variant that uses the vmull.p8 instruction that is part of the basic NEON ISA. config CRYPTO_NHPOLY1305_NEON tristate "Hash functions: NHPoly1305 (NEON)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_NHPOLY1305 help NHPoly1305 hash function (Adiantum) Architecture: arm using: @@ -64,11 +64,11 @@ config CRYPTO_BLAKE2S_ARM There is no NEON implementation of BLAKE2s, since NEON doesn't really help with it. config CRYPTO_BLAKE2B_NEON tristate "Hash functions: BLAKE2b (NEON)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_BLAKE2B help BLAKE2b cryptographic hash function (RFC 7693) Architecture: arm using @@ -80,20 +80,21 @@ config CRYPTO_BLAKE2B_NEON much faster than the SHA-2 family and slightly faster than SHA-1. config CRYPTO_SHA1_ARM tristate "Hash functions: SHA-1" + depends on CRYPTO select CRYPTO_SHA1 select CRYPTO_HASH help SHA-1 secure hash algorithm (FIPS 180) Architecture: arm config CRYPTO_SHA1_ARM_NEON tristate "Hash functions: SHA-1 (NEON)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_SHA1_ARM select CRYPTO_SHA1 select CRYPTO_HASH help SHA-1 secure hash algorithm (FIPS 180) @@ -101,51 +102,52 @@ config CRYPTO_SHA1_ARM_NEON Architecture: arm using - NEON (Advanced SIMD) extensions config CRYPTO_SHA1_ARM_CE tristate "Hash functions: SHA-1 (ARMv8 Crypto Extensions)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_SHA1_ARM select CRYPTO_HASH help SHA-1 secure hash algorithm (FIPS 180) Architecture: arm using ARMv8 Crypto Extensions config CRYPTO_SHA2_ARM_CE tristate "Hash functions: SHA-224 and SHA-256 (ARMv8 Crypto Extensions)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_SHA256_ARM select CRYPTO_HASH help SHA-224 and SHA-256 secure hash algorithms (FIPS 180) Architecture: arm using - ARMv8 Crypto Extensions config CRYPTO_SHA256_ARM tristate "Hash functions: SHA-224 and SHA-256 (NEON)" + depends on CRYPTO && !CPU_V7M select CRYPTO_HASH - depends on !CPU_V7M help SHA-224 and SHA-256 secure hash algorithms (FIPS 180) Architecture: arm using - NEON (Advanced SIMD) extensions config CRYPTO_SHA512_ARM tristate "Hash functions: SHA-384 and SHA-512 (NEON)" + depends on CRYPTO && !CPU_V7M select CRYPTO_HASH - depends on !CPU_V7M help SHA-384 and SHA-512 secure hash algorithms (FIPS 180) Architecture: arm using - NEON (Advanced SIMD) extensions config CRYPTO_AES_ARM tristate "Ciphers: AES" + depends on CRYPTO select CRYPTO_ALGAPI select CRYPTO_AES help Block ciphers: AES cipher algorithms (FIPS-197) @@ -160,11 +162,11 @@ config CRYPTO_AES_ARM disables IRQs and preloads the tables; it is hoped this makes such attacks very difficult. config CRYPTO_AES_ARM_BS tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (bit-sliced NEON)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_AES_ARM select CRYPTO_SKCIPHER select CRYPTO_LIB_AES help Length-preserving ciphers: AES cipher algorithms (FIPS-197) @@ -188,11 +190,11 @@ config CRYPTO_AES_ARM_BS ciphertext stealing when the message isn't a multiple of 16 bytes, and CTR when invoked in a context in which NEON instructions are unusable. config CRYPTO_AES_ARM_CE tristate "Ciphers: AES, modes: ECB/CBC/CTS/CTR/XTS (ARMv8 Crypto Extensions)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_SKCIPHER select CRYPTO_LIB_AES help Length-preserving ciphers: AES cipher algorithms (FIPS-197) with block cipher modes: diff --git a/crypto/Kconfig b/crypto/Kconfig index 9322e42e562d..cad71f32e1e3 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig @@ -1424,13 +1424,10 @@ endmenu config CRYPTO_HASH_INFO bool if !KMSAN # avoid false positives from assembly -if ARM -source "arch/arm/crypto/Kconfig" -endif if ARM64 source "arch/arm64/crypto/Kconfig" endif if LOONGARCH source "arch/loongarch/crypto/Kconfig" From patchwork Thu Apr 17 18:26:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Biggers X-Patchwork-Id: 882712 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C7C6A263F24; Thu, 17 Apr 2025 18:27:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914427; cv=none; b=Yfi4kTfIgQKSov5h47LqJw+vD7LTgTnrAaRtt+f4V1b6T0S/HC2Pc0Fvterr/SpRNSf0308yJqsXtcRM1+vef0XgjM26pqvvgrgOf/3NJfmHdGvniySTA+EjSiha035DdBt5HylzoQBdmRJG7nCUIDWawBZlAdQReILjsTMcwX8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914427; c=relaxed/simple; bh=nXbV1Uvq4c8RL4YhRp/ivGFjNzOtTa70IujwafR6+UE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rfnQ+Jidud3R1l1Qom68znfU06e8QC+5b5ZUFy9n9vnx0yoszsZ5lzyBfvDjuuypwv1aBnFpxo71CE9DFcwBFtE/okbyETwf1ptaO2/K6HMK5qkfAJIUPdAH7BXlTYKqpur8pP3WPoC+bTfSIAy6j3U9UcSZbrSVul/7bBaTa5c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=toxBea61; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="toxBea61" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E8307C4CEEC; Thu, 17 Apr 2025 18:27:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744914427; bh=nXbV1Uvq4c8RL4YhRp/ivGFjNzOtTa70IujwafR6+UE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=toxBea61JWC5/trBUl49NvCsVkVAmNhju3B87UReIfBHz8VnRyE/LuVybLVF2k/nY ozG0hZ8OBwzDL6uS4Zi1cnO2Mrn+mq1gQ/r8Oq+czYCLjfyTD/V03RB7fCo5SP71wf zlxk4RJm3o05FtCFrRaAKTzpr6oWDwo/e21dJwjhdxrVVorZg+xwqsKTLym49Olhvz SwdxWMKOu8BP6ibmjf8JnzW3kYR8b7Naf0ZpIJmNV9xQkNMUjmcXpx+iFVvnhelZFG WffphaS/N+aHynjqKlRMXoA+AQi8OOH4tWYJ2rqeMi/Rw6uFqtGdZWOBgLIHH2X50p 7wDfzUig2kHFw== From: Eric Biggers To: linux-crypto@vger.kernel.org Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org, "Jason A . Donenfeld " , Ard Biesheuvel Subject: [PATCH 02/15] crypto: arm64 - drop redundant dependencies on ARM64 Date: Thu, 17 Apr 2025 11:26:10 -0700 Message-ID: <20250417182623.67808-3-ebiggers@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250417182623.67808-1-ebiggers@kernel.org> References: <20250417182623.67808-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Eric Biggers arch/arm64/crypto/Kconfig is sourced only when CONFIG_ARM64=y, so there is no need for the symbols defined inside it to depend on ARM64. Signed-off-by: Eric Biggers --- arch/arm64/crypto/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm64/crypto/Kconfig b/arch/arm64/crypto/Kconfig index 7c2f63f2e307..704d0b7e1d13 100644 --- a/arch/arm64/crypto/Kconfig +++ b/arch/arm64/crypto/Kconfig @@ -135,11 +135,11 @@ config CRYPTO_AES_ARM64 Architecture: arm64 config CRYPTO_AES_ARM64_CE tristate "Ciphers: AES (ARMv8 Crypto Extensions)" - depends on ARM64 && KERNEL_MODE_NEON + depends on KERNEL_MODE_NEON select CRYPTO_ALGAPI select CRYPTO_LIB_AES help Block ciphers: AES cipher algorithms (FIPS-197) @@ -252,11 +252,11 @@ config CRYPTO_SM4_ARM64_NEON_BLK Architecture: arm64 using: - NEON (Advanced SIMD) extensions config CRYPTO_AES_ARM64_CE_CCM tristate "AEAD cipher: AES in CCM mode (ARMv8 Crypto Extensions)" - depends on ARM64 && KERNEL_MODE_NEON + depends on KERNEL_MODE_NEON select CRYPTO_ALGAPI select CRYPTO_AES_ARM64_CE select CRYPTO_AES_ARM64_CE_BLK select CRYPTO_AEAD select CRYPTO_LIB_AES From patchwork Thu Apr 17 18:26:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Biggers X-Patchwork-Id: 882000 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C2BB62641F2; Thu, 17 Apr 2025 18:27:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914428; cv=none; b=rtAdSPRUPUgjBP5LuY8KoktnWMDvhEW6z4JL+diYttVllkkyAu7A2L0eOASGlmn9RM1RweM1UhwOtRVSos3ldQFjbGt+j8UPasfIg48Uh0WwoUjeU1H9dEB07ZRBiH84QNkT12//17FNp163FE6GWDybXdNm/m/cP0p5Y1C1ku4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914428; c=relaxed/simple; bh=I03HgIe8hlztmVaX0kmyqHgQfk9uC8Y2YUsxqcekmxM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CLJ1lSn3AZsowz9hiRgXEqj8Dmko/rgmMFTQfgcrEKSqMsgJnjRN+HkQJP4Age+bZAMcjtPIs9kcB6a0+Cs/jQxPpgU8jBvowKvyT0DjMAW5e4qU044llYe0yKXNC+89HPDGF3WDimjdE4N/M/ZADroa5wCV9oQvk2rmDHDyldU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dhq+jSRp; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dhq+jSRp" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E5078C4CEE4; Thu, 17 Apr 2025 18:27:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744914428; bh=I03HgIe8hlztmVaX0kmyqHgQfk9uC8Y2YUsxqcekmxM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dhq+jSRpIPLURJ7s8ysIZZYCuX6lz66JWazTUrzcabv+csLeQT+ovERbI+ddDLfrw 1Kgf+ZJjLsqxPtVC5El31bcJPPy05AhyHzed/kO+mlc0E9Xq+fJ1m+1CWprIHo56nA 273CkNbWjnRX35UsiY6IqK4NRWCRBQ0bVz5roGfPqj4p4pv+SamyAh4osGCswH4+Aj LwZGPhbiAx9t3neXz2nWtjF8AG3GMWWzwWYeVmtb9a8GNogNqGaxc6N/N0pS9Nfulr vVpGX9fkt0iciOEHT8EPdERvnFeMXTGoTuQqsLX1nvQ1/eOHdv8/e8u03/U+eIaSR1 /2/r8Yqh0y04g== From: Eric Biggers To: linux-crypto@vger.kernel.org Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org, "Jason A . Donenfeld " , Ard Biesheuvel Subject: [PATCH 03/15] crypto: arm64 - remove CRYPTO dependency of library functions Date: Thu, 17 Apr 2025 11:26:11 -0700 Message-ID: <20250417182623.67808-4-ebiggers@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250417182623.67808-1-ebiggers@kernel.org> References: <20250417182623.67808-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Eric Biggers Continue disentangling the crypto library functions from the generic crypto infrastructure by removing the unnecessary CRYPTO dependency of CRYPTO_CHACHA20_NEON and CRYPTO_POLY1305_NEON. To do this, make arch/arm64/crypto/Kconfig be sourced regardless of CRYPTO, and explicitly list the CRYPTO dependency in the symbols that do need it. Signed-off-by: Eric Biggers --- arch/arm64/Kconfig | 3 ++- arch/arm64/crypto/Kconfig | 41 +++++++++++++++++++++------------------ crypto/Kconfig | 3 --- 3 files changed, 24 insertions(+), 23 deletions(-) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index a182295e6f08..7f6ce0da6f87 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -2509,7 +2509,8 @@ source "drivers/cpufreq/Kconfig" endmenu # "CPU Power Management" source "drivers/acpi/Kconfig" -source "arch/arm64/kvm/Kconfig" +source "arch/arm64/crypto/Kconfig" +source "arch/arm64/kvm/Kconfig" diff --git a/arch/arm64/crypto/Kconfig b/arch/arm64/crypto/Kconfig index 704d0b7e1d13..a2cccd2accb0 100644 --- a/arch/arm64/crypto/Kconfig +++ b/arch/arm64/crypto/Kconfig @@ -2,11 +2,11 @@ menu "Accelerated Cryptographic Algorithms for CPU (arm64)" config CRYPTO_GHASH_ARM64_CE tristate "Hash functions: GHASH (ARMv8 Crypto Extensions)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_HASH select CRYPTO_LIB_AES select CRYPTO_LIB_GF128MUL select CRYPTO_AEAD help @@ -15,11 +15,11 @@ config CRYPTO_GHASH_ARM64_CE Architecture: arm64 using: - ARMv8 Crypto Extensions config CRYPTO_NHPOLY1305_NEON tristate "Hash functions: NHPoly1305 (NEON)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_NHPOLY1305 help NHPoly1305 hash function (Adiantum) Architecture: arm64 using: @@ -31,102 +31,105 @@ config CRYPTO_POLY1305_NEON select CRYPTO_ARCH_HAVE_LIB_POLY1305 default CRYPTO_LIB_POLY1305_INTERNAL config CRYPTO_SHA1_ARM64_CE tristate "Hash functions: SHA-1 (ARMv8 Crypto Extensions)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_HASH select CRYPTO_SHA1 help SHA-1 secure hash algorithm (FIPS 180) Architecture: arm64 using: - ARMv8 Crypto Extensions config CRYPTO_SHA256_ARM64 tristate "Hash functions: SHA-224 and SHA-256" + depends on CRYPTO select CRYPTO_HASH help SHA-224 and SHA-256 secure hash algorithms (FIPS 180) Architecture: arm64 config CRYPTO_SHA2_ARM64_CE tristate "Hash functions: SHA-224 and SHA-256 (ARMv8 Crypto Extensions)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_HASH select CRYPTO_SHA256_ARM64 help SHA-224 and SHA-256 secure hash algorithms (FIPS 180) Architecture: arm64 using: - ARMv8 Crypto Extensions config CRYPTO_SHA512_ARM64 tristate "Hash functions: SHA-384 and SHA-512" + depends on CRYPTO select CRYPTO_HASH help SHA-384 and SHA-512 secure hash algorithms (FIPS 180) Architecture: arm64 config CRYPTO_SHA512_ARM64_CE tristate "Hash functions: SHA-384 and SHA-512 (ARMv8 Crypto Extensions)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_HASH select CRYPTO_SHA512_ARM64 help SHA-384 and SHA-512 secure hash algorithms (FIPS 180) Architecture: arm64 using: - ARMv8 Crypto Extensions config CRYPTO_SHA3_ARM64 tristate "Hash functions: SHA-3 (ARMv8.2 Crypto Extensions)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_HASH select CRYPTO_SHA3 help SHA-3 secure hash algorithms (FIPS 202) Architecture: arm64 using: - ARMv8.2 Crypto Extensions config CRYPTO_SM3_NEON tristate "Hash functions: SM3 (NEON)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_HASH select CRYPTO_LIB_SM3 help SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012) Architecture: arm64 using: - NEON (Advanced SIMD) extensions config CRYPTO_SM3_ARM64_CE tristate "Hash functions: SM3 (ARMv8.2 Crypto Extensions)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_HASH select CRYPTO_LIB_SM3 help SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012) Architecture: arm64 using: - ARMv8.2 Crypto Extensions config CRYPTO_POLYVAL_ARM64_CE tristate "Hash functions: POLYVAL (ARMv8 Crypto Extensions)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_POLYVAL help POLYVAL hash function for HCTR2 Architecture: arm64 using: - ARMv8 Crypto Extensions config CRYPTO_AES_ARM64 tristate "Ciphers: AES, modes: ECB, CBC, CTR, CTS, XCTR, XTS" + depends on CRYPTO select CRYPTO_AES help Block ciphers: AES cipher algorithms (FIPS-197) Length-preserving ciphers: AES with ECB, CBC, CTR, CTS, XCTR, and XTS modes @@ -135,22 +138,22 @@ config CRYPTO_AES_ARM64 Architecture: arm64 config CRYPTO_AES_ARM64_CE tristate "Ciphers: AES (ARMv8 Crypto Extensions)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_ALGAPI select CRYPTO_LIB_AES help Block ciphers: AES cipher algorithms (FIPS-197) Architecture: arm64 using: - ARMv8 Crypto Extensions config CRYPTO_AES_ARM64_CE_BLK tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_SKCIPHER select CRYPTO_AES_ARM64_CE help Length-preserving ciphers: AES cipher algorithms (FIPS-197) with block cipher modes: @@ -163,11 +166,11 @@ config CRYPTO_AES_ARM64_CE_BLK Architecture: arm64 using: - ARMv8 Crypto Extensions config CRYPTO_AES_ARM64_NEON_BLK tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (NEON)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_SKCIPHER select CRYPTO_LIB_AES help Length-preserving ciphers: AES cipher algorithms (FIPS-197) with block cipher modes: @@ -187,11 +190,11 @@ config CRYPTO_CHACHA20_NEON select CRYPTO_ARCH_HAVE_LIB_CHACHA default CRYPTO_LIB_CHACHA_INTERNAL config CRYPTO_AES_ARM64_BS tristate "Ciphers: AES, modes: ECB/CBC/CTR/XCTR/XTS modes (bit-sliced NEON)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_SKCIPHER select CRYPTO_AES_ARM64_NEON_BLK select CRYPTO_LIB_AES help Length-preserving ciphers: AES cipher algorithms (FIPS-197) @@ -207,11 +210,11 @@ config CRYPTO_AES_ARM64_BS - bit-sliced algorithm - NEON (Advanced SIMD) extensions config CRYPTO_SM4_ARM64_CE tristate "Ciphers: SM4 (ARMv8.2 Crypto Extensions)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_ALGAPI select CRYPTO_SM4 help Block ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016) @@ -219,11 +222,11 @@ config CRYPTO_SM4_ARM64_CE - ARMv8.2 Crypto Extensions - NEON (Advanced SIMD) extensions config CRYPTO_SM4_ARM64_CE_BLK tristate "Ciphers: SM4, modes: ECB/CBC/CTR/XTS (ARMv8 Crypto Extensions)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_SKCIPHER select CRYPTO_SM4 help Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with block cipher modes: @@ -237,11 +240,11 @@ config CRYPTO_SM4_ARM64_CE_BLK - ARMv8 Crypto Extensions - NEON (Advanced SIMD) extensions config CRYPTO_SM4_ARM64_NEON_BLK tristate "Ciphers: SM4, modes: ECB/CBC/CTR (NEON)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_SKCIPHER select CRYPTO_SM4 help Length-preserving ciphers: SM4 cipher algorithms (OSCCA GB/T 32907-2016) with block cipher modes: @@ -252,11 +255,11 @@ config CRYPTO_SM4_ARM64_NEON_BLK Architecture: arm64 using: - NEON (Advanced SIMD) extensions config CRYPTO_AES_ARM64_CE_CCM tristate "AEAD cipher: AES in CCM mode (ARMv8 Crypto Extensions)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_ALGAPI select CRYPTO_AES_ARM64_CE select CRYPTO_AES_ARM64_CE_BLK select CRYPTO_AEAD select CRYPTO_LIB_AES @@ -269,11 +272,11 @@ config CRYPTO_AES_ARM64_CE_CCM - ARMv8 Crypto Extensions - NEON (Advanced SIMD) extensions config CRYPTO_SM4_ARM64_CE_CCM tristate "AEAD cipher: SM4 in CCM mode (ARMv8 Crypto Extensions)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_ALGAPI select CRYPTO_AEAD select CRYPTO_SM4 select CRYPTO_SM4_ARM64_CE_BLK help @@ -285,11 +288,11 @@ config CRYPTO_SM4_ARM64_CE_CCM - ARMv8 Crypto Extensions - NEON (Advanced SIMD) extensions config CRYPTO_SM4_ARM64_CE_GCM tristate "AEAD cipher: SM4 in GCM mode (ARMv8 Crypto Extensions)" - depends on KERNEL_MODE_NEON + depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_ALGAPI select CRYPTO_AEAD select CRYPTO_SM4 select CRYPTO_SM4_ARM64_CE_BLK help diff --git a/crypto/Kconfig b/crypto/Kconfig index cad71f32e1e3..a5225c6d0488 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig @@ -1424,13 +1424,10 @@ endmenu config CRYPTO_HASH_INFO bool if !KMSAN # avoid false positives from assembly -if ARM64 -source "arch/arm64/crypto/Kconfig" -endif if LOONGARCH source "arch/loongarch/crypto/Kconfig" endif if MIPS source "arch/mips/crypto/Kconfig" From patchwork Thu Apr 17 18:26:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Biggers X-Patchwork-Id: 882711 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C5D14264A8E; Thu, 17 Apr 2025 18:27:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914430; cv=none; b=Oka4A6SmQE9Q7Wg7/RUwaf3bK2dup+LXgD65Z1JdW7/RuTkN2ZmilaekuIHzhpddIh9TQoFmmEAiRNte0JiUPjViyawTeL9sd77adLhAHMyHpYPAYBUFkSD1ksyAqi2yDxeKSHojYBrbZV1GYTp7a1IUS/wPUbR4vCNQqWEUOt0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914430; c=relaxed/simple; bh=HKEB5CqVerYhbkmnvqnNR7Xh56F9rN2hh/iDbljsXuI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VsBbTPK3HSfNglnzCzJ+bdkOcHO4D0qkXz/6Jbz8Jq+RbBewHEF3qYr40Z1WKqP0hqGC3/JRokm6GWrxG2GPxpZwQLa2X6NAajPYhiDdlKh7WspMbVHb6iPbvcFPHoTjfRoeVS5qkKMWOayC/hfc+mFe45zcl3tze4XXPNL4Xas= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=AFhVlWou; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="AFhVlWou" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D4896C4CEEA; Thu, 17 Apr 2025 18:27:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744914429; bh=HKEB5CqVerYhbkmnvqnNR7Xh56F9rN2hh/iDbljsXuI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AFhVlWouUAmT3oifbDC+56pvMoGbq3FY6auILxK/3y+GGXU9nFHxZj0X5SEwDgEEk T+ccHR5spJaee/HwVRv1dOo83XOvLhiSwFu/ZyfvGtx9Cav2juDd7HX7GikHSe/ccP hWmKDT8BcVhVOxFN4YDpxwXLQcPC7eScDGK+7l9ukCTpZCMlK2y2KGjIEHXUe0X9VR jrxGnVNXY2YNjK/wyvvl8J0QkBQ+pmwDf1g5Zy9dHi61wXTC62p1hrLvCW9e1L7kid OjBfoPqlDrgy0LarysHtGUVrGcRRgnaapoSgW3grxNYCCNKc7CS83yehP469AttXlm O/mSVmlUaBuFQ== From: Eric Biggers To: linux-crypto@vger.kernel.org Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org, "Jason A . Donenfeld " , Ard Biesheuvel Subject: [PATCH 04/15] crypto: loongarch - source arch/loongarch/crypto/Kconfig without CRYPTO Date: Thu, 17 Apr 2025 11:26:12 -0700 Message-ID: <20250417182623.67808-5-ebiggers@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250417182623.67808-1-ebiggers@kernel.org> References: <20250417182623.67808-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Eric Biggers Source arch/loongarch/crypto/Kconfig regardless of CRYPTO, so that if library functions are ever added to there they can be built without pulling in the generic crypto infrastructure. Signed-off-by: Eric Biggers --- arch/loongarch/Kconfig | 1 + crypto/Kconfig | 3 --- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig index 067c0b994648..8ad6cbd8676f 100644 --- a/arch/loongarch/Kconfig +++ b/arch/loongarch/Kconfig @@ -737,6 +737,7 @@ source "kernel/power/Kconfig" source "drivers/acpi/Kconfig" source "drivers/cpufreq/Kconfig" endmenu +source "arch/loongarch/crypto/Kconfig" source "arch/loongarch/kvm/Kconfig" diff --git a/crypto/Kconfig b/crypto/Kconfig index a5225c6d0488..de71e9c9f2ad 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig @@ -1424,13 +1424,10 @@ endmenu config CRYPTO_HASH_INFO bool if !KMSAN # avoid false positives from assembly -if LOONGARCH -source "arch/loongarch/crypto/Kconfig" -endif if MIPS source "arch/mips/crypto/Kconfig" endif if PPC source "arch/powerpc/crypto/Kconfig" From patchwork Thu Apr 17 18:26:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Biggers X-Patchwork-Id: 881999 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E6D96265615; Thu, 17 Apr 2025 18:27:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914431; cv=none; b=JIbPKoe22S4A6D6uCl9irNTIclME7iIsm/WgPcmy18XfOo/y9iNSlBkG9q1RiKs0iEaG6aW+jOuTnNcmlE71qS8RLPOR870dr2YvXUSsQDjAP/zC/SK+Toc53Uiik8gcwrMaw7AmG+PYmzgj226ENdi+gQBd0G0UAK9ylvEtjqs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914431; c=relaxed/simple; bh=502owMjVm+hoOhMR1Hf0JVEnqbSzLpYcfIVzN4dcz4I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pAxu1OJoyogSVUd+WisVRCJNcbph1bO4L5JeCwo0ko/UWr80nyf1DNQfpQCPDQcqtNU8za5Gzy1QWCS7IR5KBVc/Fc8YyqJQ7y3ezDQDSIgPSryAHu8Ph9ZGOEAkDcd2YjxFQprkJcx17Pc+KiLoSGLep/CkVMC9mpvuPBmsYAM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XAMyrHeH; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XAMyrHeH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B4C6EC4CEEC; Thu, 17 Apr 2025 18:27:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744914430; bh=502owMjVm+hoOhMR1Hf0JVEnqbSzLpYcfIVzN4dcz4I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XAMyrHeHfLzRwrbxfetwQRDA3HiqUq0/dEEsCTS0UxPPaEbIG5tJmbg3rAGVg2Tk/ FWgRyd7u4oJs/J9r/MSQDgrCniZyAAjfv07x8Q433tbtXM/cj02e8z9ogeT8hV3q3k ltrMfiL0NqXOsLJSCktIBNSFeapon/0xKWEuD3gknlKZk/QqP8tIAQ9/aoOZLyKT+w wEHiJRhrRc4OPQUjdEv6x14RMWAq8a1PQmaEc495s7C1yDMMD/HY9o9jkx28ppdzyF 5g8gRBVnj0K+a02wOI8Fe01UgGzGW+BWFfJ0rfAaj1KSLahA7+5wtmYqemxVSM60AF fngOflAxzYM2A== From: Eric Biggers To: linux-crypto@vger.kernel.org Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org, "Jason A . Donenfeld " , Ard Biesheuvel Subject: [PATCH 05/15] crypto: mips - remove CRYPTO dependency of library functions Date: Thu, 17 Apr 2025 11:26:13 -0700 Message-ID: <20250417182623.67808-6-ebiggers@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250417182623.67808-1-ebiggers@kernel.org> References: <20250417182623.67808-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Eric Biggers Continue disentangling the crypto library functions from the generic crypto infrastructure by removing the unnecessary CRYPTO dependency of CRYPTO_CHACHA_MIPS and CRYPTO_POLY1305_MIPS. To do this, make arch/mips/crypto/Kconfig be sourced regardless of CRYPTO, and explicitly list the CRYPTO dependency in the symbols that do need it. Signed-off-by: Eric Biggers --- arch/mips/Kconfig | 2 ++ arch/mips/crypto/Kconfig | 8 ++++---- crypto/Kconfig | 3 --- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index fc0772c1bad4..9e0cf394a46b 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -3136,8 +3136,10 @@ endif # CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER source "drivers/cpuidle/Kconfig" endmenu +source "arch/mips/crypto/Kconfig" + source "arch/mips/kvm/Kconfig" source "arch/mips/vdso/Kconfig" diff --git a/arch/mips/crypto/Kconfig b/arch/mips/crypto/Kconfig index 8283664a1f24..beb7b20cf3e8 100644 --- a/arch/mips/crypto/Kconfig +++ b/arch/mips/crypto/Kconfig @@ -7,41 +7,41 @@ config CRYPTO_POLY1305_MIPS select CRYPTO_ARCH_HAVE_LIB_POLY1305 default CRYPTO_LIB_POLY1305_INTERNAL config CRYPTO_MD5_OCTEON tristate "Digests: MD5 (OCTEON)" - depends on CPU_CAVIUM_OCTEON + depends on CRYPTO && CPU_CAVIUM_OCTEON select CRYPTO_MD5 select CRYPTO_HASH help MD5 message digest algorithm (RFC1321) Architecture: mips OCTEON using crypto instructions, when available config CRYPTO_SHA1_OCTEON tristate "Hash functions: SHA-1 (OCTEON)" - depends on CPU_CAVIUM_OCTEON + depends on CRYPTO && CPU_CAVIUM_OCTEON select CRYPTO_SHA1 select CRYPTO_HASH help SHA-1 secure hash algorithm (FIPS 180) Architecture: mips OCTEON config CRYPTO_SHA256_OCTEON tristate "Hash functions: SHA-224 and SHA-256 (OCTEON)" - depends on CPU_CAVIUM_OCTEON + depends on CRYPTO && CPU_CAVIUM_OCTEON select CRYPTO_SHA256 select CRYPTO_HASH help SHA-224 and SHA-256 secure hash algorithms (FIPS 180) Architecture: mips OCTEON using crypto instructions, when available config CRYPTO_SHA512_OCTEON tristate "Hash functions: SHA-384 and SHA-512 (OCTEON)" - depends on CPU_CAVIUM_OCTEON + depends on CRYPTO && CPU_CAVIUM_OCTEON select CRYPTO_SHA512 select CRYPTO_HASH help SHA-384 and SHA-512 secure hash algorithms (FIPS 180) diff --git a/crypto/Kconfig b/crypto/Kconfig index de71e9c9f2ad..cfa426bea0c6 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig @@ -1424,13 +1424,10 @@ endmenu config CRYPTO_HASH_INFO bool if !KMSAN # avoid false positives from assembly -if MIPS -source "arch/mips/crypto/Kconfig" -endif if PPC source "arch/powerpc/crypto/Kconfig" endif if RISCV source "arch/riscv/crypto/Kconfig" From patchwork Thu Apr 17 18:26:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Biggers X-Patchwork-Id: 882710 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D5E6A266B48; Thu, 17 Apr 2025 18:27:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914432; cv=none; b=TieW1JcNoc1n9BXzZgkuH59y1lJoysrlLzk7Zwr7CXkGnSmUBB1EmJG1dgWLPnKf2eWiWGe7Xj1Vum4hJgejrU8CYeXeyrswKdo+g/XhzSBDQD2dhg7zqd/z8WXQak8gD0fhjR1Av1BuQwHFCD/gSf5HH0visPpXg3ifPp4NLNQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914432; c=relaxed/simple; bh=G+RJfQwnrkpe+wcA+WG93U24b0GCpAuDSETRip59rRQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IGfIpQPZqVP3w9NXGjs3frY+PtHTn5sGVWY7tGaBhXcvDjTqfX8VoUGqmxKG9WxUL8Hij0T+MBLwDRTUcUHdDmObw2mon3jicKwEDHibbgbznVTIbz3McYHRE6mhe6UlJQRq5Z9q14p9rW4htwjr1jw1+RnzlRncj0DuNvvVfx0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=iWMie4DA; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="iWMie4DA" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A3E2AC4CEF0; Thu, 17 Apr 2025 18:27:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744914431; bh=G+RJfQwnrkpe+wcA+WG93U24b0GCpAuDSETRip59rRQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iWMie4DATTokrFQv/LaLT+2y5Te5b7EzAIDVUK6YdkaXLjrBF5GDhBHPh+63huN2W Er83WZhTfYFCVtYFjOI3rJWltW5O9QQ2PCYWbMoZAQvKCc+FAm47RNAKyZTqpbmLMv 5/wbtrkLP20SSF/KC5920irbPfn5FnSadNc4EAK1eVK8tb/4Uf2ZOSnZ3cHuiQ1zNO VzCg47eWhx45SZp2T/tDX+++Uc+pssczx1X8xY3QBG4xkFlVkMu6ZumATl2ZMa97wB quS/5UzIHOtaGmLyS7TiXHsHj/cYY6Mw48TKzI9Z8ILte/qi2p4qJMoeEFfVRCDNxn m7ZdqcDwRm2ag== From: Eric Biggers To: linux-crypto@vger.kernel.org Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org, "Jason A . Donenfeld " , Ard Biesheuvel Subject: [PATCH 06/15] crypto: powerpc - drop redundant dependencies on PPC Date: Thu, 17 Apr 2025 11:26:14 -0700 Message-ID: <20250417182623.67808-7-ebiggers@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250417182623.67808-1-ebiggers@kernel.org> References: <20250417182623.67808-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Eric Biggers arch/powerpc/crypto/Kconfig is sourced only when CONFIG_PPC=y, so there is no need for the symbols defined inside it to depend on PPC. Signed-off-by: Eric Biggers --- arch/powerpc/crypto/Kconfig | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/arch/powerpc/crypto/Kconfig b/arch/powerpc/crypto/Kconfig index cbcf76953d83..8bcc69013464 100644 --- a/arch/powerpc/crypto/Kconfig +++ b/arch/powerpc/crypto/Kconfig @@ -15,48 +15,46 @@ config CRYPTO_CURVE25519_PPC64 Architecture: PowerPC64 - Little-endian config CRYPTO_MD5_PPC tristate "Digests: MD5" - depends on PPC select CRYPTO_HASH help MD5 message digest algorithm (RFC1321) Architecture: powerpc config CRYPTO_SHA1_PPC tristate "Hash functions: SHA-1" - depends on PPC help SHA-1 secure hash algorithm (FIPS 180) Architecture: powerpc config CRYPTO_SHA1_PPC_SPE tristate "Hash functions: SHA-1 (SPE)" - depends on PPC && SPE + depends on SPE help SHA-1 secure hash algorithm (FIPS 180) Architecture: powerpc using - SPE (Signal Processing Engine) extensions config CRYPTO_SHA256_PPC_SPE tristate "Hash functions: SHA-224 and SHA-256 (SPE)" - depends on PPC && SPE + depends on SPE select CRYPTO_SHA256 select CRYPTO_HASH help SHA-224 and SHA-256 secure hash algorithms (FIPS 180) Architecture: powerpc using - SPE (Signal Processing Engine) extensions config CRYPTO_AES_PPC_SPE tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (SPE)" - depends on PPC && SPE + depends on SPE select CRYPTO_SKCIPHER help Block ciphers: AES cipher algorithms (FIPS-197) Length-preserving ciphers: AES with ECB, CBC, CTR, and XTS modes From patchwork Thu Apr 17 18:26:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Biggers X-Patchwork-Id: 881998 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7CEDE267B16; Thu, 17 Apr 2025 18:27:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914432; cv=none; b=HMwxOsK9jj4bTesh6rP6/kDoWJUzm/4m6R5iN7g5arvz8etGiBzIJuRlwS2C3QGBTHYregKziabJRGaVXKrPqts0qR0oLDLT0NSzcoWN+5tZYSqlbnsSrqZ0RP642kC8HwLOIaAs9Ww37gcB7IzWZPTFYavfT3XVC9euwTumeiI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914432; c=relaxed/simple; bh=dsE7qfp3A3zmlcPG+tvm4sv24/L4ppO0aAJ6BZiEshE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bmmTG08Z2RAdrtXWkDzbjADu+LZJuKb4ucBtoB3Vp4vZ1pLuVfdSgnpIkmR7bz0K6yPpVMhgtt7JfmCOdZDPzW4mvXaAguaQaMTSePGju6GeBJnvb/Iq3JA0NDlXRNn8bMu+W4ZXdaw8LXCNu4aLiJpa/A5pWLP9rOUTS0LMaEc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rDsCxtn3; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rDsCxtn3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 96532C4CEEA; Thu, 17 Apr 2025 18:27:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744914432; bh=dsE7qfp3A3zmlcPG+tvm4sv24/L4ppO0aAJ6BZiEshE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rDsCxtn3lebQV/DysLhlXFbm/jncgwomZE43WtxQP24LtFE9xOa6eiBclZTQg8gDA 3i+j3v6r50KIUvO1d2f48AAFIoj4fUY/I6hS7t2+pB5aL99Y91V+Kzolg1S3dFzK1W YmIRVjS0t8vEJ6EiUPzxMajKFyxEWSlavCF2LEd6VhnTb/rYUhXfOqH5nXDNaDa8ni ar9klYXp61RWo3pSI30VW4AUilqd4McXNnCe0pDOHszpxAKhTden3pUGSby2brHFmP 9x6UwlkgdIPBH9H34XsZtVKioNaIav0ZkUaIIrvvYZfYdw17pnWZSyakOtR5xQXcRz o04U7Rx5/k7vg== From: Eric Biggers To: linux-crypto@vger.kernel.org Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org, "Jason A . Donenfeld " , Ard Biesheuvel Subject: [PATCH 07/15] crypto: powerpc - remove CRYPTO dependency of library functions Date: Thu, 17 Apr 2025 11:26:15 -0700 Message-ID: <20250417182623.67808-8-ebiggers@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250417182623.67808-1-ebiggers@kernel.org> References: <20250417182623.67808-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Eric Biggers Continue disentangling the crypto library functions from the generic crypto infrastructure by removing the unnecessary CRYPTO dependency of CRYPTO_CHACHA20_P10 and CRYPTO_POLY1305_P10. To do this, make arch/powerpc/crypto/Kconfig be sourced regardless of CRYPTO, and explicitly list the CRYPTO dependency in the symbols that do need it. Signed-off-by: Eric Biggers --- arch/powerpc/Kconfig | 2 ++ arch/powerpc/crypto/Kconfig | 16 +++++++++------- crypto/Kconfig | 3 --- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 6722625a406a..9ffd80880675 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -1346,8 +1346,10 @@ config PHYSICAL_START endif config PPC_LIB_RHEAP bool +source "arch/powerpc/crypto/Kconfig" + source "arch/powerpc/kvm/Kconfig" source "kernel/livepatch/Kconfig" diff --git a/arch/powerpc/crypto/Kconfig b/arch/powerpc/crypto/Kconfig index 8bcc69013464..0f14bdf104d5 100644 --- a/arch/powerpc/crypto/Kconfig +++ b/arch/powerpc/crypto/Kconfig @@ -2,11 +2,11 @@ menu "Accelerated Cryptographic Algorithms for CPU (powerpc)" config CRYPTO_CURVE25519_PPC64 tristate - depends on PPC64 && CPU_LITTLE_ENDIAN + depends on CRYPTO && PPC64 && CPU_LITTLE_ENDIAN select CRYPTO_KPP select CRYPTO_LIB_CURVE25519_GENERIC select CRYPTO_ARCH_HAVE_LIB_CURVE25519 default CRYPTO_LIB_CURVE25519_INTERNAL help @@ -15,46 +15,48 @@ config CRYPTO_CURVE25519_PPC64 Architecture: PowerPC64 - Little-endian config CRYPTO_MD5_PPC tristate "Digests: MD5" + depends on CRYPTO select CRYPTO_HASH help MD5 message digest algorithm (RFC1321) Architecture: powerpc config CRYPTO_SHA1_PPC tristate "Hash functions: SHA-1" + depends on CRYPTO help SHA-1 secure hash algorithm (FIPS 180) Architecture: powerpc config CRYPTO_SHA1_PPC_SPE tristate "Hash functions: SHA-1 (SPE)" - depends on SPE + depends on CRYPTO && SPE help SHA-1 secure hash algorithm (FIPS 180) Architecture: powerpc using - SPE (Signal Processing Engine) extensions config CRYPTO_SHA256_PPC_SPE tristate "Hash functions: SHA-224 and SHA-256 (SPE)" - depends on SPE + depends on CRYPTO && SPE select CRYPTO_SHA256 select CRYPTO_HASH help SHA-224 and SHA-256 secure hash algorithms (FIPS 180) Architecture: powerpc using - SPE (Signal Processing Engine) extensions config CRYPTO_AES_PPC_SPE tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (SPE)" - depends on SPE + depends on CRYPTO && SPE select CRYPTO_SKCIPHER help Block ciphers: AES cipher algorithms (FIPS-197) Length-preserving ciphers: AES with ECB, CBC, CTR, and XTS modes @@ -72,11 +74,11 @@ config CRYPTO_AES_PPC_SPE architecture specific assembler implementations that work on 1KB tables or 256 bytes S-boxes. config CRYPTO_AES_GCM_P10 tristate "Stitched AES/GCM acceleration support on P10 or later CPU (PPC)" - depends on PPC64 && CPU_LITTLE_ENDIAN && VSX + depends on CRYPTO && PPC64 && CPU_LITTLE_ENDIAN && VSX select CRYPTO_LIB_AES select CRYPTO_ALGAPI select CRYPTO_AEAD select CRYPTO_SKCIPHER select CRYPTO_SIMD @@ -104,17 +106,17 @@ config CRYPTO_POLY1305_P10 select CRYPTO_LIB_POLY1305_GENERIC default CRYPTO_LIB_POLY1305_INTERNAL config CRYPTO_DEV_VMX bool "Support for VMX cryptographic acceleration instructions" - depends on PPC64 && VSX + depends on CRYPTO && PPC64 && VSX help Support for VMX cryptographic acceleration instructions. config CRYPTO_DEV_VMX_ENCRYPT tristate "Encryption acceleration support on P8 CPU" - depends on CRYPTO_DEV_VMX + depends on CRYPTO && CRYPTO_DEV_VMX select CRYPTO_AES select CRYPTO_CBC select CRYPTO_CTR select CRYPTO_GHASH select CRYPTO_XTS diff --git a/crypto/Kconfig b/crypto/Kconfig index cfa426bea0c6..2467dba73372 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig @@ -1424,13 +1424,10 @@ endmenu config CRYPTO_HASH_INFO bool if !KMSAN # avoid false positives from assembly -if PPC -source "arch/powerpc/crypto/Kconfig" -endif if RISCV source "arch/riscv/crypto/Kconfig" endif if S390 source "arch/s390/crypto/Kconfig" From patchwork Thu Apr 17 18:26:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Biggers X-Patchwork-Id: 882709 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AC7D9268699; Thu, 17 Apr 2025 18:27:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914433; cv=none; b=Ct03/MvLqFLdWlD8i83ET51eKU3KvjZJPxCwegi4C8WZAr2wuOpgj8kBIB5WSqsmIsj72AhrbC2HlVBh6GePvcAfhNP5+IrEVdyoyX4Sxqhbe04+GfARBI+le8CkMUThFsmpxmLRfwHevyYuHTd/F5tcVg1apnWyXe0t0KFfQyM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914433; c=relaxed/simple; bh=UX4WI8EDuBMolYsjuDM2U8XKg5QnChDBXSYKd39EvNs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uQKcABfPU0/WP3MbhJjT1i+2mA47ixLWPCdVGvxHMKne0cE8GCFiJPcXtu6zUDij494vszC81LOjK0qObrhGO17Nns8StUyQQvWi3KpmPkc8Q9SWeJMe1QrBXO0LckGKQbVkeGmlysWpATNDZGytt8b0w0RJz7R3ikTa8LCeSfo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=kEzKamQ7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="kEzKamQ7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7754CC4CEE4; Thu, 17 Apr 2025 18:27:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744914433; bh=UX4WI8EDuBMolYsjuDM2U8XKg5QnChDBXSYKd39EvNs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kEzKamQ77+ydJivcumu5A0EVk/kXXWFfSMds2u7k1YTk1H+rF/67bqU+j+jJWKdl+ Q2n7E/dnU6nc5VZ8aq76mLC/hUu6qr1DUvojFRMnBTG+hbecrgjHXxpJDYNWm7g372 mmod6G58GI206xhh4cwUi5gmbRp9pUV4UvcKffRJAd/SAd+OZL0MArn+XZe+a+lWse WraOSg0kbetPV1xAm5FmZOqOUclZDEor8z8B8fJwgV0wrK0yHCkvuFiYjwgVictUSB YND7Tu4UPgsbBXF3UxPOsP1otOEQDGQ0geJEuAFCBu/GYCNhtmvhRyLJmhJesven4e nLNW8wApG8jyw== From: Eric Biggers To: linux-crypto@vger.kernel.org Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org, "Jason A . Donenfeld " , Ard Biesheuvel Subject: [PATCH 08/15] crypto: riscv - remove CRYPTO dependency of library functions Date: Thu, 17 Apr 2025 11:26:16 -0700 Message-ID: <20250417182623.67808-9-ebiggers@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250417182623.67808-1-ebiggers@kernel.org> References: <20250417182623.67808-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Eric Biggers Continue disentangling the crypto library functions from the generic crypto infrastructure by removing the unnecessary CRYPTO dependency of CRYPTO_CHACHA_RISCV64. To do this, make arch/riscv/crypto/Kconfig be sourced regardless of CRYPTO, and explicitly list the CRYPTO dependency in the symbols that do need it. Signed-off-by: Eric Biggers --- arch/riscv/Kconfig | 2 ++ arch/riscv/crypto/Kconfig | 12 ++++++------ crypto/Kconfig | 3 --- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index bbec87b79309..baa7b8d98ed8 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -1349,8 +1349,10 @@ source "drivers/cpuidle/Kconfig" source "drivers/cpufreq/Kconfig" endmenu # "CPU Power Management" +source "arch/riscv/crypto/Kconfig" + source "arch/riscv/kvm/Kconfig" source "drivers/acpi/Kconfig" diff --git a/arch/riscv/crypto/Kconfig b/arch/riscv/crypto/Kconfig index 27a1f26d41bd..08547694937c 100644 --- a/arch/riscv/crypto/Kconfig +++ b/arch/riscv/crypto/Kconfig @@ -2,11 +2,11 @@ menu "Accelerated Cryptographic Algorithms for CPU (riscv)" config CRYPTO_AES_RISCV64 tristate "Ciphers: AES, modes: ECB, CBC, CTS, CTR, XTS" - depends on 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO + depends on CRYPTO && 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO select CRYPTO_ALGAPI select CRYPTO_LIB_AES select CRYPTO_SKCIPHER help Block cipher: AES cipher algorithms @@ -25,43 +25,43 @@ config CRYPTO_CHACHA_RISCV64 select CRYPTO_LIB_CHACHA_GENERIC default CRYPTO_LIB_CHACHA_INTERNAL config CRYPTO_GHASH_RISCV64 tristate "Hash functions: GHASH" - depends on 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO + depends on CRYPTO && 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO select CRYPTO_GCM help GCM GHASH function (NIST SP 800-38D) Architecture: riscv64 using: - Zvkg vector crypto extension config CRYPTO_SHA256_RISCV64 tristate "Hash functions: SHA-224 and SHA-256" - depends on 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO + depends on CRYPTO && 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO select CRYPTO_SHA256 help SHA-224 and SHA-256 secure hash algorithm (FIPS 180) Architecture: riscv64 using: - Zvknha or Zvknhb vector crypto extensions - Zvkb vector crypto extension config CRYPTO_SHA512_RISCV64 tristate "Hash functions: SHA-384 and SHA-512" - depends on 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO + depends on CRYPTO && 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO select CRYPTO_SHA512 help SHA-384 and SHA-512 secure hash algorithm (FIPS 180) Architecture: riscv64 using: - Zvknhb vector crypto extension - Zvkb vector crypto extension config CRYPTO_SM3_RISCV64 tristate "Hash functions: SM3 (ShangMi 3)" - depends on 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO + depends on CRYPTO && 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO select CRYPTO_HASH select CRYPTO_LIB_SM3 help SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012) @@ -69,11 +69,11 @@ config CRYPTO_SM3_RISCV64 - Zvksh vector crypto extension - Zvkb vector crypto extension config CRYPTO_SM4_RISCV64 tristate "Ciphers: SM4 (ShangMi 4)" - depends on 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO + depends on CRYPTO && 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO select CRYPTO_ALGAPI select CRYPTO_SM4 help SM4 block cipher algorithm (OSCCA GB/T 32907-2016, ISO/IEC 18033-3:2010/Amd 1:2021) diff --git a/crypto/Kconfig b/crypto/Kconfig index 2467dba73372..8c334c9f2081 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig @@ -1424,13 +1424,10 @@ endmenu config CRYPTO_HASH_INFO bool if !KMSAN # avoid false positives from assembly -if RISCV -source "arch/riscv/crypto/Kconfig" -endif if S390 source "arch/s390/crypto/Kconfig" endif if SPARC source "arch/sparc/crypto/Kconfig" From patchwork Thu Apr 17 18:26:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Biggers X-Patchwork-Id: 881997 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 37CFD268C69; Thu, 17 Apr 2025 18:27:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914434; cv=none; b=r9Lp+RCxFJ8ka4YHVJ6lTbAmgPW0IJGhz64beJ1B58QJ8ItvXm4KJ2oqAbTtCRP33zwKBlNNlYLczP6GXNohIemo9JdxBhS47H0/fo4kuQWIw5vknD4/O1ccxMEP5BIvzUkyTZy7CR8aO3B0WysB8XRW8NmB0qW3JoM0QmASk3k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914434; c=relaxed/simple; bh=obiaeiH3M3/PJ05fFDi3tJIZJm6vLPgHN3Yv3HcRMYQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aNDDGSRvgTLjEA0K1rnf9+mMr8f0uzCuABpamzr/6XMg4w3+a55t6yQ8kYx/ErJIIHVtQ+DM3DDcuPB0A+tvkvsJ838TAqiqFs6vbrpVlWqLRfwgHbnrWYopgZTzju0TSjQWcZCATRYSRWRxM+TgifernXlfXuohW4z15maoV4k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TFRg94yt; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="TFRg94yt" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5E381C4CEE7; Thu, 17 Apr 2025 18:27:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744914434; bh=obiaeiH3M3/PJ05fFDi3tJIZJm6vLPgHN3Yv3HcRMYQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TFRg94ytvFwWb9eEX7DfMbWd/h6Y8idIO3Z1B3mXh/Djib/YaOtCh+29vjwVs79SA QM9c0oAyqr0FmMxLVQo0BJjGSeljXZv+0ige27EFJNNGFGIrjB8PFGGxLYh9gNSLjL OBJEI5gLRWvc/6c5B8jhHR1zHzlvZe5+dcUS3we+S5R+BYOZA0qjnPGO/f4gjySuGi 9Xc7Ce01qxhIBBgjg4Do4jIs/J3qRFhT6eXBcCtyOmba9O27SK9Cs3evZHonw/v4sI CfLmw9KzH2g+HVO2hDtYFuLXnqYzsaGMf/n9P6mu//qnJKjcB6bDArCoeA6HE2U4Ts VvktptufPNesg== From: Eric Biggers To: linux-crypto@vger.kernel.org Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org, "Jason A . Donenfeld " , Ard Biesheuvel Subject: [PATCH 09/15] crypto: s390 - drop redundant dependencies on S390 Date: Thu, 17 Apr 2025 11:26:17 -0700 Message-ID: <20250417182623.67808-10-ebiggers@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250417182623.67808-1-ebiggers@kernel.org> References: <20250417182623.67808-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Eric Biggers arch/s390/crypto/Kconfig is sourced only when CONFIG_S390=y, so there is no need for the symbols defined inside it to depend on S390. Signed-off-by: Eric Biggers --- arch/s390/crypto/Kconfig | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/arch/s390/crypto/Kconfig b/arch/s390/crypto/Kconfig index 055b08f259ab..e88d9cd256ef 100644 --- a/arch/s390/crypto/Kconfig +++ b/arch/s390/crypto/Kconfig @@ -2,77 +2,70 @@ menu "Accelerated Cryptographic Algorithms for CPU (s390)" config CRYPTO_SHA512_S390 tristate "Hash functions: SHA-384 and SHA-512" - depends on S390 select CRYPTO_HASH help SHA-384 and SHA-512 secure hash algorithms (FIPS 180) Architecture: s390 It is available as of z10. config CRYPTO_SHA1_S390 tristate "Hash functions: SHA-1" - depends on S390 select CRYPTO_HASH help SHA-1 secure hash algorithm (FIPS 180) Architecture: s390 It is available as of z990. config CRYPTO_SHA256_S390 tristate "Hash functions: SHA-224 and SHA-256" - depends on S390 select CRYPTO_HASH help SHA-224 and SHA-256 secure hash algorithms (FIPS 180) Architecture: s390 It is available as of z9. config CRYPTO_SHA3_256_S390 tristate "Hash functions: SHA3-224 and SHA3-256" - depends on S390 select CRYPTO_HASH help SHA3-224 and SHA3-256 secure hash algorithms (FIPS 202) Architecture: s390 It is available as of z14. config CRYPTO_SHA3_512_S390 tristate "Hash functions: SHA3-384 and SHA3-512" - depends on S390 select CRYPTO_HASH help SHA3-384 and SHA3-512 secure hash algorithms (FIPS 202) Architecture: s390 It is available as of z14. config CRYPTO_GHASH_S390 tristate "Hash functions: GHASH" - depends on S390 select CRYPTO_HASH help GCM GHASH hash function (NIST SP800-38D) Architecture: s390 It is available as of z196. config CRYPTO_AES_S390 tristate "Ciphers: AES, modes: ECB, CBC, CTR, XTS, GCM" - depends on S390 select CRYPTO_ALGAPI select CRYPTO_SKCIPHER help Block cipher: AES cipher algorithms (FIPS 197) AEAD cipher: AES with GCM @@ -90,11 +83,10 @@ config CRYPTO_AES_S390 key sizes and XTS mode is hardware accelerated for 256 and 512 bit keys. config CRYPTO_DES_S390 tristate "Ciphers: DES and Triple DES EDE, modes: ECB, CBC, CTR" - depends on S390 select CRYPTO_ALGAPI select CRYPTO_SKCIPHER select CRYPTO_LIB_DES help Block ciphers: DES (FIPS 46-2) cipher algorithm @@ -107,18 +99,16 @@ config CRYPTO_DES_S390 As of z990 the ECB and CBC mode are hardware accelerated. As of z196 the CTR mode is hardware accelerated. config CRYPTO_CHACHA_S390 tristate - depends on S390 select CRYPTO_LIB_CHACHA_GENERIC select CRYPTO_ARCH_HAVE_LIB_CHACHA default CRYPTO_LIB_CHACHA_INTERNAL config CRYPTO_HMAC_S390 tristate "Keyed-hash message authentication code: HMAC" - depends on S390 select CRYPTO_HASH help s390 specific HMAC hardware support for SHA224, SHA256, SHA384 and SHA512. From patchwork Thu Apr 17 18:26:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Biggers X-Patchwork-Id: 882708 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 28B32269830; Thu, 17 Apr 2025 18:27:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914435; cv=none; b=ggVDANTmFVxDBFcWPud4wJFy21h6NWyg8zjawRBVl+pmQtQd3CtcFtzVLnU29zD9QZNjQiPFcxfvdtG4rXTBil6KTC//1DS8I+qSoEn0DU4eYa4QytTnXRvlHhnlJmELXQbNrXZ2+Lde0t6cJU8aFzP7+ZvQ3iwW1eIX0QQpSQ8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914435; c=relaxed/simple; bh=wTYOYOEcD2tS5YApzAw5JpRPXQeBTl3cVi6SPyyOu+g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mVbijrkhKJUBYH/xNAtn2EWsWcg+WlVbeXWWCJs6D3f0gMFCQpmaLVNMU6NWfxw2Sk9ttur/X33IliGSRdWeWbMpSp97lrLe+Y1b4QuuwZ4Jej+D3l7ihXm8AoOXzS9+qlTfpIikRC8oGfL0hxLGXGk4jwrcMWONRSRBo4KSpG8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XbNidi6A; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XbNidi6A" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4949CC4CEEC; Thu, 17 Apr 2025 18:27:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744914435; bh=wTYOYOEcD2tS5YApzAw5JpRPXQeBTl3cVi6SPyyOu+g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XbNidi6AtUqg9ISmFMuBJvftddFhJ2bcWeL+ejDz2zW4ZErEzBHzZYDummTru8tmW y4GOfnNa09S9itz1MfWA23c6oDCpNd7uqxbv1F/9JdCV0B2Db+8HsWek8EzVZdO+vO +sRYZ5pucJykN1CDLhm35tsJPBJYshSIF25x70GuEHXa11iNNqyuO1DDOcDJ2EkRza xWWwnzzSLvJGFi/kjZWECMXrYXrGklDMeY0x2rXJWAIFC+B6H8ACWQ5kPnlU+4xN3i mkhVtPkRCj5RRVowUKtQFtRaTZhi7MCmpNj8shK6yD8mqvrdNNF7TxpMUYCJ9d3FwO qcCdh5Ka8LHMQ== From: Eric Biggers To: linux-crypto@vger.kernel.org Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org, "Jason A . Donenfeld " , Ard Biesheuvel Subject: [PATCH 10/15] crypto: s390 - remove CRYPTO dependency of library functions Date: Thu, 17 Apr 2025 11:26:18 -0700 Message-ID: <20250417182623.67808-11-ebiggers@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250417182623.67808-1-ebiggers@kernel.org> References: <20250417182623.67808-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Eric Biggers Continue disentangling the crypto library functions from the generic crypto infrastructure by removing the unnecessary CRYPTO dependency of CRYPTO_CHACHA_S390. To do this, make arch/s390/crypto/Kconfig be sourced regardless of CRYPTO, and explicitly list the CRYPTO dependency in the symbols that do need it. Signed-off-by: Eric Biggers --- arch/s390/Kconfig | 4 ++++ arch/s390/crypto/Kconfig | 9 +++++++++ crypto/Kconfig | 3 --- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index db8161ebb43c..2f32d51e8a73 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig @@ -679,10 +679,14 @@ config KERNEL_IMAGE_BASE If the value of this option leads to the kernel image overlapping the virtual memory where other data structures are located, this option is ignored and the image is loaded above the structures. +if !KMSAN # avoid false positives from assembly +source "arch/s390/crypto/Kconfig" +endif + endmenu menu "Memory setup" config ARCH_SPARSEMEM_ENABLE diff --git a/arch/s390/crypto/Kconfig b/arch/s390/crypto/Kconfig index e88d9cd256ef..a2e6efd8aed8 100644 --- a/arch/s390/crypto/Kconfig +++ b/arch/s390/crypto/Kconfig @@ -2,70 +2,77 @@ menu "Accelerated Cryptographic Algorithms for CPU (s390)" config CRYPTO_SHA512_S390 tristate "Hash functions: SHA-384 and SHA-512" + depends on CRYPTO select CRYPTO_HASH help SHA-384 and SHA-512 secure hash algorithms (FIPS 180) Architecture: s390 It is available as of z10. config CRYPTO_SHA1_S390 tristate "Hash functions: SHA-1" + depends on CRYPTO select CRYPTO_HASH help SHA-1 secure hash algorithm (FIPS 180) Architecture: s390 It is available as of z990. config CRYPTO_SHA256_S390 tristate "Hash functions: SHA-224 and SHA-256" + depends on CRYPTO select CRYPTO_HASH help SHA-224 and SHA-256 secure hash algorithms (FIPS 180) Architecture: s390 It is available as of z9. config CRYPTO_SHA3_256_S390 tristate "Hash functions: SHA3-224 and SHA3-256" + depends on CRYPTO select CRYPTO_HASH help SHA3-224 and SHA3-256 secure hash algorithms (FIPS 202) Architecture: s390 It is available as of z14. config CRYPTO_SHA3_512_S390 tristate "Hash functions: SHA3-384 and SHA3-512" + depends on CRYPTO select CRYPTO_HASH help SHA3-384 and SHA3-512 secure hash algorithms (FIPS 202) Architecture: s390 It is available as of z14. config CRYPTO_GHASH_S390 tristate "Hash functions: GHASH" + depends on CRYPTO select CRYPTO_HASH help GCM GHASH hash function (NIST SP800-38D) Architecture: s390 It is available as of z196. config CRYPTO_AES_S390 tristate "Ciphers: AES, modes: ECB, CBC, CTR, XTS, GCM" + depends on CRYPTO select CRYPTO_ALGAPI select CRYPTO_SKCIPHER help Block cipher: AES cipher algorithms (FIPS 197) AEAD cipher: AES with GCM @@ -83,10 +90,11 @@ config CRYPTO_AES_S390 key sizes and XTS mode is hardware accelerated for 256 and 512 bit keys. config CRYPTO_DES_S390 tristate "Ciphers: DES and Triple DES EDE, modes: ECB, CBC, CTR" + depends on CRYPTO select CRYPTO_ALGAPI select CRYPTO_SKCIPHER select CRYPTO_LIB_DES help Block ciphers: DES (FIPS 46-2) cipher algorithm @@ -105,10 +113,11 @@ config CRYPTO_CHACHA_S390 select CRYPTO_ARCH_HAVE_LIB_CHACHA default CRYPTO_LIB_CHACHA_INTERNAL config CRYPTO_HMAC_S390 tristate "Keyed-hash message authentication code: HMAC" + depends on CRYPTO select CRYPTO_HASH help s390 specific HMAC hardware support for SHA224, SHA256, SHA384 and SHA512. diff --git a/crypto/Kconfig b/crypto/Kconfig index 8c334c9f2081..78e83ce576ed 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig @@ -1424,13 +1424,10 @@ endmenu config CRYPTO_HASH_INFO bool if !KMSAN # avoid false positives from assembly -if S390 -source "arch/s390/crypto/Kconfig" -endif if SPARC source "arch/sparc/crypto/Kconfig" endif if X86 source "arch/x86/crypto/Kconfig" From patchwork Thu Apr 17 18:26:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Biggers X-Patchwork-Id: 881996 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2091A269D03; Thu, 17 Apr 2025 18:27:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914436; cv=none; b=GIn6W7B34ng8X+L1OvJiHqb/V7HZzeOnCDshNxuJpehwetsksdc2y9+q8rlvCsejT9m19cK/P7d7z0FHZCKDZxfSyyUdFEySFvbs/hxITZwD8KTrATPtl8qscOrLrIQtz1zTLUFB+1HPbB3JqSRgFSyhHUAaTP3xEaqPTdKiMCM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914436; c=relaxed/simple; bh=JbJS8/qnHgUt3U/s/OZ1wHouJGsPrwOIMNb0fsrruts=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WQp2ZxXZNyq8lld+wgdx/nV5CqyaAkwSWIEa2zT0d9nGQRP25tPJ1yvQU8dcSQamJbESjb55Y1GceSc0525Tt78LH3cS5bVPJA30lPlpkMsFE20XBq2t0km7K9c822tOpXK3NI+G+cw/PRDkMR+JqX613ZIQ1dNO/Vqffsv3ivg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IsPQ7SM0; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="IsPQ7SM0" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3A178C4CEEE; Thu, 17 Apr 2025 18:27:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744914435; bh=JbJS8/qnHgUt3U/s/OZ1wHouJGsPrwOIMNb0fsrruts=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IsPQ7SM08OE2nVaOMuo7BI2L0WCPbuWvkvRFKYA1VN20m7TA2WLujzpAcLu7ZMcib hPnCRg0E7SNiql3hUMjtjrKocI+hy9AGuNATMqCgnk/rNoSndaJyXohW2QtNmOUSPf HrM2yP1EtnKQZI2TXj4jwGIcWlPFoOfnUtif6W1J55H7QSOzeGZBBl4pFsL/oOnTEN CWOaPKhbHIyWJ9YsfjPH79eEhWbfY/xLRdrWQ9tJfUzkID0IPOW6mp/fkmf8M1/xUN vdYRLr2CQUbbJhMAXeeDorK0RWUQEsRQB9v5kyhJZrk3fHLwmkx9SgLxxg4V3BakOJ ld/9yQXGcf11g== From: Eric Biggers To: linux-crypto@vger.kernel.org Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org, "Jason A . Donenfeld " , Ard Biesheuvel Subject: [PATCH 11/15] crypto: sparc - source arch/sparc/crypto/Kconfig without CRYPTO Date: Thu, 17 Apr 2025 11:26:19 -0700 Message-ID: <20250417182623.67808-12-ebiggers@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250417182623.67808-1-ebiggers@kernel.org> References: <20250417182623.67808-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Eric Biggers Source arch/sparc/crypto/Kconfig regardless of CRYPTO, so that if library functions are ever added to there they can be built without pulling in the generic crypto infrastructure. Signed-off-by: Eric Biggers --- arch/sparc/Kconfig | 2 ++ arch/sparc/crypto/Kconfig | 14 +++++++------- crypto/Kconfig | 3 --- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index 0f88123925a4..b1081e627a28 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig @@ -407,10 +407,12 @@ config UBOOT_ENTRY_ADDR hardcoded by the SPARC32 and LEON port. This is the virtual address u-boot jumps to when booting the Linux Kernel. +source "arch/sparc/crypto/Kconfig" + endmenu endif endmenu diff --git a/arch/sparc/crypto/Kconfig b/arch/sparc/crypto/Kconfig index e858597de89d..477a85370507 100644 --- a/arch/sparc/crypto/Kconfig +++ b/arch/sparc/crypto/Kconfig @@ -2,11 +2,11 @@ menu "Accelerated Cryptographic Algorithms for CPU (sparc64)" config CRYPTO_DES_SPARC64 tristate "Ciphers: DES and Triple DES EDE, modes: ECB/CBC" - depends on SPARC64 + depends on CRYPTO && SPARC64 select CRYPTO_ALGAPI select CRYPTO_LIB_DES select CRYPTO_SKCIPHER help Block cipher: DES (FIPS 46-2) cipher algorithm @@ -16,61 +16,61 @@ config CRYPTO_DES_SPARC64 Architecture: sparc64 config CRYPTO_MD5_SPARC64 tristate "Digests: MD5" - depends on SPARC64 + depends on CRYPTO && SPARC64 select CRYPTO_MD5 select CRYPTO_HASH help MD5 message digest algorithm (RFC1321) Architecture: sparc64 using crypto instructions, when available config CRYPTO_SHA1_SPARC64 tristate "Hash functions: SHA-1" - depends on SPARC64 + depends on CRYPTO && SPARC64 select CRYPTO_SHA1 select CRYPTO_HASH help SHA-1 secure hash algorithm (FIPS 180) Architecture: sparc64 config CRYPTO_SHA256_SPARC64 tristate "Hash functions: SHA-224 and SHA-256" - depends on SPARC64 + depends on CRYPTO && SPARC64 select CRYPTO_SHA256 select CRYPTO_HASH help SHA-224 and SHA-256 secure hash algorithms (FIPS 180) Architecture: sparc64 using crypto instructions, when available config CRYPTO_SHA512_SPARC64 tristate "Hash functions: SHA-384 and SHA-512" - depends on SPARC64 + depends on CRYPTO && SPARC64 select CRYPTO_SHA512 select CRYPTO_HASH help SHA-384 and SHA-512 secure hash algorithms (FIPS 180) Architecture: sparc64 using crypto instructions, when available config CRYPTO_AES_SPARC64 tristate "Ciphers: AES, modes: ECB, CBC, CTR" - depends on SPARC64 + depends on CRYPTO && SPARC64 select CRYPTO_SKCIPHER help Block ciphers: AES cipher algorithms (FIPS-197) Length-preseving ciphers: AES with ECB, CBC, and CTR modes Architecture: sparc64 using crypto instructions config CRYPTO_CAMELLIA_SPARC64 tristate "Ciphers: Camellia, modes: ECB, CBC" - depends on SPARC64 + depends on CRYPTO && SPARC64 select CRYPTO_ALGAPI select CRYPTO_SKCIPHER help Block ciphers: Camellia cipher algorithms Length-preserving ciphers: Camellia with ECB and CBC modes diff --git a/crypto/Kconfig b/crypto/Kconfig index 78e83ce576ed..c0906bb4f844 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig @@ -1424,13 +1424,10 @@ endmenu config CRYPTO_HASH_INFO bool if !KMSAN # avoid false positives from assembly -if SPARC -source "arch/sparc/crypto/Kconfig" -endif if X86 source "arch/x86/crypto/Kconfig" endif endif From patchwork Thu Apr 17 18:26:20 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Biggers X-Patchwork-Id: 882707 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 679D026A0F2; Thu, 17 Apr 2025 18:27:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914437; cv=none; b=gWQusAdQ3X9R2hasZDMsxNtODJakUiptjPEDgV+Xbd6sOEVV3Z8HrIcz8tmNtelwewjFjCzR/dlf9pko/mUcBUBcfPFJpzoZZju1d2tSwzq4iDN6S3NODlwYWi4gcdtIqadTP1wrIDzd9mTWtWrWnCuNQZD0GBnP3PVT9TzW3Wo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914437; c=relaxed/simple; bh=jEsTNJdzPnRM1dU4ObaR6WAFA9yoz0tNEUtaftTE+C8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=c6JX2o8N7o0q0AXy3B7gCCVJRH2aZTijWZx06LDKGf2PNkrtUahW2SiX+g7RnZWNnlC5HIWOxNgEBU/73Btxmzgvb0oTdx90Fem4aHeWNM7s8/dzf5rg2hFXngPUgZzSrhOhuNK7W09PAYmo7YLbkQRlyJwSYDp/129Q0Sg+v3o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Zf/SNP76; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Zf/SNP76" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1A3CDC4CEEF; Thu, 17 Apr 2025 18:27:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744914436; bh=jEsTNJdzPnRM1dU4ObaR6WAFA9yoz0tNEUtaftTE+C8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Zf/SNP76t/G/paguvsYhDIVWHj9ewjGgJLi81Fw7TtrTUfkN0rNws9WMp+2Bmlu7n w0prgRoqwnI7M3CynoV/zcl52moIT5+fks1E6kdi1txpvpi/jofHwn867VeYqruiAJ 8sfGYjWcMFg+5lgVFbZEoY+zuTPdI+XO/eWL8PSXIO275GDA9SurtK45MLci+d0Q6u 96iZAMlD/95t2ZoihXPKUtWR/dCSklp3BqmRWZl5ltq+Z87G9xI6L+dLzhHlP8CKYn rsh9KOnfE3xGXv2iuTdVIpSXfFngwoVmTdNYeSuAaQ4uS9kPkSDMKlYQMvV6k5JttH 13H760ZFL6vfA== From: Eric Biggers To: linux-crypto@vger.kernel.org Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org, "Jason A . Donenfeld " , Ard Biesheuvel Subject: [PATCH 12/15] crypto: x86 - drop redundant dependencies on X86 Date: Thu, 17 Apr 2025 11:26:20 -0700 Message-ID: <20250417182623.67808-13-ebiggers@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250417182623.67808-1-ebiggers@kernel.org> References: <20250417182623.67808-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Eric Biggers arch/x86/crypto/Kconfig is sourced only when CONFIG_X86=y, so there is no need for the symbols defined inside it to depend on X86. In the case of CRYPTO_TWOFISH_586 and CRYPTO_TWOFISH_X86_64, the dependency was actually on '(X86 || UML_X86)', which suggests that these two symbols were intended to be available under user-mode Linux as well. Yet, again these symbols were defined only when CONFIG_X86=y, so that was not the case. Just remove this redundant dependency. Signed-off-by: Eric Biggers --- arch/x86/crypto/Kconfig | 67 ++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 34 deletions(-) diff --git a/arch/x86/crypto/Kconfig b/arch/x86/crypto/Kconfig index 9a3cade49f63..b4df6cf37e0e 100644 --- a/arch/x86/crypto/Kconfig +++ b/arch/x86/crypto/Kconfig @@ -2,11 +2,11 @@ menu "Accelerated Cryptographic Algorithms for CPU (x86)" config CRYPTO_CURVE25519_X86 tristate - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_KPP select CRYPTO_LIB_CURVE25519_GENERIC select CRYPTO_ARCH_HAVE_LIB_CURVE25519 default CRYPTO_LIB_CURVE25519_INTERNAL help @@ -15,11 +15,10 @@ config CRYPTO_CURVE25519_X86 Architecture: x86_64 using: - ADX (large integer arithmetic) config CRYPTO_AES_NI_INTEL tristate "Ciphers: AES, modes: ECB, CBC, CTS, CTR, XCTR, XTS, GCM (AES-NI/VAES)" - depends on X86 select CRYPTO_AEAD select CRYPTO_LIB_AES select CRYPTO_LIB_GF128MUL select CRYPTO_ALGAPI select CRYPTO_SKCIPHER @@ -35,11 +34,11 @@ config CRYPTO_AES_NI_INTEL Some algorithm implementations are supported only in 64-bit builds, and some have additional prerequisites such as AVX2 or AVX512. config CRYPTO_BLOWFISH_X86_64 tristate "Ciphers: Blowfish, modes: ECB, CBC" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_SKCIPHER select CRYPTO_BLOWFISH_COMMON imply CRYPTO_CTR help Block cipher: Blowfish cipher algorithm @@ -47,22 +46,22 @@ config CRYPTO_BLOWFISH_X86_64 Architecture: x86_64 config CRYPTO_CAMELLIA_X86_64 tristate "Ciphers: Camellia with modes: ECB, CBC" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_SKCIPHER imply CRYPTO_CTR help Block cipher: Camellia cipher algorithms Length-preserving ciphers: Camellia with ECB and CBC modes Architecture: x86_64 config CRYPTO_CAMELLIA_AESNI_AVX_X86_64 tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX)" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_SKCIPHER select CRYPTO_CAMELLIA_X86_64 imply CRYPTO_XTS help Length-preserving ciphers: Camellia with ECB and CBC modes @@ -71,22 +70,22 @@ config CRYPTO_CAMELLIA_AESNI_AVX_X86_64 - AES-NI (AES New Instructions) - AVX (Advanced Vector Extensions) config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX2)" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_CAMELLIA_AESNI_AVX_X86_64 help Length-preserving ciphers: Camellia with ECB and CBC modes Architecture: x86_64 using: - AES-NI (AES New Instructions) - AVX2 (Advanced Vector Extensions 2) config CRYPTO_CAST5_AVX_X86_64 tristate "Ciphers: CAST5 with modes: ECB, CBC (AVX)" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_SKCIPHER select CRYPTO_CAST5 select CRYPTO_CAST_COMMON imply CRYPTO_CTR help @@ -98,11 +97,11 @@ config CRYPTO_CAST5_AVX_X86_64 Processes 16 blocks in parallel. config CRYPTO_CAST6_AVX_X86_64 tristate "Ciphers: CAST6 with modes: ECB, CBC (AVX)" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_SKCIPHER select CRYPTO_CAST6 select CRYPTO_CAST_COMMON imply CRYPTO_XTS imply CRYPTO_CTR @@ -115,11 +114,11 @@ config CRYPTO_CAST6_AVX_X86_64 Processes eight blocks in parallel. config CRYPTO_DES3_EDE_X86_64 tristate "Ciphers: Triple DES EDE with modes: ECB, CBC" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_SKCIPHER select CRYPTO_LIB_DES imply CRYPTO_CTR help Block cipher: Triple DES EDE (FIPS 46-3) cipher algorithm @@ -129,11 +128,11 @@ config CRYPTO_DES3_EDE_X86_64 Processes one or three blocks in parallel. config CRYPTO_SERPENT_SSE2_X86_64 tristate "Ciphers: Serpent with modes: ECB, CBC (SSE2)" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_SKCIPHER select CRYPTO_SERPENT imply CRYPTO_CTR help Length-preserving ciphers: Serpent cipher algorithm @@ -144,11 +143,11 @@ config CRYPTO_SERPENT_SSE2_X86_64 Processes eight blocks in parallel. config CRYPTO_SERPENT_SSE2_586 tristate "Ciphers: Serpent with modes: ECB, CBC (32-bit with SSE2)" - depends on X86 && !64BIT + depends on !64BIT select CRYPTO_SKCIPHER select CRYPTO_SERPENT imply CRYPTO_CTR help Length-preserving ciphers: Serpent cipher algorithm @@ -159,11 +158,11 @@ config CRYPTO_SERPENT_SSE2_586 Processes four blocks in parallel. config CRYPTO_SERPENT_AVX_X86_64 tristate "Ciphers: Serpent with modes: ECB, CBC (AVX)" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_SKCIPHER select CRYPTO_SERPENT imply CRYPTO_XTS imply CRYPTO_CTR help @@ -175,11 +174,11 @@ config CRYPTO_SERPENT_AVX_X86_64 Processes eight blocks in parallel. config CRYPTO_SERPENT_AVX2_X86_64 tristate "Ciphers: Serpent with modes: ECB, CBC (AVX2)" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_SERPENT_AVX_X86_64 help Length-preserving ciphers: Serpent cipher algorithm with ECB and CBC modes @@ -188,11 +187,11 @@ config CRYPTO_SERPENT_AVX2_X86_64 Processes 16 blocks in parallel. config CRYPTO_SM4_AESNI_AVX_X86_64 tristate "Ciphers: SM4 with modes: ECB, CBC, CTR (AES-NI/AVX)" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_SKCIPHER select CRYPTO_ALGAPI select CRYPTO_SM4 help Length-preserving ciphers: SM4 cipher algorithms @@ -208,11 +207,11 @@ config CRYPTO_SM4_AESNI_AVX_X86_64 If unsure, say N. config CRYPTO_SM4_AESNI_AVX2_X86_64 tristate "Ciphers: SM4 with modes: ECB, CBC, CTR (AES-NI/AVX2)" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_SKCIPHER select CRYPTO_ALGAPI select CRYPTO_SM4 select CRYPTO_SM4_AESNI_AVX_X86_64 help @@ -229,33 +228,33 @@ config CRYPTO_SM4_AESNI_AVX2_X86_64 If unsure, say N. config CRYPTO_TWOFISH_586 tristate "Ciphers: Twofish (32-bit)" - depends on (X86 || UML_X86) && !64BIT + depends on !64BIT select CRYPTO_ALGAPI select CRYPTO_TWOFISH_COMMON imply CRYPTO_CTR help Block cipher: Twofish cipher algorithm Architecture: x86 (32-bit) config CRYPTO_TWOFISH_X86_64 tristate "Ciphers: Twofish" - depends on (X86 || UML_X86) && 64BIT + depends on 64BIT select CRYPTO_ALGAPI select CRYPTO_TWOFISH_COMMON imply CRYPTO_CTR help Block cipher: Twofish cipher algorithm Architecture: x86_64 config CRYPTO_TWOFISH_X86_64_3WAY tristate "Ciphers: Twofish with modes: ECB, CBC (3-way parallel)" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_SKCIPHER select CRYPTO_TWOFISH_COMMON select CRYPTO_TWOFISH_X86_64 help Length-preserving cipher: Twofish cipher algorithm @@ -266,11 +265,11 @@ config CRYPTO_TWOFISH_X86_64_3WAY Processes three blocks in parallel, better utilizing resources of out-of-order CPUs. config CRYPTO_TWOFISH_AVX_X86_64 tristate "Ciphers: Twofish with modes: ECB, CBC (AVX)" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_SKCIPHER select CRYPTO_TWOFISH_COMMON select CRYPTO_TWOFISH_X86_64 select CRYPTO_TWOFISH_X86_64_3WAY imply CRYPTO_XTS @@ -283,11 +282,11 @@ config CRYPTO_TWOFISH_AVX_X86_64 Processes eight blocks in parallel. config CRYPTO_ARIA_AESNI_AVX_X86_64 tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX/GFNI)" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_SKCIPHER select CRYPTO_ALGAPI select CRYPTO_ARIA help Length-preserving cipher: ARIA cipher algorithms @@ -300,11 +299,11 @@ config CRYPTO_ARIA_AESNI_AVX_X86_64 Processes 16 blocks in parallel. config CRYPTO_ARIA_AESNI_AVX2_X86_64 tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX2/GFNI)" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_SKCIPHER select CRYPTO_ALGAPI select CRYPTO_ARIA select CRYPTO_ARIA_AESNI_AVX_X86_64 help @@ -318,11 +317,11 @@ config CRYPTO_ARIA_AESNI_AVX2_X86_64 Processes 32 blocks in parallel. config CRYPTO_ARIA_GFNI_AVX512_X86_64 tristate "Ciphers: ARIA with modes: ECB, CTR (AVX512/GFNI)" - depends on X86 && 64BIT && AS_GFNI + depends on 64BIT && AS_GFNI select CRYPTO_SKCIPHER select CRYPTO_ALGAPI select CRYPTO_ARIA select CRYPTO_ARIA_AESNI_AVX_X86_64 select CRYPTO_ARIA_AESNI_AVX2_X86_64 @@ -336,49 +335,49 @@ config CRYPTO_ARIA_GFNI_AVX512_X86_64 Processes 64 blocks in parallel. config CRYPTO_CHACHA20_X86_64 tristate - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_LIB_CHACHA_GENERIC select CRYPTO_ARCH_HAVE_LIB_CHACHA default CRYPTO_LIB_CHACHA_INTERNAL config CRYPTO_AEGIS128_AESNI_SSE2 tristate "AEAD ciphers: AEGIS-128 (AES-NI/SSE4.1)" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_AEAD help AEGIS-128 AEAD algorithm Architecture: x86_64 using: - AES-NI (AES New Instructions) - SSE4.1 (Streaming SIMD Extensions 4.1) config CRYPTO_NHPOLY1305_SSE2 tristate "Hash functions: NHPoly1305 (SSE2)" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_NHPOLY1305 help NHPoly1305 hash function for Adiantum Architecture: x86_64 using: - SSE2 (Streaming SIMD Extensions 2) config CRYPTO_NHPOLY1305_AVX2 tristate "Hash functions: NHPoly1305 (AVX2)" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_NHPOLY1305 help NHPoly1305 hash function for Adiantum Architecture: x86_64 using: - AVX2 (Advanced Vector Extensions 2) config CRYPTO_BLAKE2S_X86 bool "Hash functions: BLAKE2s (SSSE3/AVX-512)" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_LIB_BLAKE2S_GENERIC select CRYPTO_ARCH_HAVE_LIB_BLAKE2S help BLAKE2s cryptographic hash function (RFC 7693) @@ -386,27 +385,27 @@ config CRYPTO_BLAKE2S_X86 - SSSE3 (Supplemental SSE3) - AVX-512 (Advanced Vector Extensions-512) config CRYPTO_POLYVAL_CLMUL_NI tristate "Hash functions: POLYVAL (CLMUL-NI)" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_POLYVAL help POLYVAL hash function for HCTR2 Architecture: x86_64 using: - CLMUL-NI (carry-less multiplication new instructions) config CRYPTO_POLY1305_X86_64 tristate - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_ARCH_HAVE_LIB_POLY1305 default CRYPTO_LIB_POLY1305_INTERNAL config CRYPTO_SHA1_SSSE3 tristate "Hash functions: SHA-1 (SSSE3/AVX/AVX2/SHA-NI)" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_SHA1 select CRYPTO_HASH help SHA-1 secure hash algorithm (FIPS 180) @@ -416,11 +415,11 @@ config CRYPTO_SHA1_SSSE3 - AVX2 (Advanced Vector Extensions 2) - SHA-NI (SHA Extensions New Instructions) config CRYPTO_SHA256_SSSE3 tristate "Hash functions: SHA-224 and SHA-256 (SSSE3/AVX/AVX2/SHA-NI)" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_SHA256 select CRYPTO_HASH help SHA-224 and SHA-256 secure hash algorithms (FIPS 180) @@ -430,11 +429,11 @@ config CRYPTO_SHA256_SSSE3 - AVX2 (Advanced Vector Extensions 2) - SHA-NI (SHA Extensions New Instructions) config CRYPTO_SHA512_SSSE3 tristate "Hash functions: SHA-384 and SHA-512 (SSSE3/AVX/AVX2)" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_SHA512 select CRYPTO_HASH help SHA-384 and SHA-512 secure hash algorithms (FIPS 180) @@ -443,11 +442,11 @@ config CRYPTO_SHA512_SSSE3 - AVX (Advanced Vector Extensions) - AVX2 (Advanced Vector Extensions 2) config CRYPTO_SM3_AVX_X86_64 tristate "Hash functions: SM3 (AVX)" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_HASH select CRYPTO_LIB_SM3 help SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3 @@ -456,11 +455,11 @@ config CRYPTO_SM3_AVX_X86_64 If unsure, say N. config CRYPTO_GHASH_CLMUL_NI_INTEL tristate "Hash functions: GHASH (CLMUL-NI)" - depends on X86 && 64BIT + depends on 64BIT select CRYPTO_CRYPTD help GCM GHASH hash function (NIST SP800-38D) Architecture: x86_64 using: From patchwork Thu Apr 17 18:26:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Biggers X-Patchwork-Id: 881995 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4F5C326AABB; Thu, 17 Apr 2025 18:27:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914438; cv=none; b=cpdK5pFnTDyTVCdFzdgQTAobUQb/TUeocndKhibgx60g7D7JrJe4P5qIRsyxb/ytFwRT8ipt4ZPNPJtaYQOxvZ5khEefMz3kx2U8TfzGwk+bPOw6ZxSTLqY7P4qLAS6MlLiTxtyIGvBZMORrqZRagRabUSUankU4uYRyeXHpRJI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914438; c=relaxed/simple; bh=3nfdu4R/mPq9aAzKFy77Vd824jpabdJRCARw42m5B3E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qEXxBjydUcdVKJMDAtMxucZB2t3R7ypvyhkdvakbpNnrAGPiCpI/Ba9RaSqyxlX0YVMl46eJM4zKp+xTXi3prTmLUB8l06li6O8nPxv/J0e42PY09851PqXUd4BAxf5P7pcK0Wp6YSqrhvkKU7MAj+7aMirhoOsgQFKtmKePVeI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MeW0Nneq; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="MeW0Nneq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 06218C4CEE7; Thu, 17 Apr 2025 18:27:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744914437; bh=3nfdu4R/mPq9aAzKFy77Vd824jpabdJRCARw42m5B3E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MeW0NneqVCQj7DYVVEg1zpY/h1tmZM6P32rJRZQ6YxrpYlXnaxEpLEk1Au1Uadeww 9l9Sp5j7rrCKmQFDwjauWm/MrJAAWSILclhc1uGnQxXQb26q6RtlF1lisvj7bIsDJr O9gmn0l4jTjfWZUhx8ejLkUCSlEOa/rcTDxvg1GMqEv1DCjCYypX/j9prOqeSF9CAp zP+dG8u65oa2fijCqHzQq98k8aHe2/AqMMtjC0NyybcRriVdygBLZ80gw/7GKOViSh T3LQEa5jFjZxYoFZv9b9wA8GNTwskt6oqzI7EFUi28I4G8OEoSyTsnlqYDi4JppUuB ruUD7Fk48RLDQ== From: Eric Biggers To: linux-crypto@vger.kernel.org Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org, "Jason A . Donenfeld " , Ard Biesheuvel Subject: [PATCH 13/15] crypto: x86 - remove CRYPTO dependency of library functions Date: Thu, 17 Apr 2025 11:26:21 -0700 Message-ID: <20250417182623.67808-14-ebiggers@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250417182623.67808-1-ebiggers@kernel.org> References: <20250417182623.67808-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Eric Biggers Continue disentangling the crypto library functions from the generic crypto infrastructure by removing the unnecessary CRYPTO dependency of CRYPTO_BLAKE2S_X86, CRYPTO_CHACHA20_X86_64, and CRYPTO_POLY1305_X86_64. To do this, make arch/x86/crypto/Kconfig be sourced regardless of CRYPTO, and explicitly list the CRYPTO dependency in the symbols that do need it. Signed-off-by: Eric Biggers --- arch/x86/Kconfig | 4 +++ arch/x86/crypto/Kconfig | 61 +++++++++++++++++++++-------------------- crypto/Kconfig | 6 ---- 3 files changed, 35 insertions(+), 36 deletions(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 4b9f378e05f6..24346944439a 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -2382,10 +2382,14 @@ config X86_BUS_LOCK_DETECT default y help Enable Split Lock Detect and Bus Lock Detect functionalities. See for more information. +if !KMSAN # avoid false positives from assembly +source "arch/x86/crypto/Kconfig" +endif + endmenu config CC_HAS_NAMED_AS def_bool $(success,echo 'int __seg_fs fs; int __seg_gs gs;' | $(CC) -x c - -S -o /dev/null) depends on CC_IS_GCC diff --git a/arch/x86/crypto/Kconfig b/arch/x86/crypto/Kconfig index b4df6cf37e0e..daa168e37b59 100644 --- a/arch/x86/crypto/Kconfig +++ b/arch/x86/crypto/Kconfig @@ -2,11 +2,11 @@ menu "Accelerated Cryptographic Algorithms for CPU (x86)" config CRYPTO_CURVE25519_X86 tristate - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_KPP select CRYPTO_LIB_CURVE25519_GENERIC select CRYPTO_ARCH_HAVE_LIB_CURVE25519 default CRYPTO_LIB_CURVE25519_INTERNAL help @@ -15,10 +15,11 @@ config CRYPTO_CURVE25519_X86 Architecture: x86_64 using: - ADX (large integer arithmetic) config CRYPTO_AES_NI_INTEL tristate "Ciphers: AES, modes: ECB, CBC, CTS, CTR, XCTR, XTS, GCM (AES-NI/VAES)" + depends on CRYPTO select CRYPTO_AEAD select CRYPTO_LIB_AES select CRYPTO_LIB_GF128MUL select CRYPTO_ALGAPI select CRYPTO_SKCIPHER @@ -34,11 +35,11 @@ config CRYPTO_AES_NI_INTEL Some algorithm implementations are supported only in 64-bit builds, and some have additional prerequisites such as AVX2 or AVX512. config CRYPTO_BLOWFISH_X86_64 tristate "Ciphers: Blowfish, modes: ECB, CBC" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_SKCIPHER select CRYPTO_BLOWFISH_COMMON imply CRYPTO_CTR help Block cipher: Blowfish cipher algorithm @@ -46,22 +47,22 @@ config CRYPTO_BLOWFISH_X86_64 Architecture: x86_64 config CRYPTO_CAMELLIA_X86_64 tristate "Ciphers: Camellia with modes: ECB, CBC" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_SKCIPHER imply CRYPTO_CTR help Block cipher: Camellia cipher algorithms Length-preserving ciphers: Camellia with ECB and CBC modes Architecture: x86_64 config CRYPTO_CAMELLIA_AESNI_AVX_X86_64 tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX)" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_SKCIPHER select CRYPTO_CAMELLIA_X86_64 imply CRYPTO_XTS help Length-preserving ciphers: Camellia with ECB and CBC modes @@ -70,22 +71,22 @@ config CRYPTO_CAMELLIA_AESNI_AVX_X86_64 - AES-NI (AES New Instructions) - AVX (Advanced Vector Extensions) config CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 tristate "Ciphers: Camellia with modes: ECB, CBC (AES-NI/AVX2)" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_CAMELLIA_AESNI_AVX_X86_64 help Length-preserving ciphers: Camellia with ECB and CBC modes Architecture: x86_64 using: - AES-NI (AES New Instructions) - AVX2 (Advanced Vector Extensions 2) config CRYPTO_CAST5_AVX_X86_64 tristate "Ciphers: CAST5 with modes: ECB, CBC (AVX)" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_SKCIPHER select CRYPTO_CAST5 select CRYPTO_CAST_COMMON imply CRYPTO_CTR help @@ -97,11 +98,11 @@ config CRYPTO_CAST5_AVX_X86_64 Processes 16 blocks in parallel. config CRYPTO_CAST6_AVX_X86_64 tristate "Ciphers: CAST6 with modes: ECB, CBC (AVX)" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_SKCIPHER select CRYPTO_CAST6 select CRYPTO_CAST_COMMON imply CRYPTO_XTS imply CRYPTO_CTR @@ -114,11 +115,11 @@ config CRYPTO_CAST6_AVX_X86_64 Processes eight blocks in parallel. config CRYPTO_DES3_EDE_X86_64 tristate "Ciphers: Triple DES EDE with modes: ECB, CBC" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_SKCIPHER select CRYPTO_LIB_DES imply CRYPTO_CTR help Block cipher: Triple DES EDE (FIPS 46-3) cipher algorithm @@ -128,11 +129,11 @@ config CRYPTO_DES3_EDE_X86_64 Processes one or three blocks in parallel. config CRYPTO_SERPENT_SSE2_X86_64 tristate "Ciphers: Serpent with modes: ECB, CBC (SSE2)" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_SKCIPHER select CRYPTO_SERPENT imply CRYPTO_CTR help Length-preserving ciphers: Serpent cipher algorithm @@ -143,11 +144,11 @@ config CRYPTO_SERPENT_SSE2_X86_64 Processes eight blocks in parallel. config CRYPTO_SERPENT_SSE2_586 tristate "Ciphers: Serpent with modes: ECB, CBC (32-bit with SSE2)" - depends on !64BIT + depends on CRYPTO && !64BIT select CRYPTO_SKCIPHER select CRYPTO_SERPENT imply CRYPTO_CTR help Length-preserving ciphers: Serpent cipher algorithm @@ -158,11 +159,11 @@ config CRYPTO_SERPENT_SSE2_586 Processes four blocks in parallel. config CRYPTO_SERPENT_AVX_X86_64 tristate "Ciphers: Serpent with modes: ECB, CBC (AVX)" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_SKCIPHER select CRYPTO_SERPENT imply CRYPTO_XTS imply CRYPTO_CTR help @@ -174,11 +175,11 @@ config CRYPTO_SERPENT_AVX_X86_64 Processes eight blocks in parallel. config CRYPTO_SERPENT_AVX2_X86_64 tristate "Ciphers: Serpent with modes: ECB, CBC (AVX2)" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_SERPENT_AVX_X86_64 help Length-preserving ciphers: Serpent cipher algorithm with ECB and CBC modes @@ -187,11 +188,11 @@ config CRYPTO_SERPENT_AVX2_X86_64 Processes 16 blocks in parallel. config CRYPTO_SM4_AESNI_AVX_X86_64 tristate "Ciphers: SM4 with modes: ECB, CBC, CTR (AES-NI/AVX)" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_SKCIPHER select CRYPTO_ALGAPI select CRYPTO_SM4 help Length-preserving ciphers: SM4 cipher algorithms @@ -207,11 +208,11 @@ config CRYPTO_SM4_AESNI_AVX_X86_64 If unsure, say N. config CRYPTO_SM4_AESNI_AVX2_X86_64 tristate "Ciphers: SM4 with modes: ECB, CBC, CTR (AES-NI/AVX2)" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_SKCIPHER select CRYPTO_ALGAPI select CRYPTO_SM4 select CRYPTO_SM4_AESNI_AVX_X86_64 help @@ -228,33 +229,33 @@ config CRYPTO_SM4_AESNI_AVX2_X86_64 If unsure, say N. config CRYPTO_TWOFISH_586 tristate "Ciphers: Twofish (32-bit)" - depends on !64BIT + depends on CRYPTO && !64BIT select CRYPTO_ALGAPI select CRYPTO_TWOFISH_COMMON imply CRYPTO_CTR help Block cipher: Twofish cipher algorithm Architecture: x86 (32-bit) config CRYPTO_TWOFISH_X86_64 tristate "Ciphers: Twofish" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_ALGAPI select CRYPTO_TWOFISH_COMMON imply CRYPTO_CTR help Block cipher: Twofish cipher algorithm Architecture: x86_64 config CRYPTO_TWOFISH_X86_64_3WAY tristate "Ciphers: Twofish with modes: ECB, CBC (3-way parallel)" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_SKCIPHER select CRYPTO_TWOFISH_COMMON select CRYPTO_TWOFISH_X86_64 help Length-preserving cipher: Twofish cipher algorithm @@ -265,11 +266,11 @@ config CRYPTO_TWOFISH_X86_64_3WAY Processes three blocks in parallel, better utilizing resources of out-of-order CPUs. config CRYPTO_TWOFISH_AVX_X86_64 tristate "Ciphers: Twofish with modes: ECB, CBC (AVX)" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_SKCIPHER select CRYPTO_TWOFISH_COMMON select CRYPTO_TWOFISH_X86_64 select CRYPTO_TWOFISH_X86_64_3WAY imply CRYPTO_XTS @@ -282,11 +283,11 @@ config CRYPTO_TWOFISH_AVX_X86_64 Processes eight blocks in parallel. config CRYPTO_ARIA_AESNI_AVX_X86_64 tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX/GFNI)" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_SKCIPHER select CRYPTO_ALGAPI select CRYPTO_ARIA help Length-preserving cipher: ARIA cipher algorithms @@ -299,11 +300,11 @@ config CRYPTO_ARIA_AESNI_AVX_X86_64 Processes 16 blocks in parallel. config CRYPTO_ARIA_AESNI_AVX2_X86_64 tristate "Ciphers: ARIA with modes: ECB, CTR (AES-NI/AVX2/GFNI)" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_SKCIPHER select CRYPTO_ALGAPI select CRYPTO_ARIA select CRYPTO_ARIA_AESNI_AVX_X86_64 help @@ -317,11 +318,11 @@ config CRYPTO_ARIA_AESNI_AVX2_X86_64 Processes 32 blocks in parallel. config CRYPTO_ARIA_GFNI_AVX512_X86_64 tristate "Ciphers: ARIA with modes: ECB, CTR (AVX512/GFNI)" - depends on 64BIT && AS_GFNI + depends on CRYPTO && 64BIT && AS_GFNI select CRYPTO_SKCIPHER select CRYPTO_ALGAPI select CRYPTO_ARIA select CRYPTO_ARIA_AESNI_AVX_X86_64 select CRYPTO_ARIA_AESNI_AVX2_X86_64 @@ -342,32 +343,32 @@ config CRYPTO_CHACHA20_X86_64 select CRYPTO_ARCH_HAVE_LIB_CHACHA default CRYPTO_LIB_CHACHA_INTERNAL config CRYPTO_AEGIS128_AESNI_SSE2 tristate "AEAD ciphers: AEGIS-128 (AES-NI/SSE4.1)" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_AEAD help AEGIS-128 AEAD algorithm Architecture: x86_64 using: - AES-NI (AES New Instructions) - SSE4.1 (Streaming SIMD Extensions 4.1) config CRYPTO_NHPOLY1305_SSE2 tristate "Hash functions: NHPoly1305 (SSE2)" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_NHPOLY1305 help NHPoly1305 hash function for Adiantum Architecture: x86_64 using: - SSE2 (Streaming SIMD Extensions 2) config CRYPTO_NHPOLY1305_AVX2 tristate "Hash functions: NHPoly1305 (AVX2)" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_NHPOLY1305 help NHPoly1305 hash function for Adiantum Architecture: x86_64 using: @@ -385,11 +386,11 @@ config CRYPTO_BLAKE2S_X86 - SSSE3 (Supplemental SSE3) - AVX-512 (Advanced Vector Extensions-512) config CRYPTO_POLYVAL_CLMUL_NI tristate "Hash functions: POLYVAL (CLMUL-NI)" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_POLYVAL help POLYVAL hash function for HCTR2 Architecture: x86_64 using: @@ -401,11 +402,11 @@ config CRYPTO_POLY1305_X86_64 select CRYPTO_ARCH_HAVE_LIB_POLY1305 default CRYPTO_LIB_POLY1305_INTERNAL config CRYPTO_SHA1_SSSE3 tristate "Hash functions: SHA-1 (SSSE3/AVX/AVX2/SHA-NI)" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_SHA1 select CRYPTO_HASH help SHA-1 secure hash algorithm (FIPS 180) @@ -415,11 +416,11 @@ config CRYPTO_SHA1_SSSE3 - AVX2 (Advanced Vector Extensions 2) - SHA-NI (SHA Extensions New Instructions) config CRYPTO_SHA256_SSSE3 tristate "Hash functions: SHA-224 and SHA-256 (SSSE3/AVX/AVX2/SHA-NI)" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_SHA256 select CRYPTO_HASH help SHA-224 and SHA-256 secure hash algorithms (FIPS 180) @@ -429,11 +430,11 @@ config CRYPTO_SHA256_SSSE3 - AVX2 (Advanced Vector Extensions 2) - SHA-NI (SHA Extensions New Instructions) config CRYPTO_SHA512_SSSE3 tristate "Hash functions: SHA-384 and SHA-512 (SSSE3/AVX/AVX2)" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_SHA512 select CRYPTO_HASH help SHA-384 and SHA-512 secure hash algorithms (FIPS 180) @@ -442,11 +443,11 @@ config CRYPTO_SHA512_SSSE3 - AVX (Advanced Vector Extensions) - AVX2 (Advanced Vector Extensions 2) config CRYPTO_SM3_AVX_X86_64 tristate "Hash functions: SM3 (AVX)" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_HASH select CRYPTO_LIB_SM3 help SM3 secure hash function as defined by OSCCA GM/T 0004-2012 SM3 @@ -455,11 +456,11 @@ config CRYPTO_SM3_AVX_X86_64 If unsure, say N. config CRYPTO_GHASH_CLMUL_NI_INTEL tristate "Hash functions: GHASH (CLMUL-NI)" - depends on 64BIT + depends on CRYPTO && 64BIT select CRYPTO_CRYPTD help GCM GHASH hash function (NIST SP800-38D) Architecture: x86_64 using: diff --git a/crypto/Kconfig b/crypto/Kconfig index c0906bb4f844..7e207f3d3eca 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig @@ -1423,16 +1423,10 @@ config CRYPTO_USER_API_ENABLE_OBSOLETE endmenu config CRYPTO_HASH_INFO bool -if !KMSAN # avoid false positives from assembly -if X86 -source "arch/x86/crypto/Kconfig" -endif -endif - source "drivers/crypto/Kconfig" source "crypto/asymmetric_keys/Kconfig" source "certs/Kconfig" source "crypto/krb5/Kconfig" From patchwork Thu Apr 17 18:26:22 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Biggers X-Patchwork-Id: 882706 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E979826B2CE; Thu, 17 Apr 2025 18:27:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914439; cv=none; b=lMD3ac3uudAkWWt7sSttvFRr5Zzptt5/Pavpl0XUA66HpuwyEo/AgfCNZxoHDxuID7vLi1tyl3+p0SAhv1KV2cq7EEQm7O1mPLgkHTPY4t+SjWPfnoGakCdJdVwySaJqKExITDbU2fctd7OXHAgep0aUmPkcNcbTnBXBsmB8G5U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914439; c=relaxed/simple; bh=hyWo6YL7FRAGp3TLSpqd740amjRb093kTvvI69CX+8M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SxkxBgGPIu58li9yVSL5+2dE9VNzNrzQtqyqhU4csfrEG0/Lz6jBSBBIX4XPk6OuEGvpRKcCUh4W1pMVn3tWm1hmIV2wLqLfKPLukiQwuBqQ7nl4QCd5uOE2Z8hqQs/O6ZKmmIlPcK28PhVbMgWU9POlNlAuk0FDbA1bC41lfuI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=imzS3N2w; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="imzS3N2w" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0482CC4CEE4; Thu, 17 Apr 2025 18:27:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744914438; bh=hyWo6YL7FRAGp3TLSpqd740amjRb093kTvvI69CX+8M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=imzS3N2w1uI9WmXTcKqyl8ymKSGwBPi5n+G/0SvG9X98fdlgohEz8iGI1c7b+xl4O sjt7mpHQZTknkcM9C1Cuy/Wcsk6S9A0wu2BwUVlD07RJ+ODrMQQhlpP0gCHa6qd/S8 TwzyelGLWBED5iEPcEVFwFMxoVplOs2g1cgJOTUsM0tsyCJMx0/38V/yPGT2g46Dij /y1WNSsWBKWSjVrVfZDXkb1KE14N3SqJgsglAVISKJW+lxLHgPWRKnNFxQ9SyPjG5y 9b+ch3bo053BcmuboIKtZ4933Z//aAdM0lhAFLkYIJUT22Rx6w3Yz1Eu500nKM9Vd3 8e/fPJ90zdD7g== From: Eric Biggers To: linux-crypto@vger.kernel.org Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org, "Jason A . Donenfeld " , Ard Biesheuvel Subject: [PATCH 14/15] crypto: lib/chacha - remove INTERNAL symbol and selection of CRYPTO Date: Thu, 17 Apr 2025 11:26:22 -0700 Message-ID: <20250417182623.67808-15-ebiggers@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250417182623.67808-1-ebiggers@kernel.org> References: <20250417182623.67808-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Eric Biggers Now that the architecture-optimized ChaCha kconfig symbols are visible without CRYPTO, there is no need for CRYPTO_LIB_CHACHA to select CRYPTO. So, remove that. This makes the indirection through the CRYPTO_LIB_CHACHA_INTERNAL symbol unnecessary, so get rid of that and just use CRYPTO_LIB_CHACHA directly. Finally, make the fallback to the generic implementation use a default value instead of a select; this makes it consistent with how the arch-optimized code gets enabled and also with how CRYPTO_LIB_BLAKE2S_GENERIC gets enabled. Signed-off-by: Eric Biggers --- arch/arm/crypto/Kconfig | 2 +- arch/arm64/crypto/Kconfig | 2 +- arch/mips/crypto/Kconfig | 2 +- arch/powerpc/crypto/Kconfig | 2 +- arch/riscv/crypto/Kconfig | 2 +- arch/s390/crypto/Kconfig | 2 +- arch/x86/crypto/Kconfig | 2 +- crypto/Kconfig | 2 +- lib/crypto/Kconfig | 16 +++++----------- 9 files changed, 13 insertions(+), 19 deletions(-) diff --git a/arch/arm/crypto/Kconfig b/arch/arm/crypto/Kconfig index a03017a6dbc4..960602271443 100644 --- a/arch/arm/crypto/Kconfig +++ b/arch/arm/crypto/Kconfig @@ -208,10 +208,10 @@ config CRYPTO_AES_ARM_CE Architecture: arm using: - ARMv8 Crypto Extensions config CRYPTO_CHACHA20_NEON tristate + default CRYPTO_LIB_CHACHA select CRYPTO_ARCH_HAVE_LIB_CHACHA - default CRYPTO_LIB_CHACHA_INTERNAL endmenu diff --git a/arch/arm64/crypto/Kconfig b/arch/arm64/crypto/Kconfig index a2cccd2accb0..8184da75b24f 100644 --- a/arch/arm64/crypto/Kconfig +++ b/arch/arm64/crypto/Kconfig @@ -184,13 +184,13 @@ config CRYPTO_AES_ARM64_NEON_BLK - NEON (Advanced SIMD) extensions config CRYPTO_CHACHA20_NEON tristate depends on KERNEL_MODE_NEON + default CRYPTO_LIB_CHACHA select CRYPTO_LIB_CHACHA_GENERIC select CRYPTO_ARCH_HAVE_LIB_CHACHA - default CRYPTO_LIB_CHACHA_INTERNAL config CRYPTO_AES_ARM64_BS tristate "Ciphers: AES, modes: ECB/CBC/CTR/XCTR/XTS modes (bit-sliced NEON)" depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_SKCIPHER diff --git a/arch/mips/crypto/Kconfig b/arch/mips/crypto/Kconfig index beb7b20cf3e8..f1d61457518f 100644 --- a/arch/mips/crypto/Kconfig +++ b/arch/mips/crypto/Kconfig @@ -48,9 +48,9 @@ config CRYPTO_SHA512_OCTEON Architecture: mips OCTEON using crypto instructions, when available config CRYPTO_CHACHA_MIPS tristate depends on CPU_MIPS32_R2 + default CRYPTO_LIB_CHACHA select CRYPTO_ARCH_HAVE_LIB_CHACHA - default CRYPTO_LIB_CHACHA_INTERNAL endmenu diff --git a/arch/powerpc/crypto/Kconfig b/arch/powerpc/crypto/Kconfig index 0f14bdf104d5..dd3bd22d8e20 100644 --- a/arch/powerpc/crypto/Kconfig +++ b/arch/powerpc/crypto/Kconfig @@ -93,13 +93,13 @@ config CRYPTO_AES_GCM_P10 later CPU. This module supports stitched acceleration for AES/GCM. config CRYPTO_CHACHA20_P10 tristate depends on PPC64 && CPU_LITTLE_ENDIAN && VSX + default CRYPTO_LIB_CHACHA select CRYPTO_LIB_CHACHA_GENERIC select CRYPTO_ARCH_HAVE_LIB_CHACHA - default CRYPTO_LIB_CHACHA_INTERNAL config CRYPTO_POLY1305_P10 tristate depends on PPC64 && CPU_LITTLE_ENDIAN && VSX select CRYPTO_ARCH_HAVE_LIB_POLY1305 diff --git a/arch/riscv/crypto/Kconfig b/arch/riscv/crypto/Kconfig index 08547694937c..b5ac0d41f4a3 100644 --- a/arch/riscv/crypto/Kconfig +++ b/arch/riscv/crypto/Kconfig @@ -19,13 +19,13 @@ config CRYPTO_AES_RISCV64 - Zvkg vector crypto extension (XTS) config CRYPTO_CHACHA_RISCV64 tristate depends on 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO + default CRYPTO_LIB_CHACHA select CRYPTO_ARCH_HAVE_LIB_CHACHA select CRYPTO_LIB_CHACHA_GENERIC - default CRYPTO_LIB_CHACHA_INTERNAL config CRYPTO_GHASH_RISCV64 tristate "Hash functions: GHASH" depends on CRYPTO && 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO select CRYPTO_GCM diff --git a/arch/s390/crypto/Kconfig b/arch/s390/crypto/Kconfig index a2e6efd8aed8..c0d238228cad 100644 --- a/arch/s390/crypto/Kconfig +++ b/arch/s390/crypto/Kconfig @@ -107,13 +107,13 @@ config CRYPTO_DES_S390 As of z990 the ECB and CBC mode are hardware accelerated. As of z196 the CTR mode is hardware accelerated. config CRYPTO_CHACHA_S390 tristate + default CRYPTO_LIB_CHACHA select CRYPTO_LIB_CHACHA_GENERIC select CRYPTO_ARCH_HAVE_LIB_CHACHA - default CRYPTO_LIB_CHACHA_INTERNAL config CRYPTO_HMAC_S390 tristate "Keyed-hash message authentication code: HMAC" depends on CRYPTO select CRYPTO_HASH diff --git a/arch/x86/crypto/Kconfig b/arch/x86/crypto/Kconfig index daa168e37b59..5b9d6dbe6185 100644 --- a/arch/x86/crypto/Kconfig +++ b/arch/x86/crypto/Kconfig @@ -337,13 +337,13 @@ config CRYPTO_ARIA_GFNI_AVX512_X86_64 Processes 64 blocks in parallel. config CRYPTO_CHACHA20_X86_64 tristate depends on 64BIT + default CRYPTO_LIB_CHACHA select CRYPTO_LIB_CHACHA_GENERIC select CRYPTO_ARCH_HAVE_LIB_CHACHA - default CRYPTO_LIB_CHACHA_INTERNAL config CRYPTO_AEGIS128_AESNI_SSE2 tristate "AEAD ciphers: AEGIS-128 (AES-NI/SSE4.1)" depends on CRYPTO && 64BIT select CRYPTO_AEAD diff --git a/crypto/Kconfig b/crypto/Kconfig index 7e207f3d3eca..ed50d1b6f6f3 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig @@ -632,12 +632,12 @@ config CRYPTO_ARC4 WEP, but it should not be for other purposes because of the weakness of the algorithm. config CRYPTO_CHACHA20 tristate "ChaCha" + select CRYPTO_LIB_CHACHA select CRYPTO_LIB_CHACHA_GENERIC - select CRYPTO_LIB_CHACHA_INTERNAL select CRYPTO_SKCIPHER help The ChaCha20, XChaCha20, and XChaCha12 stream cipher algorithms ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J. diff --git a/lib/crypto/Kconfig b/lib/crypto/Kconfig index 2c6ab80e0cdc..cc4c0ee04f98 100644 --- a/lib/crypto/Kconfig +++ b/lib/crypto/Kconfig @@ -48,26 +48,20 @@ config CRYPTO_ARCH_HAVE_LIB_CHACHA accelerated implementation of the ChaCha library interface, either builtin or as a module. config CRYPTO_LIB_CHACHA_GENERIC tristate + default CRYPTO_LIB_CHACHA if !CRYPTO_ARCH_HAVE_LIB_CHACHA select CRYPTO_LIB_UTILS help - This symbol can be depended upon by arch implementations of the - ChaCha library interface that require the generic code as a - fallback, e.g., for SIMD implementations. If no arch specific - implementation is enabled, this implementation serves the users - of CRYPTO_LIB_CHACHA. - -config CRYPTO_LIB_CHACHA_INTERNAL - tristate - select CRYPTO_LIB_CHACHA_GENERIC if CRYPTO_ARCH_HAVE_LIB_CHACHA=n + This symbol can be selected by arch implementations of the ChaCha + library interface that require the generic code as a fallback, e.g., + for SIMD implementations. If no arch specific implementation is + enabled, this implementation serves the users of CRYPTO_LIB_CHACHA. config CRYPTO_LIB_CHACHA tristate - select CRYPTO - select CRYPTO_LIB_CHACHA_INTERNAL help Enable the ChaCha library interface. This interface may be fulfilled by either the generic implementation or an arch-specific one, if one is available and enabled. From patchwork Thu Apr 17 18:26:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Biggers X-Patchwork-Id: 881994 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D1C96269D03; Thu, 17 Apr 2025 18:27:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914440; cv=none; b=Ysrj3lKntMGilKAHTcDNMlaLuLMdNZ/9KKMBOB6p51k7xohmeHNqw2TlS7x7EOLg2osFhOMIja0sO4RQOiqeIzhNgv17SBvflPudqFSdkeZF0kl5b/76W5tdtSfoP0Qx/4m48GqnTVAQCh6y8WqC4p7PTo6/aafaNeRKQolo2Pc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744914440; c=relaxed/simple; bh=weiHwrb8NYhC3jbXTkeAL6uW1ADDBVix7ENL1hEP9Ss=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EcrymdlwkBjfLwg2YKuW897jCn6YZW/l1PecLQ4AyFDa5SLKUBZsaJBhvj6sGeOdVfYx/qgzI5c3bWL0701Isq+8yOleHmL9PU8bc8Kv83QltROeiqHRnN1bDKfwfpipOxa7kDMyM435b+3b5c37QfStusy2Q2Q5kljVvYQMAgQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FCjTuszM; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FCjTuszM" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D8210C4CEEA; Thu, 17 Apr 2025 18:27:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744914439; bh=weiHwrb8NYhC3jbXTkeAL6uW1ADDBVix7ENL1hEP9Ss=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FCjTuszM4I5za4jOS9EsyjTspBJ0uQZA9yPGKgtPAF7EVQ2UNhku70F5twl78Voz7 zH8nB24XT3iK9Toliv9UmuFBiKNZ2u0oe2Kj4ZWUNAZpWxDfAK15NzmpfU7I+QUs5M DcXDHvJryrsVLrQzW0CfMkzTynFe80rCTNySXXLH7KI5Vvz4tIBSYTe85v+4OGCQfe UMzel9rxjWo16CbMZrcP7CD7JcGkgw0esCydWj4tzx8p6eoASPrrwV6JmhYpWmtHSW qDj9PHIEf35cxMjKbq+467s1ksm3R0HGCyDsW0ND+Ggl3MnILrL9VNSbaILZOiATP/ VWO7CaooiMU4Q== From: Eric Biggers To: linux-crypto@vger.kernel.org Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org, "Jason A . Donenfeld " , Ard Biesheuvel Subject: [PATCH 15/15] crypto: lib/poly1305 - remove INTERNAL symbol and selection of CRYPTO Date: Thu, 17 Apr 2025 11:26:23 -0700 Message-ID: <20250417182623.67808-16-ebiggers@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250417182623.67808-1-ebiggers@kernel.org> References: <20250417182623.67808-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-crypto@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Eric Biggers Now that the architecture-optimized Poly1305 kconfig symbols are visible without CRYPTO, there is no need for CRYPTO_LIB_POLY1305 to select CRYPTO. So, remove that. This makes the indirection through the CRYPTO_LIB_POLY1305_INTERNAL symbol unnecessary, so get rid of that and just use CRYPTO_LIB_POLY1305 directly. Finally, make the fallback to the generic implementation use a default value instead of a select; this makes it consistent with how the arch-optimized code gets enabled and also with how CRYPTO_LIB_BLAKE2S_GENERIC gets enabled. Signed-off-by: Eric Biggers --- arch/arm/crypto/Kconfig | 2 +- arch/arm64/crypto/Kconfig | 2 +- arch/mips/crypto/Kconfig | 2 +- arch/powerpc/crypto/Kconfig | 2 +- arch/x86/crypto/Kconfig | 2 +- crypto/Kconfig | 2 +- lib/crypto/Kconfig | 16 +++++----------- 7 files changed, 11 insertions(+), 17 deletions(-) diff --git a/arch/arm/crypto/Kconfig b/arch/arm/crypto/Kconfig index 960602271443..e07ff8081da7 100644 --- a/arch/arm/crypto/Kconfig +++ b/arch/arm/crypto/Kconfig @@ -46,12 +46,12 @@ config CRYPTO_NHPOLY1305_NEON Architecture: arm using: - NEON (Advanced SIMD) extensions config CRYPTO_POLY1305_ARM tristate + default CRYPTO_LIB_POLY1305 select CRYPTO_ARCH_HAVE_LIB_POLY1305 - default CRYPTO_LIB_POLY1305_INTERNAL config CRYPTO_BLAKE2S_ARM bool "Hash functions: BLAKE2s" select CRYPTO_ARCH_HAVE_LIB_BLAKE2S help diff --git a/arch/arm64/crypto/Kconfig b/arch/arm64/crypto/Kconfig index 8184da75b24f..c3322a0fc2f1 100644 --- a/arch/arm64/crypto/Kconfig +++ b/arch/arm64/crypto/Kconfig @@ -26,12 +26,12 @@ config CRYPTO_NHPOLY1305_NEON - NEON (Advanced SIMD) extensions config CRYPTO_POLY1305_NEON tristate depends on KERNEL_MODE_NEON + default CRYPTO_LIB_POLY1305 select CRYPTO_ARCH_HAVE_LIB_POLY1305 - default CRYPTO_LIB_POLY1305_INTERNAL config CRYPTO_SHA1_ARM64_CE tristate "Hash functions: SHA-1 (ARMv8 Crypto Extensions)" depends on CRYPTO && KERNEL_MODE_NEON select CRYPTO_HASH diff --git a/arch/mips/crypto/Kconfig b/arch/mips/crypto/Kconfig index f1d61457518f..98c9a2afd676 100644 --- a/arch/mips/crypto/Kconfig +++ b/arch/mips/crypto/Kconfig @@ -2,12 +2,12 @@ menu "Accelerated Cryptographic Algorithms for CPU (mips)" config CRYPTO_POLY1305_MIPS tristate + default CRYPTO_LIB_POLY1305 select CRYPTO_ARCH_HAVE_LIB_POLY1305 - default CRYPTO_LIB_POLY1305_INTERNAL config CRYPTO_MD5_OCTEON tristate "Digests: MD5 (OCTEON)" depends on CRYPTO && CPU_CAVIUM_OCTEON select CRYPTO_MD5 diff --git a/arch/powerpc/crypto/Kconfig b/arch/powerpc/crypto/Kconfig index dd3bd22d8e20..3f3253215470 100644 --- a/arch/powerpc/crypto/Kconfig +++ b/arch/powerpc/crypto/Kconfig @@ -100,13 +100,13 @@ config CRYPTO_CHACHA20_P10 select CRYPTO_ARCH_HAVE_LIB_CHACHA config CRYPTO_POLY1305_P10 tristate depends on PPC64 && CPU_LITTLE_ENDIAN && VSX + default CRYPTO_LIB_POLY1305 select CRYPTO_ARCH_HAVE_LIB_POLY1305 select CRYPTO_LIB_POLY1305_GENERIC - default CRYPTO_LIB_POLY1305_INTERNAL config CRYPTO_DEV_VMX bool "Support for VMX cryptographic acceleration instructions" depends on CRYPTO && PPC64 && VSX help diff --git a/arch/x86/crypto/Kconfig b/arch/x86/crypto/Kconfig index 5b9d6dbe6185..6f4bcdf410d8 100644 --- a/arch/x86/crypto/Kconfig +++ b/arch/x86/crypto/Kconfig @@ -397,12 +397,12 @@ config CRYPTO_POLYVAL_CLMUL_NI - CLMUL-NI (carry-less multiplication new instructions) config CRYPTO_POLY1305_X86_64 tristate depends on 64BIT + default CRYPTO_LIB_POLY1305 select CRYPTO_ARCH_HAVE_LIB_POLY1305 - default CRYPTO_LIB_POLY1305_INTERNAL config CRYPTO_SHA1_SSSE3 tristate "Hash functions: SHA-1 (SSSE3/AVX/AVX2/SHA-NI)" depends on CRYPTO && 64BIT select CRYPTO_SHA1 diff --git a/crypto/Kconfig b/crypto/Kconfig index ed50d1b6f6f3..82c61c8e7235 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig @@ -954,12 +954,12 @@ config CRYPTO_POLYVAL cryptographic hash function. config CRYPTO_POLY1305 tristate "Poly1305" select CRYPTO_HASH + select CRYPTO_LIB_POLY1305 select CRYPTO_LIB_POLY1305_GENERIC - select CRYPTO_LIB_POLY1305_INTERNAL help Poly1305 authenticator algorithm (RFC7539) Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein. It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use diff --git a/lib/crypto/Kconfig b/lib/crypto/Kconfig index cc4c0ee04f98..e23280af302a 100644 --- a/lib/crypto/Kconfig +++ b/lib/crypto/Kconfig @@ -112,25 +112,19 @@ config CRYPTO_ARCH_HAVE_LIB_POLY1305 accelerated implementation of the Poly1305 library interface, either builtin or as a module. config CRYPTO_LIB_POLY1305_GENERIC tristate + default CRYPTO_LIB_POLY1305 if !CRYPTO_ARCH_HAVE_LIB_POLY1305 help - This symbol can be depended upon by arch implementations of the - Poly1305 library interface that require the generic code as a - fallback, e.g., for SIMD implementations. If no arch specific - implementation is enabled, this implementation serves the users - of CRYPTO_LIB_POLY1305. - -config CRYPTO_LIB_POLY1305_INTERNAL - tristate - select CRYPTO_LIB_POLY1305_GENERIC if CRYPTO_ARCH_HAVE_LIB_POLY1305=n + This symbol can be selected by arch implementations of the Poly1305 + library interface that require the generic code as a fallback, e.g., + for SIMD implementations. If no arch specific implementation is + enabled, this implementation serves the users of CRYPTO_LIB_POLY1305. config CRYPTO_LIB_POLY1305 tristate - select CRYPTO - select CRYPTO_LIB_POLY1305_INTERNAL help Enable the Poly1305 library interface. This interface may be fulfilled by either the generic implementation or an arch-specific one, if one is available and enabled.