Repository navigation
Add Mbed TLS to wolfSSL migration guide - #288
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The guidance needs corrections to preserve negotiated-group restrictions and enable DTLS ClientHello fragmentation at runtime.
2 open issues
What changed in this PR
Adds an Mbed TLS 3.6/4.x migration guide to the wolfSSL documentation suite.
Changes:
- Adds ten chapters covering migration, API mappings, configuration, and interoperability.
- Integrates PDF and HTML builds with the root Makefile.
- Adds navigation, validation settings, and PDF identifier wrapping.
| File | Description |
|---|---|
| README.md | Lists the new build target. |
| MbedTLS-Migration/test/lintcheck.json | Configures Markdown linting. |
| MbedTLS-Migration/test/linkcheck.json | Configures link checking. |
| MbedTLS-Migration/src/chapter10.md | Lists support resources. |
| MbedTLS-Migration/src/chapter09.md | Maps configuration options. |
| MbedTLS-Migration/src/chapter08.md | Maps migration APIs. |
| MbedTLS-Migration/src/chapter07.md | Provides interoperability commands. |
| MbedTLS-Migration/src/chapter06.md | Compares additional capabilities. |
| MbedTLS-Migration/src/chapter05.md | Covers hardware and platforms. |
| MbedTLS-Migration/src/chapter04.md | Explains migration pitfalls. |
| MbedTLS-Migration/src/chapter03.md | Provides paired TLS client examples. |
| MbedTLS-Migration/src/chapter02.md | Explains architectural differences. |
| MbedTLS-Migration/src/chapter01.md | Introduces scope and support status. |
| MbedTLS-Migration/mkdocs.yml | Configures HTML navigation and theme. |
| MbedTLS-Migration/Makefile | Defines manual build sources. |
| MbedTLS-Migration/header.txt | Configures PDF formatting and wrapping. |
| Makefile | Adds the standalone and aggregate build target. |
Review effort: Balanced
New manual for porting products from Mbed TLS 3.6 and 4.x to wolfSSL: design differences, a side-by-side TLS client, common pitfalls, hardware and platform notes (crypto callbacks, Zephyr, ESP-IDF), features beyond Mbed TLS, interop testing, and full API and configuration mappings. Built with `make mbedtls-migration`, modelled on the Bouncy Castle migration guide. header.txt allows line breaks after underscores and the tables set explicit column widths, so long identifiers in the API tables wrap instead of overlapping the next column in the PDF. Two notes are temporary and should be dropped once the fixes are in a release: the session-ticket row in the configuration chapter (--enable-ticket-nonce-malloc for TLS 1.3 against Mbed TLS servers, wolfSSL/wolfssl#11745), and the ML-KEM decapsulation note in the hardware chapter (device-held keys, wolfSSL/wolfssl#11773, not in 5.9.4).
Frauschi
force-pushed
the
mbedtls-migration-guide
branch
from
October 21, 2026 15:25
4d2935f to
26562f4
Compare
dgarske
approved these changes
Oct 21, 2026
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.

Description
New manual for teams moving products from Mbed TLS 3.6 or 4.x to wolfSSL. The Mbed TLS team announced in October 2026 that its TLS and X.509 maintainers step down in April 2027, and 3.6 LTS ends in March 2027, so this guide gives those users one place to start. It follows the layout of the Bouncy Castle migration guide.
Chapters:
./configureanduser_settings.h)Build changes:
make mbedtls-migrationtarget in the rootMakefile(also added toall) and a README entry.header.txtallows line breaks after underscores and turns off hyphenation in the monospace font, and the tables set explicit column widths. Without this, long identifiers in the API tables overlap the next column in the PDF, or print hyphenated (WOLF-SSL_...).Testing
make mbedtls-migrationbuilds the PDF and HTML with no mkdocs warnings;make test(markdownlint and link check) passes.-Wall -Wextra -Werroragainst wolfSSL master. The TLS client returns 0 againstexamples/server, -322 for a wrong host and -188 for a wrong CA.ssl_client2/ssl_server2, including the TLS 1.3 session-ticket behaviour described in chapter 9.user_settings.hrecipes in chapter 9 were compiled: the TLS 1.3 template plus the named defines builds and negotiates an ML-KEM hybrid group, and the DTLS 1.3 template builds cleanly with-Werror.Notes
--enable-ticket-nonce-mallocnote in the session-ticket row of chapter 9 (Keep TLS 1.3 connections working when the ticket nonce is longer than 8 bytes wolfssl#11745), and the ML-KEM decapsulation note for device-held keys in chapter 5 (Let an ML-KEM key named by id decapsulate on a device wolfssl#11773, merged after 5.9.4).https://www.wolfssl.com/documentation/manuals/mbedtls-migration/. Please publish the manual under that path, or tell me the final URL so the post can be updated.