Skip to content

update documentation after 5.9.4 release - #286

Open
JacobBarthelmeh wants to merge 4 commits into
wolfSSL:masterfrom
JacobBarthelmeh:5.9.4
Open

JacobBarthelmeh wants to merge 4 commits into
wolfSSL:masterfrom
JacobBarthelmeh:5.9.4

Conversation

@JacobBarthelmeh

Copy link
Copy Markdown
Contributor

No description provided.

@JacobBarthelmeh JacobBarthelmeh self-assigned this Oct 9, 2026
Copilot AI balanced review requested due to automatic review settings October 9, 2026 21:35

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

The OCSP configuration guidance and two certificate-related descriptions do not match wolfSSL 5.9.4 behavior.

3 open findings
What changed in this PR

Updates the wolfSSL documentation for the 5.9.4 release.

Changes:

  • Documents new cryptographic algorithms, APIs, and configuration options.
  • Covers security, certificate parsing, logging, and crypto-callback changes.
  • Updates post-quantum and hardware support references.
File Description
wolfSSL/​src/​chapter02.md Documents new build options and macros.
wolfSSL/​src/​chapter04.md Updates supported cryptographic features.
wolfSSL/​src/​chapter06.md Adds crypto-callback capabilities.
wolfSSL/​src/​chapter07.md Documents stricter certificate parsing.
wolfSSL/​src/​chapter08.md Adds verbose logging guidance.
wolfSSL/​src/​chapter10.md Adds new cryptographic API usage.
wolfSSL/​src/​chapter13.md Updates post-quantum comparison details.
wolfSSL/​src/​appendix06.md Adds new error codes.
wolfSSL/​src/​appendix07.md Adds post-quantum protocol identifiers.
wolfSSL/​src/​appendix08.md Expands hardware accelerator coverage.
wolfSSL/​src/​appendix09.md Updates post-quantum setup guidance.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread wolfSSL/src/chapter02.md Outdated
Comment thread wolfSSL/src/chapter02.md Outdated
Comment thread wolfSSL/src/chapter07.md Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

Several documented configure options and algorithm bundles do not match wolfSSL 5.9.4 behavior.

0 open findings

3 resolved since last review
Previously missed (8)

In code that hasn't changed since last review

Medium severity Qualify quantum bundle claims when experimental mode is disabled

wolfSSL/​src/​appendix09.md:64

This repeats the claim that the quantum bundle enables every PQ algorithm, but Falcon and FrodoKEM are added only when --enable-experimental is also passed. State that condition so “all” is accurate for both configurations.

Medium severity Correct SLH-DSA parameter selection mappings

wolfSSL/​src/​chapter02.md:887

The configure mapping here is incorrect: bare --enable-slhdsa selects only the six SHAKE parameter sets, while all twelve require --enable-slhdsa=yes,sha2. Also, --enable-slhdsa=verify-only selects no parameter set; verify-only must be combined with yes and/or explicit set options.

This issue also appears on line 5104 of the same file.

Medium severity Include Falcon in the callback-only mode summary

wolfSSL/​src/​chapter02.md:2631

Falcon also has a WOLF_CRYPTO_CB_ONLY_FALCON mode in 5.9.4, and --enable-cryptocb=only sets it when Falcon is enabled. This new callback-only summary should include that macro.

This issue also appears on line 5030 of the same file.

Medium severity Clarify that the crypto bundle excludes quantum-resistant algorithms

wolfSSL/​src/​chapter02.md:4958

--enable-all-crypto explicitly excludes quantum-resistant asymmetric algorithms in 5.9.4. As written, users may expect this bundle to enable ML-KEM, ML-DSA, and the other PQ algorithms; point them to the separate quantum bundle.

This issue also appears on line 4962 of the same file.

Medium severity Document experimental algorithms enabled with experimental mode

wolfSSL/​src/​chapter02.md:4970

When --enable-experimental is also present, this option additionally enables Falcon, FrodoKEM, and the extra PQC hybrid groups. Listing only the non-experimental algorithms makes the documented expansion incomplete for that supported combination.

Medium severity Remove unsupported Falcon configuration options

wolfSSL/​src/​chapter02.md:5116

The 5.9.4 configure parser accepts only asm, double, avx2, neon, and small-mem. Each of smallest-mem, cache-key, cache-basis, level1, level5, and dynamic-keys currently terminates configure with “Unknown falcon option,” so these unsupported choices must not be advertised.

