Skip to content

Add TLS 1.3 Cover Traffic Support (RFC 8446 Appendix E) - #11357

Open
stenslae wants to merge 4 commits into
wolfSSL:masterfrom
stenslae:triage-cover-traffic-test
Open

Add TLS 1.3 Cover Traffic Support (RFC 8446 Appendix E)#11357
stenslae wants to merge 4 commits into
wolfSSL:masterfrom
stenslae:triage-cover-traffic-test

Conversation

@stenslae

@stenslae stenslae commented Sep 2, 2026

Copy link
Copy Markdown
Member

Description

Implemented TLS 1.3 cover traffic, allowing the application to send empty, padded records to obscure actual traffic patterns.

Issue #11086

Testing

Added test coverage

Checklist

  • added tests
  • updated/added doxygen
  • updated appropriate READMEs
  • Updated manual and documentation

@stenslae stenslae self-assigned this Sep 2, 2026

@wolfSSL-Fenrir-bot wolfSSL-Fenrir-bot 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.

Fenrir Automated Review — PR #11357

Scan targets checked: wolfcrypt-rs-bugs, wolfssl-bugs, wolfssl-src

Findings: 1
1 finding(s) posted as inline comments (see file-level comments below)

This review was generated automatically by Fenrir. Reported findings require changes before merge.

Comment thread src/ssl.c
#endif
ssl->options.hrrSentKeyShare = 0;
/* Don't let a request abandoned mid-pending survive object reuse. */
Tls13ClearCoverTraffic(ssl);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Tls13ClearCoverTraffic() called from wolfSSL_clear() under the wrong preprocessor guard · API contract violations

Tls13ClearCoverTraffic() is defined in src/tls13.c, whose body is #if !defined(NO_TLS) && defined(WOLFSSL_TLS13), but the new call site is guarded only by #ifdef WOLFSSL_TLS13. configure.ac:1354 keeps WOLFSSL_TLS13 defined for --disable-tls, so a --disable-tls (non-cryptonly) build compiles ssl.c with an undefined reference. Other TLS-only work in the same function (e.g. TLSX_FreeAll at ssl.c:5736) is guarded with !defined(NO_TLS).

Fix: Change the guard to #if defined(WOLFSSL_TLS13) && !defined(NO_TLS).

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

MemBrowse Memory Report

gcc-arm-cortex-m3

  • FLASH: .text +24 B (+0.0%, 125,691 B / 262,144 B, total: 48% used)

gcc-arm-cortex-m4-dtls13

  • FLASH: .text +384 B (+0.2%, 186,812 B / 1,048,576 B, total: 18% used)

gcc-arm-cortex-m4-openssl-compat

  • FLASH: .text +320 B (+0.0%, 780,972 B / 1,048,576 B, total: 74% used)

gcc-arm-cortex-m4-pq

  • FLASH: .text +448 B (+0.1%, 301,828 B / 1,048,576 B, total: 29% used)

gcc-arm-cortex-m4-rsa-only

  • FLASH: .text +320 B (+0.1%, 332,000 B / 1,048,576 B, total: 32% used)

gcc-arm-cortex-m4-tls13

  • FLASH: .text +448 B (+0.2%, 242,447 B / 262,144 B, total: 92% used)

gcc-arm-cortex-m7-pq

  • FLASH: .text +384 B (+0.1%, 302,724 B / 1,048,576 B, total: 29% used)

gcc-arm-cortex-m7-tls13

  • FLASH: .text +384 B (+0.2%, 242,447 B / 262,144 B, total: 92% used)

linuxkm-standard

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.

2 participants