Skip to content

Commit c7ed5ff

Browse files
authored
Merge pull request wolfSSL#9740 from douzzer/20260204-linuxkm-with-global-replace-etc
20260204-linuxkm-with-global-replace-etc
2 parents 3753f69 + 5fca378 commit c7ed5ff

File tree

5 files changed

+35
-29
lines changed

5 files changed

+35
-29
lines changed

.wolfssl_known_macro_extras

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -637,7 +637,6 @@ WC_RSA_NONBLOCK
637637
WC_RSA_NONBLOCK_TIME
638638
WC_RSA_NO_FERMAT_CHECK
639639
WC_RWLOCK_OPS_INLINE
640-
WC_SHA3_HARDEN
641640
WC_SHA384
642641
WC_SHA384_DIGEST_SIZE
643642
WC_SHA512

configure.ac

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1383,13 +1383,13 @@ then
13831383
esac
13841384
fi
13851385

1386-
# 32 bit armasm and RISC-V asm don't yet support WOLFSSL_AESGCM_STREAM. Disable
1386+
# RISC-V asm doesn't yet support WOLFSSL_AESGCM_STREAM. Disable
13871387
# implicit activation, and error on explicit activation.
1388-
if test "$enable_riscv_asm" = "yes" || (test "$enable_armasm" = "yes" && test "$host_cpu" != "aarch64" && test "$host_cpu" != "aarch64_be")
1388+
if test "$enable_riscv_asm" = "yes"
13891389
then
13901390
if test "$enable_aesgcm_stream" = "yes"
13911391
then
1392-
AC_MSG_ERROR([32 bit armasm and RISC-V asm don't yet support WOLFSSL_AESGCM_STREAM.])
1392+
AC_MSG_ERROR([RISC-V asm doesn't yet support WOLFSSL_AESGCM_STREAM.])
13931393
fi
13941394
enable_aesgcm_stream=no
13951395
fi
@@ -10689,11 +10689,9 @@ then
1068910689
if test "$ENABLED_AESGCM" = "no"
1069010690
then
1069110691
AC_MSG_ERROR([AES-GCM streaming is enabled but AES-GCM is disabled.])
10692-
elif test "$ENABLED_RISCV_ASM" = "yes" || \
10693-
(test "$ENABLED_ARMASM" = "yes" && \
10694-
test "$host_cpu" != "aarch64" && test "$host_cpu" != "aarch64_be")
10692+
elif test "$ENABLED_RISCV_ASM" = "yes"
1069510693
then
10696-
AC_MSG_ERROR([32 bit armasm and RISC-V asm don't yet support WOLFSSL_AESGCM_STREAM.])
10694+
AC_MSG_ERROR([RISC-V asm doesn't yet support WOLFSSL_AESGCM_STREAM.])
1069710695
else
1069810696
AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_AESGCM_STREAM"
1069910697
AM_CCASFLAGS="$AM_CCASFLAGS -DWOLFSSL_AESGCM_STREAM"

linuxkm/linuxkm_wc_port.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -545,9 +545,10 @@
545545
* to assure that calls to get_random_bytes() in random.c are gated out
546546
* (they would recurse, potentially infinitely).
547547
*/
548-
#if (defined(LINUXKM_LKCAPI_REGISTER_ALL) && \
549-
!defined(LINUXKM_LKCAPI_DONT_REGISTER_HASH_DRBG) && \
550-
!defined(LINUXKM_LKCAPI_DONT_REGISTER_HASH_DRBG_DEFAULT)) && \
548+
#if defined(LINUXKM_LKCAPI_REGISTER_ALL) && \
549+
!defined(LINUXKM_LKCAPI_DONT_REGISTER_HASH_DRBG) && \
550+
!defined(LINUXKM_LKCAPI_DONT_REGISTER_HASH_DRBG_DEFAULT) && \
551+
!defined(NO_LINUXKM_DRBG_GET_RANDOM_BYTES) && \
551552
!defined(LINUXKM_LKCAPI_REGISTER_HASH_DRBG_DEFAULT)
552553
#define LINUXKM_LKCAPI_REGISTER_HASH_DRBG_DEFAULT
553554
#endif

linuxkm/lkcapi_sha_glue.c

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,22 @@
3030
#error SHA* WC_LINUXKM_C_FALLBACK_IN_SHIMS is not currently supported.
3131
#endif
3232

33+
#ifdef NO_LINUXKM_DRBG_GET_RANDOM_BYTES
34+
#undef LINUXKM_DRBG_GET_RANDOM_BYTES
35+
/* setup for LINUXKM_LKCAPI_REGISTER_HASH_DRBG_DEFAULT is in linuxkm_wc_port.h */
36+
#elif defined(LINUXKM_LKCAPI_REGISTER_HASH_DRBG_DEFAULT) && \
37+
(defined(WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS) || \
38+
defined(WOLFSSL_LINUXKM_USE_GET_RANDOM_KPROBES))
39+
#ifndef LINUXKM_DRBG_GET_RANDOM_BYTES
40+
#define LINUXKM_DRBG_GET_RANDOM_BYTES
41+
#endif
42+
#else
43+
#ifdef LINUXKM_DRBG_GET_RANDOM_BYTES
44+
#error LINUXKM_DRBG_GET_RANDOM_BYTES configured with no callback model configured.
45+
#undef LINUXKM_DRBG_GET_RANDOM_BYTES
46+
#endif
47+
#endif
48+
3349
#include <wolfssl/wolfcrypt/sha.h>
3450
#include <wolfssl/wolfcrypt/hmac.h>
3551

@@ -94,7 +110,14 @@
94110
* exhaustion. A caller that really needs PR can pass in seed data in its call
95111
* to our rng_alg.generate() implementation.
96112
*/
97-
#define WOLFKM_STDRNG_DRIVER ("sha2-256-drbg-nopr" WOLFKM_SHA_DRIVER_SUFFIX)
113+
#ifdef LINUXKM_DRBG_GET_RANDOM_BYTES
114+
#define WOLFKM_STDRNG_DRIVER ("sha2-256-drbg-nopr" \
115+
WOLFKM_DRIVER_SUFFIX_BASE \
116+
"-with-global-replace")
117+
#else
118+
#define WOLFKM_STDRNG_DRIVER ("sha2-256-drbg-nopr" \
119+
WOLFKM_DRIVER_SUFFIX_BASE)
120+
#endif
98121

99122
#ifdef LINUXKM_LKCAPI_REGISTER_SHA_ALL
100123
#define LINUXKM_LKCAPI_REGISTER_SHA1
@@ -388,7 +411,7 @@
388411
#else
389412
#if defined(LINUXKM_LKCAPI_REGISTER_ALL_KCONFIG) && defined(CONFIG_CRYPTO_DRBG) && \
390413
!defined(LINUXKM_LKCAPI_DONT_REGISTER_HASH_DRBG)
391-
#error Config conflict: target kernel has CONFIG_CRYPTO_SHA3, but module is missing WOLFSSL_SHA3
414+
#error Config conflict: target kernel has CONFIG_CRYPTO_DRBG, but module is missing HAVE_HASHDRBG
392415
#endif
393416
#undef LINUXKM_LKCAPI_REGISTER_HASH_DRBG
394417
#endif
@@ -1257,20 +1280,6 @@ static struct rng_alg wc_linuxkm_drbg = {
12571280
};
12581281
static int wc_linuxkm_drbg_loaded = 0;
12591282

1260-
#ifdef NO_LINUXKM_DRBG_GET_RANDOM_BYTES
1261-
#undef LINUXKM_DRBG_GET_RANDOM_BYTES
1262-
#elif defined(LINUXKM_LKCAPI_REGISTER_HASH_DRBG_DEFAULT) && \
1263-
(defined(WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS) || defined(WOLFSSL_LINUXKM_USE_GET_RANDOM_KPROBES))
1264-
#ifndef LINUXKM_DRBG_GET_RANDOM_BYTES
1265-
#define LINUXKM_DRBG_GET_RANDOM_BYTES
1266-
#endif
1267-
#else
1268-
#ifdef LINUXKM_DRBG_GET_RANDOM_BYTES
1269-
#error LINUXKM_DRBG_GET_RANDOM_BYTES configured with no callback model configured.
1270-
#undef LINUXKM_DRBG_GET_RANDOM_BYTES
1271-
#endif
1272-
#endif
1273-
12741283
#ifdef LINUXKM_DRBG_GET_RANDOM_BYTES
12751284

12761285
#ifndef WOLFSSL_SMALL_STACK_CACHE

wolfcrypt/src/aes.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4341,7 +4341,6 @@ static WARN_UNUSED_RESULT int wc_AesDecrypt(
43414341
int wc_AesSetKey(Aes* aes, const byte* userKey, word32 keylen,
43424342
const byte* iv, int dir)
43434343
{
4344-
int ret;
43454344
if ((aes == NULL) || (userKey == NULL)) {
43464345
return BAD_FUNC_ARG;
43474346
}
@@ -4367,7 +4366,7 @@ static WARN_UNUSED_RESULT int wc_AesDecrypt(
43674366
#ifdef WOLF_CRYPTO_CB
43684367
if (aes->devId != INVALID_DEVID) {
43694368
#ifdef WOLF_CRYPTO_CB_AES_SETKEY
4370-
ret = wc_CryptoCb_AesSetKey(aes, userKey, keylen);
4369+
int ret = wc_CryptoCb_AesSetKey(aes, userKey, keylen);
43714370
if (ret == 0) {
43724371
/* Callback succeeded - SE owns the key */
43734372
aes->keylen = (int)keylen;

0 commit comments

Comments
 (0)