Tobias Frauenschläger
f16216e5b8
HashSLH-DSA APIs now take the pre-hashed digest, not the raw message
...
wc_SlhDsaKey_{Sign,Verify}Hash* previously accepted the raw message and
performed the pre-hash internally. They now require the caller to hash the
message first and pass the resulting digest -- the functions no longer call
wc_*Hash() themselves and feed the supplied digest directly into the M'
construction. Parameters are renamed from msg/msgSz to hash/hashSz to reflect
this, and hashSz is validated against wc_HashGetDigestSize(hashType) per
FIPS 205 Section 10.2.2 (32 for SHAKE128, 64 for SHAKE256), returning
BAD_LENGTH_E on mismatch.
This matches ML-DSA's wc_dilithium_{sign,verify}_ctx_hash, NIST ACVP
signatureInterface=external / preHash=preHash vectors, and other libraries
(OpenSSL HASH-ML-DSA, leancrypto, mldsa-native). It also enables distributed
signers and HSM-style flows where the digest is computed separately from the
signing operation.
Migration: callers must now hash the message before invoking these APIs;
passing the raw message will either fail length validation or produce
signatures over the wrong input. The M'-supplied wc_SlhDsaKey_SignMsg* /
VerifyMsg family (FIPS 205 internal interface, Algorithms 19/20) is
unchanged but gains stricter input validation and doxygen coverage.
2026-05-11 10:14:13 +02:00
..
2026-02-18 09:52:21 -07:00
2026-05-07 14:05:51 -06:00
2026-02-26 11:44:50 -08:00
2026-04-15 11:27:44 -06:00
2026-04-20 10:45:23 +03:00
2026-04-20 10:45:23 +03:00
2026-04-14 13:25:15 +10:00
2026-04-14 13:25:15 +10:00
2026-02-18 09:52:21 -07:00
2026-04-15 17:05:32 +10:00
2026-04-15 17:05:32 +10:00
2026-05-07 14:05:51 -06:00
2026-05-07 14:05:51 -06:00
2026-04-07 13:18:53 -05:00
2026-02-18 09:52:21 -07:00
2026-05-07 02:31:25 +00:00
2026-05-07 02:31:25 +00:00
2026-05-07 07:33:56 -05:00
2026-05-07 07:33:56 -05:00
2026-04-15 17:05:32 +10:00
2026-04-15 17:05:32 +10:00
2026-04-15 17:05:32 +10:00
2026-04-15 17:05:32 +10:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-05-07 14:05:51 -06:00
2026-05-07 14:05:51 -06:00
2026-05-07 14:05:51 -06:00
2026-05-07 14:05:51 -06:00
2026-04-16 08:51:17 +10:00
2026-04-14 13:25:15 +10:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-04-06 00:53:57 -05:00
2026-02-18 09:52:21 -07:00
2026-04-03 12:10:42 +02:00
2026-04-03 12:10:42 +02:00
2026-04-23 11:26:33 +02:00
2026-04-23 11:26:33 +02:00
2026-05-07 14:05:51 -06:00
2026-05-07 14:05:51 -06:00
2026-05-07 14:05:51 -06:00
2026-05-07 14:05:51 -06:00
2026-05-01 13:27:39 -06:00
2026-03-05 08:51:52 -06:00
2026-05-06 15:25:06 -06:00
2026-02-18 09:52:21 -07:00
2026-05-07 14:39:21 -07:00
2026-04-30 14:16:05 -06:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-04-24 06:52:49 -06:00
2026-02-18 09:52:21 -07:00
2026-02-26 14:51:49 -06:00
2026-02-26 10:26:20 -06:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-05-08 18:53:57 +02:00
2026-05-07 14:05:51 -06:00
2026-04-30 11:03:06 +02:00
2026-04-15 03:09:11 +02:00
2026-02-26 11:44:50 -08:00
2026-04-02 22:54:10 -05:00
2026-04-02 11:24:25 +02:00
2026-04-03 17:13:29 -06:00
2026-02-18 09:52:21 -07:00
2026-05-04 10:35:04 +02:00
2026-04-21 19:05:26 +03:00
2026-04-13 15:50:26 +02:00
2026-02-18 09:52:21 -07:00
2026-05-07 02:33:58 +00:00
2026-05-07 02:33:58 +00:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-04-06 00:53:57 -05:00
2026-02-18 09:52:21 -07:00
2026-04-06 21:18:32 +02:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-04-23 09:36:32 +02:00
2026-04-23 09:36:32 +02:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-04-10 07:58:37 +10:00
2026-02-18 09:52:21 -07:00
2026-04-21 02:35:57 +02:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-04-28 10:06:47 +00:00
2026-04-28 10:06:47 +00:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-05-05 11:41:28 -07:00
2026-04-09 13:09:17 -04:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-05-07 07:32:51 -05:00
2026-05-07 07:31:25 -05:00
2026-05-07 02:31:25 +00:00
2026-04-23 11:03:24 +02:00
2026-04-30 14:00:15 -06:00
2026-04-15 03:08:50 +02:00
2026-04-10 15:43:21 +10:00
2026-04-10 15:43:21 +10:00
2026-04-24 06:52:49 -06:00
2026-04-24 06:52:49 -06:00
2026-04-16 08:51:17 +10:00
2026-04-14 13:25:15 +10:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-04-15 17:29:37 -04:00
2026-04-10 11:17:45 -04:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-04-15 18:03:39 -06:00
2026-04-15 11:28:03 -06:00
2026-04-08 17:07:42 +09:00
2026-04-08 17:07:42 +09:00
2026-05-11 10:14:13 +02:00
2026-05-11 10:14:13 +02:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-04-14 13:25:15 +10:00
2026-04-14 13:25:15 +10:00
2026-05-07 02:33:58 +00:00
2026-05-07 02:33:58 +00:00
2026-05-07 02:33:58 +00:00
2026-05-07 02:33:58 +00:00
2026-04-17 10:41:53 +10:00
2026-04-17 10:41:53 +10:00
2026-04-10 15:43:21 +10:00
2026-04-10 15:43:21 +10:00
2026-04-10 10:48:17 -07:00
2026-02-18 09:52:21 -07:00
2026-04-14 07:47:29 -05:00
2026-04-13 17:02:51 -05:00