A pure-Rust implementation of common cryptographic algorithms with a focus on auditability and minimal assembly.
Rust-Crypto is a cryptographic library that provides pure-Rust implementations of common algorithms like AES, SHA, ChaCha20, and Ed25519. It solves the need for auditable, portable cryptography in Rust projects by minimizing platform-specific assembly code and supporting multiple architectures. The library focuses on practicality and compatibility with the stable Rust ecosystem.
Rust developers who need cryptographic functionality in their applications, particularly those prioritizing code auditability, portability across x86-64, x86, and ARM, and adherence to stable Rust conventions.
Developers choose Rust-Crypto for its emphasis on pure-Rust implementations, which enhances security auditability and reduces unsafe code, along with its broad algorithm support and multi-architecture compatibility without relying heavily on external dependencies.
A (mostly) pure-Rust implementation of various cryptographic algorithms.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Most algorithms are implemented in Rust with minimal unsafe code, making security reviews easier and aligning with the project's emphasis on auditable cryptography.
Covers symmetric ciphers, hashes, MACs, and elliptic curves like AES, SHA, and Ed25519, providing comprehensive tools for various cryptographic needs as listed in the README.
Supports x86-64, x86, and ARM architectures, enhancing portability, though the README notes that x86-64 receives the most testing.
Targets the current stable Rust toolchain, ensuring compatibility with modern ecosystems and reducing issues from outdated versions.
The README explicitly states that Rust-Crypto has not been thoroughly audited, making it unsuitable for any use where security is important.
While multiple architectures are supported, x86-64 is the most tested, which could lead to undiscovered bugs or performance gaps on ARM or x86 systems.
Version 0.2 indicates it's not yet mature, potentially involving breaking changes or limited stability for long-term production deployments.