[package] name = "cmz" version = "0.3.0" edition = "2021" license = "MIT" repository = "https://git-crysp.uwaterloo.ca/SigmaProtocol/cmz" description = "A crate to automatically create protocols that use CMZ14 or µCMZ credentials, by specifying an extremely compact description of the protocol." [dependencies] cmz-derive = "=0.3.0" ff = "0.13" generic_static = "0.2" group = "0.13" hash2group = { version = "0.1.1", features = [ "rfc9380" ] } hex = { version = "0.4", features = [ "serde" ] } lazy_static = "1" postcard = { version = "1", features = [ "alloc" ] } rand = "0.8.5" serde = { version = "1", features = [ "derive" ] } serde_bytes = "0.11" serde_with = "3" sha2 = "0.11" sigma-compiler = "0.2.3" thiserror = "2" [dev-dependencies] chrono = "0.4" curve25519-dalek = { version = "4", features = [ "group", "rand_core" ] } # Used for testing co-habitating with a second PrimeGroup. p256 = { version = "0.13", features = [ "arithmetic" ] } # Enable both test group implementations regardless of the cmz feature set. hash2group = { version = "0.1.1", features = [ "curve25519-dalek", "p256" ] } [patch.crates-io] cmz-derive = { path = "cmz-derive" } cmz-core = { path = "cmz-core" } # Until the draft-v3 line of these crates is released, take them from the # branches the rewrite lives on. sigma-compiler = { git = "https://github.com/sigma-rs/sigma-compiler", branch = "mu/draft-v3" } sigma-compiler-derive = { git = "https://github.com/sigma-rs/sigma-compiler", branch = "mu/draft-v3" } sigma-compiler-core = { git = "https://github.com/sigma-rs/sigma-compiler", branch = "mu/draft-v3" } sigma-proofs = { git = "https://github.com/sigma-rs/sigma-proofs", branch = "mu/draft-v3" } spongefish = { git = "https://github.com/arkworks-rs/spongefish", branch = "mu/draft-v3" } [features] # Hash-to-group implementations available to the automatic CMZ generator # derivation. Ristretto remains the default group used by the examples and # downstream applications; other groups are opt-in to avoid pulling every # curve implementation into every build. default = [ "curve25519-dalek" ] curve25519-dalek = [ "hash2group/curve25519-dalek" ] k256 = [ "hash2group/k256" ] p256 = [ "hash2group/p256" ] # Dump (to stdout or to a string) the value of the instance on both the # prover's and verifier's side. They should match. dump = [ "sigma-compiler/dump" ] # If the group::WnafBase multiplication implementation becomes constant # time (and faster than not using it), turn this on. wnaf_is_constant_time = []