Skip to content

Commit 1f71e6d

Browse files
authored
Merge pull request #8998 from douzzer/20250712-linuxkm-all-aes-sha-hmac
20250712-linuxkm-all-aes-sha-hmac
2 parents bbc5dc5 + 80c9212 commit 1f71e6d

File tree

3 files changed

+32
-7
lines changed

3 files changed

+32
-7
lines changed

configure.ac

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9560,8 +9560,9 @@ fi
95609560
AC_ARG_ENABLE([linuxkm-lkcapi-register],
95619561
[AS_HELP_STRING([--enable-linuxkm-lkcapi-register],[Register wolfCrypt implementations with the Linux Kernel Crypto API backplane.
95629562
Possible values are "none" or a comma-separated combination of "all", "all-kconfig", "sysfs-nodes-only", "cbc(aes)", "cfb(aes)",
9563-
"gcm(aes)", "rfc4106(gcm(aes))", "xts(aes)", "ctr(aes)", "ofb(aes)", "ecb(aes)", "sha1", "sha2", "sha3", "hmac(sha1)", "hmac(sha2)",
9564-
"hmac(sha3)", "stdrng", "stdrng-default", "ecdsa", "ecdh", "rsa", "dh", and negations of the foregoing algorithms by prefixing "-".
9563+
"gcm(aes)", "rfc4106(gcm(aes))", "xts(aes)", "ctr(aes)", "ofb(aes)", "ecb(aes)", "all-aes", "sha1", "sha2", "sha3", "all-sha",
9564+
"hmac(sha1)", "hmac(sha2)", "hmac(sha3)", "all-hmac", "stdrng", "stdrng-default", "ecdsa", "ecdh", "rsa", "dh", and negations of
9565+
the foregoing algorithms by prefixing "-".
95659566
(default: none)])],
95669567
[ENABLED_LINUXKM_LKCAPI_REGISTER=$enableval],
95679568
[ENABLED_LINUXKM_LKCAPI_REGISTER=no]
@@ -9603,20 +9604,25 @@ then
96039604
'ofb(aes)') test "$ENABLED_AESOFB" != "no" || AC_MSG_ERROR([linuxkm-lkcapi-register ${lkcapi_alg}: AES-OFB implementation not enabled.])
96049605
AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_REGISTER_AESOFB" ;;
96059606
'ecb(aes)') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_REGISTER_AESECB -DHAVE_AES_ECB" ;;
9607+
'all-aes') test "$ENABLED_AES" != "no" || AC_MSG_ERROR([linuxkm-lkcapi-register ${lkcapi_alg}: AES is disabled.])
9608+
AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_REGISTER_AES_ALL" ;;
96069609
'sha1') test "$ENABLED_SHA" != "no" || AC_MSG_ERROR([linuxkm-lkcapi-register ${lkcapi_alg}: SHA-1 implementation not enabled.])
96079610
AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_REGISTER_SHA1" ;;
96089611
'sha2') test "$ENABLED_SHA224" != "no" || test "$ENABLED_SHA256" != "no" || test "$ENABLED_SHA384" != "no" || test "$ENABLED_SHA512" != "no" || \
96099612
AC_MSG_ERROR([linuxkm-lkcapi-register ${lkcapi_alg}: No SHA-2 implementations are enabled.])
96109613
AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_REGISTER_SHA2" ;;
96119614
'sha3') test "$ENABLED_SHA3" != "no" || AC_MSG_ERROR([linuxkm-lkcapi-register ${lkcapi_alg}: SHA-3 implementation not enabled.])
96129615
AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_REGISTER_SHA3" ;;
9613-
'hmac(sha1)') test "$ENABLED_SHA" != "no" && test "$ENABLED_HMAC" != "no" || AC_MSG_ERROR([linuxkm-lkcapi-register ${lkcapi_alg}: SHA-1 HMAC implementation not enabled.])
9616+
'all-sha') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_REGISTER_SHA1 -DLINUXKM_LKCAPI_REGISTER_SHA2 -DLINUXKM_LKCAPI_REGISTER_SHA3" ;;
9617+
'hmac(sha1)') test "$ENABLED_SHA" != "no" && test "$ENABLED_HMAC" != "no" || AC_MSG_ERROR([linuxkm-lkcapi-register ${lkcapi_alg}: SHA-1 HMAC implementation not enabled.])
96149618
AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_REGISTER_SHA1_HMAC" ;;
96159619
'hmac(sha2)') (test "$ENABLED_SHA224" != "no" || test "$ENABLED_SHA256" != "no" || test "$ENABLED_SHA384" != "no" || test "$ENABLED_SHA512" != "no") && \
96169620
test "$ENABLED_HMAC" != "no" || AC_MSG_ERROR([linuxkm-lkcapi-register ${lkcapi_alg}: No SHA-2 HMAC implementations are enabled.])
96179621
AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_REGISTER_SHA2_HMAC" ;;
96189622
'hmac(sha3)') test "$ENABLED_SHA3" != "no" && test "$ENABLED_HMAC" != "no" || AC_MSG_ERROR([linuxkm-lkcapi-register ${lkcapi_alg}: SHA-3 HMAC implementation not enabled.])
96199623
AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_REGISTER_SHA3_HMAC" ;;
9624+
'all-hmac') test "$ENABLED_HMAC" != "no" || AC_MSG_ERROR([linuxkm-lkcapi-register ${lkcapi_alg}: HMAC implementation not enabled.])
9625+
AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_REGISTER_SHA1_HMAC -DLINUXKM_LKCAPI_REGISTER_SHA2_HMAC -DLINUXKM_LKCAPI_REGISTER_SHA3_HMAC" ;;
96209626
'stdrng') test "$ENABLED_HASHDRBG" != "no" || AC_MSG_ERROR([linuxkm-lkcapi-register ${lkcapi_alg}: HASHDRBG implementation not enabled.])
96219627
AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_REGISTER_HASH_DRBG" ;;
96229628
'stdrng-default') test "$ENABLED_HASHDRBG" != "no" || AC_MSG_ERROR([linuxkm-lkcapi-register ${lkcapi_alg}: HASHDRBG implementation not enabled.])
@@ -9638,12 +9644,15 @@ then
96389644
'-ctr(aes)') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_AESCTR" ;;
96399645
'-ofb(aes)') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_AESOFB" ;;
96409646
'-ecb(aes)') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_AESECB" ;;
9647+
'-all-aes') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_AES_ALL" ;;
96419648
'-sha1') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_SHA1" ;;
96429649
'-sha2') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_SHA2" ;;
96439650
'-sha3') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_SHA3" ;;
9651+
'-all-sha') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_SHA1 -DLINUXKM_LKCAPI_DONT_REGISTER_SHA2 -DLINUXKM_LKCAPI_DONT_REGISTER_SHA3" ;;
96449652
'-hmac(sha1)') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_SHA1_HMAC" ;;
96459653
'-hmac(sha2)') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_SHA2_HMAC" ;;
96469654
'-hmac(sha3)') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_SHA3_HMAC" ;;
9655+
'-all-hmac') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_SHA1_HMAC -DLINUXKM_LKCAPI_DONT_REGISTER_SHA2_HMAC -DLINUXKM_LKCAPI_DONT_REGISTER_SHA3_HMAC" ;;
96479656
'-stdrng') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_HASH_DRBG" ;;
96489657
'-stdrng-default') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_HASH_DRBG_DEFAULT" ;;
96499658
'-ecdsa') AM_CFLAGS="$AM_CFLAGS -DLINUXKM_LKCAPI_DONT_REGISTER_ECDSA" ;;

