WolfSSL Sucks Too, So Now What?

Devs rage over broken TLS rules, pivot to BearSSL, rustls, and NanoSSL

TLDR: WolfSSL is accused of breaking TLS 1.3’s “compatibility mode” rules, making it unreliable with some clients. Commenters turned the thread into a pick-your-poison showdown—championing BearSSL, rustls, and DigiCert’s NanoSSL—while joking about confusing names and debating speed vs standards for the web’s safety

The internet’s security soap opera just dropped a plot twist: a dev claims WolfSSL ignores a key part of the TLS 1.3 playbook—the “compatibility mode” that helps new secure connections survive cranky network boxes—by locking it behind a compile switch. Translation: it may not play nice with certain apps, and people are salty. After trying it with HAProxy on FreeBSD, the author hit bugs, dug in, and concluded WolfSSL isn’t following the rules. Cue the chorus: OpenSSL is slow, corporate forks like Google’s and Amazon’s are too self-centered, and middleboxes are the villains in this saga.

The comments? A full-on library cage match. One camp yells, “Now what? BearSSL,” with fans pointing to BearSSL and its minimalist vibe—plus a cheeky note that it still had a commit last year. Another crowd calmly says, “There’s always rustls,” the Rust-based darling promising safety and modernity. Then a suit-and-tie cameo: NanoSSL by DigiCert, complete with links to TrustCore and its shiny docs. The naming meme pops off too: “We need something with TLS in the name,” because, honestly, everyone’s drowning in Wolf/Bear/Open/Boring alphabet soup. The drama boils down to speed vs standards, animal mascots vs corporate logos, and one big question: who can we actually trust for secure connections

Key Points

  • The article investigates a TLS 1.3 interoperability issue observed when using HAProxy linked with wolfSSL on FreeBSD.
  • TLS 1.3 (RFC 8446) includes an optional middlebox compatibility mode: clients may send a non-empty session ID and, if so, servers must send dummy change_cipher_spec.
  • The article states wolfSSL controls middlebox compatibility via a compile-time flag (-DWOLFSSL_TLS13_MIDDLEBOX_COMPAT), enforcing always-on or always-off behavior.
  • This approach can conflict with RFC 8446’s partially negotiated compatibility behavior and lead to client interoperability issues.
  • Erlang/OTP’s ssl library, which enables middlebox compatibility by default, is cited as an example affected by this discrepancy.

Hottest takes

"We need something with TLS in the name for the next one so people stop getting confused" — ospray
"Now what? BearSSL" — MrBuddyCasino
"There’s always rustls" — eptcyka
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.