• Herbert Xu's avatar
    crypto: curve25519 - Fix selftest build error · a8bdf2c4
    Herbert Xu authored
    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: default avatarHulk Robot <hulkci@huawei.com>
    Fixes: aa127963 ("crypto: lib/curve25519 - re-add selftests")
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    Reviewed-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    a8bdf2c4
Makefile 1.47 KB