Skip to content

Add SLH-DSA Support - #455

Open
aidangarske wants to merge 20 commits into
wolfSSL:masterfrom
aidangarske:add-slhdsa
Open

Add SLH-DSA Support#455
aidangarske wants to merge 20 commits into
wolfSSL:masterfrom
aidangarske:add-slhdsa

Conversation

@aidangarske

@aidangarske aidangarske commented Jul 30, 2026

Copy link
Copy Markdown
Member

Copilot AI review requested due to automatic review settings July 30, 2026 18:04

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@aidangarske
aidangarske force-pushed the add-slhdsa branch 2 times, most recently from 0487400 to 02cbe8b Compare July 30, 2026 18:27
@aidangarske aidangarske added the ci:nginx-pqc PR OSP toggle: run nginx-pqc label Jul 30, 2026
@aidangarske aidangarske added ci:libacvp-pqc PR OSP toggle: run libacvp-pqc and removed ci:nginx-pqc PR OSP toggle: run nginx-pqc ci:libacvp-pqc PR OSP toggle: run libacvp-pqc labels Jul 30, 2026
@aidangarske aidangarske added ci:libacvp-pqc PR OSP toggle: run libacvp-pqc and removed ci:libacvp-pqc PR OSP toggle: run libacvp-pqc labels Jul 30, 2026
@aidangarske
aidangarske marked this pull request as ready for review July 30, 2026 23:26
@aidangarske
aidangarske force-pushed the add-slhdsa branch 2 times, most recently from 8bf2ba2 to ba88c76 Compare July 31, 2026 01:05
@aidangarske aidangarske added ci:libacvp-pqc PR OSP toggle: run libacvp-pqc and removed ci:libacvp-pqc PR OSP toggle: run libacvp-pqc labels Jul 31, 2026
Frauschi

This comment was marked as resolved.

@aidangarske aidangarske added ci:libacvp-pqc PR OSP toggle: run libacvp-pqc and removed ci:libacvp-pqc PR OSP toggle: run libacvp-pqc labels Jul 31, 2026
@aidangarske
aidangarske requested a review from Frauschi July 31, 2026 19:38
@aidangarske aidangarske removed the ci:libacvp-pqc PR OSP toggle: run libacvp-pqc label Aug 1, 2026
@aidangarske aidangarske added ci:libacvp-pqc PR OSP toggle: run libacvp-pqc and removed ci:libacvp-pqc PR OSP toggle: run libacvp-pqc labels Aug 5, 2026
@aidangarske aidangarske added ci:libacvp-pqc PR OSP toggle: run libacvp-pqc and removed ci:libacvp-pqc PR OSP toggle: run libacvp-pqc labels Aug 5, 2026
@aidangarske
aidangarske requested a review from Frauschi August 5, 2026 21:01

@Frauschi Frauschi left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🐺 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 flowsexamples/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_GUIDEscripts/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 failsexamples/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 documentssrc/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

Comment thread examples/openssl_example.c
Comment thread .github/workflows/wolfssl-versions-pqc.yml
Comment thread scripts/utils-wolfssl.sh
Comment thread src/wp_mlkem_kem.c Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:libacvp-pqc PR OSP toggle: run libacvp-pqc

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants