Skip to main content

ark_tom256/
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 library implements the tom256 curve and is a copy of the secp256k1 implementation.
12//! Parameters source: <https://neuromancer.sk/std/other/Tom-256#>
13//! Paper: <https://eprint.iacr.org/2021/1183>
14//!
15//! Curve information - in parentheses names from neuromancer.sk:
16//! * Base field: q (p) =
17//!   secp: 115792089237316195423570985008687907852837564279074904382605163141518161494337
18//!   115792089210356248762697446949407573530594504085698471288169790229257723883799
19//! * Scalar field: r (n) =
20//!   secp: 115792089237316195423570985008687907853269984665640564039457584007908834671663
21//!   115792089210356248762697446949407573530086143415290314195533631308867097853951
22//! * Curve equation a (a) =
23//!   secp: 0
24//!   115792089210356248762697446949407573530594504085698471288169790229257723883796
25//! * Curve equation b (b) =
26//!   secp: 7
27//!   81531206846337786915455327229510804132577517753388365729879493166393691077718
28//! * Base point G =
29//!   secp: (55066263022277343669578718895168534326250603453777594175500187360389116729240,
30//!          32670510020758816978083085130507043184471273380659243275938904335757337482424)
31//!   (3, 40902200210088653215032584946694356296222563095503428277299570638400093548589)
32//! * Curve equation: y^2 = x^3 + ax + b
33
34#[cfg(feature = "r1cs")]
35pub mod constraints;
36mod curves;
37mod fields;
38
39pub use curves::*;
40pub use fields::*;