Expand description
§CurveForge
CurveForge is a Rust crate that provides concrete implementations of elliptic curves and models built using the curveforge_traits and curveforge_macro libraries.
It serves as a showcase and testbed for curve and field definitions written with curveforge_macro, implementing standard and custom elliptic curve constructions in a modular and ergonomic way.
§Provided Models
Curveforge includes implementations of several elliptic curve models in the models module:
| Model Name | Feature Flag |
|---|---|
| Double-Odd | double_odd |
| Short Weierstrass | short_weierstrass |
| Montgomery | montgomery |
| Twisted Edwards | twisted_edwards |
§Provided Curves
Curveforge includes implementations of several well-known elliptic curves, each associated with a specific model in the curves module:
| Curve Name | Feature Flag | Underlying Model |
|---|---|---|
| NIST P256 and P384 | nist | Short Weierstrass |
| Jq255s | jq255s | Double-Odd |
| Curve25519 | curve25519 | Montgomery |
| Curve448 | curve448 | Montgomery |
| Ed25519 | ed25519 | Twisted Edwards |
| rtr family | rtr | Various (mainly Double-Odd) |
Enable features in your Cargo.toml as needed to include these curves and models.
Enabling a curve will automatically enable its underlying model.