forked from penumbra-zone/decaf377
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Cargo.toml
103 lines (95 loc) · 3.04 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
[package]
name = "decaf377"
version = "0.10.1"
authors = [
"Henry de Valence <[email protected]>",
"redshiftzero <[email protected]>",
]
description = "A prime-order group designed for use in SNARKs over BLS12-377"
edition = "2021"
license = "MIT OR Apache-2.0"
[dependencies]
blake2 = { version = "0.10", optional = true }
elliptic-curve = { version = "0.13", default-features = false, features = ["arithmetic", "bits", "ff", "group", "hash2curve"], optional = true }
gennaro-dkg = { version = "1.0.0-rc1", optional = true }
# no-alloc, no-std
cfg-if = "1.0"
hex = { version = "=0.4.3", default-features = false }
subtle = { version = "2.6", default-features = false }
rand_core = { version = "0.6", default-features = false }
zeroize = { version = "1.8", default-features = false }
# no-std
num-bigint = { version = "0.4.4", optional = true, default-features = false }
# std
hashbrown = { version = "0.15", optional = true }
ark-relations = { version = "0.4", optional = true }
ark-r1cs-std = { version = "0.4", optional = true }
ark-std = { version = "0.4", optional = true }
ark-ec = { version = "0.4", optional = true }
ark-ff = { version = "0.4", optional = true }
ark-serialize = { version = "0.4", optional = true }
ark-bls12-377 = { version = "0.4", optional = true }
ark-ed-on-bls12-377 = { version = "0.4", optional = true }
ark-groth16 = { version = "0.4", optional = true }
ark-snark = { version = "0.4", optional = true }
once_cell = { version = "1.8", optional = true, default-features = false }
# This matches what ark-std (a library for no_std compatibility) does, having
# a default feature of std - without the ark-std std feature, decaf377 doesn't
# compile
[features]
default = ["arkworks", "ecc-group"]
alloc = ["once_cell/alloc", "zeroize/alloc", "rand_core/alloc"]
std = [
"alloc",
"zeroize/std",
"once_cell/std",
"num-bigint/std",
"hex/std",
"subtle/std",
"rand_core/std"
]
parallel = [
"ark-ff/parallel",
"ark-ec/parallel",
"ark-groth16/parallel",
"ark-std/parallel",
"ark-r1cs-std/parallel",
]
# TODO: eventually, feature-gate all arkworks deps behind this feature.
arkworks = [
"std",
"ark-std",
"ark-ec",
"ark-ff",
"ark-serialize",
"ark-bls12-377",
"ark-ed-on-bls12-377",
"hashbrown",
]
ecc-group = ["blake2", "elliptic-curve", "gennaro-dkg"]
r1cs = ["arkworks", "ark-groth16", "ark-r1cs-std", "ark-relations", "ark-snark"]
u32_backend = []
[dev-dependencies]
proptest = "1"
criterion = { version = "0.5", features = ["html_reports"] }
rand_core = { version = "0.6.3", features = ["getrandom"] }
rand_chacha = "0.3"
anyhow = { version = "1.0" }
[[test]]
name = "encoding"
required-features = ["arkworks"]
[[test]]
name = "groth16_gadgets"
required-features = ["r1cs"]
[[test]]
name = "operations"
required-features = ["arkworks"]
[[bench]]
name = "sqrt"
harness = false
required-features = ["arkworks"]
# Create profile for running checks in CI that are mostly "release" mode,
# but also checking the `debug_assert `lines.
[profile.ci]
inherits = "release"
debug-assertions = true