Skip to content

Commit c0837cb

Browse files
authored
Merge pull request #8943 from douzzer/20250617-linuxkm-get_random_bytes
20250617-linuxkm-get_random_bytes
2 parents 6be8a37 + dd69d56 commit c0837cb

26 files changed

Lines changed: 4494 additions & 432 deletions

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ ctaocrypt/src/src/
33
*.lo
44
*.la
55
*.o
6-
*.patch
76
*.deps
87
*.d
98
*.libs
@@ -246,6 +245,9 @@ linuxkm/libwolfssl.mod.c
246245
linuxkm/libwolfssl.lds
247246
linuxkm/module_exports.c
248247
linuxkm/linuxkm/get_thread_size
248+
linuxkm/linuxkm
249+
linuxkm/src
250+
linuxkm/patches/src
249251
*.nds
250252

251253
# autotools generated

.wolfssl_known_macro_extras

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ CONFIG_IDF_TARGET_ESP32S3
112112
CONFIG_IDF_TARGET_ESP8266
113113
CONFIG_IDF_TARGET_ESP8684
114114
CONFIG_KASAN
115+
CONFIG_KPROBES
115116
CONFIG_MAIN_TASK_STACK_SIZE
116117
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE
117118
CONFIG_MBEDTLS_PSA_CRYPTO_C
@@ -294,7 +295,6 @@ LIBWOLFSSL_VERSION_GIT_ORIGIN
294295
LIBWOLFSSL_VERSION_GIT_SHORT_HASH
295296
LIBWOLFSSL_VERSION_GIT_TAG
296297
LINUXKM_DONT_FORCE_FIPS_ENABLED
297-
LINUXKM_FPU_STATES_FOLLOW_THREADS
298298
LINUXKM_LKCAPI_PRIORITY_ALLOW_MASKING
299299
LINUX_CYCLE_COUNT
300300
LINUX_RUSAGE_UTIME
@@ -369,6 +369,7 @@ NO_HANDSHAKE_DONE_CB
369369
NO_IMX6_CAAM_AES
370370
NO_IMX6_CAAM_HASH
371371
NO_KEEP_PEER_CERT
372+
NO_LINUXKM_DRBG_GET_RANDOM_BYTES
372373
NO_OLD_NAMES
373374
NO_OLD_POLY1305
374375
NO_OLD_TIMEVAL_NAME
@@ -539,6 +540,7 @@ USE_ALT_MPRIME
539540
USE_ANY_ADDR
540541
USE_CERT_BUFFERS_25519
541542
USE_CERT_BUFFERS_3072
543+
USE_CONTESTMUTEX
542544
USE_ECDSA_KEYSZ_HASH_ALGO
543545
USE_FULL_ASSERT
544546
USE_HAL_DRIVER
@@ -652,7 +654,6 @@ WOLFSSL_CHECK_MEM_ZERO
652654
WOLFSSL_CHIBIOS
653655
WOLFSSL_CLANG_TIDY
654656
WOLFSSL_CLIENT_EXAMPLE
655-
WOLFSSL_COMMERCIAL_LICENSE
656657
WOLFSSL_CONTIKI
657658
WOLFSSL_CRL_ALLOW_MISSING_CDP
658659
WOLFSSL_CUSTOM_CONFIG
@@ -718,6 +719,9 @@ WOLFSSL_KYBER_NO_DECAPSULATE
718719
WOLFSSL_KYBER_NO_ENCAPSULATE
719720
WOLFSSL_KYBER_NO_MAKE_KEY
720721
WOLFSSL_LIB
722+
WOLFSSL_LINUXKM_USE_GET_RANDOM_KPROBES
723+
WOLFSSL_LINUXKM_USE_GET_RANDOM_USER_KRETPROBE
724+
WOLFSSL_LINUXKM_USE_MUTEXES
721725
WOLFSSL_LMS_CACHE_BITS
722726
WOLFSSL_LMS_FULL_HASH
723727
WOLFSSL_LMS_LARGE_CACHES
@@ -780,6 +784,7 @@ WOLFSSL_NO_SPHINCS
780784
WOLFSSL_NO_STRICT_CIPHER_SUITE
781785
WOLFSSL_NO_TICKET_EXPIRE
782786
WOLFSSL_NO_TRUSTED_CERTS_VERIFY
787+
WOLFSSL_NO_WORD64_OPS
783788
WOLFSSL_NO_XOR_OPS
784789
WOLFSSL_NRF51_AES
785790
WOLFSSL_OLDTLS_AEAD_CIPHERSUITES

configure.ac

Lines changed: 32 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,22 @@ then
119119
AM_CCASFLAGS="$AM_CCASFLAGS -DWOLFSSL_EXPERIMENTAL_SETTINGS"
120120
fi
121121

122+
123+
# Linux Kernel Module options (more options later)
124+
125+
AC_ARG_ENABLE([linuxkm],
126+
[AS_HELP_STRING([--enable-linuxkm],[Enable Linux Kernel Module (default: disabled)])],
127+
[ENABLED_LINUXKM=$enableval],
128+
[ENABLED_LINUXKM=no]
129+
)
130+
131+
AC_ARG_ENABLE([linuxkm-defaults],
132+
[AS_HELP_STRING([--enable-linuxkm-defaults],[Enable feature defaults for Linux Kernel Module (default: disabled)])],
133+
[ENABLED_LINUXKM_DEFAULTS=$enableval],
134+
[ENABLED_LINUXKM_DEFAULTS=$ENABLED_LINUXKM]
135+
)
136+
137+
122138
AC_CHECK_HEADERS([arpa/inet.h fcntl.h limits.h netdb.h netinet/in.h stddef.h time.h sys/ioctl.h sys/socket.h sys/time.h errno.h sys/un.h ctype.h])
123139
AC_CHECK_LIB([network],[socket])
124140
AC_C_BIGENDIAN
@@ -307,19 +323,10 @@ AC_ARG_ENABLE([hmac],
307323
[ ENABLED_HMAC=yes ]
308324
)
309325

