Skip to main content

Crate primeorder

Crate primeorder 

Source
Expand description

§RustCrypto: Prime Order Elliptic Curve Formulas

crate Docs Build Status Apache2/MIT licensed Rust Version Project Chat

Pure Rust implementation of complete addition formulas for prime order elliptic curves (Renes-Costello-Batina 2015). Generic over field elements and curve equation coefficients.

Documentation

§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 + b

It’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§

osswuhash2curve
Optimized simplified Shallue-van de Woestijne-Ulas methods.
point_arithmetic
Point arithmetic implementation optimised for different curve equations

Macros§

test_projective_arithmeticdev
Implement projective arithmetic tests.

Structs§

AffinePoint
Point on a Weierstrass curve in affine coordinates.
ProjectivePoint
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.
PrimeCurve
Marker trait for elliptic curves with prime order.
PrimeCurveParams
Parameters for elliptic curves of prime order which can be described by the short Weierstrass equation.
PrimeCurveWithBasepointTableVartimealloc and basepoint-table
Trait which allows curves to specify a variable-time basepoint table.
PrimeField
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§

FieldBytes
Byte representation of a base/scalar field element of a given curve.
Scalararithmetic
Scalar field element for a particular elliptic curve.