[package]
name = "spongefish"
authors = ["Michele OrrĂ¹ <m@orru.net>", "Giacomo Fenzi <giacomofenzi@outlook.com>"]
description = "An implementation of the Fiat--Shamir transformation from Duplex Sponges."
documentation = "https://docs.rs/spongefish"
edition.workspace = true
readme.workspace = true
homepage.workspace = true
license.workspace = true
repository.workspace = true
version.workspace = true
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--html-in-header", "doc/katex-header.html", "--cfg", "docsrs"]
[features]
default = ["sha3", "zeroize"]
yolocrypto = []
derive = ["dep:spongefish-derive"]
zeroize = ["dep:zeroize"]
sha2 = ["dep:sha2"]
sha3 = ["dep:sha3"]
blake2 = ["dep:blake2"]
blake3 = ["dep:blake3"]
k12 = ["dep:k12"]
keccak = ["dep:keccak"]
ascon = ["dep:ascon"]
ark-ff = ["dep:ark-ff", "dep:ark-serialize"]
ark-ec = ["ark-ff", "dep:ark-ec"]
bls12_381 = ["dep:bls12_381"]
curve25519-dalek = ["dep:curve25519-dalek"]
k256 = ["dep:k256"]
p256 = ["dep:p256"]
p3-baby-bear = ["dep:p3-baby-bear", "dep:p3-field"]
p3-mersenne-31 = ["dep:p3-mersenne-31", "dep:p3-field"]
p3-koala-bear = ["dep:p3-koala-bear", "dep:p3-field"]
asm = ["ark-ff?/asm"]
std = ["ark-ff?/std", "ark-ec?/std", "ark-serialize?/std"]
risc0-zkp = ["dep:risc0-zkp"]
[dependencies]
ark-ec = { workspace = true, optional = true }
ark-ff = { workspace = true, optional = true }
ark-serialize = { workspace = true, optional = true }
ascon = { version = "^0.4.0", optional = true }
blake2 = { workspace = true, optional = true }
blake3 = { workspace = true, optional = true }
bls12_381 = { workspace = true, optional = true }
curve25519-dalek = { workspace = true, optional = true }
digest = { workspace = true }
k12 = { workspace = true, optional = true }
k256 = { workspace = true, optional = true, features = ["arithmetic"] }
keccak = { workspace = true, optional = true }
p256 = { workspace = true, optional = true, features = ["arithmetic"] }
p3-baby-bear = { workspace = true, optional = true }
p3-field = { workspace = true, optional = true }
p3-koala-bear = { workspace = true, optional = true }
p3-mersenne-31 = { workspace = true, optional = true }
rand = { workspace = true, features = ["getrandom"] }
risc0-zkp = { workspace = true, optional = true }
sha2 = { workspace = true, optional = true }
sha3 = { workspace = true, optional = true }
spongefish-derive = { workspace = true, optional = true }
zeroize = { workspace = true, features = ["zeroize_derive"], optional = true }
[target.'cfg(doc)'.dependencies]
p3-koala-bear = { workspace = true }
sha2 = { workspace = true }
[dev-dependencies]
ark-bls12-381 = { workspace = true }
ark-curve25519 = { workspace = true }
ark-pallas = { workspace = true }
ark-secp256k1 = { workspace = true }
ark-secp256r1 = { workspace = true }
ark-std = { workspace = true }
ark-vesta = { workspace = true }
blake2 = { workspace = true }
bls12_381 = { workspace = true }
curve25519-dalek = { workspace = true }
hex = { workspace = true }
libtest-mimic = { workspace = true }
pallas = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
sha2 = { workspace = true }
sha3 = { workspace = true }
[lints]
workspace = true
[[example]]
name = "schnorr"
required-features = ["ark-ec"]
[[example]]
name = "bulletproof"
required-features = ["curve25519-dalek", "curve25519-dalek/rand_core"]