A pure-Rust implementation of X25519 elliptic curve Diffie-Hellman key exchange with side-channel resistance.
x25519-dalek is a pure-Rust implementation of the X25519 elliptic curve Diffie-Hellman key exchange protocol. It enables secure key agreement between parties over insecure channels by implementing the RFC7748 specification. The library provides both low-level and high-level APIs for static and ephemeral Diffie-Hellman operations.
Rust developers building cryptographic applications that require secure key exchange, such as encrypted messaging systems, VPNs, or secure channel protocols.
Developers choose x25519-dalek for its memory safety guarantees as a pure-Rust implementation, side-channel resistance features, and compliance with the RFC7748 standard while offering flexible backend options for different security requirements.
X25519 elliptic curve Diffie-Hellman key exchange in pure-Rust, using curve25519-dalek.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements X25519 entirely in Rust without C dependencies, ensuring memory safety and easy integration, as highlighted in the README's key features.
Uses curve25519-dalek's best-effort protections to mitigate software timing attacks, enhancing security for sensitive applications.
Offers both a low-level byte-oriented function matching RFC7748 and a high-level Rust API for static and ephemeral Diffie-Hellman, providing flexibility.
Supports multiple cryptographic backends like fiat for formally verified code, allowing customization based on security or performance needs.
The repository is read-only and has been merged into curve25519-dalek, meaning no new updates, bug fixes, or active support.
Prioritizes correctness and safety over performance, which may result in slower operations compared to optimized C-based alternatives.
Relies heavily on curve25519-dalek for curve operations, adding complexity and potential bloat rather than being a self-contained solution.