UPSTREAM: crypto: lib/curve25519 - re-add selftests
Somehow these were dropped when Zinc was being integrated, which is problematic, because testing the library interface for Curve25519 is important.. This commit simply adds them back and wires them in in the same way that the blake2s selftests are wired in. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> (cherry picked from commit aa127963f1cab2b93c74c9b128a84610203fb674) Bug: 152722841 Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: I99d201128fc86538435a240c0af6a22b0182bee6
This commit is contained in:
parent
3d68fc0ef3
commit
66be5f3217
3 changed files with 1339 additions and 0 deletions
|
@ -24,4 +24,5 @@ libcurve25519-y += curve25519.o
|
|||
ifneq ($(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS),y)
|
||||
libblake2s-y += blake2s-selftest.o
|
||||
libchacha20poly1305-y += chacha20poly1305-selftest.o
|
||||
libcurve25519-y += curve25519-selftest.o
|
||||
endif
|
||||
|
|
1321
lib/crypto/curve25519-selftest.c
Normal file
1321
lib/crypto/curve25519-selftest.c
Normal file
File diff suppressed because it is too large
Load diff
|
@ -13,6 +13,8 @@
|
|||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
|
||||
bool curve25519_selftest(void);
|
||||
|
||||
const u8 curve25519_null_point[CURVE25519_KEY_SIZE] __aligned(32) = { 0 };
|
||||
const u8 curve25519_base_point[CURVE25519_KEY_SIZE] __aligned(32) = { 9 };
|
||||
|
||||
|
@ -20,6 +22,21 @@ EXPORT_SYMBOL(curve25519_null_point);
|
|||
EXPORT_SYMBOL(curve25519_base_point);
|
||||
EXPORT_SYMBOL(curve25519_generic);
|
||||
|
||||
static int __init mod_init(void)
|
||||
{
|
||||
if (!IS_ENABLED(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS) &&
|
||||
WARN_ON(!curve25519_selftest()))
|
||||
return -ENODEV;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void __exit mod_exit(void)
|
||||
{
|
||||
}
|
||||
|
||||
module_init(mod_init);
|
||||
module_exit(mod_exit);
|
||||
|
||||
MODULE_LICENSE("GPL v2");
|
||||
MODULE_DESCRIPTION("Curve25519 scalar multiplication");
|
||||
MODULE_AUTHOR("Jason A. Donenfeld <Jason@zx2c4.com>");
|
||||
|
|
Loading…
Reference in a new issue