Commit Graph

441 Commits (copilot/research-task-build-uml-linux-analysis)

Author SHA1 Message Date
philljj a1cde8e343
Merge pull request #11187 from holtrop-wolfssl/rust-fenrir-2026-08-17
Rust wrapper Fenrir fixes 2026-08-17
2026-08-20 16:26:06 -05:00
Josh Holtrop 25224b6827
Add wc_ecc_key_new_ex (#11160)
* Add wc_ecc_key_new_ex

Rust wrapper: use wc_ecc_key_new_ex for ECC when available.

Fixes F-8300.

* Check devId after wc_ecc_key_new_ex() call in unit test
2026-08-20 13:05:51 -07:00
Josh Holtrop bb430555f7 Rust wrapper: ed448: gate RNG references with random cfg
Fixes F-8304.
2026-08-17 17:06:20 -04:00
Josh Holtrop ab97151e69 Rust wrapper: ed25519: gate RNG references with random cfg
Fixes F-8302.
2026-08-17 17:06:20 -04:00
Josh Holtrop 2a1993645b Rust wrapper: gate Lms::get_kid() with lms_make_key cfg
Fixes F-8301.
2026-08-17 16:42:05 -04:00
JacobBarthelmeh 91383897c8
Merge pull request #11167 from holtrop-wolfssl/rust-fenrir-fixes-2026-08-12
Rust Fenrir fixes 2026-08-12
2026-08-13 10:54:17 -06:00
JacobBarthelmeh 11ef0e1254
Merge pull request #11157 from holtrop-wolfssl/f-8297
Gate SHA3-224/256/384/512 prototypes separately
2026-08-13 10:10:04 -06:00
Josh Holtrop a224123dcd Rust wrapper: fix ecc_export cfg gating for ECC export functions
Fixes F-8299.
2026-08-13 10:29:20 -04:00
Josh Holtrop 4518e8b5ec Rust wrapper: detect AES-OFB decrypt support if AES-CFB is disabled
Fixes F-8295.
2026-08-13 10:29:20 -04:00
Josh Holtrop cb0343dcef Rust wrapper: guard wc_RsaSetRNG with rsa cfg
Fixes F-8293.
2026-08-13 10:29:20 -04:00
Josh Holtrop 4b1ff0e346 Gate SHA3-224/256/384/512 prototypes separately
Rust wrapper: detect SHA3-224/256/384/512 build options separately.

Fixes F-8297.
2026-08-12 10:43:36 -04:00
Mark Atwood ec0ec04531 fix: use SPDX GPL-3.0-or-later license identifiers in metadata 2026-08-07 13:34:41 -07:00
David Garske 91df42ec02
Merge pull request #11064 from holtrop-wolfssl/wolfssl-wolfcrypt-2.2.0
Rust wrapper: bump wolfssl-wolfcrypt crate to v2.2.0
2026-08-07 12:33:26 -07:00
Josh Holtrop 8da9dda619 Rust wrapper: bump wolfssl-wolfcrypt crate to v2.2.0 2026-08-05 16:50:44 -04:00
Mark Atwood b6a857cbaa feat(rust): add copy() to SHA256 and SHA384
Add copy(&mut self) methods backed by wc_Sha256Copy/wc_Sha384Copy
for transcript snapshotting (e.g. TLS handshake hashing).

Uses &mut self (not Clone trait) because wc_ShaCopy may mutate src
on some platforms. Initializes dst before calling Copy to avoid
passing uninitialized memory to wc_ShaFree inside the C function.

Includes unit tests verifying independent copy semantics with
externally computed SHA-256/SHA-384 test vectors.
2026-07-30 10:36:31 -07:00
Daniele Lacamera 509b29bc9c Remove liboqs dependency
Falcon was the last algorithm backed by liboqs; now that wolfCrypt has a
native Falcon implementation, liboqs is no longer needed. Remove the
integration entirely so liboqs does not appear as a build or SBOM dependency:

  - configure: drop --with-liboqs (and the -loqs link), the BUILD_LIBOQS
    conditional and the summary line.
  - CMake: drop WOLFSSL_OQS, the duplicate liboqs-backed WOLFSSL_FALCON
    option, the OQS cross-validation / find_package(OQS) block, the
    FindOQS.cmake module, BUILD_OQS_HELPER, and HAVE_LIBOQS from options.h.in.
  - Remove the wolfcrypt/src/port/liboqs port layer (liboqs.c/.h) and its
    wolfSSL_liboqsInit/Close calls in wc_port.c.
  - settings.h: drop HAVE_LIBOQS from the asym key import/export aggregates
    (HAVE_FALCON already covers them) and from the experimental gate; add
    HAVE_FALCON to the experimental gate so the unstandardized Falcon requires
    WOLFSSL_EXPERIMENTAL_SETTINGS in every build system.
  - Drop liboqs.c from the VS/Zephyr/INTIME project files, remove the liboqs
    install from Docker, and update INSTALL/tls.c text (Falcon is native now).

No functional change to non-Falcon builds; the library links no liboqs.
2026-07-22 09:52:26 +02:00
Josh Holtrop c3903cddce Rust wrapper: Add ChaCha20Poly1305::finalize_verify() 2026-07-16 13:56:41 -04:00
Josh Holtrop 708357c403 Rust wrapper: check DH::shared_secret buffer size against prime size
The underlying C API treats the agreeSz parameter as output-only.
2026-07-15 23:37:49 -04:00
David Garske fdfba83c38
Merge pull request #10788 from aidangarske/fenrir-tls-batch-2026-06
Various hardening fixes across sniffer, QUIC, PKCS#11, TLS and tooling
2026-07-08 13:58:14 -07:00
David Garske 76491e6b60
Merge pull request #10661 from yosuke-wolfssl/fix/f_5808
Enable SCSV check unconditionally
2026-07-08 10:52:59 -07:00
Tobias Frauenschläger 673d8d00bb
Merge pull request #10778 from SparkiDev/time_stamp_protocol
Time-Stamp Protocol (RFC 3161)
2026-07-08 17:43:38 +02:00
Sean Parkinson ae023a5643 Time-Stamp Protocol (RFC 3161)
Implementation in wolfCrypt
OpenSSL compatibility layer in wolfSSL
Added tests, certificates, examples.
2026-07-08 09:33:47 +10:00
David Garske bee18d122d
Merge pull request #10801 from SparkiDev/windows_asm_1
Add Windows assembly files to the build
2026-07-07 14:26:31 -07:00
Sean Parkinson bcef8f4f6d Add Windows assembly files to the build
Windows ASM files generated along side the ATT assembly files.
Adding them to the build so they can be used.
2026-07-07 08:02:20 +10:00
Josh Holtrop a29a882a3a Rust wrapper: wolfssl-wolfcrypt v2.1.0 2026-07-06 12:07:39 -04:00
Josh Holtrop 19f6f01c61 Rust wrapper: update CHANGELOG for v2.1.0 2026-07-06 12:05:45 -04:00
Josh Holtrop 0a85d07ab3 Rust wrapper: update crate dependencies 2026-07-06 12:03:14 -04:00
Daniel Pouzzner 64a0f384a4
Merge pull request #10780 from holtrop-wolfssl/rust-rename-dilithium-mldsa
Rust wrapper: rename dilithium to mldsa
2026-07-01 16:30:28 -05:00
Daniel Pouzzner 36437417b6
Merge pull request #10703 from holtrop-wolfssl/rust-validate-prefix-env-var
Rust wrapper: validate WOLFSSL_PREFIX in build.rs
2026-07-01 16:29:36 -05:00
Daniel Pouzzner a66b87b926
Merge pull request #10645 from holtrop-wolfssl/rust-ed-verify-result-codes
Rust wrapper: fix signature incorrect return value from Ed448 and Ed25519 verify functions.
2026-07-01 16:28:44 -05:00
David Garske 0cecccdf6e
Merge pull request #10756 from SparkiDev/aes_asm_ymm_zmm
Intel x64 ASM: Add new assembly for AES
2026-06-25 21:41:17 -07:00
aidan garske c8ccffd84c F-5757 - Reject negative Size in Ada AES_Set_Cbc_Decrypt wrapper 2026-06-25 15:07:33 -07:00
aidan garske bd18a9bfcc F-4229 - Reject negative Size in Ada AES_Set_Cbc_Encrypt wrapper 2026-06-25 15:07:33 -07:00
Josh Holtrop b6d962350d Rust wrapper: rename dilithium to mldsa 2026-06-25 10:31:44 -04:00
jordan 0fe21bbcd5 prepare for release 5.9.2 2026-06-24 12:01:51 -05:00
Sean Parkinson a342eba578 Intel x64 ASM: Add new assembly for AES
Support AES-XTS AVX512/VAES
Support AES-GCM AVX512/VAES
Support AES-ECB/CBC/CTR AVX512/VAES/AVX1/AES-NI.
Remove code from aes_asm.S/aes_asm.asm
Add CPU defines for AVX512 and VAES
Updated ASM files with new defines for AVX512.
Added support for printing out the new CPU Id flags in benchmark.
Added new files to Windows projects.
aes.c: Supports ECB/CBC/CTR in assembly. Supports calling AVX512/VAES assembly.
2026-06-23 20:54:59 +10:00
Josh Holtrop d523e463a5 Rust wrapper: validate WOLFSSL_PREFIX in build.rs 2026-06-16 15:22:04 -04:00
Daniel Pouzzner 0097739dd8 fixes for F-3325:
wolfcrypt/src/aes.c: enforce AES-XTS K1!=K2 constraint in wc_AesXtsSetKeyNoInit() unless WC_AES_XTS_ALLOW_DUPLICATE_KEYS and !HAVE_FIPS:

tests/api/test_aes.c: add negative tests to test_wc_AesXtsSetKey() for K1==K2;

wolfcrypt/test/test.c: fix keys in aes_xts_128_inplace_test() and aes_xts_192_inplace_test() so that K1!=K2, update test vectors, and remove associated !HAVE_FIPS gating;

linuxkm/lkcapi_aes_glue.c: synchronize aes_xts_128_test() test of ciphertext stealing in-place with wolfcrypt/test/test.c.

wrapper/rust/wolfssl-wolfcrypt/src/aes.rs: synchronize XTS streaming test with wolfcrypt/test/test.c.

linuxkm/: refactor self-test sensing with version-gated setup in linuxkm_wc_port.h and refactored gates in lkcapi_glue.c.
2026-06-11 15:38:28 -05:00
Yosuke Shimizu e2ed815d51 Enable SCSV check unconditionally 2026-06-11 13:05:08 +09:00
Josh Holtrop f8c86ce227 Rust wrapper: fix Ed25519/Ed448 signature verify failed return values 2026-06-09 11:31:25 -04:00
Josh Holtrop 243926f5da Update wolfssl-wolfcrypt Rust crate to v2.0.0 2026-06-08 10:14:24 -04:00
Josh Holtrop 226f96db33 Rust wrapper: add comments about label pointer casts in rsa.rs 2026-06-01 14:57:58 -04:00
Josh Holtrop b737370ac4 Rust wrapper: add new files to include.am 2026-05-29 14:51:50 -04:00
Josh Holtrop bdd70dd3e3 Rust wrapper: zeroize XTSStream.xtsaesstreamdata
Fix F-4467
2026-05-29 14:51:50 -04:00
Josh Holtrop 364e883941 Rust wrapper: handle MAC_CMP_FAILED_E from CMAC::verify{,_ex}()
Fix F-4468
2026-05-29 14:51:50 -04:00
Josh Holtrop 685a6632a9 Rust wrapper: zeroize mlkem_kem seeds after use 2026-05-29 14:51:50 -04:00
Josh Holtrop 904975d5a9 Rust wrapper: add null check for kid_ptr returned from C in Lms::get_kid() 2026-05-29 14:51:50 -04:00
Josh Holtrop e3f57d5f92 Rust wrapper: fix ParamInvalid error in hash_password_customized() 2026-05-29 14:51:50 -04:00
Josh Holtrop f7a5df3489 Rust wrapper: support older non-const RSA API in rsa_pkcs1v15.rs 2026-05-29 14:51:50 -04:00
Josh Holtrop 830aa7f7b6 Rust wrapper: fix CFB::encrypt1 and CFB::decrypt1 to take size in bits 2026-05-29 14:51:50 -04:00