ark-crypto-primitives 0.5.0

A library of useful cryptographic primitives
Documentation
[package]
name = "ark-crypto-primitives"
description.workspace = true
documentation.workspace = true
keywords.workspace = true
version.workspace = true
authors.workspace = true
homepage.workspace = true
repository.workspace = true
categories.workspace = true
include.workspace = true
license.workspace = true
edition.workspace = true

################################# Dependencies ################################

[dependencies]
ark-crypto-primitives-macros = { version = "0.5.0-alpha", path = "../macros" }

ark-ff = { version = "0.5.0", default-features = false }
ark-ec = { version = "0.5.0", default-features = false }
ark-std = { version = "0.5.0", default-features = false }
ark-relations = { version = "0.5.0", default-features = false }
ark-serialize = { version = "0.5.0", default-features = false, features = [ "derive" ] }

blake2 = { version = "0.10", default-features = false }
sha2 = { version = "0.10", default-features = false }
digest = { version = "0.10", default-features = false }
merlin = { version = "3.0.0", default-features = false, optional = true }

ark-r1cs-std = { version = "0.5.0", optional = true, default-features = false }
ark-snark = { version = "0.5.0", default-features = false }

rayon = { version = "1.0", optional = true }
derivative = { version = "2.0", features = ["use_core"] }
tracing = { version = "0.1", default-features = false, features = [ "attributes" ], optional = true }
hashbrown = { version = "0.14", default-features = false, features = ["inline-more", "allocator-api2"], optional = true  }

[features]
default = ["std"]
std = [ "ark-ff/std", "ark-ec/std", "ark-std/std", "ark-relations/std" ]
print-trace = [ "ark-std/print-trace" ]
parallel = [ "std", "rayon", "ark-ec/parallel", "ark-std/parallel", "ark-ff/parallel" ]
r1cs = [ "ark-r1cs-std", "tracing" ]
crh = [ "sponge" ]
sponge = [ "merlin" ]
commitment = [ "crh" ]
merkle_tree = ["crh", "hashbrown"]
encryption = []
prf = []
snark = []
signature = []

[target.'cfg(all(target_has_atomic = "8", target_has_atomic = "16", target_has_atomic = "32", target_has_atomic = "64", target_has_atomic = "ptr"))'.dependencies]
ahash = { version = "0.8", default-features = false}

[target.'cfg(not(all(target_has_atomic = "8", target_has_atomic = "16", target_has_atomic = "32", target_has_atomic = "64", target_has_atomic = "ptr")))'.dependencies]
fnv = { version = "1.0", default-features = false }

[dev-dependencies]
ark-ed-on-bls12-377 = { version = "0.5.0", default-features = false }
ark-ed-on-bls12-381 = { version = "0.5.0", default-features = false, features = [ "r1cs" ] }
ark-bls12-377 = { version = "0.5.0", default-features = false, features = [ "curve", "r1cs" ] }
ark-mnt4-298 = { version = "0.5.0", default-features = false, features = [ "curve", "r1cs" ] }
ark-mnt6-298 = { version = "0.5.0", default-features = false, features = [ "r1cs" ] }
criterion = { version = "0.4" }

################################# Benchmarks ##################################

[[bench]]
name = "pedersen_crh"
path = "benches/crh.rs"
harness = false
required-features = [ "crh" ]

[[bench]]
name = "pedersen_comm"
path = "benches/comm.rs"
harness = false
required-features = [ "commitment" ]

[[bench]]
name = "blake2s_prf"
path = "benches/prf.rs"
harness = false
required-features = [ "prf" ]

[[bench]]
name = "schnorr_sig"
path = "benches/signature.rs"
harness = false
required-features = [ "signature" ]

[[bench]]
name = "merkle_tree"
path = "benches/merkle_tree.rs"
harness = false
required-features = [ "merkle_tree" ]