ecrust-protocol
Protocol-oriented building blocks built on top of the ecrust field and curve crates.
This crate currently contains small, reusable components such as fixed-width secret scalars, elliptic-curve Diffie-Hellman, and elliptic-curve ElGamal.
What is in this crate?
SecretScalar<LIMBS>EcdhEcElGamal
Adding it to your project
[]
= { = "ecrust-protocol", = "0.1" }
= { = "ecrust-ec", = "0.1" }
= { = "ecrust-fp", = "0.1" }
Or use the umbrella crate:
[]
= "0.1"
and import from ecrust::protocol.
Status
The protocol layer provides a convenient structure for experimentation and teaching, but it should still be treated as alpha. It is not yet a production-grade cryptographic toolkit.
Side-channel note
The crate is designed with constant-time-friendly APIs in mind, but it inherits the security properties of the underlying curve implementations. Until the curve backends are fully hardened, this crate should be considered experimental.
Related crates
ecrust-fp: finite-field arithmeticecrust-ec: elliptic-curve abstractionsecrust-isogeny: isogeny scaffoldingecrust: umbrella crate re-exporting the full stack
Authors
- Gustavo Banegas
- Martin Azon
- Sam Frengley
License
Apache-2.0