ecrust-protocol 0.1.1

Protocol-oriented building blocks built on top of the ecrust field and curve crates.
Documentation

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>
  • Ecdh
  • EcElGamal

Adding it to your project

[dependencies]
protocol = { package = "ecrust-protocol", version = "0.1" }
ec = { package = "ecrust-ec", version = "0.1" }
fp = { package = "ecrust-fp", version = "0.1" }

Or use the umbrella crate:

[dependencies]
ecrust = "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 arithmetic
  • ecrust-ec: elliptic-curve abstractions
  • ecrust-isogeny: isogeny scaffolding
  • ecrust: umbrella crate re-exporting the full stack

Authors

  • Gustavo Banegas
  • Martin Azon
  • Sam Frengley

License

Apache-2.0