mirror of
https://github.com/serai-dex/serai.git
synced 2024-12-23 12:09:37 +00:00
a25e6330bd
1) Removes the key image DLEq on the Monero side of things, as the produced signature share serves as a DLEq for it. 2) Removes the nonce DLEqs from modular-frost as they're unnecessary for monero-serai. Updates documentation accordingly. Without the proof the nonces are internally consistent, the produced signatures from modular-frost can be argued as a batch-verifiable CP93 DLEq (R0, R1, s), or as a GSP for the CP93 DLEq statement (which naturally produces (R0, R1, s)). The lack of proving the nonces consistent does make the process weaker, yet it's also unnecessary for the class of protocols this is intended to service. To provide DLEqs for the nonces would be to provide PoKs for the nonce commitments (in the traditional Schnorr case).
111 lines
3.7 KiB
TOML
111 lines
3.7 KiB
TOML
[package]
|
|
name = "monero-serai"
|
|
version = "0.1.4-alpha"
|
|
description = "A modern Monero transaction library"
|
|
license = "MIT"
|
|
repository = "https://github.com/serai-dex/serai/tree/develop/coins/monero"
|
|
authors = ["Luke Parker <lukeparker5132@gmail.com>"]
|
|
edition = "2021"
|
|
rust-version = "1.74"
|
|
|
|
[package.metadata.docs.rs]
|
|
all-features = true
|
|
rustdoc-args = ["--cfg", "docsrs"]
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
std-shims = { path = "../../common/std-shims", version = "^0.1.1", default-features = false }
|
|
|
|
async-trait = { version = "0.1", default-features = false }
|
|
thiserror = { version = "1", default-features = false, optional = true }
|
|
|
|
zeroize = { version = "^1.5", default-features = false, features = ["zeroize_derive"] }
|
|
subtle = { version = "^2.4", default-features = false }
|
|
|
|
rand_core = { version = "0.6", default-features = false }
|
|
# Used to send transactions
|
|
rand = { version = "0.8", default-features = false }
|
|
rand_chacha = { version = "0.3", default-features = false }
|
|
# Used to select decoys
|
|
rand_distr = { version = "0.4", default-features = false }
|
|
|
|
sha3 = { version = "0.10", default-features = false }
|
|
pbkdf2 = { version = "0.12", features = ["simple"], default-features = false }
|
|
|
|
curve25519-dalek = { version = "4", default-features = false, features = ["alloc", "zeroize", "precomputed-tables"] }
|
|
|
|
# Used for the hash to curve, along with the more complicated proofs
|
|
group = { version = "0.13", default-features = false }
|
|
dalek-ff-group = { path = "../../crypto/dalek-ff-group", version = "0.4", default-features = false }
|
|
multiexp = { path = "../../crypto/multiexp", version = "0.4", default-features = false, features = ["batch"] }
|
|
|
|
# Needed for multisig
|
|
transcript = { package = "flexible-transcript", path = "../../crypto/transcript", version = "0.3", default-features = false, features = ["recommended"], optional = true }
|
|
frost = { package = "modular-frost", path = "../../crypto/frost", version = "0.8", default-features = false, features = ["ed25519"], optional = true }
|
|
|
|
monero-generators = { path = "generators", version = "0.4", default-features = false }
|
|
|
|
async-lock = { version = "3", default-features = false, optional = true }
|
|
|
|
hex-literal = "0.4"
|
|
hex = { version = "0.4", default-features = false, features = ["alloc"] }
|
|
serde = { version = "1", default-features = false, features = ["derive", "alloc"] }
|
|
serde_json = { version = "1", default-features = false, features = ["alloc"] }
|
|
|
|
base58-monero = { version = "2", default-features = false, features = ["check"] }
|
|
|
|
# Used for the provided HTTP RPC
|
|
digest_auth = { version = "0.3", default-features = false, optional = true }
|
|
simple-request = { path = "../../common/request", version = "0.1", default-features = false, features = ["tls"], optional = true }
|
|
tokio = { version = "1", default-features = false, optional = true }
|
|
|
|
[build-dependencies]
|
|
dalek-ff-group = { path = "../../crypto/dalek-ff-group", version = "0.4", default-features = false }
|
|
monero-generators = { path = "generators", version = "0.4", default-features = false }
|
|
|
|
[dev-dependencies]
|
|
tokio = { version = "1", features = ["sync", "macros"] }
|
|
|
|
frost = { package = "modular-frost", path = "../../crypto/frost", features = ["tests"] }
|
|
|
|
[features]
|
|
std = [
|
|
"std-shims/std",
|
|
|
|
"thiserror",
|
|
|
|
"zeroize/std",
|
|
"subtle/std",
|
|
|
|
"rand_core/std",
|
|
"rand/std",
|
|
"rand_chacha/std",
|
|
"rand_distr/std",
|
|
|
|
"sha3/std",
|
|
"pbkdf2/std",
|
|
|
|
"multiexp/std",
|
|
|
|
"transcript/std",
|
|
|
|
"monero-generators/std",
|
|
|
|
"async-lock?/std",
|
|
|
|
"hex/std",
|
|
"serde/std",
|
|
"serde_json/std",
|
|
|
|
"base58-monero/std",
|
|
]
|
|
|
|
cache-distribution = ["async-lock"]
|
|
http-rpc = ["digest_auth", "simple-request", "tokio"]
|
|
multisig = ["transcript", "frost", "std"]
|
|
binaries = ["tokio/rt-multi-thread", "tokio/macros", "http-rpc"]
|
|
experimental = []
|
|
|
|
default = ["std", "http-rpc"]
|