|
#![cfg_attr(not(feature = "std"), no_std)]
|
|
#![deny(
|
|
warnings,
|
|
unused,
|
|
future_incompatible,
|
|
nonstandard_style,
|
|
rust_2018_idioms
|
|
)]
|
|
#![forbid(unsafe_code)]
|
|
|
|
//! This library implements the BLS12_381 curve generated by [Sean Bowe](https://electriccoin.co/blog/new-snark-curve/).
|
|
//! The name denotes that it is a Barreto--Lynn--Scott curve of embedding degree
|
|
//! 12, defined over a 381-bit (prime) field.
|
|
//! This curve was intended to replace the BN254 curve to provide a higher
|
|
//! security level without incurring a large performance overhead.
|
|
//!
|
|
//!
|
|
//! Curve information:
|
|
//! * Base field: q = 4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787
|
|
//! * Scalar field: r =
|
|
//! 52435875175126190479447740508185965837690552500527637822603658699938581184513
|
|
//! * valuation(q - 1, 2) = 1
|
|
//! * valuation(r - 1, 2) = 32
|
|
//! * G1 curve equation: y^2 = x^3 + 4
|
|
//! * G2 curve equation: y^2 = x^3 + Fq2(4, 4)
|
|
|
|
#[cfg(feature = "curve")]
|
|
mod curves;
|
|
mod fields;
|
|
|
|
#[cfg(feature = "curve")]
|
|
pub use curves::*;
|
|
pub use fields::*;
|