Medium severity List all supported per-algorithm callback-only modes

wolfSSL/​src/​chapter06.md:597

This purported per-algorithm list omits the callback-only modes for SHA-256, SHA-512, AES, and Falcon that --enable-cryptocb=only actually sets. The omission makes the summary inaccurate and hides supported footprint controls.

Low severity Add the missing sentence break after “fail”

wolfSSL/​src/​chapter02.md:2419

Add the missing sentence break after “fail”; currently “fail In” runs two sentences together.

🧠 Review effort: Balanced

@philljj philljj self-assigned this Oct 12, 2026

@philljj philljj left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

First pass, two things that skoll and I both noticed with --enable-slhdsa.

Comment thread wolfSSL/src/appendix07.md
The wire values come from draft-reddy-tls-slhdsa and are the same ones oqs-provider uses. SLH-DSA can sign TLS 1.3 and DTLS 1.3 handshakes, new in wolfSSL 5.9.4.

| Name | Wire Value | Default | configure Option |
|------|-----------|:-------:|-----------------|

@philljj philljj Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This isn't quite right.

  • --enable-slhdsa: turns on SHAKE variants only.
  • --enable-slhdsa=sha2 turns on SHA2 variants only.
  • --enable-slhdsa=sha2,yes turns on both groups.

The SHAKE ones get built by default:

for v in `echo $ENABLED_SLHDSA | tr "," " "`                                    
do                                                                              
  case $v in                                                                    
  yes)                                                                          
    SLHDSA_PARAM_128S=yes                                                       
    SLHDSA_PARAM_128F=yes                                                       
    SLHDSA_PARAM_192S=yes                                                       
    SLHDSA_PARAM_192F=yes                                                       
    SLHDSA_PARAM_256S=yes                                                       
    SLHDSA_PARAM_256F=yes                                                       
    ;;

but you must turn on the sha2 variants:

  sha2)                                                                         
    SLHDSA_SHA2=yes                                                             
    SLHDSA_PARAM_SHA2_128S=yes                                                  
    SLHDSA_PARAM_SHA2_128F=yes                                                  
    SLHDSA_PARAM_SHA2_192S=yes                                                  
    SLHDSA_PARAM_SHA2_192F=yes                                                  
    SLHDSA_PARAM_SHA2_256S=yes                                                  
    SLHDSA_PARAM_SHA2_256F=yes                                                  
    ;;

Comment thread wolfSSL/src/chapter02.md Outdated

### `--enable-slhdsa`

Enable the SLH-DSA (FIPS 205) stateless hash-based signatures, all twelve parameter sets. Off by default. Pass `--enable-slhdsa=verify-only` to keep only verification. With TLS 1.3 / DTLS 1.3, the draft-reddy-tls-slhdsa signature schemes can authenticate the handshake. Defines [`WOLFSSL_HAVE_SLHDSA`](#wolfssl_have_slhdsa). New in wolfSSL 5.9.4.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Same as other slhdsa nit on appendix07. The default configure only turns on shake variants.

Also, verify-only must be combined with sha2 or yes, or it doesn't build at all... Not sure if this was an oversight or intended.

skoll's nit:

HIGH-1: Select SLH-DSA parameter sets explicitly

  • File: wolfSSL/src/chapter02.md:5104
  • Function: --enable-slhdsa
    ...

Description: The new instructions do not produce the advertised configuration. In wolfSSL's configure implementation, bare --enable-slhdsa selects only the six SHAKE sets; SHA2 requires the sha2 selector. Furthermore, verify-only alone selects no parameter sets, causing configure to disable all six SHAKE sets without enabling SHA2. Readers therefore cannot use the advertised SHA2 schemes or obtain a usable verification-only configuration. The same instructions appear at chapter02.md:887 and in Appendix G's new SHA2 rows.

Code:

Enable the SLH-DSA (FIPS 205) stateless hash-based signatures, all twelve parameter sets. Off by default. Pass `--enable-slhdsa=verify-only` to keep only verification.

Recommendation: Document --enable-slhdsa=yes,sha2 for all twelve sets and --enable-slhdsa=yes,sha2,verify-only for verification-only support of all twelve. Correct the repeated instructions and Appendix G's SHA2 configuration rows.

@JacobBarthelmeh
JacobBarthelmeh requested a balanced review from Copilot October 12, 2026 22:08

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants