# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
name = "spongefish"
version = "0.5.1"
authors = [
    "Michele Orrù <m@orru.net>",
    "Giacomo Fenzi <giacomofenzi@outlook.com>",
]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "An implementation of the Fiat--Shamir transformation from Duplex Sponges."
homepage = "https://github.com/arkworks-rs/spongefish"
documentation = "https://docs.rs/spongefish"
readme = false
license = "MIT OR Apache-2.0"
repository = "https://github.com/arkworks-rs/spongefish"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "--html-in-header",
    "../doc/katex-header.html",
    "--cfg",
    "docsrs",
]

[features]
ark-ec = [
    "ark-ff",
    "dep:ark-ec",
]
ark-ff = [
    "dep:ark-ff",
    "dep:ark-serialize",
]
ascon = ["dep:ascon"]
asm = [
    "keccak?/asm",
    "ark-ff?/asm",
]
blake2 = ["dep:blake2"]
blake3 = ["dep:blake3"]
bls12_381 = ["dep:bls12_381"]
curve25519-dalek = ["dep:curve25519-dalek"]
default = [
    "sha3",
    "zeroize",
]
derive = ["dep:spongefish-derive"]
k12 = ["dep:k12"]
k256 = ["dep:k256"]
keccak = ["dep:keccak"]
p256 = ["dep:p256"]
p3-baby-bear = [
    "dep:p3-baby-bear",
    "dep:p3-field",
]
p3-koala-bear = [
    "dep:p3-koala-bear",
    "dep:p3-field",
]
p3-mersenne-31 = [
    "dep:p3-mersenne-31",
    "dep:p3-field",
]
risc0-zkp = ["dep:risc0-zkp"]
sha2 = ["dep:sha2"]
sha3 = ["dep:sha3"]
std = [
    "ark-ff?/std",
    "ark-ec?/std",
    "ark-serialize?/std",
]
yolocrypto = []
zeroize = ["dep:zeroize"]

[lib]
name = "spongefish"
path = "src/lib.rs"

[[example]]
name = "bulletproof"
path = "examples/bulletproof.rs"
required-features = [
    "curve25519-dalek",
    "curve25519-dalek/rand_core",
]

[[example]]
name = "schnorr"
path = "examples/schnorr.rs"
required-features = ["ark-ec"]

[[test]]
name = "derive_generics"
path = "tests/derive_generics.rs"

[[test]]
name = "test_spec"
path = "tests/test_spec.rs"

[dependencies.ark-ec]
version = "^0.5"
optional = true

[dependencies.ark-ff]
version = "^0.5"
optional = true

[dependencies.ark-serialize]
version = "^0.5"
optional = true

[dependencies.ascon]
version = "^0.4.0"
optional = true

[dependencies.blake2]
version = "0.11.0-rc.5"
optional = true

[dependencies.blake3]
version = "^1.8.4"
features = [
    "traits-preview",
    "zeroize",
]
optional = true

[dependencies.bls12_381]
version = "^0.8.0"
optional = true

[dependencies.curve25519-dalek]
version = "^4.1"
optional = true

[dependencies.digest]
version = "0.11.2"

[dependencies.k12]
version = "0.4.0-rc.1"
optional = true

[dependencies.k256]
version = "^0.13"
features = ["arithmetic"]
optional = true

[dependencies.keccak]
version = "^0.1.5"
optional = true

[dependencies.p256]
version = "^0.13"
features = ["arithmetic"]
optional = true

[dependencies.p3-baby-bear]
version = "^0.5.1"
optional = true

[dependencies.p3-field]
version = "^0.5.1"
optional = true

[dependencies.p3-koala-bear]
version = "^0.5.1"
optional = true

[dependencies.p3-mersenne-31]
version = "^0.5.1"
optional = true

[dependencies.rand]
version = "^0.8.5"
features = ["getrandom"]

[dependencies.risc0-zkp]
version = "3.0.3"
optional = true

[dependencies.sha2]
version = "0.11.0"
optional = true

[dependencies.sha3]
version = "0.11.0-rc.9"
optional = true

[dependencies.spongefish-derive]
version = "0.5.1"
optional = true

[dependencies.zeroize]
version = "^1.8.1"
features = ["zeroize_derive"]
optional = true

[dev-dependencies.ark-bls12-381]
version = "^0.5"

[dev-dependencies.ark-curve25519]
version = "^0.5"

[dev-dependencies.ark-pallas]
version = "^0.5"

[dev-dependencies.ark-secp256k1]
version = "^0.5"

[dev-dependencies.ark-secp256r1]
version = "^0.5"

[dev-dependencies.ark-std]
version = "^0.5"

[dev-dependencies.ark-vesta]
version = "^0.5"

[dev-dependencies.blake2]
version = "0.11.0-rc.5"

[dev-dependencies.bls12_381]
version = "^0.8.0"

[dev-dependencies.curve25519-dalek]
version = "^4.1"

[dev-dependencies.hex]
version = "0.4.3"

[dev-dependencies.libtest-mimic]
version = "0.8.1"

[dev-dependencies.pallas]
version = "^0.32"

[dev-dependencies.serde]
version = "1.0"
features = ["derive"]

[dev-dependencies.serde_json]
version = "1.0"

[dev-dependencies.sha2]
version = "0.11.0"

[dev-dependencies.sha3]
version = "0.11.0-rc.9"

[target."cfg(doc)".dependencies.p3-koala-bear]
version = "^0.5.1"

[target."cfg(doc)".dependencies.sha2]
version = "0.11.0"

[lints.clippy]
cast_possible_truncation = "allow"
default_trait_access = "allow"
doc_lazy_continuation = "allow"
doc_markdown = "allow"
many_single_char_names = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
missing_safety_doc = "allow"
module_name_repetitions = "allow"
naive_bytecount = "allow"
should_panic_without_expect = "allow"
similar_names = "allow"
too_long_first_doc_paragraph = "allow"
tuple_array_conversions = "allow"

[lints.clippy.all]
level = "warn"
priority = -1

[lints.clippy.nursery]
level = "warn"
priority = -1

[lints.clippy.pedantic]
level = "warn"
priority = -1
