Skip to main content

Crate curveforge

Crate curveforge 

Source
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 NameFeature Flag
double-odddouble_odd
short Weierstrassshort_weierstrass
Montgomerymontgomery
twisted Edwardstwisted_edwards

§Provided Curves

CurveForge includes implementations of several well-known elliptic curves, each associated with a specific model in the curves module:

Curve NameFeature FlagUnderlying Model
NIST P256 and P384nistshort Weierstrass
Jq255s and Jq255ejq255s, jq255edouble-odd
Curve25519curve25519Montgomery
Curve448curve448Montgomery
Ed25519ed25519twisted Edwards
rtr familyrtrvarious (mainly double-odd)
Pasta cyclepastashort Weierstrass

Enable features in your Cargo.toml as needed to include these curves and models. Enabling a curve will automatically enable its underlying model.

Modules§

curves
models
prelude

Macros§

DoubleOddModel_cgen
DoubleOddModel_cgen_len
DoubleOddModel_spec
MontgomeryModel_cgen
MontgomeryModel_cgen_len
MontgomeryModel_spec
ShortWeierstrassModel_cgen
ShortWeierstrassModel_cgen_len
ShortWeierstrassModel_spec
TwistedEdwardsModel_cgen
TwistedEdwardsModel_cgen_len
TwistedEdwardsModel_spec