A Rust implementation of TLS 1.2 with support for NIST P-256 ECDHE and chacha20-poly1305.
Suruga is a Rust implementation of the TLS 1.2 protocol, enabling secure encrypted communication over TCP connections. It provides core cryptographic features like NIST P-256 ECDHE and chacha20-poly1305 to establish secure client-server sessions. The project focuses on implementing essential parts of the TLS standard in a memory-safe language.
Rust developers and systems programmers who need to integrate TLS 1.2 functionality into their applications without relying on external C libraries.
Developers choose Suruga for its pure Rust implementation, which offers memory safety and modern cryptographic support like chacha20-poly1305, making it a lightweight alternative to larger TLS libraries.
[INACTIVE] TLS 1.2 implementation in Rust
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Built entirely in Rust, it leverages memory safety to reduce vulnerabilities common in C-based TLS libraries, as highlighted in its focus on security.
Implements chacha20-poly1305 for authenticated encryption and NIST P-256 ECDHE for forward secrecy, offering performance benefits in certain contexts.
The README demonstrates a straightforward Rust API for creating TLS clients with minimal code, easing integration for basic use cases.
Emphasizes core cryptographic components, avoiding bloat and making it suitable for experimental or resource-constrained projects.
The README states it 'implements some core parts,' indicating gaps in the TLS 1.2 specification that could lead to compatibility or security issues.
Limited to TLS 1.2, missing modern features like improved handshake efficiency and enhanced security protocols, which are now industry standards.
Only client-side functionality is shown, with no evident server implementation, restricting its use in full-stack or peer-to-peer applications.
Lacks detailed guides, API references, and error handling examples beyond the basic snippet, increasing the learning curve for debugging or advanced usage.