#pragma once // TLS posture: framework code depends only on ITlsContext. wolfSSL is NOT // installed in this environment, so only StubTlsContext exists. It refuses // handshakes loudly instead of silently serving plaintext as TLS. // Gap: real wolfSSL-backed context from 03-security.md (TLS 1.3). #include namespace molo::example::fw { class ITlsContext { public: virtual ~ITlsContext() = default; virtual std::string name() const = 0; virtual bool available() const = 0; }; class StubTlsContext : public ITlsContext { public: std::string name() const override; bool available() const override; }; } // namespace molo::example::fw