linuxkm/linuxkm_wc_port.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,10 @@
337337
#endif
338338
#include <linux/slab.h>
339339
#include <linux/sched.h>
340+
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
341+
/* for signal_pending() */
342+
#include <linux/sched/signal.h>
343+
#endif
340344
#include <linux/random.h>
341345

342346
#ifdef LINUXKM_LKCAPI_REGISTER

linuxkm/lkcapi_aes_glue.c

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@
2424
#endif
2525

2626
#if (defined(LINUXKM_LKCAPI_REGISTER_ALL) || \
27+
defined(LINUXKM_LKCAPI_REGISTER_AES_ALL) || \
2728
(defined(LINUXKM_LKCAPI_REGISTER_ALL_KCONFIG) && defined(CONFIG_CRYPTO_AES))) && \
29+
!defined(LINUXKM_LKCAPI_DONT_REGISTER_AES_ALL) && \
2830
!defined(LINUXKM_LKCAPI_REGISTER_AES)
2931
#define LINUXKM_LKCAPI_REGISTER_AES
3032
#endif
@@ -36,7 +38,8 @@
3638
defined(LINUXKM_LKCAPI_REGISTER_AESXTS) || \
3739
defined(LINUXKM_LKCAPI_REGISTER_AESCTR) || \
3840
defined(LINUXKM_LKCAPI_REGISTER_AESOFB) || \
39-
defined(LINUXKM_LKCAPI_REGISTER_AESECB)
41+
defined(LINUXKM_LKCAPI_REGISTER_AESECB) || \
42+
defined(LINUXKM_LKCAPI_REGISTER_AES_ALL)
4043

4144
#ifdef NO_AES
4245
#error LINUXKM_LKCAPI_REGISTER_AES* requires !defined(NO_AES)
@@ -103,6 +106,7 @@
103106

