Add SLH-DSA Support - #455
Open
aidangarske wants to merge 20 commits into
Open
Conversation
aidangarske
force-pushed
the
add-slhdsa
branch
2 times, most recently
from
July 30, 2026 18:27
0487400 to
02cbe8b
Compare
aidangarske
marked this pull request as ready for review
July 30, 2026 23:26
aidangarske
force-pushed
the
add-slhdsa
branch
2 times, most recently
from
July 31, 2026 01:05
8bf2ba2 to
ba88c76
Compare
Signed-off-by: Aidan Garske <aidan@wolfssl.com>
Frauschi
requested changes
Aug 6, 2026
Frauschi
left a comment
There was a problem hiding this comment.
🐺 Skoll Code Review
Overall recommendation: REQUEST_CHANGES
Findings: 12 total — 5 posted, 7 skipped
Posted findings
- [High] openssl_example.c rewrite hard-fails on the IDE/Android and IDE/XCODE flows —
examples/openssl_example.c:47-75 (duplicated in examples/pqc_openssl_example.c:225-238) - [Medium] KAT vector accounting: the verify-only SLH-DSA KAT can pass with zero vectors, the exact 3099 count is pinned against a floating OpenSSL tag, and the old 2602 comment was left behind —
.github/workflows/wolfssl-versions-pqc.yml:204-214 - [Medium] WOLFSSL_SLHDSA_CONFIG is missing from the dependency cache key, undocumented in --help, and contradicted by INTEGRATION_GUIDE —
scripts/utils-wolfssl.sh:64-70 - [Medium] Example build gating and portability: executableDir may trip -Wmaybe-uninitialized, and BUILD_PQC_EXAMPLE is true for verify-only SLH-DSA builds where the example always fails —
examples/openssl_example.c:62-75; examples/pqc_openssl_example.c:225-238 - [Low] wp_mlkem_kem.c doc comment no longer matches the code it documents —
src/wp_mlkem_kem.c:186
Skipped findings
- [High] libacvp PQC job likely cannot build runtest, so the whole workflow may no-op
- [Medium] SLH-DSA test coverage gaps: four guard paths and the deterministic-keygen seed length validation are unexercised
- [Low] CI workflow hygiene: example steps run before the dependency push, nginx-pqc adds per-workflow apt installs, and test.sh defaults WOLFPROV_ROOT to a path nothing produces
- [Low] wp_slhdsa_key_types uses opaque index arithmetic into a flat parameter array
- [Low] test_slhdsa.c hygiene: randomised input described as deterministic, a verify context initialised with sign-only params, mixed XMEM*/libc string calls, and redundant double cleanup
- [Low] SLH-DSA locking contract is looser than the mutex implies: the key mutex is held across the full multi-second sign and across thread-local CheckKey work, wp_slhdsa_get_key() hands out a raw pointer to guarded state, and construction-time hasPub/hasPriv writes are unlocked
- [Info] settings.h pulls a wolfSSL algorithm header into every translation unit
Review generated by Skoll via Claude/Codex
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.