A collection of pure Rust elliptic curve implementations for NIST, secp256k1, SM2, and other standard curves.
RustCrypto Elliptic Curves is a collection of pure Rust implementations of standardized elliptic curves used in cryptography. It provides the foundational components for Elliptic Curve Cryptography (ECC), including types for curves, scalars, points, and keys, enabling developers to build secure cryptographic applications without relying on external C libraries.
Rust developers building cryptographic applications, embedded systems, or WebAssembly projects that require elliptic curve operations. It is particularly suited for those needing NIST, secp256k1, or SM2 curve support in a memory-safe, no-std environment.
Developers choose this library for its pure Rust implementation, which eliminates safety risks associated with foreign code, and its no-std capability, making it versatile for embedded and WebAssembly use. It offers a modular, well-tested suite of curves under a permissive dual license.
Collection of pure Rust elliptic curve implementations: NIST P-224, P-256, P-384, P-521, secp256k1, SM2
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
All implementations are in pure Rust, eliminating memory safety risks from foreign C code and aligning with the project's emphasis on correctness and safety.
Every crate is no-std capable, making it suitable for constrained environments like embedded systems or WebAssembly, as stated in the README.
Supports multiple standardized curves including NIST P-256, secp256k1, SM2, and brainpool, covering diverse cryptographic needs from blockchain to government standards.
Each curve is provided as a separate crate (e.g., `k256` for secp256k1), allowing developers to minimize dependencies and include only what they need.
Provides only primitive ECC types and traits, requiring significant cryptographic expertise to implement full protocols like ECDSA or ECDH without additional libraries.
Focuses on curve arithmetic; lacks built-in support for common cryptographic operations, forcing developers to piece together protocols themselves.
README is minimal with mostly crate links, and while documentation exists, it may lack practical examples, making onboarding challenging for newcomers.