[package]
name = "modular-frost"
version = "0.8.1"
description = "Modular implementation of FROST over ff/group"
license = "MIT"
repository = "https://github.com/serai-dex/serai/tree/develop/crypto/frost"
authors = ["Luke Parker <lukeparker5132@gmail.com>"]
keywords = ["frost", "multisig", "threshold"]
edition = "2021"
rust-version = "1.80"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[lints]
workspace = true

[dependencies]
thiserror = { version = "2", default-features = false, features = ["std"] }

rand_core = { version = "0.6", default-features = false, features = ["std"] }
rand_chacha = { version = "0.3", default-features = false, features = ["std"] }

zeroize = { version = "^1.5", default-features = false, features = ["std", "zeroize_derive"] }
subtle = { version = "^2.4", default-features = false, features = ["std"] }

hex = { version = "0.4", default-features = false, features = ["std"], optional = true }

digest = { version = "0.10", default-features = false, features = ["std"] }
transcript = { package = "flexible-transcript", path = "../transcript", version = "^0.3.2", default-features = false, features = ["std", "recommended"] }

dalek-ff-group = { path = "../dalek-ff-group", version = "0.4", default-features = false, features = ["std"], optional = true }
minimal-ed448 = { path = "../ed448", version = "0.4", default-features = false, features = ["std"], optional = true }

ciphersuite = { path = "../ciphersuite", version = "^0.4.1", default-features = false, features = ["std"] }

multiexp = { path = "../multiexp", version = "0.4", default-features = false, features = ["std", "batch"] }

schnorr = { package = "schnorr-signatures", path = "../schnorr", version = "^0.5.1", default-features = false, features = ["std"] }

dkg = { path = "../dkg", version = "^0.5.1", default-features = false, features = ["std"] }

[dev-dependencies]
hex = "0.4"
serde_json = { version = "1", default-features = false, features = ["std"] }

dkg = { path = "../dkg", features = ["tests"] }

[features]
ed25519 = ["dalek-ff-group", "ciphersuite/ed25519"]
ristretto = ["dalek-ff-group", "ciphersuite/ristretto"]

secp256k1 = ["ciphersuite/secp256k1"]
p256 = ["ciphersuite/p256"]

ed448 = ["minimal-ed448", "ciphersuite/ed448"]

tests = ["hex", "rand_core/getrandom", "dkg/tests"]
