mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 00:28:52 +02:00 
			
		
		
		
	crypto: testmgr - replace CRYPTO_MANAGER_DISABLE_TESTS with CRYPTO_SELFTESTS
The negative-sense of CRYPTO_MANAGER_DISABLE_TESTS is a longstanding mistake that regularly causes confusion. Especially bad is that you can have CRYPTO=n && CRYPTO_MANAGER_DISABLE_TESTS=n, 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 <ebiggers@google.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
		
							parent
							
								
									d469eaed22
								
							
						
					
					
						commit
						40b9969796
					
				
					 18 changed files with 41 additions and 40 deletions
				
			
		|  | @ -94,7 +94,7 @@ CONFIG_NLS_ISO8859_1=y | ||||||
| CONFIG_NLS_UTF8=y | CONFIG_NLS_UTF8=y | ||||||
| CONFIG_KEYS=y | CONFIG_KEYS=y | ||||||
| CONFIG_CRYPTO_MANAGER=y | CONFIG_CRYPTO_MANAGER=y | ||||||
| # CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set | CONFIG_CRYPTO_SELFTESTS=y | ||||||
| # CONFIG_CRYPTO_ECHAINIV is not set | # CONFIG_CRYPTO_ECHAINIV is not set | ||||||
| CONFIG_CRYPTO_AES=y | CONFIG_CRYPTO_AES=y | ||||||
| CONFIG_CRYPTO_SEQIV=m | CONFIG_CRYPTO_SEQIV=m | ||||||
|  |  | ||||||
|  | @ -1026,7 +1026,7 @@ CONFIG_SECURITY_APPARMOR=y | ||||||
| CONFIG_SECURITY_YAMA=y | CONFIG_SECURITY_YAMA=y | ||||||
| CONFIG_DEFAULT_SECURITY_DAC=y | CONFIG_DEFAULT_SECURITY_DAC=y | ||||||
| CONFIG_CRYPTO_USER=m | CONFIG_CRYPTO_USER=m | ||||||
| # CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set | CONFIG_CRYPTO_SELFTESTS=y | ||||||
| CONFIG_CRYPTO_PCRYPT=m | CONFIG_CRYPTO_PCRYPT=m | ||||||
| CONFIG_CRYPTO_CRYPTD=m | CONFIG_CRYPTO_CRYPTD=m | ||||||
| CONFIG_CRYPTO_ANUBIS=m | CONFIG_CRYPTO_ANUBIS=m | ||||||
|  |  | ||||||
|  | @ -743,7 +743,7 @@ CONFIG_IMA_WRITE_POLICY=y | ||||||
| CONFIG_IMA_APPRAISE=y | CONFIG_IMA_APPRAISE=y | ||||||
| CONFIG_BUG_ON_DATA_CORRUPTION=y | CONFIG_BUG_ON_DATA_CORRUPTION=y | ||||||
| CONFIG_CRYPTO_USER=m | CONFIG_CRYPTO_USER=m | ||||||
| # CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set | CONFIG_CRYPTO_SELFTESTS=y | ||||||
| CONFIG_CRYPTO_PCRYPT=m | CONFIG_CRYPTO_PCRYPT=m | ||||||
| CONFIG_CRYPTO_CRYPTD=m | CONFIG_CRYPTO_CRYPTD=m | ||||||
| CONFIG_CRYPTO_BENCHMARK=m | CONFIG_CRYPTO_BENCHMARK=m | ||||||
|  |  | ||||||
|  | @ -729,7 +729,7 @@ CONFIG_IMA_APPRAISE=y | ||||||
| CONFIG_BUG_ON_DATA_CORRUPTION=y | CONFIG_BUG_ON_DATA_CORRUPTION=y | ||||||
| CONFIG_CRYPTO_FIPS=y | CONFIG_CRYPTO_FIPS=y | ||||||
| CONFIG_CRYPTO_USER=m | CONFIG_CRYPTO_USER=m | ||||||
| # CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set | CONFIG_CRYPTO_SELFTESTS=y | ||||||
| CONFIG_CRYPTO_PCRYPT=m | CONFIG_CRYPTO_PCRYPT=m | ||||||
| CONFIG_CRYPTO_CRYPTD=m | CONFIG_CRYPTO_CRYPTD=m | ||||||
| CONFIG_CRYPTO_BENCHMARK=m | CONFIG_CRYPTO_BENCHMARK=m | ||||||
|  |  | ||||||
|  | @ -25,7 +25,7 @@ menu "Crypto core or helper" | ||||||
| 
 | 
 | ||||||
