Sean Parkinson
69027c2445
LMS: fixes and improvements
...
Remove WC_LMS_PARM_NONE as it serves no purpose.
Change sig_len from a 16-bit value to a 32-bit value in the parameters.
Added wc_LmsKey_SetParameters_ex() and wc_LmsKey_GetParameters_ex() to
handle hash algorithm.
Change mass ForceZeros to smaller amounts with XMEMSET and setting to
NULL or default valus.
Allow signing of empty message.
Other minor fixes.
Fix API tests to work when WOLFSSL_LMS_MAX_HEIGHT/WOLFSSL_LMS_MAX_LEVELS
are/is defined.
2026-05-11 16:18:12 +10:00
Josh Holtrop
81435c8a01
Rust wrapper: restrict RNG generic type parameters to be integers
...
Fixes F-3350
2026-04-28 11:08:09 -04:00
Josh Holtrop
6bb8f8f5cd
Rust wrapper: address Copilot review comments
2026-04-28 11:08:09 -04:00
Josh Holtrop
ca3c779182
Rust wrapper: use consistent rc check in ECC::shared_secret
...
Fixes F-2676
2026-04-28 11:08:09 -04:00
Josh Holtrop
cf199c9ab8
Rust wrapper: replace Lms::sigs_left() with Lms::has_sigs_left()
...
Fixes F-3094
2026-04-28 11:08:08 -04:00
Josh Holtrop
135110232f
Rust wrapper: make ECC::verify_hash C result check more strict
...
Fixes F-1989
2026-04-28 11:08:08 -04:00
Josh Holtrop
40bc5d09f7
Rust wrapper: remove return value from MlKem::encode_{public,private}_key()
...
Fixes F-3093
2026-04-28 11:08:08 -04:00
Josh Holtrop
0cddbb25b2
Rust wrapper: check for NUL-terminated slice in ECC::rs_hex_to_sig
...
Fixes F-3092
2026-04-28 11:08:08 -04:00
Josh Holtrop
79358fea80
Rust wrapper: add mac feature and implement digest/mac traits
2026-04-28 11:08:08 -04:00
Josh Holtrop
84f8b5fa13
Rust wrapper: implement kem traits
2026-04-28 11:08:08 -04:00
Josh Holtrop
c08c16ee8f
Rust wrapper: implement password-hash traits
2026-04-28 11:08:08 -04:00
JacobBarthelmeh
1da353b516
Merge pull request #10248 from holtrop-wolfssl/rust-digest-signature
...
Rust wrapper: add digest and signature crate trait implementations
2026-04-24 11:15:40 -06:00
Josh Holtrop
9c506896c6
Rust wrapper: add doc comment for MAX_E_LEN
2026-04-22 00:23:02 -04:00
Josh Holtrop
d5957e6247
Rust wrapper: tweak wc_RsaFlattenPublicKey error message in RSA SigningKey::verifying_key()
2026-04-22 00:19:59 -04:00
Josh Holtrop
a2b1f580c6
Rust wrapper: add buffer size checks in Rust wrapper for ChaCha20_Poly1305 one-shot encrypt/decrypt wrappers
2026-04-20 13:58:36 -04:00
Josh Holtrop
e8ae1536af
Mark sha_digest module public
2026-04-20 08:58:21 -04:00
Josh Holtrop
fccced4935
Rust wrapper: verify RSA lengths in verifying_key()
2026-04-20 08:57:41 -04:00
Josh Holtrop
3ca90b1904
Rust wrapper: add signature implementations
2026-04-17 15:52:07 -04:00
Josh Holtrop
7f33de0882
Rust wrapper: add digest implementations
2026-04-17 15:52:07 -04:00
Josh Holtrop
4f31ff95f7
Rust wrapper: require fixed length index buffers for SRTP/SRTCP
2026-04-15 11:36:02 -04:00
Josh Holtrop
ca362a4e8f
Rust wrapper: also check usize to u32 conversions for digest_size
2026-04-14 20:50:08 -04:00
Josh Holtrop
15ac0718a3
Rust wrapper: make zeroize functions private
2026-04-14 20:50:08 -04:00
Josh Holtrop
2f94121078
Rust wrapper: require caller supplied buffer for Lms.get_kid()
...
Fixes F-1073.
2026-04-14 20:50:08 -04:00
Josh Holtrop
10fbc95241
Rust wrapper: add comment to MlKem about not implementing Send/Sync
...
Fixes F-1072.
2026-04-14 20:50:08 -04:00
Josh Holtrop
85ad08a50a
Rust wrapper: avoid as_ptr() to *mut u8 casts
...
Fixes F-1065.
2026-04-14 20:50:08 -04:00
Josh Holtrop
884b882afe
Rust wrapper: remove generic types for AES buffers
...
Fixes F-1071.
This is an API-breaking change, so will lead to a new crate major
version.
2026-04-14 20:50:08 -04:00
Josh Holtrop
db1aab959c
Rust wrapper: zeroize structs on drop
2026-04-14 20:50:08 -04:00
Josh Holtrop
f1a041a216
Rust wrapper: add zeroizing Drop impl for ChaCha20Poly1305
...
Fix F-1069
2026-04-14 20:50:08 -04:00
Josh Holtrop
2c981d67e6
Rust wrapper: check all buffer lengths when converting to u32/i32
...
Fix F-1068
2026-04-14 20:50:08 -04:00
Josh Holtrop
f00636919e
Rust wrapper: check kdr_index range in srtp_kdf() and srtcp_kdf()
...
Fix F-1257
2026-04-14 20:50:08 -04:00
Josh Holtrop
5c10fe9a58
Rust wrapper: BLAKE2: check for non-empty hash buffer in finalize()
...
This is related to F-1070 but not the same. We do not need to check
that hash_size being passed in matches the initialized digest size
because the C function will use the passed-in size as long as it is
non-zero.
2026-04-14 20:50:08 -04:00
Josh Holtrop
56c20aeda0
Rust wrapper: dilithium: remove unnecessary size define presence checks
...
Fix F-1256
2026-04-14 20:50:08 -04:00
Josh Holtrop
5959aa2b58
Rust wrapper: ed448: add check for context buffers too long
...
Fix F-1064
2026-04-14 20:50:08 -04:00
Josh Holtrop
4f42ba9aa7
Rust wrapper: ed25519: add check for context buffers too long
...
Fix F-1063
2026-04-14 20:50:08 -04:00
Josh Holtrop
337dfc323e
Rust wrapper: avoid uninitialized sys::XtsAesStreamData
...
Fix F-1066
2026-04-14 20:50:08 -04:00
Josh Holtrop
9843f0365a
Rust wrapper: avoid creating a MaybeUninit<RNG>
...
Fix F-1067
2026-04-14 20:50:08 -04:00
Josh Holtrop
a8fa845fa9
Rust wrapper: ecc: fix possible resource leak in some error cases
...
Fix F-1062.
If wolfSSL returns an error after initializing ECC struct with
wc_ecc_init_ex(), wc_ecc_free() might not have been called in all cases.
Move construction of the ECC struct earlier ahead of further wolfSSL
calls after wc_ecc_init_ex() so if those subsequent wolfSSL calls return
an error the Drop impl for ECC will be called to deinitialize.
2026-04-14 20:50:07 -04:00
Josh Holtrop
aa33d7be35
Rust wrapper: chacha20_poly1305: add debug_assert checking in-place operation maximum length
2026-03-26 09:09:55 -04:00
Josh Holtrop
444f90553a
Rust wrapper: document XChaCha20Poly1305 encrypt_in_place_detached maximum buffer length
2026-03-25 13:48:03 -04:00
Josh Holtrop
5d9439c581
Rust wrapper: aes: avoid overlapping Rust slices
2026-03-25 13:43:19 -04:00
Josh Holtrop
23cb7ae30c
Rust wrapper: add cipher trait support
2026-03-25 10:51:06 -04:00
Josh Holtrop
873bc05cde
Rust wrapper: add aead trait support
2026-03-25 10:51:00 -04:00
Josh Holtrop
07acf8d33d
Rust wrapper: add rand_core trait support
2026-03-25 10:50:52 -04:00
Tobias Frauenschläger
3fd13b819d
Guard old non-ctx ML-DSA API by default
2026-03-24 11:16:22 +01:00
Sean Parkinson
a8247bfd62
Dilithium: fix API so that context length is byte
...
Only allowed to have a context length of 0..255 bytes.
Make all context len parameters type byte.
2026-03-19 14:28:22 +10:00
Josh Holtrop
fa07db2cc6
Rust wrapper: add lms module
2026-03-06 10:19:12 -05:00
Josh Holtrop
d12285cb6f
Rust wrapper: mlkem: update ss buffer length requirement comment
2026-02-27 15:04:16 -05:00
Josh Holtrop
4235fa59b6
Add comments explaining ct.len() and ss.len() checks
2026-02-26 15:09:12 -05:00
Josh Holtrop
67c500ec87
Rust wrapper: add mlkem module
2026-02-25 14:16:20 -05:00
Josh Holtrop
7af0fa497a
Rust wrapper: update dilithium module after review
2026-02-24 14:23:59 -05:00