ark_bw6_767/
lib.rs

1#![cfg_attr(not(feature = "std"), no_std)]
2#![deny(
3    warnings,
4    unused,
5    future_incompatible,
6    nonstandard_style,
7    rust_2018_idioms
8)]
9#![forbid(unsafe_code)]
10
11//! This module implements the BW6_767 curve generated by [\[El Housni and Guillevic\]](https://hackmd.io/@gnark/bw6_bls12381),
12//! using their generic approach described in [\[HG21\]](https://eprint.iacr.org/2021/1359).
13//! The name denotes that it is a curve generated using the Brezing--Weng
14//! method, and that its embedding degree is 6.
15//! The main feature of this curve is that the scalar field equals the base
16//! field of the BLS12_381 curve.
17//!
18//! Curve information:
19//! * Base field: q = 496597749679620867773432037469214230242402307330180853437434581099336634619713640485778675608223760166307530047354464605410050411581079376994803852937842168733702867087556948851016246640584660942486895230518034810309227309966899431
20//! * Scalar field: r = 4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787
21//! * valuation(q - 1, 2) = 1
22//! * valuation(r - 1, 2) = 1
23//!
24//! G1 curve equation: y^2 = x^3 + Ax + B, where
25//! * A = 0,
26//! * B = 1
27//!
28//! G2 curve equation: y^2 = x^3 + Ax + B, where
29//! * A = 0
30//! * B = 3
31
32mod curves;
33mod fields;
34
35pub use curves::*;
36pub use fields::*;