| config CRYPTO_FIPS | config CRYPTO_FIPS | ||||||
| 	bool "FIPS 200 compliance" | 	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) | 	depends on (MODULE_SIG || !MODULES) | ||||||
| 	help | 	help | ||||||
| 	  This option enables the fips boot option which is | 	  This option enables the fips boot option which is | ||||||
|  | @ -143,8 +143,8 @@ config CRYPTO_ACOMP | ||||||
| 
 | 
 | ||||||
| config CRYPTO_HKDF | config CRYPTO_HKDF | ||||||
| 	tristate | 	tristate | ||||||
| 	select CRYPTO_SHA256 if !CONFIG_CRYPTO_MANAGER_DISABLE_TESTS | 	select CRYPTO_SHA256 if CRYPTO_SELFTESTS | ||||||
| 	select CRYPTO_SHA512 if !CONFIG_CRYPTO_MANAGER_DISABLE_TESTS | 	select CRYPTO_SHA512 if CRYPTO_SELFTESTS | ||||||
| 	select CRYPTO_HASH2 | 	select CRYPTO_HASH2 | ||||||
| 
 | 
 | ||||||
| config CRYPTO_MANAGER | config CRYPTO_MANAGER | ||||||
|  | @ -173,16 +173,22 @@ config CRYPTO_USER | ||||||
| 	  Userspace configuration for cryptographic instantiations such as | 	  Userspace configuration for cryptographic instantiations such as | ||||||
| 	  cbc(aes). | 	  cbc(aes). | ||||||
| 
 | 
 | ||||||
| config CRYPTO_MANAGER_DISABLE_TESTS | config CRYPTO_SELFTESTS | ||||||
| 	bool "Disable run-time self tests" | 	bool "Enable cryptographic self-tests" | ||||||
| 	default y | 	depends on DEBUG_KERNEL | ||||||
| 	help | 	help | ||||||
| 	  Disable run-time self tests that normally take place at | 	  Enable the cryptographic self-tests. | ||||||
| 	  algorithm registration. | 
 | ||||||
|  | 	  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. | ||||||
| 
 | 
 | ||||||
| config CRYPTO_MANAGER_EXTRA_TESTS | config CRYPTO_MANAGER_EXTRA_TESTS | ||||||
| 	bool "Enable extra run-time crypto self 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 | 	help | ||||||
| 	  Enable extra run-time self tests of registered crypto algorithms, | 	  Enable extra run-time self tests of registered crypto algorithms, | ||||||
| 	  including randomized fuzz tests. | 	  including randomized fuzz tests. | ||||||
|  |  | ||||||
|  | @ -275,7 +275,7 @@ static struct crypto_larval *crypto_alloc_test_larval(struct crypto_alg *alg) | ||||||
| 	struct crypto_larval *larval; | 	struct crypto_larval *larval; | ||||||
| 
 | 
 | ||||||
| 	if (!IS_ENABLED(CONFIG_CRYPTO_MANAGER) || | 	if (!IS_ENABLED(CONFIG_CRYPTO_MANAGER) || | ||||||
| 	    IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS) || | 	    !IS_ENABLED(CONFIG_CRYPTO_SELFTESTS) || | ||||||
| 	    (alg->cra_flags & CRYPTO_ALG_INTERNAL)) | 	    (alg->cra_flags & CRYPTO_ALG_INTERNAL)) | ||||||
| 		return NULL; /* No self-test needed */ | 		return NULL; /* No self-test needed */ | ||||||
| 
 | 
 | ||||||
|  | @ -1059,7 +1059,7 @@ static void __init crypto_start_tests(void) | ||||||
| 	if (!IS_BUILTIN(CONFIG_CRYPTO_ALGAPI)) | 	if (!IS_BUILTIN(CONFIG_CRYPTO_ALGAPI)) | ||||||
| 		return; | 		return; | ||||||
| 
 | 
 | ||||||
| 	if (IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS)) | 	if (!IS_ENABLED(CONFIG_CRYPTO_SELFTESTS)) | ||||||
| 		return; | 		return; | ||||||
| 
 | 
 | ||||||
| 	set_crypto_boot_test_finished(); | 	set_crypto_boot_test_finished(); | ||||||
|  |  | ||||||
|  | @ -189,7 +189,7 @@ static int cryptomgr_schedule_test(struct crypto_alg *alg) | ||||||
| 	struct task_struct *thread; | 	struct task_struct *thread; | ||||||
| 	struct crypto_test_param *param; | 	struct crypto_test_param *param; | ||||||
| 
 | 
 | ||||||
