@@ -6,16 +6,49 @@ for all TLS operations. This will also enable wolfSSL as the default RNG impleme
66feature, first ensure wolfSSL has been added to the west manifest using the instructions from the
77README.md here: https://github.com/wolfSSL/wolfssl/tree/master/zephyr
88
9- This integration depends on the default Zephyr TLS support changes in the wolfSSL module. The required
10- changes are contained in wolfSSL after the merge of the associated default- TLS- support PR; use a wolfSSL
11- revision that includes those changes .
9+ This integration depends on new Kconfig options added to the wolfSSL Zephyr module; use a wolfSSL
10+ revision that includes the PR adding Zephyr 4.3 default TLS support ( ` WOLFSSL_SESSION_EXPORT ` ,
11+ ` WOLFSSL_KEEP_PEER_CERT ` , ` WOLFSSL_ALWAYS_VERIFY_CB ` , and the ` native_sim ` timer gate extension) .
1212
1313Once the west manifest has been updated, run west update, then run the following command to patch the sources
1414
1515```
1616patch -p1 < /path/to/your/osp/zephyr/4.3/zephyr-tls-4.3.0.patch
1717```
1818
19+ ### Minimum prj.conf
20+
21+ Use ` tests/net/socket/tls/overlay-wolfssl.conf ` as a template. At minimum the application needs
22+ ` CONFIG_MBEDTLS=n ` , ` CONFIG_WOLFSSL=y ` , and Zephyr POSIX support (` CONFIG_POSIX_API=y ` ,
23+ ` CONFIG_POSIX_TIMERS=y ` , ` CONFIG_POSIX_THREADS=y ` ). Size ` CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE `
24+ to the application footprint.
25+
26+ ### Configuration options
27+
28+ Kconfig help text is authoritative:
29+ - wolfSSL module: https://github.com/wolfSSL/wolfssl/blob/master/zephyr/Kconfig
30+ - Zephyr TLS socket layer: ` subsys/net/lib/sockets/Kconfig ` (after applying the patch)
31+
32+ Options added by this integration:
33+
34+ | Kconfig | Purpose |
35+ | ---| ---|
36+ | ` WOLFSSL_SESSION_EXPORT ` | External session cache (serialize sessions across connections) |
37+ | ` WOLFSSL_KEEP_PEER_CERT ` | Retain peer certificate after handshake |
38+ | ` WOLFSSL_ALWAYS_VERIFY_CB ` | Invoke verify callback on success in addition to failure |
39+ | ` WOLFSSL_VERIFY_CALLBACK ` | Enable wolfSSL-native per-cert verify callback via the ` TLS_CERT_VERIFY_CALLBACK_WOLFSSL ` socket option |
40+
41+ Existing wolfSSL module options (` WOLFSSL_DTLS ` , ` WOLFSSL_ALPN ` , ` WOLFSSL_PSK ` ,
42+ ` WOLFSSL_TLS_VERSION_1_3 ` , ` WOLFSSL_MAX_FRAGMENT_LEN ` ) are opt-in as usual.
43+
44+ ### Limitations
45+
46+ - TLS 1.0 and 1.1 disabled (` NO_OLD_TLS ` ).
47+ - The mbedTLS-style ` TLS_CERT_VERIFY_CALLBACK ` socket option is not supported on the wolfSSL backend.
48+ - ` TLS_CERT_NOCOPY ` has no effect — certificates are always copied.
49+ - TLS 1.3 0-RTT not wired on the wolfSSL path.
50+ - OCSP and CRL handling is library-internal on both backends; there is no Zephyr socket-option API for it.
51+
1952### Run Zephyr TLS samples
2053
2154```
@@ -31,3 +64,8 @@ west build -b <your_board> tests/net/socket/tls_ext/ -DEXTRA_CONF_FILE=overlay-w
3164```
3265west build -b <your_board> tests/net/socket/tls/ -DEXTRA_CONF_FILE=overlay-wolfssl.conf
3366```
67+
68+ ### References
69+
70+ - Zephyr TLS sockets: https://docs.zephyrproject.org/latest/connectivity/networking/api/sockets.html
71+ - wolfSSL Zephyr module: https://github.com/wolfSSL/wolfssl/tree/master/zephyr
0 commit comments