mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-31 19:24:42 +02:00
linuxkm/linuxkm_wc_port.h, linuxkm/lkcapi_aes_glue.c, configure.ac: fix LKCAPI on kernel 5.4 (sunrise version for LKCAPI), and add all-aes, all-sha, all-hmac, and their negations, to --enable-linuxkm-lkcapi-register.
This commit is contained in:
15
configure.ac
15
configure.ac
@@ -9560,8 +9560,9 @@ fi
|
||||
AC_ARG_ENABLE([linuxkm-lkcapi-register],
|
||||
[AS_HELP_STRING([--enable-linuxkm-lkcapi-register],[Register wolfCrypt implementations with the Linux Kernel Crypto API backplane.
|
||||
Possible values are "none" or a comma-separated combination of "all", "all-kconfig", "sysfs-nodes-only", "cbc(aes)", "cfb(aes)",
|
||||
"gcm(aes)", "rfc4106(gcm(aes))", "xts(aes)", "ctr(aes)", "ofb(aes)", "ecb(aes)", "sha1", "sha2", "sha3", "hmac(sha1)", "hmac(sha2)",
|
||||
"hmac(sha3)", "stdrng", "stdrng-default", "ecdsa", "ecdh", "rsa", "dh", and negations of the foregoing algorithms by prefixing "-".
|
||||
"gcm(aes)", "rfc4106(gcm(aes))", "xts(aes)", "ctr(aes)", "ofb(aes)", "ecb(aes)", "all-aes", "sha1", "sha2", "sha3", "all-sha",
|
||||
"hmac(sha1)", "hmac(sha2)", "hmac(sha3)", "all-hmac", "stdrng", "stdrng-default", "ecdsa", "ecdh", "rsa", "dh", and negations of
|
||||
the foregoing algorithms by prefixing "-".
|
||||
(default: none)])],
|
||||
[ENABLED_LINUXKM_LKCAPI_REGISTER=$enableval],
|
||||
[ENABLED_LINUXKM_LKCAPI_REGISTER=no]
|
||||
@@ -9603,6 +9604,8 @@ then
|
||||
'ofb(aes)') test "$ENABLED_AESOFB" != "no" || AC_MSG_ERROR([linuxkm-lkcapi-register ${lkcapi_alg}: AES-OFB implementation not enabled.])
|
||||
AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_REGISTER_AESOFB" ;;
|
||||
'ecb(aes)') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_REGISTER_AESECB -DHAVE_AES_ECB" ;;
|
||||
'all-aes') test "$ENABLED_AES" != "no" || AC_MSG_ERROR([linuxkm-lkcapi-register ${lkcapi_alg}: AES is disabled.])
|
||||
AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_REGISTER_AES_ALL" ;;
|
||||
'sha1') test "$ENABLED_SHA" != "no" || AC_MSG_ERROR([linuxkm-lkcapi-register ${lkcapi_alg}: SHA-1 implementation not enabled.])
|
||||
AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_REGISTER_SHA1" ;;
|
||||
'sha2') test "$ENABLED_SHA224" != "no" || test "$ENABLED_SHA256" != "no" || test "$ENABLED_SHA384" != "no" || test "$ENABLED_SHA512" != "no" || \
|
||||
@@ -9610,13 +9613,16 @@ then
|
||||
AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_REGISTER_SHA2" ;;
|
||||
'sha3') test "$ENABLED_SHA3" != "no" || AC_MSG_ERROR([linuxkm-lkcapi-register ${lkcapi_alg}: SHA-3 implementation not enabled.])
|
||||
AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_REGISTER_SHA3" ;;
|
||||
'hmac(sha1)') test "$ENABLED_SHA" != "no" && test "$ENABLED_HMAC" != "no" || AC_MSG_ERROR([linuxkm-lkcapi-register ${lkcapi_alg}: SHA-1 HMAC implementation not enabled.])
|
||||
'all-sha') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_REGISTER_SHA1 -DLINUXKM_LKCAPI_REGISTER_SHA2 -DLINUXKM_LKCAPI_REGISTER_SHA3" ;;
|
||||
'hmac(sha1)') test "$ENABLED_SHA" != "no" && test "$ENABLED_HMAC" != "no" || AC_MSG_ERROR([linuxkm-lkcapi-register ${lkcapi_alg}: SHA-1 HMAC implementation not enabled.])
|
||||
AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_REGISTER_SHA1_HMAC" ;;
|
||||
'hmac(sha2)') (test "$ENABLED_SHA224" != "no" || test "$ENABLED_SHA256" != "no" || test "$ENABLED_SHA384" != "no" || test "$ENABLED_SHA512" != "no") && \
|
||||
test "$ENABLED_HMAC" != "no" || AC_MSG_ERROR([linuxkm-lkcapi-register ${lkcapi_alg}: No SHA-2 HMAC implementations are enabled.])
|
||||
AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_REGISTER_SHA2_HMAC" ;;
|
||||
'hmac(sha3)') test "$ENABLED_SHA3" != "no" && test "$ENABLED_HMAC" != "no" || AC_MSG_ERROR([linuxkm-lkcapi-register ${lkcapi_alg}: SHA-3 HMAC implementation not enabled.])
|
||||
AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_REGISTER_SHA3_HMAC" ;;
|
||||
'all-hmac') test "$ENABLED_HMAC" != "no" || AC_MSG_ERROR([linuxkm-lkcapi-register ${lkcapi_alg}: HMAC implementation not enabled.])
|
||||
AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_REGISTER_SHA1_HMAC -DLINUXKM_LKCAPI_REGISTER_SHA2_HMAC -DLINUXKM_LKCAPI_REGISTER_SHA3_HMAC" ;;
|
||||
'stdrng') test "$ENABLED_HASHDRBG" != "no" || AC_MSG_ERROR([linuxkm-lkcapi-register ${lkcapi_alg}: HASHDRBG implementation not enabled.])
|
||||
AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_REGISTER_HASH_DRBG" ;;
|
||||
'stdrng-default') test "$ENABLED_HASHDRBG" != "no" || AC_MSG_ERROR([linuxkm-lkcapi-register ${lkcapi_alg}: HASHDRBG implementation not enabled.])
|
||||
@@ -9638,12 +9644,15 @@ then
|
||||
'-ctr(aes)') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_AESCTR" ;;
|
||||
'-ofb(aes)') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_AESOFB" ;;
|
||||
'-ecb(aes)') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_AESECB" ;;
|
||||
'-all-aes') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_AES_ALL" ;;
|
||||
'-sha1') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_SHA1" ;;
|
||||
'-sha2') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_SHA2" ;;
|
||||
'-sha3') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_SHA3" ;;
|
||||
'-all-sha') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_SHA1 -DLINUXKM_LKCAPI_DONT_REGISTER_SHA2 -DLINUXKM_LKCAPI_DONT_REGISTER_SHA3" ;;
|
||||
'-hmac(sha1)') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_SHA1_HMAC" ;;
|
||||
'-hmac(sha2)') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_SHA2_HMAC" ;;
|
||||
'-hmac(sha3)') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_SHA3_HMAC" ;;
|
||||
'-all-hmac') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_SHA1_HMAC -DLINUXKM_LKCAPI_DONT_REGISTER_SHA2_HMAC -DLINUXKM_LKCAPI_DONT_REGISTER_SHA3_HMAC" ;;
|
||||
'-stdrng') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_HASH_DRBG" ;;
|
||||
'-stdrng-default') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_HASH_DRBG_DEFAULT" ;;
|
||||
'-ecdsa') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_ECDSA" ;;
|
||||
|
@@ -332,6 +332,10 @@
|
||||
#endif
|
||||
#include <linux/slab.h>
|
||||
#include <linux/sched.h>
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
|
||||
/* for signal_pending() */
|
||||
#include <linux/sched/signal.h>
|
||||
#endif
|
||||
#include <linux/random.h>
|
||||
|
||||
#ifdef LINUXKM_LKCAPI_REGISTER
|
||||
|
@@ -24,7 +24,9 @@
|
||||
#endif
|
||||
|
||||
#if (defined(LINUXKM_LKCAPI_REGISTER_ALL) || \
|
||||
defined(LINUXKM_LKCAPI_REGISTER_AES_ALL) || \
|
||||
(defined(LINUXKM_LKCAPI_REGISTER_ALL_KCONFIG) && defined(CONFIG_CRYPTO_AES))) && \
|
||||
!defined(LINUXKM_LKCAPI_DONT_REGISTER_AES_ALL) && \
|
||||
!defined(LINUXKM_LKCAPI_REGISTER_AES)
|
||||
#define LINUXKM_LKCAPI_REGISTER_AES
|
||||
#endif
|
||||
@@ -36,7 +38,8 @@
|
||||
defined(LINUXKM_LKCAPI_REGISTER_AESXTS) || \
|
||||
defined(LINUXKM_LKCAPI_REGISTER_AESCTR) || \
|
||||
defined(LINUXKM_LKCAPI_REGISTER_AESOFB) || \
|
||||
defined(LINUXKM_LKCAPI_REGISTER_AESECB)
|
||||
defined(LINUXKM_LKCAPI_REGISTER_AESECB) || \
|
||||
defined(LINUXKM_LKCAPI_REGISTER_AES_ALL)
|
||||
|
||||
#ifdef NO_AES
|
||||
#error LINUXKM_LKCAPI_REGISTER_AES* requires !defined(NO_AES)
|
||||
@@ -103,6 +106,7 @@
|
||||
|
||||
#ifdef HAVE_AES_CBC
|
||||
#if (defined(LINUXKM_LKCAPI_REGISTER_ALL) || \
|
||||
defined(LINUXKM_LKCAPI_REGISTER_AES_ALL) || \
|
||||
(defined(LINUXKM_LKCAPI_REGISTER_ALL_KCONFIG) && defined(CONFIG_CRYPTO_CBC))) && \
|
||||
!defined(LINUXKM_LKCAPI_DONT_REGISTER_AESCBC) && \
|
||||
!defined(LINUXKM_LKCAPI_REGISTER_AESCBC)
|
||||
@@ -115,7 +119,8 @@
|
||||
#undef LINUXKM_LKCAPI_REGISTER_AESCBC
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_CFB
|
||||
#if defined(LINUXKM_LKCAPI_REGISTER_ALL) && \
|
||||
#if (defined(LINUXKM_LKCAPI_REGISTER_ALL) || \
|
||||
defined(LINUXKM_LKCAPI_REGISTER_AES_ALL)) && \
|
||||
!defined(LINUXKM_LKCAPI_DONT_REGISTER_AESCFB) && \
|
||||
!defined(LINUXKM_LKCAPI_REGISTER_AESCFB)
|
||||
#define LINUXKM_LKCAPI_REGISTER_AESCFB
|
||||
@@ -125,12 +130,15 @@
|
||||
#endif
|
||||
#ifdef HAVE_AESGCM
|
||||
#if (defined(LINUXKM_LKCAPI_REGISTER_ALL) || \
|
||||
defined(LINUXKM_LKCAPI_REGISTER_AES_ALL) || \
|
||||
(defined(LINUXKM_LKCAPI_REGISTER_ALL_KCONFIG) && defined(CONFIG_CRYPTO_GCM))) && \
|
||||
!defined(LINUXKM_LKCAPI_DONT_REGISTER_AESGCM) && \
|
||||
!defined(LINUXKM_LKCAPI_REGISTER_AESGCM)
|
||||
#define LINUXKM_LKCAPI_REGISTER_AESGCM
|
||||
#endif
|
||||
#if (defined(LINUXKM_LKCAPI_REGISTER_ALL) && !defined(LINUXKM_LKCAPI_DONT_REGISTER_AESGCM_RFC4106)) && \
|
||||
#if ((defined(LINUXKM_LKCAPI_REGISTER_ALL) || \
|
||||
defined(LINUXKM_LKCAPI_REGISTER_AES_ALL)) && \
|
||||
!defined(LINUXKM_LKCAPI_DONT_REGISTER_AESGCM_RFC4106)) && \
|
||||
!defined(LINUXKM_LKCAPI_REGISTER_AESGCM_RFC4106)
|
||||
#define LINUXKM_LKCAPI_REGISTER_AESGCM_RFC4106
|
||||
#endif
|
||||
@@ -143,6 +151,7 @@
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_XTS
|
||||
#if (defined(LINUXKM_LKCAPI_REGISTER_ALL) || \
|
||||
defined(LINUXKM_LKCAPI_REGISTER_AES_ALL) || \
|
||||
(defined(LINUXKM_LKCAPI_REGISTER_ALL_KCONFIG) && defined(CONFIG_CRYPTO_XTS))) && \
|
||||
!defined(LINUXKM_LKCAPI_DONT_REGISTER_AESXTS) && \
|
||||
!defined(LINUXKM_LKCAPI_REGISTER_AESXTS)
|
||||
@@ -156,6 +165,7 @@
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_COUNTER
|
||||
#if (defined(LINUXKM_LKCAPI_REGISTER_ALL) || \
|
||||
defined(LINUXKM_LKCAPI_REGISTER_AES_ALL) || \
|
||||
(defined(LINUXKM_LKCAPI_REGISTER_ALL_KCONFIG) && defined(CONFIG_CRYPTO_CTR))) && \
|
||||
!defined(LINUXKM_LKCAPI_DONT_REGISTER_AESCTR) && \
|
||||
!defined(LINUXKM_LKCAPI_REGISTER_AESCTR)
|
||||
@@ -168,7 +178,8 @@
|
||||
#undef LINUXKM_LKCAPI_REGISTER_AESCTR
|
||||
#endif
|
||||
#ifdef WOLFSSL_AES_OFB
|
||||
#if defined(LINUXKM_LKCAPI_REGISTER_ALL) && \
|
||||
#if (defined(LINUXKM_LKCAPI_REGISTER_ALL) || \
|
||||
defined(LINUXKM_LKCAPI_REGISTER_AES_ALL)) && \
|
||||
!defined(LINUXKM_LKCAPI_DONT_REGISTER_AESOFB) && \
|
||||
!defined(LINUXKM_LKCAPI_REGISTER_AESOFB)
|
||||
#define LINUXKM_LKCAPI_REGISTER_AESOFB
|
||||
@@ -178,6 +189,7 @@
|
||||
#endif
|
||||
#ifdef HAVE_AES_ECB
|
||||
#if (defined(LINUXKM_LKCAPI_REGISTER_ALL) || \
|
||||
defined(LINUXKM_LKCAPI_REGISTER_AES_ALL) || \
|
||||
(defined(LINUXKM_LKCAPI_REGISTER_ALL_KCONFIG) && defined(CONFIG_CRYPTO_ECB))) && \
|
||||
!defined(LINUXKM_LKCAPI_DONT_REGISTER_AESECB) && \
|
||||
!defined(LINUXKM_LKCAPI_REGISTER_AESECB)
|
||||
|
Reference in New Issue
Block a user