104107
#ifdef HAVE_AES_CBC
105108
#if (defined(LINUXKM_LKCAPI_REGISTER_ALL) || \
109+
defined(LINUXKM_LKCAPI_REGISTER_AES_ALL) || \
106110
(defined(LINUXKM_LKCAPI_REGISTER_ALL_KCONFIG) && defined(CONFIG_CRYPTO_CBC))) && \
107111
!defined(LINUXKM_LKCAPI_DONT_REGISTER_AESCBC) && \
108112
!defined(LINUXKM_LKCAPI_REGISTER_AESCBC)
@@ -115,7 +119,8 @@
115119
#undef LINUXKM_LKCAPI_REGISTER_AESCBC
116120
#endif
117121
#ifdef WOLFSSL_AES_CFB
118-
#if defined(LINUXKM_LKCAPI_REGISTER_ALL) && \
122+
#if (defined(LINUXKM_LKCAPI_REGISTER_ALL) || \
123+
defined(LINUXKM_LKCAPI_REGISTER_AES_ALL)) && \
119124
!defined(LINUXKM_LKCAPI_DONT_REGISTER_AESCFB) && \
120125
!defined(LINUXKM_LKCAPI_REGISTER_AESCFB)
121126
#define LINUXKM_LKCAPI_REGISTER_AESCFB
@@ -125,12 +130,15 @@
125130
#endif
126131
#ifdef HAVE_AESGCM
127132
#if (defined(LINUXKM_LKCAPI_REGISTER_ALL) || \
133+
defined(LINUXKM_LKCAPI_REGISTER_AES_ALL) || \
128134
(defined(LINUXKM_LKCAPI_REGISTER_ALL_KCONFIG) && defined(CONFIG_CRYPTO_GCM))) && \
129135
!defined(LINUXKM_LKCAPI_DONT_REGISTER_AESGCM) && \
130136
!defined(LINUXKM_LKCAPI_REGISTER_AESGCM)
131137
#define LINUXKM_LKCAPI_REGISTER_AESGCM
132138
#endif
133-
#if (defined(LINUXKM_LKCAPI_REGISTER_ALL) && !defined(LINUXKM_LKCAPI_DONT_REGISTER_AESGCM_RFC4106)) && \
139+
#if ((defined(LINUXKM_LKCAPI_REGISTER_ALL) || \
140+
defined(LINUXKM_LKCAPI_REGISTER_AES_ALL)) && \
141+
!defined(LINUXKM_LKCAPI_DONT_REGISTER_AESGCM_RFC4106)) && \
134142
!defined(LINUXKM_LKCAPI_REGISTER_AESGCM_RFC4106)
135143
#define LINUXKM_LKCAPI_REGISTER_AESGCM_RFC4106
136144
#endif
@@ -143,6 +151,7 @@
143151
#endif
144152
#ifdef WOLFSSL_AES_XTS
145153
#if (defined(LINUXKM_LKCAPI_REGISTER_ALL) || \
154+
defined(LINUXKM_LKCAPI_REGISTER_AES_ALL) || \
146155
(defined(LINUXKM_LKCAPI_REGISTER_ALL_KCONFIG) && defined(CONFIG_CRYPTO_XTS))) && \
147156
!defined(LINUXKM_LKCAPI_DONT_REGISTER_AESXTS) && \
148157
!defined(LINUXKM_LKCAPI_REGISTER_AESXTS)
@@ -156,6 +165,7 @@
156165
#endif
157166
#ifdef WOLFSSL_AES_COUNTER
158167
#if (defined(LINUXKM_LKCAPI_REGISTER_ALL) || \
168+
defined(LINUXKM_LKCAPI_REGISTER_AES_ALL) || \
159169
(defined(LINUXKM_LKCAPI_REGISTER_ALL_KCONFIG) && defined(CONFIG_CRYPTO_CTR))) && \
160170
!defined(LINUXKM_LKCAPI_DONT_REGISTER_AESCTR) && \
161171
!defined(LINUXKM_LKCAPI_REGISTER_AESCTR)
@@ -168,7 +178,8 @@
168178
#undef LINUXKM_LKCAPI_REGISTER_AESCTR
169179
#endif
170180
#ifdef WOLFSSL_AES_OFB
171-
#if defined(LINUXKM_LKCAPI_REGISTER_ALL) && \
181+
#if (defined(LINUXKM_LKCAPI_REGISTER_ALL) || \
182+
defined(LINUXKM_LKCAPI_REGISTER_AES_ALL)) && \
172183
!defined(LINUXKM_LKCAPI_DONT_REGISTER_AESOFB) && \
173184
!defined(LINUXKM_LKCAPI_REGISTER_AESOFB)
174185
#define LINUXKM_LKCAPI_REGISTER_AESOFB
@@ -178,6 +189,7 @@
178189
#endif
179190
#ifdef HAVE_AES_ECB
180191
#if (defined(LINUXKM_LKCAPI_REGISTER_ALL) || \
192+
defined(LINUXKM_LKCAPI_REGISTER_AES_ALL) || \
181193
(defined(LINUXKM_LKCAPI_REGISTER_ALL_KCONFIG) && defined(CONFIG_CRYPTO_ECB))) && \
182194
!defined(LINUXKM_LKCAPI_DONT_REGISTER_AESECB) && \
183195
!defined(LINUXKM_LKCAPI_REGISTER_AESECB)

0 commit comments

Comments
 (0)