-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
131 lines (112 loc) · 3.51 KB
/
Cargo.toml
File metadata and controls
131 lines (112 loc) · 3.51 KB
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
[workspace]
resolver = "2"
members = [
"crates/zipherx-platform",
"crates/zipherx-crypto",
"crates/zipherx-network",
"crates/zipherx-storage",
"crates/zipherx-core",
"crates/zipherx-tor",
"crates/zipherx-ffi",
"crates/uniffi-bindgen",
"platforms/cli",
"bin/zipherx-gui",
]
[workspace.package]
version = "1.1.0"
edition = "2021"
license = "MIT"
[workspace.dependencies]
# NOTE: Cargo.lock provides reproducible builds. Run `cargo update` with care and
# review dependency changes (especially crypto crates) before committing the lockfile.
# Internal crates
zipherx-platform = { path = "crates/zipherx-platform" }
zipherx-crypto = { path = "crates/zipherx-crypto" }
zipherx-network = { path = "crates/zipherx-network" }
zipherx-storage = { path = "crates/zipherx-storage" }
zipherx-core = { path = "crates/zipherx-core" }
zipherx-tor = { path = "crates/zipherx-tor" }
# Zcash/Zclassic crypto (local forks)
zcash_primitives = { path = "libs/zcash_primitives_zcl", features = ["transparent-inputs"] }
zcash_proofs = { path = "libs/zcash_proofs_zcl" }
zcash_address = "0.3"
zcash_note_encryption = "0.4"
incrementalmerkletree = "0.5"
# Elliptic curve / zk-SNARK
jubjub = "0.10"
group = "0.13"
ff = "0.13"
bls12_381 = "0.8"
bellman = "0.14"
equihash = "0.2"
# Symmetric crypto
# SECURITY: Cryptographic crates pinned to exact versions to prevent unreviewed updates.
# Bump these deliberately, audit changelogs, and update Cargo.lock in a dedicated commit.
chacha20poly1305 = "=0.10.1"
aes-gcm = "=0.10.3"
# Hashing
sha2 = "=0.10.9"
sha3 = "0.10"
blake2b_simd = "1.0"
subtle = "2.5"
# Key generation
bip0039 = "0.12"
bech32 = "0.9"
secp256k1 = "0.26"
ripemd = "0.1"
bs58 = "0.5"
rand = "0.8"
rand_core = "0.6"
# Async runtime
tokio = { version = "1", features = ["rt-multi-thread", "sync", "time", "io-util", "net", "macros", "fs"] }
futures = "0.3"
tokio-util = { version = "0.7", features = ["io"] }
# Tor (Arti)
arti-client = { version = "0.37", default-features = false, features = ["tokio", "rustls", "onion-service-client", "onion-service-service", "experimental-api"] }
tor-rtcompat = { version = "0.37", features = ["tokio", "rustls"] }
tor-hsservice = "0.37"
tor-hscrypto = "0.37"
tor-llcrypto = "0.37"
tor-cell = "0.37"
tor-proto = "0.37"
ed25519-dalek = { version = "2.1", features = ["rand_core"] }
# HTTP
# TODO: Upgrade reqwest to 0.12 for maintained TLS stack (hyper 1.x + rustls 0.23).
# reqwest 0.11 pulls ring 0.16.x transitively; upgrading eliminates that unmaintained dep.
reqwest = { version = "0.11", default-features = false, features = ["rustls-tls", "stream", "json"] }
ureq = { version = "2.9", features = ["json"] }
# Database
rusqlite = { version = "0.31", features = ["bundled-sqlcipher-vendored-openssl"] }
# Parallelism
rayon = "1.8"
# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
hex = "0.4"
base64 = "0.21"
# Compression
zstd = "0.13"
# UniFFI
uniffi = "0.28"
# Utilities
once_cell = "1.19"
dirs = "5.0"
socket2 = { version = "0.5", features = ["all"] }
zeroize = "1.8"
thiserror = "1.0"
tracing = "0.1"
tracing-subscriber = "0.3"
libc = "0.2"
memmap2 = "0.9"
url = "2.5"
[profile.release]
lto = true
opt-level = 3
overflow-checks = true
panic = "abort"
strip = "symbols"
[patch.crates-io]
# Override all zcash_primitives dependencies to use our local fork with Zclassic Buttercup support
zcash_primitives = { path = "libs/zcash_primitives_zcl" }
# Local fork with parallel spend proof generation (spend_proof_detached)
zcash_proofs = { path = "libs/zcash_proofs_zcl" }