lit_rust_crypto/
lib.rs

1#[cfg(any(feature = "bls12_381_plus", feature = "rust"))]
2pub use bls12_381_plus;
3#[cfg(any(feature = "blst", feature = "rust"))]
4pub use blsful;
5#[cfg(any(feature = "blstrs_plus", feature = "blst"))]
6pub use blstrs_plus;
7#[cfg(feature = "curve25519-dalek")]
8pub use curve25519_dalek;
9#[cfg(feature = "decaf377")]
10pub use decaf377;
11#[cfg(feature = "ed448-goldilocks")]
12pub use ed448_goldilocks;
13#[cfg(feature = "jubjub")]
14pub use jubjub;
15#[cfg(feature = "k256")]
16pub use k256;
17#[cfg(feature = "p256")]
18pub use p256;
19#[cfg(feature = "p384")]
20pub use p384;
21#[cfg(feature = "pasta")]
22pub use pasta::{self, pallas, vesta};
23#[cfg(feature = "vsss-rs")]
24pub use vsss_rs::{self, curve25519};
25
26pub use elliptic_curve;
27pub use elliptic_curve::ff;
28pub use elliptic_curve::group;
29#[cfg(feature = "hash2curve")]
30pub use elliptic_curve::hash2curve;
31
32#[cfg(feature = "arithmetic")]
33pub use elliptic_curve::ops as ec_ops;
34
35#[cfg(feature = "jubjub")]
36pub fn red_jubjub_signing_generator() -> jubjub::SubgroupPoint {
37    // use group::cofactor::CofactorGroup;
38    //
39    // const SPEND_AUTH_SIG_BASEPOINT_BYTES: [u8; 32] = [
40    //     48, 181, 242, 170, 173, 50, 86, 48, 188, 221, 219, 206, 77, 103, 101, 109, 5, 253, 28, 194,
41    //     208, 55, 187, 83, 117, 182, 233, 109, 158, 1, 161, 215,
42    // ];
43    // let pt: jubjub::ExtendedPoint = jubjub::AffinePoint::from_bytes(&SPEND_AUTH_SIG_BASEPOINT_BYTES)
44    //     .expect("to create extended point")
45    //     .into();
46    // pt.into_subgroup().expect("to convert to subgroup")
47    jubjub::SubgroupPoint::new_unchecked(
48        [
49            0x9fea675eb63e8cf6,
50            0x15ba8508eb7f13c5,
51            0x87a02da79c8b7ef8,
52            0xaf4897169c1851e,
53        ],
54        [
55            0xfb63146264e65a56,
56            0x77f3f8c6fd45d5e5,
57            0x8770a243986a6eb9,
58            0x6dde055ca112d037,
59        ],
60        [
61            0x00000001fffffffe,
62            0x5884b7fa00034802,
63            0x998c4fefecbc4ff5,
64            0x1824b159acc5056f,
65        ],
66        [
67            0x9fea675eb63e8cf6,
68            0x15ba8508eb7f13c5,
69            0x87a02da79c8b7ef8,
70            0x0af4897169c1851e,
71        ],
72        [
73            0xfb63146264e65a56,
74            0x77f3f8c6fd45d5e5,
75            0x8770a243986a6eb9,
76            0x6dde055ca112d037,
77        ],
78    )
79}
80
81#[cfg(feature = "pasta")]
82pub fn red_pallas_signing_generator() -> pallas::Point {
83    // use group::GroupEncoding;
84    // const SPEND_AUTH_SIG_BASEPOINT_BYTES: [u8; 32] = [
85    //     99, 201, 117, 184, 132, 114, 26, 141, 12, 161, 112, 123, 227, 12, 127, 12, 95, 68, 95, 62, 124,
86    //     24, 141, 59, 6, 214, 241, 40, 179, 35, 85, 183,
87    // ];
88    // pallas::Affine::from_bytes(&SPEND_AUTH_SIG_BASEPOINT_BYTES.into())
89    //     .expect("to affine point")
90    //     .into()
91    pallas::Point::new_unchecked(
92        [
93            0x490f248c0abc8698,
94            0x8f66e9e53afc5a4a,
95            0x8a4b3d0435fe217d,
96            0x1088a0c632c10d0b,
97        ],
98        [
99            0xe6900acd3de44a97,
100            0x24ecf6ed2f7b5e04,
101            0x79d25b841a7b961d,
102            0x0cfbbe1efe9c580b,
103        ],
104        [
105            0x34786d38fffffffd,
106            0x992c350be41914ad,
107            0xffffffffffffffff,
108            0x3fffffffffffffff,
109        ],
110    )
111}