310-
# enable HMAC hash copying automatically for x86_64 and aarch64 (except Linux kernel module)
311-
HMAC_COPY_DEFAULT=no
312-
if test "$ENABLED_LINUXKM_DEFAULTS" = "no"
313-
then
314-
if test "$host_cpu" = "x86_64" || test "$host_cpu" = "aarch64" || test "$host_cpu" = "amd64"
315-
then
316-
HMAC_COPY_DEFAULT=yes
317-
fi
318-
fi
319326
AC_ARG_ENABLE([hmac-copy],
320327
[AS_HELP_STRING([--enable-hmac-copy],[Enables digest copying implementation for HMAC (default: disabled)])],
321328
[ ENABLED_HMAC_COPY=$enableval ],
322-
[ ENABLED_HMAC_COPY=$HMAC_COPY_DEFAULT ]
329+
[ ENABLED_HMAC_COPY=no ]
323330
)
324331
if test "$ENABLED_HMAC_COPY" = "yes"
325332
then
@@ -658,18 +665,7 @@ AC_ARG_ENABLE([benchmark],
658665
)
659666

660667

661-
# Linux Kernel Module
662-
AC_ARG_ENABLE([linuxkm],
663-
[AS_HELP_STRING([--enable-linuxkm],[Enable Linux Kernel Module (default: disabled)])],
664-
[ENABLED_LINUXKM=$enableval],
665-
[ENABLED_LINUXKM=no]
666-
)
667-
668-
AC_ARG_ENABLE([linuxkm-defaults],
669-
[AS_HELP_STRING([--enable-linuxkm-defaults],[Enable feature defaults for Linux Kernel Module (default: disabled)])],
670-
[ENABLED_LINUXKM_DEFAULTS=$enableval],
671-
[ENABLED_LINUXKM_DEFAULTS=$ENABLED_LINUXKM]
672-
)
668+
# Remainder of Linux kernel module options, continued from earlier:
673669

674670
AC_ARG_ENABLE([linuxkm-pie],
675671
[AS_HELP_STRING([--enable-linuxkm-pie],[Enable relocatable object build of Linux kernel module (default: disabled)])],
@@ -5649,10 +5645,18 @@ AC_ARG_ENABLE([pwdbased],
56495645

56505646
# MemUse Entropy
56515647
# wolfEntropy Software Jitter SP800-90B certifiable entropy source
5648+
5649+
if test "$ENABLED_LINUXKM_DEFAULTS" = "yes"
5650+
then
5651+
ENABLED_ENTROPY_MEMUSE_DEFAULT=yes
5652+
else
5653+
ENABLED_ENTROPY_MEMUSE_DEFAULT=no
5654+
fi
5655+
56525656
AC_ARG_ENABLE([wolfEntropy],
56535657
[AS_HELP_STRING([--enable-wolfEntropy],[Enable memuse entropy support (default: disabled)])],
56545658
[ ENABLED_ENTROPY_MEMUSE=$enableval ],
5655-
[ ENABLED_ENTROPY_MEMUSE=no ]
5659+
[ ENABLED_ENTROPY_MEMUSE=$ENABLED_ENTROPY_MEMUSE_DEFAULT ]
56565660
)
56575661
AC_ARG_ENABLE([entropy-memuse],
56585662
[AS_HELP_STRING([--enable-entropy-memuse],[Enable memuse entropy support (default: disabled)])],
@@ -9538,7 +9542,11 @@ if test -n "$MPI_MAX_KEY_BITS" -o -n "$WITH_MAX_ECC_BITS"; then
95389542
fi
95399543
95409544
AC_ARG_ENABLE([linuxkm-lkcapi-register],
9541-
[AS_HELP_STRING([--enable-linuxkm-lkcapi-register],[Register wolfCrypt implementations with the Linux Kernel Crypto API backplane. Possible values are "none", "all", "cbc(aes)", "cfb(aes)", "gcm(aes)", and "xts(aes)", or a comma-separate combination. (default: none)])],
9545+
[AS_HELP_STRING([--enable-linuxkm-lkcapi-register],[Register wolfCrypt implementations with the Linux Kernel Crypto API backplane.
9546+
Possible values are "none" or a comma-separated combination of "all", "all-kconfig", "sysfs-nodes-only", "cbc(aes)", "cfb(aes)",
9547+
"gcm(aes)", "rfc4106(gcm(aes))", "xts(aes)", "ctr(aes)", "ofb(aes)", "ecb(aes)", "sha1", "sha2", "sha3", "hmac(sha1)", "hmac(sha2)",
9548+
"hmac(sha3)", "stdrng", "stdrng-default", "ecdsa", "ecdh", "rsa", "dh", and negations of the foregoing algorithms by prefixing "-".
9549+
(default: none)])],
95429550
[ENABLED_LINUXKM_LKCAPI_REGISTER=$enableval],
95439551
[ENABLED_LINUXKM_LKCAPI_REGISTER=no]
95449552
)

0 commit comments

Comments
 (0)