linux/lib/crypto
Herbert Xu a8bdf2c42e crypto: curve25519 - Fix selftest build error
If CRYPTO_CURVE25519 is y, CRYPTO_LIB_CURVE25519_GENERIC will be
y, but CRYPTO_LIB_CURVE25519 may be set to m, this causes build
errors:

lib/crypto/curve25519-selftest.o: In function `curve25519':
curve25519-selftest.c:(.text.unlikely+0xc): undefined reference to `curve25519_arch'
lib/crypto/curve25519-selftest.o: In function `curve25519_selftest':
curve25519-selftest.c:(.init.text+0x17e): undefined reference to `curve25519_base_arch'

This is because the curve25519 self-test code is being controlled
by the GENERIC option rather than the overall CURVE25519 option,
as is the case with blake2s.  To recap, the GENERIC and ARCH options
for CURVE25519 are internal only and selected by users such as
the Crypto API, or the externally visible CURVE25519 option which
in turn is selected by wireguard.  The self-test is specific to the
the external CURVE25519 option and should not be enabled by the
Crypto API.

This patch fixes this by splitting the GENERIC module from the
CURVE25519 module with the latter now containing just the self-test.

Reported-by: Hulk Robot <hulkci@huawei.com>
Fixes: aa127963f1 ("crypto: lib/curve25519 - re-add selftests")
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Reviewed-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2020-01-16 15:18:13 +08:00
..
aes.c crypto: aes - helper function to validate key length for AES algorithms 2019-08-09 15:11:43 +10:00
arc4.c crypto: arc4 - refactor arc4 core code into separate library 2019-06-20 14:18:33 +08:00
blake2s-generic.c crypto: blake2s - generic C library implementation and selftest 2019-11-17 09:02:42 +08:00
blake2s-selftest.c crypto: blake2s - generic C library implementation and selftest 2019-11-17 09:02:42 +08:00
blake2s.c crypto: blake2s - generic C library implementation and selftest 2019-11-17 09:02:42 +08:00
chacha20poly1305-selftest.c crypto: lib/chacha20poly1305 - reimplement crypt_from_sg() routine 2019-11-17 09:02:44 +08:00
chacha20poly1305.c crypto: lib/chacha20poly1305 - use chacha20_crypt() 2019-11-22 18:48:39 +08:00
chacha.c crypto: chacha - move existing library code into lib/crypto 2019-11-17 09:02:39 +08:00
curve25519-fiat32.c crypto: lib/curve25519 - work around Clang stack spilling issue 2019-11-17 09:02:43 +08:00
curve25519-generic.c crypto: curve25519 - Fix selftest build error 2020-01-16 15:18:13 +08:00
curve25519-hacl64.c crypto: curve25519 - generic C library implementations 2019-11-17 09:02:43 +08:00
curve25519-selftest.c crypto: lib/curve25519 - re-add selftests 2019-12-27 18:18:03 +08:00
curve25519.c crypto: curve25519 - Fix selftest build error 2020-01-16 15:18:13 +08:00
des.c crypto: des - split off DES library from generic DES cipher driver 2019-08-22 14:57:33 +10:00
Kconfig crypto: x86/poly1305 - wire up faster implementations for kernel 2020-01-16 15:18:12 +08:00
libchacha.c crypto: chacha - move existing library code into lib/crypto 2019-11-17 09:02:39 +08:00
Makefile crypto: curve25519 - Fix selftest build error 2020-01-16 15:18:13 +08:00
poly1305-donna32.c crypto: poly1305 - add new 32 and 64-bit generic versions 2020-01-16 15:18:12 +08:00
poly1305-donna64.c crypto: poly1305 - add new 32 and 64-bit generic versions 2020-01-16 15:18:12 +08:00
poly1305.c crypto: poly1305 - add new 32 and 64-bit generic versions 2020-01-16 15:18:12 +08:00
sha256.c crypto: sha256 - Remove sha256/224_init code duplication 2019-09-05 14:54:54 +10:00