Daniel Pouzzner
450b0b46c6
wolfcrypt/src/random.c and wolfssl/wolfcrypt/settings.h: add WC_VERBOSE_RNG messages, and activate by default when WOLFSSL_KERNEL_MODE.
2025-12-29 20:55:36 -06:00
Anthony Hu
48ebe99372
Validate asn date based on position of Z ( #8603 )
2025-12-29 16:01:22 -06:00
Daniel Pouzzner
7bbd28d369
wolfcrypt/src/aes.c: fix clang-diagnostic-unreachable-code in AesSetKey_C().
2025-12-26 18:13:44 -06:00
Daniel Pouzzner
3b3ddd1fb4
wolfcrypt/src/random.c: in wc_GenerateSeed(), move the gate closures for !FORCE_FAILURE_RDSEED and !ENTROPY_MEMUSE_FORCE_FAILURE to follow the /dev/urandom fallback method.
2025-12-26 14:16:11 -06:00
Daniel Pouzzner
a944575e4b
wolfcrypt/src/random.c: fix clang-diagnostic-unreachable-code in wc_GenerateSeed().
2025-12-24 17:48:37 -06:00
Daniel Pouzzner
019a420187
Merge pull request #9568 from kareem-wolfssl/zd20947
...
Add a flag which allows requesting exactly SEED_SZ and using the full seed to instantiate the DRBG during RNG init.
2025-12-24 17:03:26 -06:00
David Garske
18176392fa
Merge pull request #9576 from douzzer/20251222-linuxkm-PK-initrng-optimize
...
20251222-linuxkm-PK-initrng-optimize
2025-12-23 15:02:53 -08:00
Daniel Pouzzner
b66f1b78a7
peer/Devin review:
...
* in get_crypto_default_rng() (linuxkm/lkcapi_sha_glue.c), sanity check that crypto_default_rng isn't null;
* in wc_InitRsaKey_ex(), remove frivolous NULL/zero assignments (XMEMSET clears them implicitly);
* in wc_CheckRsaKey(), check ret from wc_InitRng() and short circuit return if failed.
2025-12-23 13:05:40 -06:00
Daniel Pouzzner
cd88a8ae88
peer review -- add !WC_NO_RNG gates around WC_RNG changes in wolfcrypt/src/rsa.c and wolfssl/wolfcrypt/rsa.h.
2025-12-23 11:41:59 -06:00
David Garske
8f089cdcfe
Merge pull request #9508 from SparkiDev/ppc32_sha256_asm_pic
...
PPC32 SHA-256 ASM: support compiling for PIC
2025-12-23 08:12:50 -08:00
Daniel Pouzzner
5030484bcf
wolfcrypt/src/random.c and wolfssl/wolfcrypt/random.h:
...
* add WC_DRBG_{NOT_INIT,OK,FAILED,CONT_FAILED} in public header file, and
* move setup for RNG_SECURITY_STRENGTH, ENTROPY_SCALE_FACTOR, SEED_BLOCK_SZ, SEED_SZ, MAX_SEED_SZ, and RNG_HEALTH_TEST_CHECK_SIZE from random.c to random.h, with public WC_DRBG_SEED_SZ and WC_DRBG_MAX_SEED_SZ.
2025-12-22 22:58:29 -06:00
Daniel Pouzzner
b2ef89b2db
wolfcrypt/src/rsa.c and wolfssl/wolfcrypt/rsa.h: make RsaKey.rng and wc_RsaSetRNG() available unconditionally, rather than only if WC_RSA_BLINDING, for use by wc_CheckRsaKey().
2025-12-22 22:58:29 -06:00
Sean Parkinson
59f84355a5
Merge pull request #9573 from night1rider/aes-free-callbacks
...
Aes Free callback support
2025-12-23 08:47:05 +10:00
Sean Parkinson
c8f2cc5b43
Merge pull request #9566 from dgarske/ca_skid_cert_akid
...
Added build option to allow certificate CA matching using AKID with signers SKDI
2025-12-23 08:40:14 +10:00
night1rider
afbc65a6c3
Aes Free callback support
2025-12-22 12:39:41 -07:00
Sean Parkinson
da06e1aeea
Merge pull request #9558 from kareem-wolfssl/zd20944_2
...
Move Curve25519 public key check to make_pub/make_pub_blind to cover the case where they are called directly by an application.
2025-12-22 19:38:42 +10:00
Sean Parkinson
7a326ef43f
Merge pull request #9553 from julek-wolfssl/ed25519-export-key-check
...
ed25519: validate presence of keys in export functions
2025-12-22 19:31:14 +10:00
JacobBarthelmeh
0a0c43054f
Merge pull request #9564 from douzzer/20251219-fixes
...
20251219-fixes
2025-12-19 16:24:20 -07:00
Kareem
fe105d4b48
Add a flag which allows requesting exactly SEED_SZ and using the full seed to instantiate the DRBG during RNG init.
...
This flag can not be used with FIPS.
2025-12-19 15:25:15 -07:00
David Garske
1cb2231ff5
Added build option to allow certificate CA matching using AKID with signers SKID ( WOLFSSL_ALLOW_AKID_SKID_MATCH). Fixed issue with cert->extAuthKeyIdSz not being set with ASN template code.
2025-12-19 14:14:39 -08:00
Daniel Pouzzner
d3f74557fe
wolfcrypt/src/wolfentropy.c: add volatile attribute to entropy_memuse_initialized declaration; in wc_Entropy_Get(), if HAVE_FIPS, call Entropy_Init() if necessary, to accommodate FIPS KATs; in Entropy_Init(), add thread safety.
2025-12-19 15:45:17 -06:00
David Garske
1825bd86f5
Merge pull request #9550 from JacobBarthelmeh/caam
...
sanity checks on buffer size with AES and CAAM Integrity use
2025-12-19 11:03:40 -08:00
JacobBarthelmeh
8153ea6189
Merge pull request #9559 from cconlon/pkcs7SignedNonOctet
...
Fix PKCS#7 SignedData parsing for non-OCTET_STRING content types
2025-12-19 11:12:06 -07:00
Daniel Pouzzner
6f95a9c58e
wolfcrypt/src/random.c: in _InitRng(), remove "drbg_instantiated" conditional cleanup logic (Coverity true-benign-positive: DEADCODE because drbg_instantiated is always false when ret != DRBG_SUCCESS).
2025-12-19 10:30:14 -06:00
Juliusz Sosinowicz
dd35f10b57
ed25519: validate presence of keys in export functions
2025-12-19 10:14:26 +01:00
Chris Conlon
afe82b9512
Fix PKCS#7 degenerate detection based on signerInfos length
2025-12-18 16:28:03 -07:00
Chris Conlon
d6dcd30736
Fix PKCS#7 streaming for non OCTET STRING content types
2025-12-18 16:28:01 -07:00
Kareem
c238defe23
Add cast for public_size
2025-12-18 15:32:59 -07:00
JacobBarthelmeh
4162f24434
Merge pull request #9555 from embhorn/zd20964
...
Null deref check in Pkcs11ECDH
2025-12-18 15:14:35 -07:00
Kareem
81d32f4fe6
Move Curve25519 public key check to make_pub/make_pub_blind to cover the case where they are called directly by an application.
2025-12-18 14:37:59 -07:00
Daniel Pouzzner
83e9a0780f
wolfcrypt/src/wc_lms.c: fix leak in wc_LmsKey_Reload().
2025-12-18 11:09:37 -06:00
Eric Blankenhorn
d1a4677a8a
Null deref check in Pkcs11ECDH
2025-12-18 10:10:57 -06:00
Sean Parkinson
a103f5af8b
Merge pull request #9545 from douzzer/20251211-DRBG-SHA2-smallstackcache-prealloc
...
20251211-DRBG-SHA2-smallstackcache-prealloc
2025-12-18 10:07:37 +10:00
Sean Parkinson
b7e69fb2f3
Merge pull request #9543 from kareem-wolfssl/zd20944
...
Check Curve25519 public key after generating one to avoid generating invalid keys.
2025-12-18 09:29:58 +10:00
JacobBarthelmeh
911e996a8d
Merge pull request #9546 from SparkiDev/curve25519_base_smul_improv
...
Curve25519: improved smul
2025-12-17 15:28:56 -07:00
Daniel Pouzzner
b23f59f137
Merge pull request #9540 from sameehj/linuxkm_tegra_fips_fixes
...
linuxkm: fix Tegra Yocto FIPS build issues (ARM64, RT, PIE)
2025-12-17 12:49:23 -06:00
JacobBarthelmeh
e93835acd9
sanity checks on buffer size with AES and CAAM Integrity use
2025-12-17 10:15:32 -07:00
Daniel Pouzzner
fc7d4ffad4
PR#9545 20251211-DRBG-SHA2-smallstackcache-prealloc addressing peer review: clear dest if necessary in InitHandshakeHashesAndCopy(), style tweaks in random.c, explanatory comments in sha512.c.
2025-12-17 11:07:22 -06:00
Daniel Pouzzner
8bd0fb0e4b
wolfcrypt/src/random.c and wolfssl/wolfcrypt/random.h: refactor WOLFSSL_SMALL_STACK_CACHE support to eliminate all heap calls after init and before cleanup.
...
* add DRBG_internal.{seed_scratch,digest_scratch}
* add WC_RNG.{drbg_scratch,health_check_scratch,newSeed_buf}
* refactor to implement new WOLFSSL_SMALL_STACK_CACHE dynamics:
* wc_RNG_HealthTestLocal()
* Hash_df()
* Hash_gen()
* Hash_DRBG_Generate()
* Hash_DRBG_Instantiate()
* _InitRng()
* PollAndReSeed()
* wc_FreeRng()
* wc_RNG_HealthTest_ex_internal()
* wc_RNG_HealthTest_ex()
* wc_RNG_HealthTestLocal()
* refactor out WOLFSSL_KERNEL_MODE gates (now all WOLFSSL_SMALL_STACK_CACHE)
2025-12-17 11:01:10 -06:00
Daniel Pouzzner
2b28931855
wolfcrypt/src/sha256.c and wolfcrypt/src/sha512.c: in WOLFSSL_SMALL_STACK_CACHE builds, allocate shafoo->W at init or context copy time, rather than in the transform function. for the SHA512 family, allocate additional space in W for "buffer" in wc_Sha512Transform().
2025-12-17 11:01:10 -06:00
Daniel Pouzzner
525266c467
wolfssl/wolfcrypt/mem_track.h and wolfcrypt/src/memory.c: add WOLFSSL_API extern memoryStats *wc_MemStats_Ptr, set by InitMemoryTracker() and cleared by CleanupMemoryTracker(), allowing public access to the memory statistics.
...
tests/unit.c: at end of unit_test(), when WOLFSSL_TRACK_MEMORY, explicitly wolfSSL_Cleanup() then check and error if wc_MemStats_Ptr->currentBytes > 0.
2025-12-17 11:01:10 -06:00
Daniel Pouzzner
1e38a1011e
wolfcrypt/src/wolfentropy.c: in wc_Entropy_Get():
...
* use a bss segment allocation for noise, to avoid a heap allocation (access is already mutex-protected), and
* in the loop, WC_CHECK_FOR_INTR_SIGNALS() and WC_RELAX_LONG_LOOP().
2025-12-17 11:01:10 -06:00
Daniel Pouzzner
50b51adc93
wolfcrypt/src/hmac.c and wolfssl/wolfcrypt/hmac.h: implement WOLFSSL_API wc_HmacCopy(), and remove the WOLFSSL_HMAC_COPY_HASH gate on HmacKeyCopyHash().
2025-12-17 11:01:10 -06:00
Daniel Pouzzner
2802e2d82b
wolfcrypt/src/rsa.c: in RsaUnPad_OAEP(), refactor volatile-based constant time mitigation to fix "using value of assignment with ‘volatile’-qualified left operand is deprecated [-Werror=volatile]" (new warning from gcc-16.0.0_p20251207, not reported by gcc-16.0.0_p20251116-r1).
2025-12-17 11:01:10 -06:00
Sameeh Jubran
a5f1fde955
linuxkm: fix Tegra Yocto FIPS build issues (ARM64, RT, PIE)
...
Fix multiple build and runtime issues when building wolfSSL LinuxKM FIPS
on NVIDIA Tegra (ARM64) kernels under Yocto.
- Disable ARM64 LSE atomics for out-of-tree modules to avoid jump_table
asm constraints
- Handle PREEMPT_RT mutex and spinlock differences correctly
- Avoid alt_cb_patch_nops / queued_spin_lock_slowpath on Tegra
- Remove conflicting compiler auto-var-init flags for PIE objects
- Align PIE symbol redirection with RT and Tegra kernels
This restores successful LinuxKM FIPS builds on Tegra-based Yocto systems.
Signed-off-by: Sameeh Jubran <sameeh.j@gmail.com >
2025-12-17 14:32:26 +02:00
Sean Parkinson
af2c6cc932
AES-GCM ARM32/Thumb2 ASM: don't change aes->reg in decrypt
...
OpenSSL compatability layer expects aes->reg to be unmodified by AES-GCM
decrypt call. ARM32/Thumb2 assembly implementation modifies buffer.
Keep a copy and restore aes->reg after call.
2025-12-17 16:04:25 +10:00
Sean Parkinson
f54266c2c6
Curve25519: improved smul
...
Use the Ed25519 base smul in Curve25519 base mul and covert to
Montogmery curve for a faster implementation.
Only when Ed25519 is compiled in or WOLFSSL_CURVE25519_USE_ED25519 is
defined.
When compiling Intel x64 assembly and Aarch64 assembly, always define
WOLFSSL_CURVE25519_USE_ED25519.
Can't use with blinding - normal C implementation.
Optimized the Curve25519 smul slightly for Intel x64 and Aarch64.
Improved the conditional table lookup on Intel x64 to use AVX2 when
available.
2025-12-17 13:25:36 +10:00
JacobBarthelmeh
b42e9a9410
Merge pull request #9529 from SparkiDev/dsa_pg_sp_int_fix
...
DSA Parameter Generation: init g earlier
2025-12-16 14:52:45 -07:00
JacobBarthelmeh
75fdf959c1
Merge pull request #9514 from kareem-wolfssl/zd20936
...
Fix uninitialized variable, fix potentially undefined printf reference in HASH_DRBG_Generate.
2025-12-16 14:48:17 -07:00
Kareem
36eda9fb75
Check Curve25519 public key after generating one to avoid generating invalid keys.
...
Thanks to Kr0emer for the report.
2025-12-15 16:31:29 -07:00