A single-file TLS 1.0-1.3 and DTLS implementation in C, using libtomcrypt for cryptography.
TLSe is a single-file TLS and DTLS implementation written in C, designed as a lightweight alternative to larger libraries like OpenSSL. It provides secure socket communication for applications ranging from embedded devices to servers, using libtomcrypt for cryptographic operations. The library supports TLS versions 1.0 through 1.3, DTLS, and additional features like SRTP and WebRTC integration.
C developers building networked applications, embedded systems engineers, and anyone needing a minimal, dependency-free TLS stack. It's particularly suited for projects where portability and simplicity are more critical than a full-featured SSL library.
Developers choose TLSe for its extreme simplicity—just one C file—and its focus on essential TLS functionality without bloat. It offers a unique combination of modern protocol support, context serialization for scaling, and the flexibility to work with both blocking and non-blocking I/O.
Single C file TLS 1.2/1.3 implementation, using tomcrypt as crypto library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The entire library is contained in tlse.c, allowing integration with just a #include directive, which drastically reduces dependency management overhead.
Implements TLS 1.0 to 1.3 and DTLS, including modern ciphers like ChaCha20/Poly1305, as detailed in the features list for secure communication across versions.
Supports exporting and importing TLS contexts across processes via tls_export_context and tls_import_context, enabling load balancing in preforked server architectures.
Offers both low-level non-blocking interfaces for asynchronous sockets and high-level blocking libssl-style calls, catering to diverse I/O models.
The README admits DTLS lacks a state machine, exposing UDP servers to denial-of-service attacks, making it unsuitable for security-critical UDP applications.
Client-side TLS 1.3 support is explicitly marked as experimental, not production-ready, limiting its use in modern client implementations.
Requires specific compiler flags like -DTLS_AMALGAMATION and dependencies on libtomcrypt, with multiple options that can complicate the setup process.
tlse is an open-source alternative to the following products:
An open-source SSL/TLS library designed for embedded systems, providing cryptographic and SSL/TLS functionality with a small code footprint.
GnuTLS is a secure communications library implementing SSL, TLS and DTLS protocols and related technologies.
OpenSSL is a robust, full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols, providing cryptographic libraries and command-line tools.