From nobody Mon Dec 15 21:12:27 2025 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 130B31487E1; Mon, 5 May 2025 20:37: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=1746477436; cv=none; b=KU0e/OexOX1gj8NJCzzlE/EM0D3dulzEFfFPHi1Ux0Sy5n6pTiwZYaaverbGRpqpzwN6Ev4DY/zdUzXm81g0Fq61XqqTlFUTwq2hfHnZ+BmrSEoBGikm0IF3uT+CFYz5SvXFmANZGqnWPBwYwJot4jNd4aN9ZxbdZAe3bFkyrCI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746477436; c=relaxed/simple; bh=RrlI2FX8ROpsE/Bz0ki1ZZnvibt9T/Hyiu2R7J6Oz9E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NNjoCru+wlK75Lkfrd+bHr+Mttcs71h+xnocmJiHKD9Zb3AT75H9LCVqfYEMH7LSEOSS8ScYhndL/dLGioXPJTiGH7NFRoNYvruE2dzzybpotFykVF2dRLEE0e6WjUxFkd1fTVv1Qt6WkfUJxHaZw2kiy3apXRZuCT+BLiL4OWc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DaY262NG; 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="DaY262NG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 73CB2C4CEEE; Mon, 5 May 2025 20:37:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1746477435; bh=RrlI2FX8ROpsE/Bz0ki1ZZnvibt9T/Hyiu2R7J6Oz9E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DaY262NGIAhjH4MplBu3BILMeqTysaMAX5m4w/o6xOb1X0EVv99QPd2Ggu7ezcMWZ m9VbYpQRLRsX/9Apg1gAZCzz3ztOgFGBg5VjC159ZKp5x222qoHVyNjrvtr2nARrTB cNHBUeurY5kEZACTJAvdHul+2/KCuPV6m2/fAKbAk6cq1tOIh8mTWjZd658qMwQrBP 8lWIRvnMmviisx/JDef7eXUpAjY2S9m0wVU/fOqtEbCjU7oaio0xxPrvZO33pa6U4e 2LbIH7/ctH+vBHnzjJPP2+PgusopLblYmoImLerRC2t0GQVktAQYzBwJw2NLn854zl IPiAJDmCP+WOA== From: Eric Biggers To: linux-crypto@vger.kernel.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH v3 1/7] crypto: tcrypt - rename CRYPTO_TEST to CRYPTO_BENCHMARK Date: Mon, 5 May 2025 13:33:39 -0700 Message-ID: <20250505203345.802740-2-ebiggers@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250505203345.802740-1-ebiggers@kernel.org> References: <20250505203345.802740-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Eric Biggers tcrypt is actually a benchmarking module and not the actual tests. This regularly causes confusion. Update the kconfig option name and help text accordingly. Signed-off-by: Eric Biggers Acked-by: Geert Uytterhoeven # m68k --- arch/arm/configs/exynos_defconfig | 2 +- arch/arm/configs/pxa_defconfig | 2 +- arch/arm/configs/spitz_defconfig | 2 +- arch/arm64/configs/defconfig | 2 +- arch/m68k/configs/amiga_defconfig | 2 +- arch/m68k/configs/apollo_defconfig | 2 +- arch/m68k/configs/atari_defconfig | 2 +- arch/m68k/configs/bvme6000_defconfig | 2 +- arch/m68k/configs/hp300_defconfig | 2 +- arch/m68k/configs/mac_defconfig | 2 +- arch/m68k/configs/multi_defconfig | 2 +- arch/m68k/configs/mvme147_defconfig | 2 +- arch/m68k/configs/mvme16x_defconfig | 2 +- arch/m68k/configs/q40_defconfig | 2 +- arch/m68k/configs/sun3_defconfig | 2 +- arch/m68k/configs/sun3x_defconfig | 2 +- arch/mips/configs/gpr_defconfig | 2 +- arch/mips/configs/lemote2f_defconfig | 2 +- arch/mips/configs/mtx1_defconfig | 2 +- arch/mips/configs/rb532_defconfig | 2 +- arch/parisc/configs/generic-32bit_defconfig | 2 +- arch/powerpc/configs/g5_defconfig | 2 +- arch/powerpc/configs/powernv_defconfig | 2 +- arch/powerpc/configs/ppc64_defconfig | 2 +- arch/powerpc/configs/ppc64e_defconfig | 2 +- arch/powerpc/configs/ppc6xx_defconfig | 2 +- arch/s390/configs/debug_defconfig | 2 +- arch/s390/configs/defconfig | 2 +- arch/sparc/configs/sparc64_defconfig | 2 +- crypto/Kconfig | 10 +++++++--- crypto/Makefile | 2 +- crypto/tcrypt.c | 8 ++++---- crypto/tcrypt.h | 4 ++-- 33 files changed, 43 insertions(+), 39 deletions(-) diff --git a/arch/arm/configs/exynos_defconfig b/arch/arm/configs/exynos_de= fconfig index c6792c0256a6..e81964cce516 100644 --- a/arch/arm/configs/exynos_defconfig +++ b/arch/arm/configs/exynos_defconfig @@ -347,11 +347,11 @@ CONFIG_ROOT_NFS=3Dy CONFIG_NLS_CODEPAGE_437=3Dy CONFIG_NLS_ASCII=3Dy CONFIG_NLS_ISO8859_1=3Dy CONFIG_NLS_UTF8=3Dy CONFIG_CRYPTO_USER=3Dm -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_DH=3Dm CONFIG_CRYPTO_LRW=3Dm CONFIG_CRYPTO_XTS=3Dm CONFIG_CRYPTO_MD5=3Dm CONFIG_CRYPTO_SHA512=3Dm diff --git a/arch/arm/configs/pxa_defconfig b/arch/arm/configs/pxa_defconfig index 56be85752909..edc5b4d17f77 100644 --- a/arch/arm/configs/pxa_defconfig +++ b/arch/arm/configs/pxa_defconfig @@ -637,11 +637,11 @@ CONFIG_NLS_UTF8=3Dm CONFIG_TIMER_STATS=3Dy CONFIG_SECURITY=3Dy CONFIG_CRYPTO_MANAGER=3Dy CONFIG_CRYPTO_CRYPTD=3Dm CONFIG_CRYPTO_AUTHENC=3Dm -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_BLOWFISH=3Dm CONFIG_CRYPTO_CAST5=3Dm CONFIG_CRYPTO_CAST6=3Dm CONFIG_CRYPTO_FCRYPT=3Dm CONFIG_CRYPTO_KHAZAD=3Dm diff --git a/arch/arm/configs/spitz_defconfig b/arch/arm/configs/spitz_defc= onfig index ffec59e3f49c..ac2a0f998c73 100644 --- a/arch/arm/configs/spitz_defconfig +++ b/arch/arm/configs/spitz_defconfig @@ -213,11 +213,11 @@ CONFIG_NLS_DEFAULT=3D"cp437" CONFIG_NLS_CODEPAGE_437=3Dy CONFIG_NLS_ISO8859_1=3Dy CONFIG_NLS_UTF8=3Dy CONFIG_DEBUG_KERNEL=3Dy CONFIG_CRYPTO_NULL=3Dm -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_ECB=3Dm CONFIG_CRYPTO_SHA256=3Dm CONFIG_CRYPTO_AES=3Dm CONFIG_CRYPTO_ANUBIS=3Dm CONFIG_CRYPTO_ARC4=3Dm diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig index b0d4c7d173ea..4166bc4d3cec 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -1727,11 +1727,11 @@ CONFIG_ROOT_NFS=3Dy CONFIG_9P_FS=3Dy CONFIG_NLS_CODEPAGE_437=3Dy CONFIG_NLS_ISO8859_1=3Dy CONFIG_SECURITY=3Dy CONFIG_CRYPTO_USER=3Dy -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_ECHAINIV=3Dy CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_ANSI_CPRNG=3Dy CONFIG_CRYPTO_USER_API_RNG=3Dm CONFIG_CRYPTO_CHACHA20_NEON=3Dm diff --git a/arch/m68k/configs/amiga_defconfig b/arch/m68k/configs/amiga_de= fconfig index 31ecb8b7b9f1..77f78d326a32 100644 --- a/arch/m68k/configs/amiga_defconfig +++ b/arch/m68k/configs/amiga_defconfig @@ -549,11 +549,11 @@ CONFIG_NLS_MAC_TURKISH=3Dm CONFIG_DLM=3Dm CONFIG_ENCRYPTED_KEYS=3Dm CONFIG_HARDENED_USERCOPY=3Dy CONFIG_CRYPTO_USER=3Dm CONFIG_CRYPTO_CRYPTD=3Dm -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_RSA=3Dm CONFIG_CRYPTO_DH=3Dm CONFIG_CRYPTO_ECDH=3Dm CONFIG_CRYPTO_ECDSA=3Dm CONFIG_CRYPTO_ECRDSA=3Dm diff --git a/arch/m68k/configs/apollo_defconfig b/arch/m68k/configs/apollo_= defconfig index 1f57514624d5..f4031aa5d37f 100644 --- a/arch/m68k/configs/apollo_defconfig +++ b/arch/m68k/configs/apollo_defconfig @@ -506,11 +506,11 @@ CONFIG_NLS_MAC_TURKISH=3Dm CONFIG_DLM=3Dm CONFIG_ENCRYPTED_KEYS=3Dm CONFIG_HARDENED_USERCOPY=3Dy CONFIG_CRYPTO_USER=3Dm CONFIG_CRYPTO_CRYPTD=3Dm -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_RSA=3Dm CONFIG_CRYPTO_DH=3Dm CONFIG_CRYPTO_ECDH=3Dm CONFIG_CRYPTO_ECDSA=3Dm CONFIG_CRYPTO_ECRDSA=3Dm diff --git a/arch/m68k/configs/atari_defconfig b/arch/m68k/configs/atari_de= fconfig index 02db7a48e57e..fa92131cf4b3 100644 --- a/arch/m68k/configs/atari_defconfig +++ b/arch/m68k/configs/atari_defconfig @@ -526,11 +526,11 @@ CONFIG_NLS_MAC_TURKISH=3Dm CONFIG_DLM=3Dm CONFIG_ENCRYPTED_KEYS=3Dm CONFIG_HARDENED_USERCOPY=3Dy CONFIG_CRYPTO_USER=3Dm CONFIG_CRYPTO_CRYPTD=3Dm -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_RSA=3Dm CONFIG_CRYPTO_DH=3Dm CONFIG_CRYPTO_ECDH=3Dm CONFIG_CRYPTO_ECDSA=3Dm CONFIG_CRYPTO_ECRDSA=3Dm diff --git a/arch/m68k/configs/bvme6000_defconfig b/arch/m68k/configs/bvme6= 000_defconfig index f0e673cb17eb..9c2afc477061 100644 --- a/arch/m68k/configs/bvme6000_defconfig +++ b/arch/m68k/configs/bvme6000_defconfig @@ -498,11 +498,11 @@ CONFIG_NLS_MAC_TURKISH=3Dm CONFIG_DLM=3Dm CONFIG_ENCRYPTED_KEYS=3Dm CONFIG_HARDENED_USERCOPY=3Dy CONFIG_CRYPTO_USER=3Dm CONFIG_CRYPTO_CRYPTD=3Dm -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_RSA=3Dm CONFIG_CRYPTO_DH=3Dm CONFIG_CRYPTO_ECDH=3Dm CONFIG_CRYPTO_ECDSA=3Dm CONFIG_CRYPTO_ECRDSA=3Dm diff --git a/arch/m68k/configs/hp300_defconfig b/arch/m68k/configs/hp300_de= fconfig index e8ca5a50b86d..e7cdab059d96 100644 --- a/arch/m68k/configs/hp300_defconfig +++ b/arch/m68k/configs/hp300_defconfig @@ -508,11 +508,11 @@ CONFIG_NLS_MAC_TURKISH=3Dm CONFIG_DLM=3Dm CONFIG_ENCRYPTED_KEYS=3Dm CONFIG_HARDENED_USERCOPY=3Dy CONFIG_CRYPTO_USER=3Dm CONFIG_CRYPTO_CRYPTD=3Dm -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_RSA=3Dm CONFIG_CRYPTO_DH=3Dm CONFIG_CRYPTO_ECDH=3Dm CONFIG_CRYPTO_ECDSA=3Dm CONFIG_CRYPTO_ECRDSA=3Dm diff --git a/arch/m68k/configs/mac_defconfig b/arch/m68k/configs/mac_defcon= fig index b3a270441bb1..0a79751c20a5 100644 --- a/arch/m68k/configs/mac_defconfig +++ b/arch/m68k/configs/mac_defconfig @@ -525,11 +525,11 @@ CONFIG_NLS_MAC_TURKISH=3Dm CONFIG_DLM=3Dm CONFIG_ENCRYPTED_KEYS=3Dm CONFIG_HARDENED_USERCOPY=3Dy CONFIG_CRYPTO_USER=3Dm CONFIG_CRYPTO_CRYPTD=3Dm -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_RSA=3Dm CONFIG_CRYPTO_DH=3Dm CONFIG_CRYPTO_ECDH=3Dm CONFIG_CRYPTO_ECDSA=3Dm CONFIG_CRYPTO_ECRDSA=3Dm diff --git a/arch/m68k/configs/multi_defconfig b/arch/m68k/configs/multi_de= fconfig index d215dba006ce..f8ca490ee65a 100644 --- a/arch/m68k/configs/multi_defconfig +++ b/arch/m68k/configs/multi_defconfig @@ -612,11 +612,11 @@ CONFIG_NLS_MAC_TURKISH=3Dm CONFIG_DLM=3Dm CONFIG_ENCRYPTED_KEYS=3Dm CONFIG_HARDENED_USERCOPY=3Dy CONFIG_CRYPTO_USER=3Dm CONFIG_CRYPTO_CRYPTD=3Dm -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_RSA=3Dm CONFIG_CRYPTO_DH=3Dm CONFIG_CRYPTO_ECDH=3Dm CONFIG_CRYPTO_ECDSA=3Dm CONFIG_CRYPTO_ECRDSA=3Dm diff --git a/arch/m68k/configs/mvme147_defconfig b/arch/m68k/configs/mvme14= 7_defconfig index a888ed93ff82..88fdcea906f3 100644 --- a/arch/m68k/configs/mvme147_defconfig +++ b/arch/m68k/configs/mvme147_defconfig @@ -498,11 +498,11 @@ CONFIG_NLS_MAC_TURKISH=3Dm CONFIG_DLM=3Dm CONFIG_ENCRYPTED_KEYS=3Dm CONFIG_HARDENED_USERCOPY=3Dy CONFIG_CRYPTO_USER=3Dm CONFIG_CRYPTO_CRYPTD=3Dm -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_RSA=3Dm CONFIG_CRYPTO_DH=3Dm CONFIG_CRYPTO_ECDH=3Dm CONFIG_CRYPTO_ECDSA=3Dm CONFIG_CRYPTO_ECRDSA=3Dm diff --git a/arch/m68k/configs/mvme16x_defconfig b/arch/m68k/configs/mvme16= x_defconfig index b481782375f6..8acbe83dac72 100644 --- a/arch/m68k/configs/mvme16x_defconfig +++ b/arch/m68k/configs/mvme16x_defconfig @@ -499,11 +499,11 @@ CONFIG_NLS_MAC_TURKISH=3Dm CONFIG_DLM=3Dm CONFIG_ENCRYPTED_KEYS=3Dm CONFIG_HARDENED_USERCOPY=3Dy CONFIG_CRYPTO_USER=3Dm CONFIG_CRYPTO_CRYPTD=3Dm -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_RSA=3Dm CONFIG_CRYPTO_DH=3Dm CONFIG_CRYPTO_ECDH=3Dm CONFIG_CRYPTO_ECDSA=3Dm CONFIG_CRYPTO_ECRDSA=3Dm diff --git a/arch/m68k/configs/q40_defconfig b/arch/m68k/configs/q40_defcon= fig index 6eba743d8eb5..e3095301f3c5 100644 --- a/arch/m68k/configs/q40_defconfig +++ b/arch/m68k/configs/q40_defconfig @@ -515,11 +515,11 @@ CONFIG_NLS_MAC_TURKISH=3Dm CONFIG_DLM=3Dm CONFIG_ENCRYPTED_KEYS=3Dm CONFIG_HARDENED_USERCOPY=3Dy CONFIG_CRYPTO_USER=3Dm CONFIG_CRYPTO_CRYPTD=3Dm -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_RSA=3Dm CONFIG_CRYPTO_DH=3Dm CONFIG_CRYPTO_ECDH=3Dm CONFIG_CRYPTO_ECDSA=3Dm CONFIG_CRYPTO_ECRDSA=3Dm diff --git a/arch/m68k/configs/sun3_defconfig b/arch/m68k/configs/sun3_defc= onfig index 9bdbb418ffa8..948e48ddd128 100644 --- a/arch/m68k/configs/sun3_defconfig +++ b/arch/m68k/configs/sun3_defconfig @@ -496,11 +496,11 @@ CONFIG_NLS_MAC_TURKISH=3Dm CONFIG_DLM=3Dm CONFIG_ENCRYPTED_KEYS=3Dm CONFIG_HARDENED_USERCOPY=3Dy CONFIG_CRYPTO_USER=3Dm CONFIG_CRYPTO_CRYPTD=3Dm -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_RSA=3Dm CONFIG_CRYPTO_DH=3Dm CONFIG_CRYPTO_ECDH=3Dm CONFIG_CRYPTO_ECDSA=3Dm CONFIG_CRYPTO_ECRDSA=3Dm diff --git a/arch/m68k/configs/sun3x_defconfig b/arch/m68k/configs/sun3x_de= fconfig index e1cf20fa5343..5bcf9181c37c 100644 --- a/arch/m68k/configs/sun3x_defconfig +++ b/arch/m68k/configs/sun3x_defconfig @@ -496,11 +496,11 @@ CONFIG_NLS_MAC_TURKISH=3Dm CONFIG_DLM=3Dm CONFIG_ENCRYPTED_KEYS=3Dm CONFIG_HARDENED_USERCOPY=3Dy CONFIG_CRYPTO_USER=3Dm CONFIG_CRYPTO_CRYPTD=3Dm -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_RSA=3Dm CONFIG_CRYPTO_DH=3Dm CONFIG_CRYPTO_ECDH=3Dm CONFIG_CRYPTO_ECDSA=3Dm CONFIG_CRYPTO_ECRDSA=3Dm diff --git a/arch/mips/configs/gpr_defconfig b/arch/mips/configs/gpr_defcon= fig index 12f3eed8a946..48c8feec958f 100644 --- a/arch/mips/configs/gpr_defconfig +++ b/arch/mips/configs/gpr_defconfig @@ -271,11 +271,11 @@ CONFIG_NFS_V4=3Dy CONFIG_ROOT_NFS=3Dy CONFIG_NLS_CODEPAGE_437=3Dy CONFIG_NLS_CODEPAGE_850=3Dy CONFIG_NLS_ISO8859_1=3Dy CONFIG_CRYPTO_AUTHENC=3Dm -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_MD4=3Dm CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_SHA512=3Dm CONFIG_CRYPTO_WP512=3Dm diff --git a/arch/mips/configs/lemote2f_defconfig b/arch/mips/configs/lemot= e2f_defconfig index 71d6340497c9..5038a27d035f 100644 --- a/arch/mips/configs/lemote2f_defconfig +++ b/arch/mips/configs/lemote2f_defconfig @@ -295,11 +295,11 @@ CONFIG_NLS_ISO8859_14=3Dm CONFIG_NLS_ISO8859_15=3Dm CONFIG_NLS_KOI8_R=3Dm CONFIG_NLS_KOI8_U=3Dm CONFIG_NLS_UTF8=3Dy CONFIG_CRYPTO_CRYPTD=3Dm -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_BLOWFISH=3Dm CONFIG_CRYPTO_CAMELLIA=3Dm CONFIG_CRYPTO_CAST5=3Dm CONFIG_CRYPTO_CAST6=3Dm CONFIG_CRYPTO_FCRYPT=3Dm diff --git a/arch/mips/configs/mtx1_defconfig b/arch/mips/configs/mtx1_defc= onfig index 06b7a0b97eca..cbf9c35a6177 100644 --- a/arch/mips/configs/mtx1_defconfig +++ b/arch/mips/configs/mtx1_defconfig @@ -660,11 +660,11 @@ CONFIG_NLS_ISO8859_13=3Dm CONFIG_NLS_ISO8859_14=3Dm CONFIG_NLS_ISO8859_15=3Dm CONFIG_NLS_KOI8_R=3Dm CONFIG_NLS_KOI8_U=3Dm CONFIG_NLS_UTF8=3Dm -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_HMAC=3Dy CONFIG_CRYPTO_MD5=3Dy CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_WP512=3Dm diff --git a/arch/mips/configs/rb532_defconfig b/arch/mips/configs/rb532_de= fconfig index 42b161d587c7..9fb114ef5e2d 100644 --- a/arch/mips/configs/rb532_defconfig +++ b/arch/mips/configs/rb532_defconfig @@ -151,8 +151,8 @@ CONFIG_TMPFS=3Dy CONFIG_CONFIGFS_FS=3Dy CONFIG_JFFS2_FS=3Dy CONFIG_JFFS2_SUMMARY=3Dy CONFIG_JFFS2_COMPRESSION_OPTIONS=3Dy CONFIG_SQUASHFS=3Dy -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm # CONFIG_CRYPTO_HW is not set CONFIG_STRIP_ASM_SYMS=3Dy diff --git a/arch/parisc/configs/generic-32bit_defconfig b/arch/parisc/conf= igs/generic-32bit_defconfig index 5b65c9859613..94928d114d4c 100644 --- a/arch/parisc/configs/generic-32bit_defconfig +++ b/arch/parisc/configs/generic-32bit_defconfig @@ -249,11 +249,11 @@ CONFIG_NFS_FS=3Dm CONFIG_NFSD=3Dm CONFIG_CIFS=3Dm CONFIG_CIFS_XATTR=3Dy CONFIG_CIFS_POSIX=3Dy # CONFIG_CIFS_DEBUG is not set -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_BLOWFISH=3Dm CONFIG_CRYPTO_CAST5=3Dm CONFIG_CRYPTO_CAST6=3Dm CONFIG_CRYPTO_DES=3Dy CONFIG_CRYPTO_SERPENT=3Dm diff --git a/arch/powerpc/configs/g5_defconfig b/arch/powerpc/configs/g5_de= fconfig index 7e58f3e6c987..428f17b45513 100644 --- a/arch/powerpc/configs/g5_defconfig +++ b/arch/powerpc/configs/g5_defconfig @@ -233,11 +233,11 @@ CONFIG_NLS_ISO8859_15=3Dy CONFIG_NLS_UTF8=3Dy CONFIG_MAGIC_SYSRQ=3Dy CONFIG_DEBUG_KERNEL=3Dy CONFIG_DEBUG_MUTEXES=3Dy CONFIG_BOOTX_TEXT=3Dy -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_HMAC=3Dy CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_SHA512=3Dm CONFIG_CRYPTO_WP512=3Dm diff --git a/arch/powerpc/configs/powernv_defconfig b/arch/powerpc/configs/= powernv_defconfig index 6b6d7467fecf..379229c982a4 100644 --- a/arch/powerpc/configs/powernv_defconfig +++ b/arch/powerpc/configs/powernv_defconfig @@ -315,11 +315,11 @@ CONFIG_BLK_DEV_IO_TRACE=3Dy CONFIG_PPC_EMULATED_STATS=3Dy CONFIG_CODE_PATCHING_SELFTEST=3Dy CONFIG_FTR_FIXUP_SELFTEST=3Dy CONFIG_MSI_BITMAP_SELFTEST=3Dy CONFIG_XMON=3Dy -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_HMAC=3Dy CONFIG_CRYPTO_MD5_PPC=3Dm CONFIG_CRYPTO_MICHAEL_MIC=3Dm CONFIG_CRYPTO_SHA1_PPC=3Dm diff --git a/arch/powerpc/configs/ppc64_defconfig b/arch/powerpc/configs/pp= c64_defconfig index 5fa154185efa..3423c405cad4 100644 --- a/arch/powerpc/configs/ppc64_defconfig +++ b/arch/powerpc/configs/ppc64_defconfig @@ -375,11 +375,11 @@ CONFIG_IMA_KEXEC=3Dy CONFIG_IMA_DEFAULT_HASH_SHA256=3Dy CONFIG_IMA_WRITE_POLICY=3Dy CONFIG_IMA_APPRAISE=3Dy CONFIG_IMA_ARCH_POLICY=3Dy CONFIG_IMA_APPRAISE_MODSIG=3Dy -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_BLOWFISH=3Dm CONFIG_CRYPTO_CAST6=3Dm CONFIG_CRYPTO_SERPENT=3Dm CONFIG_CRYPTO_TWOFISH=3Dm CONFIG_CRYPTO_PCBC=3Dm diff --git a/arch/powerpc/configs/ppc64e_defconfig b/arch/powerpc/configs/p= pc64e_defconfig index d2e659a2d8cb..90247b2a0ab0 100644 --- a/arch/powerpc/configs/ppc64e_defconfig +++ b/arch/powerpc/configs/ppc64e_defconfig @@ -218,11 +218,11 @@ CONFIG_SCHED_TRACER=3Dy CONFIG_BLK_DEV_IO_TRACE=3Dy CONFIG_CODE_PATCHING_SELFTEST=3Dy CONFIG_FTR_FIXUP_SELFTEST=3Dy CONFIG_MSI_BITMAP_SELFTEST=3Dy CONFIG_XMON=3Dy -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_CCM=3Dm CONFIG_CRYPTO_GCM=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_HMAC=3Dy CONFIG_CRYPTO_MICHAEL_MIC=3Dm diff --git a/arch/powerpc/configs/ppc6xx_defconfig b/arch/powerpc/configs/p= pc6xx_defconfig index a91a766b71a4..242c1fab9d46 100644 --- a/arch/powerpc/configs/ppc6xx_defconfig +++ b/arch/powerpc/configs/ppc6xx_defconfig @@ -1071,11 +1071,11 @@ CONFIG_SECURITY=3Dy CONFIG_SECURITY_NETWORK=3Dy CONFIG_SECURITY_NETWORK_XFRM=3Dy CONFIG_SECURITY_SELINUX=3Dy CONFIG_SECURITY_SELINUX_BOOTPARAM=3Dy CONFIG_SECURITY_SELINUX_DISABLE=3Dy -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_CTS=3Dm CONFIG_CRYPTO_LRW=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_XTS=3Dm CONFIG_CRYPTO_HMAC=3Dy diff --git a/arch/s390/configs/debug_defconfig b/arch/s390/configs/debug_de= fconfig index de69faa4d94f..e6f7c8f4ee8b 100644 --- a/arch/s390/configs/debug_defconfig +++ b/arch/s390/configs/debug_defconfig @@ -744,11 +744,11 @@ CONFIG_IMA_APPRAISE=3Dy CONFIG_BUG_ON_DATA_CORRUPTION=3Dy CONFIG_CRYPTO_USER=3Dm # CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set CONFIG_CRYPTO_PCRYPT=3Dm CONFIG_CRYPTO_CRYPTD=3Dm -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_DH=3Dm CONFIG_CRYPTO_ECDH=3Dm CONFIG_CRYPTO_ECDSA=3Dm CONFIG_CRYPTO_ECRDSA=3Dm CONFIG_CRYPTO_CURVE25519=3Dm diff --git a/arch/s390/configs/defconfig b/arch/s390/configs/defconfig index f12679448e97..7495bf8e483c 100644 --- a/arch/s390/configs/defconfig +++ b/arch/s390/configs/defconfig @@ -730,11 +730,11 @@ CONFIG_BUG_ON_DATA_CORRUPTION=3Dy CONFIG_CRYPTO_FIPS=3Dy CONFIG_CRYPTO_USER=3Dm # CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set CONFIG_CRYPTO_PCRYPT=3Dm CONFIG_CRYPTO_CRYPTD=3Dm -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_DH=3Dm CONFIG_CRYPTO_ECDH=3Dm CONFIG_CRYPTO_ECDSA=3Dm CONFIG_CRYPTO_ECRDSA=3Dm CONFIG_CRYPTO_CURVE25519=3Dm diff --git a/arch/sparc/configs/sparc64_defconfig b/arch/sparc/configs/spar= c64_defconfig index f1ba0fefe1f9..7a7c4dec2925 100644 --- a/arch/sparc/configs/sparc64_defconfig +++ b/arch/sparc/configs/sparc64_defconfig @@ -203,11 +203,11 @@ CONFIG_DETECT_HUNG_TASK=3Dy CONFIG_SCHEDSTATS=3Dy CONFIG_BLK_DEV_IO_TRACE=3Dy CONFIG_UPROBE_EVENTS=3Dy CONFIG_KEYS=3Dy CONFIG_CRYPTO_NULL=3Dm -CONFIG_CRYPTO_TEST=3Dm +CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_LRW=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_XTS=3Dm CONFIG_CRYPTO_XCBC=3Dy CONFIG_CRYPTO_MD4=3Dy diff --git a/crypto/Kconfig b/crypto/Kconfig index 7bfad077f308..da352f1984ea 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig @@ -244,16 +244,20 @@ config CRYPTO_KRB5ENC help Combined hash and cipher support for Kerberos 5 RFC3961 simplified profile. This is required for Kerberos 5-style encryption, used by sunrpc/NFS and rxrpc/AFS. =20 -config CRYPTO_TEST - tristate "Testing module" +config CRYPTO_BENCHMARK + tristate "Crypto benchmarking module" depends on m || EXPERT select CRYPTO_MANAGER help - Quick & dirty crypto test module. + Quick & dirty crypto benchmarking module. + + This is mainly intended for use by people developing cryptographic + algorithms in the kernel. It should not be enabled in production + kernels. =20 config CRYPTO_SIMD tristate select CRYPTO_CRYPTD =20 diff --git a/crypto/Makefile b/crypto/Makefile index 84f6911dc9ba..e2223265b91a 100644 --- a/crypto/Makefile +++ b/crypto/Makefile @@ -170,11 +170,11 @@ obj-$(CONFIG_CRYPTO_JITTERENTROPY) +=3D jitterentropy= _rng.o CFLAGS_jitterentropy.o =3D -O0 KASAN_SANITIZE_jitterentropy.o =3D n UBSAN_SANITIZE_jitterentropy.o =3D n jitterentropy_rng-y :=3D jitterentropy.o jitterentropy-kcapi.o obj-$(CONFIG_CRYPTO_JITTERENTROPY_TESTINTERFACE) +=3D jitterentropy-testin= g.o -obj-$(CONFIG_CRYPTO_TEST) +=3D tcrypt.o +obj-$(CONFIG_CRYPTO_BENCHMARK) +=3D tcrypt.o obj-$(CONFIG_CRYPTO_GHASH) +=3D ghash-generic.o obj-$(CONFIG_CRYPTO_POLYVAL) +=3D polyval-generic.o obj-$(CONFIG_CRYPTO_USER_API) +=3D af_alg.o obj-$(CONFIG_CRYPTO_USER_API_HASH) +=3D algif_hash.o obj-$(CONFIG_CRYPTO_USER_API_SKCIPHER) +=3D algif_skcipher.o diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c index 879fc21dcc16..d1d88debbd71 100644 --- a/crypto/tcrypt.c +++ b/crypto/tcrypt.c @@ -1,10 +1,10 @@ // SPDX-License-Identifier: GPL-2.0-or-later /* - * Quick & dirty crypto testing module. + * Quick & dirty crypto benchmarking module. * - * This will only exist until we have a better testing mechanism + * This will only exist until we have a better benchmarking mechanism * (e.g. a char device). * * Copyright (c) 2002 James Morris * Copyright (c) 2002 Jean-Francois Dive * Copyright (c) 2007 Nokia Siemens Networks @@ -37,11 +37,11 @@ =20 #include "internal.h" #include "tcrypt.h" =20 /* - * Need slab memory for testing (size in number of pages). + * Need slab memory for benchmarking (size in number of pages). */ #define TVMEMSIZE 4 =20 /* * Used by test_cipher_speed() @@ -2866,7 +2866,7 @@ module_param(num_mb, uint, 0000); MODULE_PARM_DESC(num_mb, "Number of concurrent requests to be used in mb s= peed tests (defaults to 8)"); module_param(klen, uint, 0); MODULE_PARM_DESC(klen, "Key length (defaults to 0)"); =20 MODULE_LICENSE("GPL"); -MODULE_DESCRIPTION("Quick & dirty crypto testing module"); +MODULE_DESCRIPTION("Quick & dirty crypto benchmarking module"); MODULE_AUTHOR("James Morris "); diff --git a/crypto/tcrypt.h b/crypto/tcrypt.h index 96c843a24607..7f938ac93e58 100644 --- a/crypto/tcrypt.h +++ b/crypto/tcrypt.h @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: GPL-2.0-or-later */ /* - * Quick & dirty crypto testing module. + * Quick & dirty crypto benchmarking module. * - * This will only exist until we have a better testing mechanism + * This will only exist until we have a better benchmarking mechanism * (e.g. a char device). * * Copyright (c) 2002 James Morris * Copyright (c) 2002 Jean-Francois Dive * Copyright (c) 2007 Nokia Siemens Networks --=20 2.49.0 From nobody Mon Dec 15 21:12:27 2025 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 67E8C26F444; Mon, 5 May 2025 20:37: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=1746477436; cv=none; b=RGzgI4OHFNK/qQM2bvyqcPr4gmYebeR+QACsD8DxxDwcjm1CV4ip1wjhkKk9y9D3sEwQAigBD/2ljO5rkI0B7OZkkhyo6u7rM9YNJGgX41kfDCSfMeaREGkQ6E0vXff6X6E6oKFKJLe9Zld3dU/thVhsq7WVFm6CO9UZE4bQSsM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746477436; c=relaxed/simple; bh=zLJNQbTBpTtCkwbzaJ94Y+qs9Gluucy9HpN7NqXx5bM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GEw+N/SU5ZUzK3tkCwsa8gXf0jhvip2t5pw2VSBiG7l+MD5xgKPHayv09w6BQOUdrn6wkv6uVsUij1GQR3o8k6LEG5MpBzdKVNdykhHxNijPs3G3V7O+bNWKNEqgavsH1le3GYlWjtj1swclNwK2Hv7Nw0l3i934aocuVYCqsA4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jc7XqS8d; 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="jc7XqS8d" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A9917C4CEED; Mon, 5 May 2025 20:37:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1746477435; bh=zLJNQbTBpTtCkwbzaJ94Y+qs9Gluucy9HpN7NqXx5bM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jc7XqS8dS/NpJkiQO2+I+i3mG1b3NSqmWPHpIBjOPrlxUcj5fjqb3bTmsykH9huLS +zwG7qI8xqnbylr1qv/qOZuCJOcFAFrZawhEb77FIhWHYsSMuJWp312NrLV9c2471m 8tcwY/85MEyAAvIcAAEiweMubtdWGxUjAhn882zXJoSsJ4qhLfEIbpMxFp81vbLuYv G3E9u9QIavNJfXMo8R4WSpM4AIszNIZNh5pMZ98SrAU/RUq5sIZg/HZ2/IbBG0P8g1 /zb7Hii3XJ9sCiJihd+gSy2EqwQBMyEGqNkYYXpEcZG4jnXVVW7jwossHl3UVVAiJZ UYzkN1SJGC/Wg== From: Eric Biggers To: linux-crypto@vger.kernel.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH v3 2/7] crypto: testmgr - remove panic_on_fail Date: Mon, 5 May 2025 13:33:40 -0700 Message-ID: <20250505203345.802740-3-ebiggers@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250505203345.802740-1-ebiggers@kernel.org> References: <20250505203345.802740-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Eric Biggers The cryptomgr.panic_on_fail=3D1 kernel command-line parameter is not very useful now that the tests have been fixed to WARN on failure, since developers can just use panic_on_warn=3D1 instead. There's no need for a special option just for the crypto self-tests. Remove it. Signed-off-by: Eric Biggers --- crypto/testmgr.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/crypto/testmgr.c b/crypto/testmgr.c index f100be516f52..1c71616ae2cf 100644 --- a/crypto/testmgr.c +++ b/crypto/testmgr.c @@ -43,13 +43,10 @@ MODULE_IMPORT_NS("CRYPTO_INTERNAL"); =20 static bool notests; module_param(notests, bool, 0644); MODULE_PARM_DESC(notests, "disable crypto self-tests"); =20 -static bool panic_on_fail; -module_param(panic_on_fail, bool, 0444); - #ifdef CONFIG_CRYPTO_MANAGER_EXTRA_TESTS static bool noextratests; module_param(noextratests, bool, 0644); MODULE_PARM_DESC(noextratests, "disable expensive crypto self-tests"); =20 @@ -5852,15 +5849,14 @@ int alg_test(const char *driver, const char *alg, u= 32 type, u32 mask) rc |=3D alg_test_descs[j].test(alg_test_descs + j, driver, type, mask); =20 test_done: if (rc) { - if (fips_enabled || panic_on_fail) { + if (fips_enabled) { fips_fail_notify(); - panic("alg: self-tests for %s (%s) failed in %s mode!\n", - driver, alg, - fips_enabled ? "fips" : "panic_on_fail"); + panic("alg: self-tests for %s (%s) failed in fips mode!\n", + driver, alg); } pr_warn("alg: self-tests for %s using %s failed (rc=3D%d)", alg, driver, rc); WARN(rc !=3D -ENOENT, "alg: self-tests for %s using %s failed (rc=3D%d)", --=20 2.49.0 From nobody Mon Dec 15 21:12:27 2025 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 67E2226E146; Mon, 5 May 2025 20:37: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=1746477436; cv=none; b=mdFaNZ+DNJqz6Hwm7Fgd167cL6et/XzfuR2XZ9awB2y4sU6Hjz5XcPQOCK/rsbXd2GXjXufgBEH29SxdaISsfIxQvIxl6hNInecez0ktwPTMyE5oj6yOpQqGZP6MZ5mf8Bcu6ZHT5cVkJfRCY7kD3EbpiHuAPA/t11W/rjAczjg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746477436; c=relaxed/simple; bh=Ys/DLc22AQdwyibFfw+021/gNZaqBQm7V3MkQwM7aMQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MTJFe7/Qm1W1nM+LBqS91s/oGy1NA89UCDbZSAB7BvgYyaHDwujui+Uu5Prim1xZgLri4t5Ug26RJsWmBIm8cvVgN68ZiBXnMnVM48IpcJycCvuN1L6sseXQUGus+Cop8Zbhe8Ts3UJ5tIZxOx4DB/DgNL5jzYUUcBJA+fF+tXY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bgiSNiia; 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="bgiSNiia" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DEFDCC4CEEF; Mon, 5 May 2025 20:37:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1746477436; bh=Ys/DLc22AQdwyibFfw+021/gNZaqBQm7V3MkQwM7aMQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bgiSNiiasy4abZEgM+1yY6gSgNLio2WsEOXFX9rmCRKUyNGytado0kigfd9M7sg+2 5i/fuo+xwGj+lNQ++mujVCrWztEf7Rkhck4556V3R3mx5P3S4QfhjSbFg76u158cSU xpwii11HVv8DvleEev8VHHl3rNAXm86SXRUZ85XuLhj6UEFyRbMBWomwWvlkCykMty Yu1UQUmuB9PVfCuaR4zM7ng4lTL1Dv8aTsp5hIEqH8Yf6bFUv4IdZP7BaSdvSTheus l0Q9C8jJDHLb7dS2d6byqLuDHcomOs4zvEIQ+lmimUcbDpgFXDFTTNeIEYnUfO90xx 4GqpHEtLYaWsw== From: Eric Biggers To: linux-crypto@vger.kernel.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH v3 3/7] crypto: testmgr - replace CRYPTO_MANAGER_DISABLE_TESTS with CRYPTO_SELFTESTS Date: Mon, 5 May 2025 13:33:41 -0700 Message-ID: <20250505203345.802740-4-ebiggers@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250505203345.802740-1-ebiggers@kernel.org> References: <20250505203345.802740-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Eric Biggers The negative-sense of CRYPTO_MANAGER_DISABLE_TESTS is a longstanding mistake that regularly causes confusion. Especially bad is that you can have CRYPTO=3Dn && CRYPTO_MANAGER_DISABLE_TESTS=3Dn, which is ambiguous. Replace CRYPTO_MANAGER_DISABLE_TESTS with CRYPTO_SELFTESTS which has the expected behavior. The tests continue to be disabled by default. Signed-off-by: Eric Biggers --- arch/arm/configs/milbeaut_m10v_defconfig | 2 +- arch/loongarch/configs/loongson3_defconfig | 2 +- arch/s390/configs/debug_defconfig | 2 +- arch/s390/configs/defconfig | 2 +- crypto/Kconfig | 24 ++++++++++++++-------- crypto/algapi.c | 4 ++-- crypto/algboss.c | 2 +- crypto/api.c | 3 +-- crypto/hkdf.c | 2 +- crypto/internal.h | 5 ++--- crypto/kdf_sp800108.c | 2 +- crypto/testmgr.c | 12 +++++------ lib/crypto/Makefile | 9 +++----- lib/crypto/aescfb.c | 2 +- lib/crypto/aesgcm.c | 2 +- lib/crypto/blake2s.c | 2 +- lib/crypto/chacha20poly1305.c | 2 +- lib/crypto/curve25519.c | 2 +- 18 files changed, 41 insertions(+), 40 deletions(-) diff --git a/arch/arm/configs/milbeaut_m10v_defconfig b/arch/arm/configs/mi= lbeaut_m10v_defconfig index 4ec21f477c63..9dd47e1d90bb 100644 --- a/arch/arm/configs/milbeaut_m10v_defconfig +++ b/arch/arm/configs/milbeaut_m10v_defconfig @@ -92,11 +92,11 @@ CONFIG_CONFIGFS_FS=3Dy CONFIG_NLS_CODEPAGE_437=3Dy CONFIG_NLS_ISO8859_1=3Dy CONFIG_NLS_UTF8=3Dy CONFIG_KEYS=3Dy CONFIG_CRYPTO_MANAGER=3Dy -# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set +CONFIG_CRYPTO_SELFTESTS=3Dy # CONFIG_CRYPTO_ECHAINIV is not set CONFIG_CRYPTO_AES=3Dy CONFIG_CRYPTO_SEQIV=3Dm CONFIG_CRYPTO_GHASH_ARM_CE=3Dm CONFIG_CRYPTO_SHA1_ARM_NEON=3Dm diff --git a/arch/loongarch/configs/loongson3_defconfig b/arch/loongarch/co= nfigs/loongson3_defconfig index 90f21dfe22b1..0d59af6007b7 100644 --- a/arch/loongarch/configs/loongson3_defconfig +++ b/arch/loongarch/configs/loongson3_defconfig @@ -1024,11 +1024,11 @@ CONFIG_SECURITY_SELINUX=3Dy CONFIG_SECURITY_SELINUX_BOOTPARAM=3Dy CONFIG_SECURITY_APPARMOR=3Dy CONFIG_SECURITY_YAMA=3Dy CONFIG_DEFAULT_SECURITY_DAC=3Dy CONFIG_CRYPTO_USER=3Dm -# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set +CONFIG_CRYPTO_SELFTESTS=3Dy CONFIG_CRYPTO_PCRYPT=3Dm CONFIG_CRYPTO_CRYPTD=3Dm CONFIG_CRYPTO_ANUBIS=3Dm CONFIG_CRYPTO_BLOWFISH=3Dm CONFIG_CRYPTO_CAST5=3Dm diff --git a/arch/s390/configs/debug_defconfig b/arch/s390/configs/debug_de= fconfig index e6f7c8f4ee8b..bc960b1eabae 100644 --- a/arch/s390/configs/debug_defconfig +++ b/arch/s390/configs/debug_defconfig @@ -741,11 +741,11 @@ CONFIG_IMA=3Dy CONFIG_IMA_DEFAULT_HASH_SHA256=3Dy CONFIG_IMA_WRITE_POLICY=3Dy CONFIG_IMA_APPRAISE=3Dy CONFIG_BUG_ON_DATA_CORRUPTION=3Dy CONFIG_CRYPTO_USER=3Dm -# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set +CONFIG_CRYPTO_SELFTESTS=3Dy CONFIG_CRYPTO_PCRYPT=3Dm CONFIG_CRYPTO_CRYPTD=3Dm CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_DH=3Dm CONFIG_CRYPTO_ECDH=3Dm diff --git a/arch/s390/configs/defconfig b/arch/s390/configs/defconfig index 7495bf8e483c..fda2f264e7d3 100644 --- a/arch/s390/configs/defconfig +++ b/arch/s390/configs/defconfig @@ -727,11 +727,11 @@ CONFIG_IMA_DEFAULT_HASH_SHA256=3Dy CONFIG_IMA_WRITE_POLICY=3Dy CONFIG_IMA_APPRAISE=3Dy CONFIG_BUG_ON_DATA_CORRUPTION=3Dy CONFIG_CRYPTO_FIPS=3Dy CONFIG_CRYPTO_USER=3Dm -# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set +CONFIG_CRYPTO_SELFTESTS=3Dy CONFIG_CRYPTO_PCRYPT=3Dm CONFIG_CRYPTO_CRYPTD=3Dm CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_DH=3Dm CONFIG_CRYPTO_ECDH=3Dm diff --git a/crypto/Kconfig b/crypto/Kconfig index da352f1984ea..8f1353bbba18 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig @@ -23,11 +23,11 @@ if CRYPTO =20 menu "Crypto core or helper" =20 config CRYPTO_FIPS bool "FIPS 200 compliance" - depends on (CRYPTO_ANSI_CPRNG || CRYPTO_DRBG) && !CRYPTO_MANAGER_DISABLE_= TESTS + depends on (CRYPTO_ANSI_CPRNG || CRYPTO_DRBG) && CRYPTO_SELFTESTS depends on (MODULE_SIG || !MODULES) help This option enables the fips boot option which is required if you want the system to operate in a FIPS 200 certification. You should say no unless you know what @@ -141,12 +141,12 @@ config CRYPTO_ACOMP select CRYPTO_ALGAPI select CRYPTO_ACOMP2 =20 config CRYPTO_HKDF tristate - select CRYPTO_SHA256 if !CONFIG_CRYPTO_MANAGER_DISABLE_TESTS - select CRYPTO_SHA512 if !CONFIG_CRYPTO_MANAGER_DISABLE_TESTS + select CRYPTO_SHA256 if CRYPTO_SELFTESTS + select CRYPTO_SHA512 if CRYPTO_SELFTESTS select CRYPTO_HASH2 =20 config CRYPTO_MANAGER tristate "Cryptographic algorithm manager" select CRYPTO_MANAGER2 @@ -171,20 +171,26 @@ config CRYPTO_USER select CRYPTO_MANAGER help Userspace configuration for cryptographic instantiations such as cbc(aes). =20 -config CRYPTO_MANAGER_DISABLE_TESTS - bool "Disable run-time self tests" - default y +config CRYPTO_SELFTESTS + bool "Enable cryptographic self-tests" + depends on DEBUG_KERNEL help - Disable run-time self tests that normally take place at - algorithm registration. + Enable the cryptographic self-tests. + + The cryptographic self-tests run at boot time, or at algorithm + registration time if algorithms are dynamically loaded later. + + This is primarily intended for developer use. It should not be + enabled in production kernels, unless you are trying to use these + tests to fulfill a FIPS testing requirement. =20 config CRYPTO_MANAGER_EXTRA_TESTS bool "Enable extra run-time crypto self tests" - depends on DEBUG_KERNEL && !CRYPTO_MANAGER_DISABLE_TESTS && CRYPTO_MANAGER + depends on DEBUG_KERNEL && CRYPTO_SELFTESTS && CRYPTO_MANAGER help Enable extra run-time self tests of registered crypto algorithms, including randomized fuzz tests. =20 This is intended for developer use only, as these tests take much diff --git a/crypto/algapi.c b/crypto/algapi.c index 532d3efc3c7d..9030a30c89e8 100644 --- a/crypto/algapi.c +++ b/crypto/algapi.c @@ -273,11 +273,11 @@ static void crypto_alg_finish_registration(struct cry= pto_alg *alg, static struct crypto_larval *crypto_alloc_test_larval(struct crypto_alg *a= lg) { struct crypto_larval *larval; =20 if (!IS_ENABLED(CONFIG_CRYPTO_MANAGER) || - IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS) || + !IS_ENABLED(CONFIG_CRYPTO_SELFTESTS) || (alg->cra_flags & CRYPTO_ALG_INTERNAL)) return NULL; /* No self-test needed */ =20 larval =3D crypto_larval_alloc(alg->cra_name, alg->cra_flags | CRYPTO_ALG_TESTED, 0); @@ -1057,11 +1057,11 @@ EXPORT_SYMBOL_GPL(crypto_type_has_alg); static void __init crypto_start_tests(void) { if (!IS_BUILTIN(CONFIG_CRYPTO_ALGAPI)) return; =20 - if (IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS)) + if (!IS_ENABLED(CONFIG_CRYPTO_SELFTESTS)) return; =20 set_crypto_boot_test_finished(); =20 for (;;) { diff --git a/crypto/algboss.c b/crypto/algboss.c index ef5c73780fc7..846f586889ee 100644 --- a/crypto/algboss.c +++ b/crypto/algboss.c @@ -187,11 +187,11 @@ static int cryptomgr_test(void *data) static int cryptomgr_schedule_test(struct crypto_alg *alg) { struct task_struct *thread; struct crypto_test_param *param; =20 - if (IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS)) + if (!IS_ENABLED(CONFIG_CRYPTO_SELFTESTS)) return NOTIFY_DONE; =20 if (!try_module_get(THIS_MODULE)) goto err; =20 diff --git a/crypto/api.c b/crypto/api.c index 5cd5ec105bb1..133d9b626922 100644 --- a/crypto/api.c +++ b/crypto/api.c @@ -29,12 +29,11 @@ DECLARE_RWSEM(crypto_alg_sem); EXPORT_SYMBOL_GPL(crypto_alg_sem); =20 BLOCKING_NOTIFIER_HEAD(crypto_chain); EXPORT_SYMBOL_GPL(crypto_chain); =20 -#if IS_BUILTIN(CONFIG_CRYPTO_ALGAPI) && \ - !IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS) +#if IS_BUILTIN(CONFIG_CRYPTO_ALGAPI) && IS_ENABLED(CONFIG_CRYPTO_SELFTESTS) DEFINE_STATIC_KEY_FALSE(__crypto_boot_test_finished); #endif =20 static struct crypto_alg *crypto_larval_wait(struct crypto_alg *alg, u32 type, u32 mask); diff --git a/crypto/hkdf.c b/crypto/hkdf.c index 2434c5c42545..f24c2a8d4df9 100644 --- a/crypto/hkdf.c +++ b/crypto/hkdf.c @@ -541,11 +541,11 @@ static int hkdf_test(const char *shash, const struct = hkdf_testvec *tv) =20 static int __init crypto_hkdf_module_init(void) { int ret =3D 0, i; =20 - if (IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS)) + if (!IS_ENABLED(CONFIG_CRYPTO_SELFTESTS)) return 0; =20 for (i =3D 0; i < ARRAY_SIZE(hkdf_sha256_tv); i++) { ret =3D hkdf_test("hmac(sha256)", &hkdf_sha256_tv[i]); if (ret) diff --git a/crypto/internal.h b/crypto/internal.h index 2ed79bf208ca..b9afd68767c1 100644 --- a/crypto/internal.h +++ b/crypto/internal.h @@ -65,12 +65,11 @@ extern struct list_head crypto_alg_list; extern struct rw_semaphore crypto_alg_sem; extern struct blocking_notifier_head crypto_chain; =20 int alg_test(const char *driver, const char *alg, u32 type, u32 mask); =20 -#if !IS_BUILTIN(CONFIG_CRYPTO_ALGAPI) || \ - IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS) +#if !IS_BUILTIN(CONFIG_CRYPTO_ALGAPI) || !IS_ENABLED(CONFIG_CRYPTO_SELFTES= TS) static inline bool crypto_boot_test_finished(void) { return true; } static inline void set_crypto_boot_test_finished(void) @@ -85,11 +84,11 @@ static inline bool crypto_boot_test_finished(void) static inline void set_crypto_boot_test_finished(void) { static_branch_enable(&__crypto_boot_test_finished); } #endif /* !IS_BUILTIN(CONFIG_CRYPTO_ALGAPI) || - * IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS) + * !IS_ENABLED(CONFIG_CRYPTO_SELFTESTS) */ =20 #ifdef CONFIG_PROC_FS void __init crypto_init_proc(void); void __exit crypto_exit_proc(void); diff --git a/crypto/kdf_sp800108.c b/crypto/kdf_sp800108.c index c3f9938e1ad2..b7a6bf9da773 100644 --- a/crypto/kdf_sp800108.c +++ b/crypto/kdf_sp800108.c @@ -125,11 +125,11 @@ static const struct kdf_testvec kdf_ctr_hmac_sha256_t= v_template[] =3D { =20 static int __init crypto_kdf108_init(void) { int ret; =20 - if (IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS)) + if (!IS_ENABLED(CONFIG_CRYPTO_SELFTESTS)) return 0; =20 ret =3D kdf_test(&kdf_ctr_hmac_sha256_tv_template[0], "hmac(sha256)", crypto_kdf108_setkey, crypto_kdf108_ctr_generate); if (ret) { diff --git a/crypto/testmgr.c b/crypto/testmgr.c index 1c71616ae2cf..3a624c9b5525 100644 --- a/crypto/testmgr.c +++ b/crypto/testmgr.c @@ -53,11 +53,11 @@ MODULE_PARM_DESC(noextratests, "disable expensive crypt= o self-tests"); static unsigned int fuzz_iterations =3D 100; module_param(fuzz_iterations, uint, 0644); MODULE_PARM_DESC(fuzz_iterations, "number of fuzz test iterations"); #endif =20 -#ifdef CONFIG_CRYPTO_MANAGER_DISABLE_TESTS +#ifndef CONFIG_CRYPTO_SELFTESTS =20 /* a perfect nop */ int alg_test(const char *driver, const char *alg, u32 type, u32 mask) { return 0; @@ -319,14 +319,14 @@ struct testvec_config { =20 #define TESTVEC_CONFIG_NAMELEN 192 =20 /* * The following are the lists of testvec_configs to test for each algorit= hm - * type when the basic crypto self-tests are enabled, i.e. when - * CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is unset. They aim to provide good= test - * coverage, while keeping the test time much shorter than the full fuzz t= ests - * so that the basic tests can be enabled in a wider range of circumstance= s. + * type when the basic crypto self-tests are enabled. They aim to provide= good + * test coverage, while keeping the test time much shorter than the full f= uzz + * tests so that the basic tests can be enabled in a wider range of + * circumstances. */ =20 /* Configs for skciphers and aeads */ static const struct testvec_config default_cipher_testvec_configs[] =3D { { @@ -5897,8 +5897,8 @@ int alg_test(const char *driver, const char *alg, u32= type, u32 mask) return 0; non_fips_alg: return alg_fips_disabled(driver, alg); } =20 -#endif /* CONFIG_CRYPTO_MANAGER_DISABLE_TESTS */ +#endif /* CONFIG_CRYPTO_SELFTESTS */ =20 EXPORT_SYMBOL_GPL(alg_test); diff --git a/lib/crypto/Makefile b/lib/crypto/Makefile index 71d3d05d666a..842fcef16e4d 100644 --- a/lib/crypto/Makefile +++ b/lib/crypto/Makefile @@ -23,21 +23,24 @@ obj-$(CONFIG_CRYPTO_LIB_GF128MUL) +=3D gf128mul.o =20 # blake2s is used by the /dev/random driver which is always builtin obj-y +=3D libblake2s.o libblake2s-y :=3D blake2s.o libblake2s-$(CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC) +=3D blake2s-generic.o +libblake2s-$(CONFIG_CRYPTO_SELFTESTS) +=3D blake2s-selftest.o =20 obj-$(CONFIG_CRYPTO_LIB_CHACHA20POLY1305) +=3D libchacha20poly1305.o libchacha20poly1305-y +=3D chacha20poly1305.o +libchacha20poly1305-$(CONFIG_CRYPTO_SELFTESTS) +=3D chacha20poly1305-selft= est.o =20 obj-$(CONFIG_CRYPTO_LIB_CURVE25519_GENERIC) +=3D libcurve25519-generic.o libcurve25519-generic-y :=3D curve25519-fiat32.o libcurve25519-generic-$(CONFIG_ARCH_SUPPORTS_INT128) :=3D curve25519-hacl6= 4.o libcurve25519-generic-y +=3D curve25519-generic.o =20 obj-$(CONFIG_CRYPTO_LIB_CURVE25519) +=3D libcurve25519.o libcurve25519-y +=3D curve25519.o +libcurve25519-$(CONFIG_CRYPTO_SELFTESTS) +=3D curve25519-selftest.o =20 obj-$(CONFIG_CRYPTO_LIB_DES) +=3D libdes.o libdes-y :=3D des.o =20 obj-$(CONFIG_CRYPTO_LIB_POLY1305_GENERIC) +=3D libpoly1305.o @@ -52,16 +55,10 @@ obj-$(CONFIG_CRYPTO_LIB_SHA256) +=3D libsha256.o libsha256-y :=3D sha256.o =20 obj-$(CONFIG_CRYPTO_LIB_SHA256_GENERIC) +=3D libsha256-generic.o libsha256-generic-y :=3D sha256-generic.o =20 -ifneq ($(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS),y) -libblake2s-y +=3D blake2s-selftest.o -libchacha20poly1305-y +=3D chacha20poly1305-selftest.o -libcurve25519-y +=3D curve25519-selftest.o -endif - obj-$(CONFIG_MPILIB) +=3D mpi/ =20 obj-$(CONFIG_CRYPTO_MANAGER_EXTRA_TESTS) +=3D simd.o =20 obj-$(CONFIG_CRYPTO_LIB_SM3) +=3D libsm3.o diff --git a/lib/crypto/aescfb.c b/lib/crypto/aescfb.c index 749dc1258a44..437613265e14 100644 --- a/lib/crypto/aescfb.c +++ b/lib/crypto/aescfb.c @@ -97,11 +97,11 @@ EXPORT_SYMBOL(aescfb_decrypt); =20 MODULE_DESCRIPTION("Generic AES-CFB library"); MODULE_AUTHOR("Ard Biesheuvel "); MODULE_LICENSE("GPL"); =20 -#ifndef CONFIG_CRYPTO_MANAGER_DISABLE_TESTS +#ifdef CONFIG_CRYPTO_SELFTESTS =20 /* * Test code below. Vectors taken from crypto/testmgr.h */ =20 diff --git a/lib/crypto/aesgcm.c b/lib/crypto/aesgcm.c index 902e49410aaf..277824d6b4af 100644 --- a/lib/crypto/aesgcm.c +++ b/lib/crypto/aesgcm.c @@ -197,11 +197,11 @@ EXPORT_SYMBOL(aesgcm_decrypt); =20 MODULE_DESCRIPTION("Generic AES-GCM library"); MODULE_AUTHOR("Ard Biesheuvel "); MODULE_LICENSE("GPL"); =20 -#ifndef CONFIG_CRYPTO_MANAGER_DISABLE_TESTS +#ifdef CONFIG_CRYPTO_SELFTESTS =20 /* * Test code below. Vectors taken from crypto/testmgr.h */ =20 diff --git a/lib/crypto/blake2s.c b/lib/crypto/blake2s.c index 71a316552cc5..b0f9a678300b 100644 --- a/lib/crypto/blake2s.c +++ b/lib/crypto/blake2s.c @@ -58,11 +58,11 @@ void blake2s_final(struct blake2s_state *state, u8 *out) } EXPORT_SYMBOL(blake2s_final); =20 static int __init blake2s_mod_init(void) { - if (!IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS) && + if (IS_ENABLED(CONFIG_CRYPTO_SELFTESTS) && WARN_ON(!blake2s_selftest())) return -ENODEV; return 0; } =20 diff --git a/lib/crypto/chacha20poly1305.c b/lib/crypto/chacha20poly1305.c index 9cfa886f1f89..57a84fee179e 100644 --- a/lib/crypto/chacha20poly1305.c +++ b/lib/crypto/chacha20poly1305.c @@ -353,11 +353,11 @@ bool chacha20poly1305_decrypt_sg_inplace(struct scatt= erlist *src, size_t src_len } EXPORT_SYMBOL(chacha20poly1305_decrypt_sg_inplace); =20 static int __init chacha20poly1305_init(void) { - if (!IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS) && + if (IS_ENABLED(CONFIG_CRYPTO_SELFTESTS) && WARN_ON(!chacha20poly1305_selftest())) return -ENODEV; return 0; } =20 diff --git a/lib/crypto/curve25519.c b/lib/crypto/curve25519.c index 064b352c6907..6850b76a80c9 100644 --- a/lib/crypto/curve25519.c +++ b/lib/crypto/curve25519.c @@ -13,11 +13,11 @@ #include #include =20 static int __init curve25519_init(void) { - if (!IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS) && + if (IS_ENABLED(CONFIG_CRYPTO_SELFTESTS) && WARN_ON(!curve25519_selftest())) return -ENODEV; return 0; } =20 --=20 2.49.0 From nobody Mon Dec 15 21:12:27 2025 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 C5D8E2701D5; Mon, 5 May 2025 20:37: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=1746477436; cv=none; b=XkDNVRSW4Rv+F3QuRNcR67tdVp+31ewtiInx0BPqKajVf2Urq6/kvgukVIpsfV+ux7o+rE9f6UPazK8wQ87XQmVcrzOos2A+JsUrQ05aY+DzZUuBK5lNivlYUarZk1rFfQwqyWXayoTAdHAAaIfJd5lzEDhkaaCOL1IxeNjHArg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746477436; c=relaxed/simple; bh=9nWIi+6i6x8RE1w7WFYRNj2dzIS3Y6HB+c31ckaf7GQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oU7QawzBTdACUYltrJV839z/oM03OyPbG8vr3W0RuTSwN0avdsjV+ZKOq1oTT/Q6DTHLNF56k13ar/myRYTOUT9ic2BW1rOArsCZMfVg0AwEi5CB/KY465N0apyPCW3pGSz/WgXBAsrhp4pxlZd2psNPiDW6OxCbn0XxClXBcVE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=oCcKG9YC; 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="oCcKG9YC" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1F8EBC4CEF1; Mon, 5 May 2025 20:37:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1746477436; bh=9nWIi+6i6x8RE1w7WFYRNj2dzIS3Y6HB+c31ckaf7GQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oCcKG9YCj+VWyavVnITRbLZFZuo+VpmH0i3gJ+dpV9a/BAbV0GqTDJWvHaDz1LBfy f28mi0Q+OhWjdRSoNbZDby64saLVD5GN1fvjQG3t8UNEMzJC2Kd8VHbBGyftnI8x+O 83MKWJ1+ezVco+Lb00t5r3XJ2G1pQT+7wzFQUxsn7eLYv5R5n/ROgBr2z7Qp7mVYuR oeRvOlRADlMxej2Cek3SrqEPSDz4sb85eVIRqa05BD7TTYu+vFqr1UrgQDVN4mXEwK TbhsemDO706GmwH2NEzJ470P1zCyH2vxDnms+bE2UpCzDRqN575lheUXLbifh8t3vW M+/ZFwDELz8TA== From: Eric Biggers To: linux-crypto@vger.kernel.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH v3 4/7] crypto: testmgr - make it easier to enable the full set of tests Date: Mon, 5 May 2025 13:33:42 -0700 Message-ID: <20250505203345.802740-5-ebiggers@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250505203345.802740-1-ebiggers@kernel.org> References: <20250505203345.802740-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Eric Biggers Currently the full set of crypto self-tests requires CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=3Dy. This is problematic in two ways. First, developers regularly overlook this option. Second, the description of the tests as "extra" sometimes gives the impression that it is not required that all algorithms pass these tests. Given that the main use case for the crypto self-tests is for developers, make enabling CONFIG_CRYPTO_SELFTESTS=3Dy just enable the full set of crypto self-tests by default. The slow tests can still be disabled by adding the command-line parameter cryptomgr.noextratests=3D1, soon to be renamed to cryptomgr.noslowtests=3D1. The only known use case for doing this is for people trying to use the crypto self-tests to satisfy the FIPS 140-3 pre-operational self-testing requirements when the kernel is being validated as a FIPS 140-3 cryptographic module. Signed-off-by: Eric Biggers --- crypto/Kconfig | 10 ------ crypto/testmgr.c | 62 +++------------------------------- include/crypto/internal/simd.h | 6 ++-- lib/crypto/Makefile | 2 +- 4 files changed, 8 insertions(+), 72 deletions(-) diff --git a/crypto/Kconfig b/crypto/Kconfig index 8f1353bbba18..bbe9cc408927 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig @@ -184,20 +184,10 @@ config CRYPTO_SELFTESTS =20 This is primarily intended for developer use. It should not be enabled in production kernels, unless you are trying to use these tests to fulfill a FIPS testing requirement. =20 -config CRYPTO_MANAGER_EXTRA_TESTS - bool "Enable extra run-time crypto self tests" - depends on DEBUG_KERNEL && CRYPTO_SELFTESTS && CRYPTO_MANAGER - help - Enable extra run-time self tests of registered crypto algorithms, - including randomized fuzz tests. - - This is intended for developer use only, as these tests take much - longer to run than the normal self tests. - config CRYPTO_NULL tristate "Null algorithms" select CRYPTO_NULL2 help These are 'Null' algorithms, used by IPsec, which do nothing. diff --git a/crypto/testmgr.c b/crypto/testmgr.c index 3a624c9b5525..a6707cda8328 100644 --- a/crypto/testmgr.c +++ b/crypto/testmgr.c @@ -43,19 +43,17 @@ MODULE_IMPORT_NS("CRYPTO_INTERNAL"); =20 static bool notests; module_param(notests, bool, 0644); MODULE_PARM_DESC(notests, "disable crypto self-tests"); =20 -#ifdef CONFIG_CRYPTO_MANAGER_EXTRA_TESTS static bool noextratests; module_param(noextratests, bool, 0644); MODULE_PARM_DESC(noextratests, "disable expensive crypto self-tests"); =20 static unsigned int fuzz_iterations =3D 100; module_param(fuzz_iterations, uint, 0644); MODULE_PARM_DESC(fuzz_iterations, "number of fuzz test iterations"); -#endif =20 #ifndef CONFIG_CRYPTO_SELFTESTS =20 /* a perfect nop */ int alg_test(const char *driver, const char *alg, u32 type, u32 mask) @@ -319,14 +317,13 @@ struct testvec_config { =20 #define TESTVEC_CONFIG_NAMELEN 192 =20 /* * The following are the lists of testvec_configs to test for each algorit= hm - * type when the basic crypto self-tests are enabled. They aim to provide= good - * test coverage, while keeping the test time much shorter than the full f= uzz - * tests so that the basic tests can be enabled in a wider range of - * circumstances. + * type when the fast crypto self-tests are enabled. They aim to provide = good + * test coverage, while keeping the test time much shorter than the full t= ests + * so that the fast tests can be used to fulfill FIPS 140 testing requirem= ents. */ =20 /* Configs for skciphers and aeads */ static const struct testvec_config default_cipher_testvec_configs[] =3D { { @@ -871,12 +868,10 @@ static int prepare_keybuf(const u8 *key, unsigned int= ksize, kfree(keybuf); \ } \ err; \ }) =20 -#ifdef CONFIG_CRYPTO_MANAGER_EXTRA_TESTS - /* * The fuzz tests use prandom instead of the normal Linux RNG since they d= on't * need cryptographically secure random numbers. This greatly improves the * performance of these tests, especially if they are run before the Linux= RNG * has been initialized or if they are run on a lockdep-enabled kernel. @@ -1237,19 +1232,10 @@ static int build_generic_driver_name(const char *al= gname, too_long: pr_err("alg: generic driver name for \"%s\" would be too long\n", algname); return -ENAMETOOLONG; } -#else /* !CONFIG_CRYPTO_MANAGER_EXTRA_TESTS */ -static void crypto_disable_simd_for_test(void) -{ -} - -static void crypto_reenable_simd_for_test(void) -{ -} -#endif /* !CONFIG_CRYPTO_MANAGER_EXTRA_TESTS */ =20 static int build_hash_sglist(struct test_sglist *tsgl, const struct hash_testvec *vec, const struct testvec_config *cfg, unsigned int alignmask, @@ -1686,11 +1672,10 @@ static int test_hash_vec(const struct hash_testvec = *vec, unsigned int vec_num, req, desc, tsgl, hashstate); if (err) return err; } =20 -#ifdef CONFIG_CRYPTO_MANAGER_EXTRA_TESTS if (!noextratests) { struct rnd_state rng; struct testvec_config cfg; char cfgname[TESTVEC_CONFIG_NAMELEN]; =20 @@ -1704,15 +1689,13 @@ static int test_hash_vec(const struct hash_testvec = *vec, unsigned int vec_num, if (err) return err; cond_resched(); } } -#endif return 0; } =20 -#ifdef CONFIG_CRYPTO_MANAGER_EXTRA_TESTS /* * Generate a hash test vector from the given implementation. * Assumes the buffers in 'vec' were already allocated. */ static void generate_random_hash_testvec(struct rnd_state *rng, @@ -1874,21 +1857,10 @@ static int test_hash_vs_generic_impl(const char *ge= neric_driver, kfree(vec.digest); crypto_free_shash(generic_tfm); kfree_sensitive(generic_desc); return err; } -#else /* !CONFIG_CRYPTO_MANAGER_EXTRA_TESTS */ -static int test_hash_vs_generic_impl(const char *generic_driver, - unsigned int maxkeysize, - struct ahash_request *req, - struct shash_desc *desc, - struct test_sglist *tsgl, - u8 *hashstate) -{ - return 0; -} -#endif /* !CONFIG_CRYPTO_MANAGER_EXTRA_TESTS */ =20 static int alloc_shash(const char *driver, u32 type, u32 mask, struct crypto_shash **tfm_ret, struct shash_desc **desc_ret) { @@ -2258,11 +2230,10 @@ static int test_aead_vec(int enc, const struct aead= _testvec *vec, req, tsgls); if (err) return err; } =20 -#ifdef CONFIG_CRYPTO_MANAGER_EXTRA_TESTS if (!noextratests) { struct rnd_state rng; struct testvec_config cfg; char cfgname[TESTVEC_CONFIG_NAMELEN]; =20 @@ -2276,16 +2247,13 @@ static int test_aead_vec(int enc, const struct aead= _testvec *vec, if (err) return err; cond_resched(); } } -#endif return 0; } =20 -#ifdef CONFIG_CRYPTO_MANAGER_EXTRA_TESTS - struct aead_extra_tests_ctx { struct rnd_state rng; struct aead_request *req; struct crypto_aead *tfm; const struct alg_test_desc *test_desc; @@ -2666,18 +2634,10 @@ static int test_aead_extra(const struct alg_test_de= sc *test_desc, kfree(ctx->vec.ptext); kfree(ctx->vec.ctext); kfree(ctx); return err; } -#else /* !CONFIG_CRYPTO_MANAGER_EXTRA_TESTS */ -static int test_aead_extra(const struct alg_test_desc *test_desc, - struct aead_request *req, - struct cipher_test_sglists *tsgls) -{ - return 0; -} -#endif /* !CONFIG_CRYPTO_MANAGER_EXTRA_TESTS */ =20 static int test_aead(int enc, const struct aead_test_suite *suite, struct aead_request *req, struct cipher_test_sglists *tsgls) { @@ -3013,11 +2973,10 @@ static int test_skcipher_vec(int enc, const struct = cipher_testvec *vec, req, tsgls); if (err) return err; } =20 -#ifdef CONFIG_CRYPTO_MANAGER_EXTRA_TESTS if (!noextratests) { struct rnd_state rng; struct testvec_config cfg; char cfgname[TESTVEC_CONFIG_NAMELEN]; =20 @@ -3031,15 +2990,13 @@ static int test_skcipher_vec(int enc, const struct = cipher_testvec *vec, if (err) return err; cond_resched(); } } -#endif return 0; } =20 -#ifdef CONFIG_CRYPTO_MANAGER_EXTRA_TESTS /* * Generate a symmetric cipher test vector from the given implementation. * Assumes the buffers in 'vec' were already allocated. */ static void generate_random_cipher_testvec(struct rnd_state *rng, @@ -3234,18 +3191,10 @@ static int test_skcipher_vs_generic_impl(const char= *generic_driver, kfree(vec.ctext); crypto_free_skcipher(generic_tfm); skcipher_request_free(generic_req); return err; } -#else /* !CONFIG_CRYPTO_MANAGER_EXTRA_TESTS */ -static int test_skcipher_vs_generic_impl(const char *generic_driver, - struct skcipher_request *req, - struct cipher_test_sglists *tsgls) -{ - return 0; -} -#endif /* !CONFIG_CRYPTO_MANAGER_EXTRA_TESTS */ =20 static int test_skcipher(int enc, const struct cipher_test_suite *suite, struct skcipher_request *req, struct cipher_test_sglists *tsgls) { @@ -5758,13 +5707,12 @@ static void alg_check_testvec_configs(void) static void testmgr_onetime_init(void) { alg_check_test_descs_order(); alg_check_testvec_configs(); =20 -#ifdef CONFIG_CRYPTO_MANAGER_EXTRA_TESTS - pr_warn("alg: extra crypto tests enabled. This is intended for developer= use only.\n"); -#endif + if (!noextratests) + pr_warn("alg: full crypto tests enabled. This is intended for developer= use only.\n"); } =20 static int alg_find_test(const char *alg) { int start =3D 0; diff --git a/include/crypto/internal/simd.h b/include/crypto/internal/simd.h index f56049bd1660..7e7f1ac3b7fd 100644 --- a/include/crypto/internal/simd.h +++ b/include/crypto/internal/simd.h @@ -42,15 +42,13 @@ void simd_unregister_aeads(struct aead_alg *algs, int c= ount, * crypto_simd_usable() - is it allowed at this time to use SIMD instructi= ons or * access the SIMD register file? * * This delegates to may_use_simd(), except that this also returns false i= f SIMD * in crypto code has been temporarily disabled on this CPU by the crypto - * self-tests, in order to test the no-SIMD fallback code. This override = is - * currently limited to configurations where the extra self-tests are enab= led, - * because it might be a bit too invasive to be part of the regular self-t= ests. + * self-tests, in order to test the no-SIMD fallback code. */ -#ifdef CONFIG_CRYPTO_MANAGER_EXTRA_TESTS +#ifdef CONFIG_CRYPTO_SELFTESTS DECLARE_PER_CPU(bool, crypto_simd_disabled_for_test); #define crypto_simd_usable() \ (may_use_simd() && !this_cpu_read(crypto_simd_disabled_for_test)) #else #define crypto_simd_usable() may_use_simd() diff --git a/lib/crypto/Makefile b/lib/crypto/Makefile index 842fcef16e4d..a2aca61fb42e 100644 --- a/lib/crypto/Makefile +++ b/lib/crypto/Makefile @@ -57,9 +57,9 @@ libsha256-y :=3D sha256.o obj-$(CONFIG_CRYPTO_LIB_SHA256_GENERIC) +=3D libsha256-generic.o libsha256-generic-y :=3D sha256-generic.o =20 obj-$(CONFIG_MPILIB) +=3D mpi/ =20 -obj-$(CONFIG_CRYPTO_MANAGER_EXTRA_TESTS) +=3D simd.o +obj-$(CONFIG_CRYPTO_SELFTESTS) +=3D simd.o =20 obj-$(CONFIG_CRYPTO_LIB_SM3) +=3D libsm3.o libsm3-y :=3D sm3.o --=20 2.49.0 From nobody Mon Dec 15 21:12:27 2025 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 C5DF92701D7; Mon, 5 May 2025 20:37: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=1746477436; cv=none; b=rB4pSK45QEg53bIXdwHCzVwQ7lSD2QYRRKFBpZ38oA8FnwmpwqgIPKeOdgruYFeIyQNpbV1GKpIAoNBn7/etOPQsFplvaqcIuLBYF1WmRKWAPKjyAENQRwj2tvhvvb+spKNRfiZXyD2ZP/kR5UY0pnxxe1nEAexDsQB9deM7Dxk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746477436; c=relaxed/simple; bh=sZJXduD5Swr1H+smumPscoQKH6AGaXCzOQJ3PgpB5kQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XPh13LpwTkh4QeUQCve/rdqMlYBzSTEy1ssfwllzrqSDjxvIDxp1mhRYzIrLTgUDjUXTOPUyCZBFx0DG86WnTsNCbWg5qmQrmRAlzGLBKT6VfoFklsvVsBEvBWLoLdkd7BFYYf/IrW9lJiAl2D3gi4iRS2REpmshxMIAIyk1arI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=F16rXTKp; 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="F16rXTKp" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 547C9C4CEE4; Mon, 5 May 2025 20:37:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1746477436; bh=sZJXduD5Swr1H+smumPscoQKH6AGaXCzOQJ3PgpB5kQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=F16rXTKpgp5ndwUumEaFEudvDlQO2uuz7wNanTX+mQ9iSV0npsVu5OWfybjOPqKi7 X5YKwVqALQ1GImOqOy73znfAsqFV+SriAfKHkgGzFiHikNeTkQixuACyS884HeFZfC ZQ4J5VaEO8g4UsTD4otxr4Plpt2guhI11SaTIYl4cPb1poSWfq0oZ8W752T3p4DRfD rUNLW7NQNd54fZHUzD4ArrNeISy0Wk3ie7Y7tiKUe504E9Zn9oIJf8BDxVUDPcY4g0 ktDzuFMltgb4ZP2TFp6Ycbw1SvDF5IzkUgYuM/tdby6MjGSFGl0QordmwbwRV+hU7U mcAceHfD3L05g== From: Eric Biggers To: linux-crypto@vger.kernel.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH v3 5/7] crypto: testmgr - rename noextratests to noslowtests Date: Mon, 5 May 2025 13:33:43 -0700 Message-ID: <20250505203345.802740-6-ebiggers@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250505203345.802740-1-ebiggers@kernel.org> References: <20250505203345.802740-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Eric Biggers Rename the noextratests module parameter to noslowtests, and replace other remaining mentions of "extra" in the code with "slow". This addresses confusion regarding the word "extra" like that seen at https://lore.kernel.org/r/6cecf2de-9aa0-f6ea-0c2d-8e974a1a820b@huawei.com/. Signed-off-by: Eric Biggers --- crypto/testmgr.c | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/crypto/testmgr.c b/crypto/testmgr.c index a6707cda8328..fc28000c27f5 100644 --- a/crypto/testmgr.c +++ b/crypto/testmgr.c @@ -41,15 +41,15 @@ =20 MODULE_IMPORT_NS("CRYPTO_INTERNAL"); =20 static bool notests; module_param(notests, bool, 0644); -MODULE_PARM_DESC(notests, "disable crypto self-tests"); +MODULE_PARM_DESC(notests, "disable all crypto self-tests"); =20 -static bool noextratests; -module_param(noextratests, bool, 0644); -MODULE_PARM_DESC(noextratests, "disable expensive crypto self-tests"); +static bool noslowtests; +module_param(noslowtests, bool, 0644); +MODULE_PARM_DESC(noslowtests, "disable slow crypto self-tests"); =20 static unsigned int fuzz_iterations =3D 100; module_param(fuzz_iterations, uint, 0644); MODULE_PARM_DESC(fuzz_iterations, "number of fuzz test iterations"); =20 @@ -1672,11 +1672,11 @@ static int test_hash_vec(const struct hash_testvec = *vec, unsigned int vec_num, req, desc, tsgl, hashstate); if (err) return err; } =20 - if (!noextratests) { + if (!noslowtests) { struct rnd_state rng; struct testvec_config cfg; char cfgname[TESTVEC_CONFIG_NAMELEN]; =20 init_rnd_state(&rng); @@ -1762,11 +1762,11 @@ static int test_hash_vs_generic_impl(const char *ge= neric_driver, char vec_name[64]; struct testvec_config *cfg; char cfgname[TESTVEC_CONFIG_NAMELEN]; int err; =20 - if (noextratests) + if (noslowtests) return 0; =20 init_rnd_state(&rng); =20 if (!generic_driver) { /* Use default naming convention? */ @@ -2230,11 +2230,11 @@ static int test_aead_vec(int enc, const struct aead= _testvec *vec, req, tsgls); if (err) return err; } =20 - if (!noextratests) { + if (!noslowtests) { struct rnd_state rng; struct testvec_config cfg; char cfgname[TESTVEC_CONFIG_NAMELEN]; =20 init_rnd_state(&rng); @@ -2250,11 +2250,11 @@ static int test_aead_vec(int enc, const struct aead= _testvec *vec, } } return 0; } =20 -struct aead_extra_tests_ctx { +struct aead_slow_tests_ctx { struct rnd_state rng; struct aead_request *req; struct crypto_aead *tfm; const struct alg_test_desc *test_desc; struct cipher_test_sglists *tsgls; @@ -2425,12 +2425,11 @@ static void generate_random_aead_testvec(struct rnd= _state *rng, snprintf(name, max_namelen, "\"random: alen=3D%u plen=3D%u authsize=3D%u klen=3D%u novrfy=3D%d\"", vec->alen, vec->plen, authsize, vec->klen, vec->novrfy); } =20 -static void try_to_generate_inauthentic_testvec( - struct aead_extra_tests_ctx *ctx) +static void try_to_generate_inauthentic_testvec(struct aead_slow_tests_ctx= *ctx) { int i; =20 for (i =3D 0; i < 10; i++) { generate_random_aead_testvec(&ctx->rng, ctx->req, &ctx->vec, @@ -2445,11 +2444,11 @@ static void try_to_generate_inauthentic_testvec( =20 /* * Generate inauthentic test vectors (i.e. ciphertext, AAD pairs that aren= 't the * result of an encryption with the key) and verify that decryption fails. */ -static int test_aead_inauthentic_inputs(struct aead_extra_tests_ctx *ctx) +static int test_aead_inauthentic_inputs(struct aead_slow_tests_ctx *ctx) { unsigned int i; int err; =20 for (i =3D 0; i < fuzz_iterations * 8; i++) { @@ -2480,11 +2479,11 @@ static int test_aead_inauthentic_inputs(struct aead= _extra_tests_ctx *ctx) =20 /* * Test the AEAD algorithm against the corresponding generic implementatio= n, if * one is available. */ -static int test_aead_vs_generic_impl(struct aead_extra_tests_ctx *ctx) +static int test_aead_vs_generic_impl(struct aead_slow_tests_ctx *ctx) { struct crypto_aead *tfm =3D ctx->tfm; const char *algname =3D crypto_aead_alg(tfm)->base.cra_name; const char *driver =3D crypto_aead_driver_name(tfm); const char *generic_driver =3D ctx->test_desc->generic_driver; @@ -2584,19 +2583,19 @@ static int test_aead_vs_generic_impl(struct aead_ex= tra_tests_ctx *ctx) crypto_free_aead(generic_tfm); aead_request_free(generic_req); return err; } =20 -static int test_aead_extra(const struct alg_test_desc *test_desc, - struct aead_request *req, - struct cipher_test_sglists *tsgls) +static int test_aead_slow(const struct alg_test_desc *test_desc, + struct aead_request *req, + struct cipher_test_sglists *tsgls) { - struct aead_extra_tests_ctx *ctx; + struct aead_slow_tests_ctx *ctx; unsigned int i; int err; =20 - if (noextratests) + if (noslowtests) return 0; =20 ctx =3D kzalloc(sizeof(*ctx), GFP_KERNEL); if (!ctx) return -ENOMEM; @@ -2699,11 +2698,11 @@ static int alg_test_aead(const struct alg_test_desc= *desc, const char *driver, =20 err =3D test_aead(DECRYPT, suite, req, tsgls); if (err) goto out; =20 - err =3D test_aead_extra(desc, req, tsgls); + err =3D test_aead_slow(desc, req, tsgls); out: free_cipher_test_sglists(tsgls); aead_request_free(req); crypto_free_aead(tfm); return err; @@ -2973,11 +2972,11 @@ static int test_skcipher_vec(int enc, const struct = cipher_testvec *vec, req, tsgls); if (err) return err; } =20 - if (!noextratests) { + if (!noslowtests) { struct rnd_state rng; struct testvec_config cfg; char cfgname[TESTVEC_CONFIG_NAMELEN]; =20 init_rnd_state(&rng); @@ -3075,11 +3074,11 @@ static int test_skcipher_vs_generic_impl(const char= *generic_driver, char vec_name[64]; struct testvec_config *cfg; char cfgname[TESTVEC_CONFIG_NAMELEN]; int err; =20 - if (noextratests) + if (noslowtests) return 0; =20 init_rnd_state(&rng); =20 if (!generic_driver) { /* Use default naming convention? */ @@ -5707,11 +5706,11 @@ static void alg_check_testvec_configs(void) static void testmgr_onetime_init(void) { alg_check_test_descs_order(); alg_check_testvec_configs(); =20 - if (!noextratests) + if (!noslowtests) pr_warn("alg: full crypto tests enabled. This is intended for developer= use only.\n"); } =20 static int alg_find_test(const char *alg) { --=20 2.49.0 From nobody Mon Dec 15 21:12:27 2025 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 097F9270EA4; Mon, 5 May 2025 20:37: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=1746477437; cv=none; b=KY6k9OIsysMedaOfwBaOVMqSiswldijzOl7CNgCpg4Hm2MF6p9G8SD/7qrFzc2qAxdXOKCYgVDjN8iGdAMNnDUICSGX70tVrnEB8VzIvjXXwpv4gLzuIj7COURJl4i57D2BjPKZi8x2Ljrc8SX4Y/lZxM+Ic6REq7ZJ9BdiV9qk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746477437; c=relaxed/simple; bh=cllZGXSYE+1mv0E8H6N1+pAGeSY+cx5+GxtxNH2Atjs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AbV1F4o9vxrpYAx/1cSJmh2ktihJKMMvLPFgXcI8zHb8MGX/jnde0YcJWZ/R3SwFU58bv8HbTFDAgc+DXWhmYUDfSSr2F+scErNAAZIlTaiPYO+tB+0Vszrq13bYdfzEhSI9pC5MlkKlKfXkeyuyMG9ZWPzpqjhOA83ZBcBnq0s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jundvq8n; 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="jundvq8n" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 89B70C4CEF2; Mon, 5 May 2025 20:37:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1746477436; bh=cllZGXSYE+1mv0E8H6N1+pAGeSY+cx5+GxtxNH2Atjs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jundvq8n+gWMBBFomfjvYmEP149BbIEF6+jTLsqpVtWoeP2+Bh36UA9v6d5Wm7qsS kDDFt19bKjIXZtAbPHmfNyvMHinbNeVpPtrJm3cpR0LgD1LOeGKsuo+afb4ND4jaP0 TxjFmPv2Vftd6MMqL1Paps7DNgL/mvFCc03mi2arJi7l0LSlzZhX6UcaiUl0xKZ6fa wzviqAj0sV8r4+XhTDAsbZ/TdE6wK1hyTOLJ2hqXdjM+UKrWtkJ9H6kcqozAhh1JIJ 8zwRU+Z/3ZIkXdkx2kNUR+8oTAjXUubN0pvltG3jzSLc4EsujqiQHZPt/7xzeDq5yt ugAXB3Rn0MlxQ== From: Eric Biggers To: linux-crypto@vger.kernel.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH v3 6/7] crypto: Kconfig - make CRYPTO_MANAGER a hidden symbol Date: Mon, 5 May 2025 13:33:44 -0700 Message-ID: <20250505203345.802740-7-ebiggers@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250505203345.802740-1-ebiggers@kernel.org> References: <20250505203345.802740-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Eric Biggers There is no reason for people configuring the kernel to be asked about CRYPTO_MANAGER, so make it a hidden symbol. Signed-off-by: Eric Biggers --- arch/arm/configs/milbeaut_m10v_defconfig | 1 - arch/arm/configs/pxa_defconfig | 1 - arch/mips/configs/decstation_64_defconfig | 1 - arch/mips/configs/decstation_defconfig | 1 - arch/mips/configs/decstation_r4k_defconfig | 1 - arch/mips/configs/ip28_defconfig | 1 - arch/parisc/configs/generic-64bit_defconfig | 1 - arch/sh/configs/migor_defconfig | 1 - crypto/Kconfig | 2 +- 9 files changed, 1 insertion(+), 9 deletions(-) diff --git a/arch/arm/configs/milbeaut_m10v_defconfig b/arch/arm/configs/mi= lbeaut_m10v_defconfig index 9dd47e1d90bb..242e7d5a3f68 100644 --- a/arch/arm/configs/milbeaut_m10v_defconfig +++ b/arch/arm/configs/milbeaut_m10v_defconfig @@ -91,11 +91,10 @@ CONFIG_CONFIGFS_FS=3Dy # CONFIG_MISC_FILESYSTEMS is not set CONFIG_NLS_CODEPAGE_437=3Dy CONFIG_NLS_ISO8859_1=3Dy CONFIG_NLS_UTF8=3Dy CONFIG_KEYS=3Dy -CONFIG_CRYPTO_MANAGER=3Dy CONFIG_CRYPTO_SELFTESTS=3Dy # CONFIG_CRYPTO_ECHAINIV is not set CONFIG_CRYPTO_AES=3Dy CONFIG_CRYPTO_SEQIV=3Dm CONFIG_CRYPTO_GHASH_ARM_CE=3Dm diff --git a/arch/arm/configs/pxa_defconfig b/arch/arm/configs/pxa_defconfig index edc5b4d17f77..ded4b9a5accf 100644 --- a/arch/arm/configs/pxa_defconfig +++ b/arch/arm/configs/pxa_defconfig @@ -634,11 +634,10 @@ CONFIG_NLS_ASCII=3Dm CONFIG_NLS_ISO8859_1=3Dm CONFIG_NLS_ISO8859_15=3Dm CONFIG_NLS_UTF8=3Dm CONFIG_TIMER_STATS=3Dy CONFIG_SECURITY=3Dy -CONFIG_CRYPTO_MANAGER=3Dy CONFIG_CRYPTO_CRYPTD=3Dm CONFIG_CRYPTO_AUTHENC=3Dm CONFIG_CRYPTO_BENCHMARK=3Dm CONFIG_CRYPTO_BLOWFISH=3Dm CONFIG_CRYPTO_CAST5=3Dm diff --git a/arch/mips/configs/decstation_64_defconfig b/arch/mips/configs/= decstation_64_defconfig index 9655567614aa..85a4472cb058 100644 --- a/arch/mips/configs/decstation_64_defconfig +++ b/arch/mips/configs/decstation_64_defconfig @@ -166,11 +166,10 @@ CONFIG_NLS_ISO8859_9=3Dm CONFIG_NLS_ISO8859_13=3Dm CONFIG_NLS_ISO8859_14=3Dm CONFIG_NLS_ISO8859_15=3Dm CONFIG_NLS_UTF8=3Dm CONFIG_CRYPTO_RSA=3Dm -CONFIG_CRYPTO_MANAGER=3Dy CONFIG_CRYPTO_CCM=3Dm CONFIG_CRYPTO_GCM=3Dm CONFIG_CRYPTO_CHACHA20POLY1305=3Dm CONFIG_CRYPTO_CTS=3Dm CONFIG_CRYPTO_LRW=3Dm diff --git a/arch/mips/configs/decstation_defconfig b/arch/mips/configs/dec= station_defconfig index 1539fe8eb34d..a3b2c8da2dde 100644 --- a/arch/mips/configs/decstation_defconfig +++ b/arch/mips/configs/decstation_defconfig @@ -161,11 +161,10 @@ CONFIG_NLS_ISO8859_9=3Dm CONFIG_NLS_ISO8859_13=3Dm CONFIG_NLS_ISO8859_14=3Dm CONFIG_NLS_ISO8859_15=3Dm CONFIG_NLS_UTF8=3Dm CONFIG_CRYPTO_RSA=3Dm -CONFIG_CRYPTO_MANAGER=3Dy CONFIG_CRYPTO_CCM=3Dm CONFIG_CRYPTO_GCM=3Dm CONFIG_CRYPTO_CHACHA20POLY1305=3Dm CONFIG_CRYPTO_CTS=3Dm CONFIG_CRYPTO_LRW=3Dm diff --git a/arch/mips/configs/decstation_r4k_defconfig b/arch/mips/configs= /decstation_r4k_defconfig index 58c36720c94a..a476717b8a6a 100644 --- a/arch/mips/configs/decstation_r4k_defconfig +++ b/arch/mips/configs/decstation_r4k_defconfig @@ -161,11 +161,10 @@ CONFIG_NLS_ISO8859_9=3Dm CONFIG_NLS_ISO8859_13=3Dm CONFIG_NLS_ISO8859_14=3Dm CONFIG_NLS_ISO8859_15=3Dm CONFIG_NLS_UTF8=3Dm CONFIG_CRYPTO_RSA=3Dm -CONFIG_CRYPTO_MANAGER=3Dy CONFIG_CRYPTO_CCM=3Dm CONFIG_CRYPTO_GCM=3Dm CONFIG_CRYPTO_CHACHA20POLY1305=3Dm CONFIG_CRYPTO_CTS=3Dm CONFIG_CRYPTO_LRW=3Dm diff --git a/arch/mips/configs/ip28_defconfig b/arch/mips/configs/ip28_defc= onfig index e0040110a3ee..6db21e498faa 100644 --- a/arch/mips/configs/ip28_defconfig +++ b/arch/mips/configs/ip28_defconfig @@ -58,8 +58,7 @@ CONFIG_PROC_KCORE=3Dy CONFIG_TMPFS=3Dy CONFIG_TMPFS_POSIX_ACL=3Dy CONFIG_NFS_FS=3Dy CONFIG_NFS_V3_ACL=3Dy CONFIG_ROOT_NFS=3Dy -CONFIG_CRYPTO_MANAGER=3Dy # CONFIG_CRYPTO_HW is not set CONFIG_MAGIC_SYSRQ=3Dy diff --git a/arch/parisc/configs/generic-64bit_defconfig b/arch/parisc/conf= igs/generic-64bit_defconfig index ecc9ffcc11cd..d8cd7f858b2a 100644 --- a/arch/parisc/configs/generic-64bit_defconfig +++ b/arch/parisc/configs/generic-64bit_defconfig @@ -281,11 +281,10 @@ CONFIG_NLS_CODEPAGE_1250=3Dm CONFIG_NLS_CODEPAGE_1251=3Dm CONFIG_NLS_ASCII=3Dm CONFIG_NLS_ISO8859_1=3Dm CONFIG_NLS_ISO8859_2=3Dm CONFIG_NLS_UTF8=3Dm -CONFIG_CRYPTO_MANAGER=3Dy CONFIG_CRYPTO_FCRYPT=3Dm CONFIG_CRYPTO_ECB=3Dm CONFIG_CRYPTO_PCBC=3Dm CONFIG_CRYPTO_MD4=3Dm CONFIG_CRYPTO_MD5=3Dy diff --git a/arch/sh/configs/migor_defconfig b/arch/sh/configs/migor_defcon= fig index fc2010c241fb..31dbd8888aaa 100644 --- a/arch/sh/configs/migor_defconfig +++ b/arch/sh/configs/migor_defconfig @@ -85,8 +85,7 @@ CONFIG_UIO_PDRV_GENIRQ=3Dy CONFIG_PROC_KCORE=3Dy CONFIG_TMPFS=3Dy CONFIG_NFS_FS=3Dy CONFIG_ROOT_NFS=3Dy CONFIG_DEBUG_FS=3Dy -CONFIG_CRYPTO_MANAGER=3Dy # CONFIG_CRYPTO_ANSI_CPRNG is not set # CONFIG_CRYPTO_HW is not set diff --git a/crypto/Kconfig b/crypto/Kconfig index bbe9cc408927..f160537a5550 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig @@ -146,11 +146,11 @@ config CRYPTO_HKDF select CRYPTO_SHA256 if CRYPTO_SELFTESTS select CRYPTO_SHA512 if CRYPTO_SELFTESTS select CRYPTO_HASH2 =20 config CRYPTO_MANAGER - tristate "Cryptographic algorithm manager" + tristate select CRYPTO_MANAGER2 help Create default cryptographic template instantiations such as cbc(aes). =20 --=20 2.49.0 From nobody Mon Dec 15 21:12:27 2025 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 EE451270570; Mon, 5 May 2025 20:37: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=1746477437; cv=none; b=UfPJyOcPnL8uRdlHrKxs+1/MvCZ9D62CYBMsDFSiLLW+BXnnrEaYnnRqYZYFSwO3PCxA6Tik3wefrDRjHWAdjumQYh3Vuko8G6MNuXVgq0UPTYPgNQg1vLkXifR6i+h1fEG/jIZ10qrS2vrYcaULs6H9kuIF5rS8a5Cat0iA5xU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746477437; c=relaxed/simple; bh=86AotSM9q0N0N6slvANNauE9kd/qOH9P5rB82f/dZKk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AfjUS4B2qBXeRe48Dgz4IHHQEQhNDquz3WTTKeu5/HxRCJFU5N9Z/GHYu3Ef9eXre61EfNEyHubBqHhmn4qJoYhH6lqplVg/6dtuB9q+G9dDDJ0XWJU6NloexofU3qmxVvGQNN03E5b5Xh6XJBIVTov1kyTqpnI4X109n8F8U+I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Grg81EGV; 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="Grg81EGV" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BE15EC4CEF6; Mon, 5 May 2025 20:37:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1746477436; bh=86AotSM9q0N0N6slvANNauE9kd/qOH9P5rB82f/dZKk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Grg81EGVc5okSAWPbGbDILLSEEWE1Xs7adMPzKfTDj8r7B8PwW1a5+H5QnS6OhJiu Tjnn5h8Lec/piaWwDoDJ5SRtIzhcnNr3KXGYGq7K1y7oK3u08QPsG8s+JFWyyl01Lf bmbDENx/gDyBAu+FRdLnxbZn0CMFpKAqkmAtT1UZ5+QBvMC9SWFV3gpdH44EqsX1xy JBXFK5hlyn3byoL8LsFMCl3XJWRL767hT05CZzfdj1oducznViZUZN73gGehjQDNdZ MTxEN2I5RQfxMl2bKwVdUq13LPSUrlun93I/2dgr7xSdNkTjKfyPgJNz5E997DdkKQ KOylSXDWOgi5Q== From: Eric Biggers To: linux-crypto@vger.kernel.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH v3 7/7] crypto: testmgr - enable CRYPTO_MANAGER when CRYPTO_SELFTESTS Date: Mon, 5 May 2025 13:33:45 -0700 Message-ID: <20250505203345.802740-8-ebiggers@kernel.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250505203345.802740-1-ebiggers@kernel.org> References: <20250505203345.802740-1-ebiggers@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Eric Biggers crypto/testmgr.c is compiled only when CRYPTO_MANAGER is enabled. To make CRYPTO_SELFTESTS work as expected when CRYPTO_MANAGER doesn't get enabled for another reason, automatically set CRYPTO_MANAGER to the value of CRYPTO_ALGAPI when CRYPTO_SELFTESTS is enabled. Signed-off-by: Eric Biggers --- crypto/Kconfig | 5 +++-- crypto/algapi.c | 3 +-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/crypto/Kconfig b/crypto/Kconfig index f160537a5550..24955eb56045 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig @@ -147,14 +147,15 @@ config CRYPTO_HKDF select CRYPTO_SHA512 if CRYPTO_SELFTESTS select CRYPTO_HASH2 =20 config CRYPTO_MANAGER tristate + default CRYPTO_ALGAPI if CRYPTO_SELFTESTS select CRYPTO_MANAGER2 help - Create default cryptographic template instantiations such as - cbc(aes). + This provides the support for instantiating templates such as + cbc(aes), and the support for the crypto self-tests. =20 config CRYPTO_MANAGER2 def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=3Dn && CRYPTO_ALGAPI=3Dy) select CRYPTO_ACOMP2 select CRYPTO_AEAD2 diff --git a/crypto/algapi.c b/crypto/algapi.c index 9030a30c89e8..25b5519e3b71 100644 --- a/crypto/algapi.c +++ b/crypto/algapi.c @@ -272,12 +272,11 @@ static void crypto_alg_finish_registration(struct cry= pto_alg *alg, =20 static struct crypto_larval *crypto_alloc_test_larval(struct crypto_alg *a= lg) { struct crypto_larval *larval; =20 - if (!IS_ENABLED(CONFIG_CRYPTO_MANAGER) || - !IS_ENABLED(CONFIG_CRYPTO_SELFTESTS) || + if (!IS_ENABLED(CONFIG_CRYPTO_SELFTESTS) || (alg->cra_flags & CRYPTO_ALG_INTERNAL)) return NULL; /* No self-test needed */ =20 larval =3D crypto_larval_alloc(alg->cra_name, alg->cra_flags | CRYPTO_ALG_TESTED, 0); --=20 2.49.0