| 	if (IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS)) | 	if (!IS_ENABLED(CONFIG_CRYPTO_SELFTESTS)) | ||||||
| 		return NOTIFY_DONE; | 		return NOTIFY_DONE; | ||||||
| 
 | 
 | ||||||
| 	if (!try_module_get(THIS_MODULE)) | 	if (!try_module_get(THIS_MODULE)) | ||||||
|  |  | ||||||
|  | @ -31,8 +31,7 @@ EXPORT_SYMBOL_GPL(crypto_alg_sem); | ||||||
| BLOCKING_NOTIFIER_HEAD(crypto_chain); | BLOCKING_NOTIFIER_HEAD(crypto_chain); | ||||||
| EXPORT_SYMBOL_GPL(crypto_chain); | EXPORT_SYMBOL_GPL(crypto_chain); | ||||||
| 
 | 
 | ||||||
| #if IS_BUILTIN(CONFIG_CRYPTO_ALGAPI) && \ | #if IS_BUILTIN(CONFIG_CRYPTO_ALGAPI) && IS_ENABLED(CONFIG_CRYPTO_SELFTESTS) | ||||||
|     !IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS) |  | ||||||
| DEFINE_STATIC_KEY_FALSE(__crypto_boot_test_finished); | DEFINE_STATIC_KEY_FALSE(__crypto_boot_test_finished); | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -543,7 +543,7 @@ static int __init crypto_hkdf_module_init(void) | ||||||
| { | { | ||||||
| 	int ret = 0, i; | 	int ret = 0, i; | ||||||
| 
 | 
 | ||||||
| 	if (IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS)) | 	if (!IS_ENABLED(CONFIG_CRYPTO_SELFTESTS)) | ||||||
| 		return 0; | 		return 0; | ||||||
| 
 | 
 | ||||||
| 	for (i = 0; i < ARRAY_SIZE(hkdf_sha256_tv); i++) { | 	for (i = 0; i < ARRAY_SIZE(hkdf_sha256_tv); i++) { | ||||||
|  |  | ||||||
|  | @ -67,8 +67,7 @@ extern struct blocking_notifier_head crypto_chain; | ||||||
| 
 | 
 | ||||||
| int alg_test(const char *driver, const char *alg, u32 type, u32 mask); | int alg_test(const char *driver, const char *alg, u32 type, u32 mask); | ||||||
| 
 | 
 | ||||||
| #if !IS_BUILTIN(CONFIG_CRYPTO_ALGAPI) || \ | #if !IS_BUILTIN(CONFIG_CRYPTO_ALGAPI) || !IS_ENABLED(CONFIG_CRYPTO_SELFTESTS) | ||||||
|     IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS) |  | ||||||
| static inline bool crypto_boot_test_finished(void) | static inline bool crypto_boot_test_finished(void) | ||||||
| { | { | ||||||
| 	return true; | 	return true; | ||||||
|  | @ -87,7 +86,7 @@ static inline void set_crypto_boot_test_finished(void) | ||||||
| 	static_branch_enable(&__crypto_boot_test_finished); | 	static_branch_enable(&__crypto_boot_test_finished); | ||||||
| } | } | ||||||
| #endif /* !IS_BUILTIN(CONFIG_CRYPTO_ALGAPI) || | #endif /* !IS_BUILTIN(CONFIG_CRYPTO_ALGAPI) || | ||||||
| 	* IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS) | 	* !IS_ENABLED(CONFIG_CRYPTO_SELFTESTS) | ||||||
| 	*/ | 	*/ | ||||||
| 
 | 
 | ||||||
| #ifdef CONFIG_PROC_FS | #ifdef CONFIG_PROC_FS | ||||||
|  |  | ||||||
|  | @ -127,7 +127,7 @@ static int __init crypto_kdf108_init(void) | ||||||
| { | { | ||||||
| 	int ret; | 	int ret; | ||||||
| 
 | 
 | ||||||
| 	if (IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS)) | 	if (!IS_ENABLED(CONFIG_CRYPTO_SELFTESTS)) | ||||||
| 		return 0; | 		return 0; | ||||||
| 
 | 
 | ||||||
| 	ret = kdf_test(&kdf_ctr_hmac_sha256_tv_template[0], "hmac(sha256)", | 	ret = kdf_test(&kdf_ctr_hmac_sha256_tv_template[0], "hmac(sha256)", | ||||||
|  |  | ||||||
|  | @ -55,7 +55,7 @@ module_param(fuzz_iterations, uint, 0644); | ||||||
| MODULE_PARM_DESC(fuzz_iterations, "number of fuzz test iterations"); | MODULE_PARM_DESC(fuzz_iterations, "number of fuzz test iterations"); | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #ifdef CONFIG_CRYPTO_MANAGER_DISABLE_TESTS | #ifndef CONFIG_CRYPTO_SELFTESTS | ||||||
| 
 | 
 | ||||||
| /* a perfect nop */ | /* a perfect nop */ | ||||||
| int alg_test(const char *driver, const char *alg, u32 type, u32 mask) | int alg_test(const char *driver, const char *alg, u32 type, u32 mask) | ||||||
|  | @ -321,10 +321,10 @@ struct testvec_config { | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * The following are the lists of testvec_configs to test for each algorithm |  * The following are the lists of testvec_configs to test for each algorithm | ||||||
|  * type when the basic crypto self-tests are enabled, i.e. when |  * type when the basic crypto self-tests are enabled.  They aim to provide good | ||||||
|  * CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is unset.  They aim to provide good test |  * test coverage, while keeping the test time much shorter than the full fuzz | ||||||
|  * coverage, while keeping the test time much shorter than the full fuzz tests |  * tests so that the basic tests can be enabled in a wider range of | ||||||
|  * so that the basic tests can be enabled in a wider range of circumstances. |  * circumstances. | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| /* Configs for skciphers and aeads */ | /* Configs for skciphers and aeads */ | ||||||
|  | @ -5899,6 +5899,6 @@ int alg_test(const char *driver, const char *alg, u32 type, u32 mask) | ||||||
| 	return alg_fips_disabled(driver, alg); | 	return alg_fips_disabled(driver, alg); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #endif /* CONFIG_CRYPTO_MANAGER_DISABLE_TESTS */ | #endif /* CONFIG_CRYPTO_SELFTESTS */ | ||||||
| 
 | 
 | ||||||
| EXPORT_SYMBOL_GPL(alg_test); | EXPORT_SYMBOL_GPL(alg_test); | ||||||
|  |  | ||||||
|  | @ -25,9 +25,11 @@ obj-$(CONFIG_CRYPTO_LIB_GF128MUL)		+= gf128mul.o | ||||||
| obj-y						+= libblake2s.o | obj-y						+= libblake2s.o | ||||||
| libblake2s-y					:= blake2s.o | libblake2s-y					:= blake2s.o | ||||||
| libblake2s-$(CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC)	+= blake2s-generic.o | libblake2s-$(CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC)	+= blake2s-generic.o | ||||||
|  | libblake2s-$(CONFIG_CRYPTO_SELFTESTS)		+= blake2s-selftest.o | ||||||
| 
 | 
 | ||||||
| obj-$(CONFIG_CRYPTO_LIB_CHACHA20POLY1305)	+= libchacha20poly1305.o | obj-$(CONFIG_CRYPTO_LIB_CHACHA20POLY1305)	+= libchacha20poly1305.o | ||||||
| libchacha20poly1305-y				+= chacha20poly1305.o | libchacha20poly1305-y				+= chacha20poly1305.o | ||||||
|  | libchacha20poly1305-$(CONFIG_CRYPTO_SELFTESTS)	+= chacha20poly1305-selftest.o | ||||||
| 
 | 
 | ||||||
| obj-$(CONFIG_CRYPTO_LIB_CURVE25519_GENERIC)	+= libcurve25519-generic.o | obj-$(CONFIG_CRYPTO_LIB_CURVE25519_GENERIC)	+= libcurve25519-generic.o | ||||||
| libcurve25519-generic-y				:= curve25519-fiat32.o | libcurve25519-generic-y				:= curve25519-fiat32.o | ||||||
|  | @ -36,6 +38,7 @@ libcurve25519-generic-y				+= curve25519-generic.o | ||||||
| 
 | 
 | ||||||
| obj-$(CONFIG_CRYPTO_LIB_CURVE25519)		+= libcurve25519.o | obj-$(CONFIG_CRYPTO_LIB_CURVE25519)		+= libcurve25519.o | ||||||
| libcurve25519-y					+= curve25519.o | libcurve25519-y					+= curve25519.o | ||||||
|  | libcurve25519-$(CONFIG_CRYPTO_SELFTESTS)	+= curve25519-selftest.o | ||||||
| 
 | 
 | ||||||
| obj-$(CONFIG_CRYPTO_LIB_DES)			+= libdes.o | obj-$(CONFIG_CRYPTO_LIB_DES)			+= libdes.o | ||||||
| libdes-y					:= des.o | libdes-y					:= des.o | ||||||
|  | @ -57,12 +60,6 @@ libsha256-y					:= sha256.o | ||||||
| obj-$(CONFIG_CRYPTO_LIB_SHA256_GENERIC)		+= libsha256-generic.o | obj-$(CONFIG_CRYPTO_LIB_SHA256_GENERIC)		+= libsha256-generic.o | ||||||
| libsha256-generic-y				:= sha256-generic.o | libsha256-generic-y				:= sha256-generic.o | ||||||
| 
 | 
 | ||||||
| ifneq ($(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS),y) |  | ||||||
| libblake2s-y					+= blake2s-selftest.o |  | ||||||
| libchacha20poly1305-y				+= chacha20poly1305-selftest.o |  | ||||||
| libcurve25519-y					+= curve25519-selftest.o |  | ||||||
| endif |  | ||||||
| 
 |  | ||||||
| obj-$(CONFIG_MPILIB) += mpi/ | obj-$(CONFIG_MPILIB) += mpi/ | ||||||
| 
 | 
 | ||||||
| obj-$(CONFIG_CRYPTO_MANAGER_EXTRA_TESTS)	+= simd.o | obj-$(CONFIG_CRYPTO_MANAGER_EXTRA_TESTS)	+= simd.o | ||||||
|  |  | ||||||
|  | @ -99,7 +99,7 @@ MODULE_DESCRIPTION("Generic AES-CFB library"); | ||||||
| MODULE_AUTHOR("Ard Biesheuvel <ardb@kernel.org>"); | MODULE_AUTHOR("Ard Biesheuvel <ardb@kernel.org>"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| 
 | 
 | ||||||
| #ifndef CONFIG_CRYPTO_MANAGER_DISABLE_TESTS | #ifdef CONFIG_CRYPTO_SELFTESTS | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * Test code below. Vectors taken from crypto/testmgr.h |  * Test code below. Vectors taken from crypto/testmgr.h | ||||||
|  |  | ||||||
|  | @ -199,7 +199,7 @@ MODULE_DESCRIPTION("Generic AES-GCM library"); | ||||||
| MODULE_AUTHOR("Ard Biesheuvel <ardb@kernel.org>"); | MODULE_AUTHOR("Ard Biesheuvel <ardb@kernel.org>"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| 
 | 
 | ||||||
| #ifndef CONFIG_CRYPTO_MANAGER_DISABLE_TESTS | #ifdef CONFIG_CRYPTO_SELFTESTS | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * Test code below. Vectors taken from crypto/testmgr.h |  * Test code below. Vectors taken from crypto/testmgr.h | ||||||
|  |  | ||||||
|  | @ -60,7 +60,7 @@ EXPORT_SYMBOL(blake2s_final); | ||||||
| 
 | 
 | ||||||
| static int __init blake2s_mod_init(void) | 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())) | 	    WARN_ON(!blake2s_selftest())) | ||||||
| 		return -ENODEV; | 		return -ENODEV; | ||||||
| 	return 0; | 	return 0; | ||||||
|  |  | ||||||
|  | @ -358,7 +358,7 @@ EXPORT_SYMBOL(chacha20poly1305_decrypt_sg_inplace); | ||||||
| 
 | 
 | ||||||
| static int __init chacha20poly1305_init(void) | static int __init chacha20poly1305_init(void) | ||||||
| { | { | ||||||
| 	if (!IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS) && | 	if (IS_ENABLED(CONFIG_CRYPTO_SELFTESTS) && | ||||||
| 	    WARN_ON(!chacha20poly1305_selftest())) | 	    WARN_ON(!chacha20poly1305_selftest())) | ||||||
| 		return -ENODEV; | 		return -ENODEV; | ||||||
| 	return 0; | 	return 0; | ||||||
|  |  | ||||||
|  | @ -15,7 +15,7 @@ | ||||||
| 
 | 
 | ||||||
| static int __init curve25519_init(void) | static int __init curve25519_init(void) | ||||||
| { | { | ||||||
| 	if (!IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS) && | 	if (IS_ENABLED(CONFIG_CRYPTO_SELFTESTS) && | ||||||
| 	    WARN_ON(!curve25519_selftest())) | 	    WARN_ON(!curve25519_selftest())) | ||||||
| 		return -ENODEV; | 		return -ENODEV; | ||||||
| 	return 0; | 	return 0; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Eric Biggers
						Eric Biggers