[package] name = "libsoliton-capi-fuzz" version = "0.0.0" publish = false edition = "2024" [workspace] [package.metadata] cargo-fuzz = true [dependencies] libfuzzer-sys = "=0.4.12" # Link against the CAPI crate to call extern "C" functions directly. # The rlib target is used for fuzzing (cdylib/staticlib are for external consumers). libsoliton_capi = { path = ".." } # This workspace is separate from the main workspace and has its own lock file. # Without these pins, `cargo update` resolves to versions that break the current # rc dependency chain (sha3/hmac/hkdf 0.11/0.13-rc, ml-dsa 0.1.0-rc.7): # # keccak 0.2.0 (2026-03-16) removed `p1600` in favor of a new `Keccak` struct # API. sha3 0.11.0-rc.7 still calls `keccak::p1600` and fails to compile. # # digest 0.11.2 (2026-03-13) and crypto-common 0.2.1 (2026-02-25) removed # `BlockSizes` (re-exported as `digest::common::BlockSizes`); digest 0.11.2 # also changed `Clone` handling in `(Reset)MacTraits`. sha3 0.11.0-rc.7 # imports `BlockSizes`; hkdf 0.13.0-rc.5 requires `Hmac: Clone`. # # These pins match the snapshot published on the same day as sha3/hmac/hkdf rc. # Remove once upstream publishes rc versions compatible with the new APIs. keccak = "=0.2.0-rc.2" digest = "=0.11.0-rc.11" crypto-common = "=0.2.0-rc.15" [[bin]] name = "fuzz_capi_ratchet_from_bytes" path = "fuzz_targets/fuzz_capi_ratchet_from_bytes.rs" doc = false [[bin]] name = "fuzz_capi_storage_decrypt" path = "fuzz_targets/fuzz_capi_storage_decrypt.rs" doc = false [[bin]] name = "fuzz_capi_decode_session_init" path = "fuzz_targets/fuzz_capi_decode_session_init.rs" doc = false [[bin]] name = "fuzz_capi_dm_queue_decrypt" path = "fuzz_targets/fuzz_capi_dm_queue_decrypt.rs" doc = false [[bin]] name = "fuzz_capi_stream_decrypt" path = "fuzz_targets/fuzz_capi_stream_decrypt.rs" doc = false [[bin]] name = "fuzz_capi_stream_decrypt_at" path = "fuzz_targets/fuzz_capi_stream_decrypt_at.rs" doc = false [[bin]] name = "fuzz_capi_stream_encrypt_at" path = "fuzz_targets/fuzz_capi_stream_encrypt_at.rs" doc = false