[package]
name = "libsoliton-fuzz"
version = "0.0.0"
publish = false
edition = "2024"

[workspace]

[package.metadata]
cargo-fuzz = true

[dependencies]
libfuzzer-sys = "=0.4.12"
# Pin to match workspace — separate workspace, so cargo update here could
# otherwise pull a different zeroize than the main build tested against.
zeroize = "=1.8.2"
# Match main workspace features — separate workspace means Cargo does not
# unify features. Without zeroize, ed25519-dalek types lack ZeroizeOnDrop.
ed25519-dalek = { version = "=2.2.0", default-features = false, features = ["zeroize", "std"] }

[dependencies.libsoliton]
path = ".."

[[bin]]
name = "fuzz_storage_decrypt_blob"
path = "fuzz_targets/fuzz_storage_decrypt_blob.rs"
doc = false

[[bin]]
name = "fuzz_ratchet_decrypt"
path = "fuzz_targets/fuzz_ratchet_decrypt.rs"
doc = false

[[bin]]
name = "fuzz_ratchet_decrypt_stateful"
path = "fuzz_targets/fuzz_ratchet_decrypt_stateful.rs"
doc = false

[[bin]]
name = "fuzz_identity_from_bytes"
path = "fuzz_targets/fuzz_identity_from_bytes.rs"
doc = false

[[bin]]
name = "fuzz_ed25519_verify"
path = "fuzz_targets/fuzz_ed25519_verify.rs"
doc = false

[[bin]]
name = "fuzz_hybrid_verify"
path = "fuzz_targets/fuzz_hybrid_verify.rs"
doc = false

[[bin]]
name = "fuzz_ratchet_encrypt"
path = "fuzz_targets/fuzz_ratchet_encrypt.rs"
doc = false

[[bin]]
name = "fuzz_decrypt_first_message"
path = "fuzz_targets/fuzz_decrypt_first_message.rs"
doc = false

[[bin]]
name = "fuzz_kex_receive_session"
path = "fuzz_targets/fuzz_kex_receive_session.rs"
doc = false

[[bin]]
name = "fuzz_storage_encrypt_blob"
path = "fuzz_targets/fuzz_storage_encrypt_blob.rs"
doc = false

[[bin]]
name = "fuzz_auth_respond"
path = "fuzz_targets/fuzz_auth_respond.rs"
doc = false

[[bin]]
name = "fuzz_kex_verify_bundle"
path = "fuzz_targets/fuzz_kex_verify_bundle.rs"
doc = false

[[bin]]
name = "fuzz_verification_phrase"
path = "fuzz_targets/fuzz_verification_phrase.rs"
doc = false

[[bin]]
name = "fuzz_ratchet_roundtrip"
path = "fuzz_targets/fuzz_ratchet_roundtrip.rs"
doc = false

[[bin]]
name = "fuzz_xwing_roundtrip"
path = "fuzz_targets/fuzz_xwing_roundtrip.rs"
doc = false

[[bin]]
name = "fuzz_identity_sign_verify"
path = "fuzz_targets/fuzz_identity_sign_verify.rs"
doc = false

[[bin]]
name = "fuzz_session_init_roundtrip"
path = "fuzz_targets/fuzz_session_init_roundtrip.rs"
doc = false

[[bin]]
name = "fuzz_call_derive"
path = "fuzz_targets/fuzz_call_derive.rs"
doc = false

[[bin]]
name = "fuzz_auth_verify"
path = "fuzz_targets/fuzz_auth_verify.rs"
doc = false

[[bin]]
name = "fuzz_ratchet_from_bytes_epoch"
path = "fuzz_targets/fuzz_ratchet_from_bytes_epoch.rs"
doc = false

[[bin]]
name = "fuzz_kex_decode_receive"
path = "fuzz_targets/fuzz_kex_decode_receive.rs"
doc = false

[[bin]]
name = "fuzz_dm_queue_roundtrip"
path = "fuzz_targets/fuzz_dm_queue_roundtrip.rs"
doc = false

[[bin]]
name = "fuzz_dm_queue_decrypt_blob"
path = "fuzz_targets/fuzz_dm_queue_decrypt_blob.rs"
doc = false

[[bin]]
name = "fuzz_argon2_params"
path = "fuzz_targets/fuzz_argon2_params.rs"
doc = false

[[bin]]
name = "fuzz_stream_decrypt"
path = "fuzz_targets/fuzz_stream_decrypt.rs"
doc = false

[[bin]]
name = "fuzz_stream_encrypt_decrypt"
path = "fuzz_targets/fuzz_stream_encrypt_decrypt.rs"
doc = false

[[bin]]
name = "fuzz_stream_encrypt_at"
path = "fuzz_targets/fuzz_stream_encrypt_at.rs"
doc = false

[[bin]]
name = "fuzz_stream_decrypt_at"
path = "fuzz_targets/fuzz_stream_decrypt_at.rs"
doc = false

[[bin]]
name = "fuzz_ratchet_state_machine"
path = "fuzz_targets/fuzz_ratchet_state_machine.rs"
doc = false

[[bin]]
name = "gen_corpus"
path = "gen_corpus.rs"
doc = false
