Expand description
§RustCrypto: Prime Order Elliptic Curve Formulas
Pure Rust implementation of complete addition formulas for prime order elliptic curves (Renes-Costello-Batina 2015). Generic over field elements and curve equation coefficients.
§About
This crate provides a generic implementation of complete formulas for prime order elliptic curves which are defined by the short Weierstrass equation:
y² = x³ + ax + bIt’s used to implement the following elliptic curves:
§⚠️ Security Warning
The elliptic curve arithmetic contained in this crate has never been independently audited!
This crate has been designed with the goal of ensuring that secret-dependent
operations are performed in constant time (using the subtle crate and
constant-time formulas). However, it has not been thoroughly assessed to ensure
that generated assembly is constant time on common CPU architectures.
USE AT YOUR OWN RISK!
§License
All crates licensed under either of:
at your option.
§Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Re-exports§
pub use elliptic_curve;pub use elliptic_curve::array;
Modules§
- osswu
hash2curve - Optimized simplified Shallue-van de Woestijne-Ulas methods.
- point_
arithmetic - Point arithmetic implementation optimised for different curve equations
Macros§
- test_
projective_ arithmetic dev - Implement projective arithmetic tests.
Structs§
- Affine
Point - Point on a Weierstrass curve in affine coordinates.
- Projective
Point - Point on a Weierstrass curve in projective coordinates.
Traits§
- Double
- Double a point (i.e. add it to itself)
- Field
- This trait represents an element of a field.
- Prime
Curve - Marker trait for elliptic curves with prime order.
- Prime
Curve Params - Parameters for elliptic curves of prime order which can be described by the short Weierstrass equation.
- Prime
Curve With Basepoint Table Vartime allocandbasepoint-table - Trait which allows curves to specify a variable-time basepoint table.
- Prime
Field - This represents an element of a non-binary prime field.
- Retrieve
- A generalization for numbers kept in optimized representations (e.g. Montgomery) that can be converted back to the original form.
Type Aliases§
- Field
Bytes - Byte representation of a base/scalar field element of a given curve.
- Scalar
arithmetic - Scalar field element for a particular elliptic curve.