mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 10:47:28 +02:00
linuxkm: WIP support for wolfcrypt_test() at module load time.
This commit is contained in:
@ -195,7 +195,7 @@ endif
|
|||||||
include scripts/include.am
|
include scripts/include.am
|
||||||
|
|
||||||
if BUILD_LINUXKM
|
if BUILD_LINUXKM
|
||||||
export KROOT KARCH AM_CFLAGS CFLAGS AM_CCASFLAGS CCASFLAGS src_libwolfssl_la_OBJECTS
|
export KROOT KARCH AM_CFLAGS CFLAGS AM_CCASFLAGS CCASFLAGS src_libwolfssl_la_OBJECTS ENABLED_CRYPT_TESTS
|
||||||
SUBDIRS = linuxkm
|
SUBDIRS = linuxkm
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -4127,6 +4127,7 @@ AC_ARG_ENABLE([crypttests],
|
|||||||
[ ENABLED_CRYPT_TESTS=$enableval ],
|
[ ENABLED_CRYPT_TESTS=$enableval ],
|
||||||
[ ENABLED_CRYPT_TESTS=$ENABLED_CRYPT_TESTS_DEFAULT ]
|
[ ENABLED_CRYPT_TESTS=$ENABLED_CRYPT_TESTS_DEFAULT ]
|
||||||
)
|
)
|
||||||
|
AC_SUBST([ENABLED_CRYPT_TESTS])
|
||||||
|
|
||||||
|
|
||||||
# LIBZ
|
# LIBZ
|
||||||
@ -5365,9 +5366,6 @@ if test "x$ENABLED_LINUXKM" = "xyes"; then
|
|||||||
if test "$ENABLED_EXAMPLES" = "yes"; then
|
if test "$ENABLED_EXAMPLES" = "yes"; then
|
||||||
AC_MSG_ERROR([--enable-examples is incompatible with --enable-linuxkm.])
|
AC_MSG_ERROR([--enable-examples is incompatible with --enable-linuxkm.])
|
||||||
fi
|
fi
|
||||||
if test "$ENABLED_CRYPT_TESTS" = "yes"; then
|
|
||||||
AC_MSG_ERROR([--enable-crypttests is incompatible with --enable-linuxkm.])
|
|
||||||
fi
|
|
||||||
if test "$ENABLED_SMALL_STACK" != "yes"; then
|
if test "$ENABLED_SMALL_STACK" != "yes"; then
|
||||||
AC_MSG_ERROR([--enable-smallstack is required for --enable-linuxkm.])
|
AC_MSG_ERROR([--enable-smallstack is required for --enable-linuxkm.])
|
||||||
fi
|
fi
|
||||||
|
@ -22,5 +22,6 @@ libwolfssl-y := $(WOLFSSL_OBJ_FILES)
|
|||||||
|
|
||||||
ccflags-y := $(WOLFSSL_CFLAGS)
|
ccflags-y := $(WOLFSSL_CFLAGS)
|
||||||
%/libwolfssl.mod.o: ccflags-y :=
|
%/libwolfssl.mod.o: ccflags-y :=
|
||||||
|
%/lkm_testcrypto.o: ccflags-y += -DNO_MAIN_DRIVER
|
||||||
|
|
||||||
asflags-y := $(WOLFSSL_ASFLAGS)
|
asflags-y := $(WOLFSSL_ASFLAGS)
|
||||||
|
@ -27,6 +27,12 @@ WOLFSSL_ASFLAGS=-DHAVE_CONFIG_H -I$(SRC_TOP) -DBUILDING_WOLFSSL $(AM_CCASFLAGS)
|
|||||||
|
|
||||||
WOLFSSL_OBJ_FILES=linuxkm/module_hooks.o $(patsubst %.lo, %.o, $(patsubst src/src_libwolfssl_la-%, src/%, $(patsubst src/libwolfssl_la-%, src/%, $(patsubst wolfcrypt/src/src_libwolfssl_la-%, wolfcrypt/src/%, $(src_libwolfssl_la_OBJECTS)))))
|
WOLFSSL_OBJ_FILES=linuxkm/module_hooks.o $(patsubst %.lo, %.o, $(patsubst src/src_libwolfssl_la-%, src/%, $(patsubst src/libwolfssl_la-%, src/%, $(patsubst wolfcrypt/src/src_libwolfssl_la-%, wolfcrypt/src/%, $(src_libwolfssl_la_OBJECTS)))))
|
||||||
|
|
||||||
|
ifeq "$(ENABLED_CRYPT_TESTS)" "yes"
|
||||||
|
WOLFSSL_OBJ_FILES+=linuxkm/lkm_testcrypto.o
|
||||||
|
else
|
||||||
|
WOLFSSL_CFLAGS+=-DNO_CRYPT_TEST
|
||||||
|
endif
|
||||||
|
|
||||||
export WOLFSSL_CFLAGS WOLFSSL_ASFLAGS WOLFSSL_OBJ_FILES
|
export WOLFSSL_CFLAGS WOLFSSL_ASFLAGS WOLFSSL_OBJ_FILES
|
||||||
|
|
||||||
libwolfssl.ko:
|
libwolfssl.ko:
|
||||||
|
29425
linuxkm/lkm_testcrypto.c
Normal file
29425
linuxkm/lkm_testcrypto.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -9,6 +9,9 @@
|
|||||||
#include <wolfssl/wolfcrypt/settings.h>
|
#include <wolfssl/wolfcrypt/settings.h>
|
||||||
#include <wolfssl/wolfcrypt/error-crypt.h>
|
#include <wolfssl/wolfcrypt/error-crypt.h>
|
||||||
#include <wolfssl/ssl.h>
|
#include <wolfssl/ssl.h>
|
||||||
|
#ifndef NO_CRYPT_TEST
|
||||||
|
#include <wolfcrypt/test/test.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0)
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0)
|
||||||
static int __init wolfssl_init(void)
|
static int __init wolfssl_init(void)
|
||||||
@ -22,6 +25,14 @@ static int wolfssl_init(void)
|
|||||||
return -ENOTRECOVERABLE;
|
return -ENOTRECOVERABLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef NO_CRYPT_TEST
|
||||||
|
ret = wolfcrypt_test(NULL);
|
||||||
|
if (ret != WOLFSSL_SUCCESS) {
|
||||||
|
pr_err("wolfcrypt_test() failed: %s", wc_GetErrorString(ret));
|
||||||
|
return -ENOTRECOVERABLE;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
pr_info("wolfSSL " LIBWOLFSSL_VERSION_STRING " loaded. See https://www.wolfssl.com/ for information.\n");
|
pr_info("wolfSSL " LIBWOLFSSL_VERSION_STRING " loaded. See https://www.wolfssl.com/ for information.\n");
|
||||||
pr_info("Copyright (C) 2006-2020 wolfSSL Inc. All Rights Reserved.\n");
|
pr_info("Copyright (C) 2006-2020 wolfSSL Inc. All Rights Reserved.\n");
|
||||||
|
|
||||||
|
@ -2089,8 +2089,6 @@ extern void uITRON4_free(void *p) ;
|
|||||||
#define NO_DEV_RANDOM
|
#define NO_DEV_RANDOM
|
||||||
#define NO_WRITEV
|
#define NO_WRITEV
|
||||||
#define NO_FILESYSTEM
|
#define NO_FILESYSTEM
|
||||||
#define NO_CRYPT_BENCHMARK 1
|
|
||||||
#define NO_CRYPT_TEST 1
|
|
||||||
#define SIZEOF_LONG 8
|
#define SIZEOF_LONG 8
|
||||||
#define SIZEOF_LONG_LONG 8
|
#define SIZEOF_LONG_LONG 8
|
||||||
#define CHAR_BIT 8
|
#define CHAR_BIT 8
|
||||||
|
Reference in New Issue
Block a user