#![no_main] use libfuzzer_sys::fuzz_target; use soliton::ratchet::RatchetState; use zeroize::Zeroizing; fuzz_target!(|data: &[u8]| { let ck: [u8; 32] = [0x22; 32]; let aad = b"lo-dm-v1"; // decrypt_first_message must never panic regardless of input. // Exercises: random-nonce AEAD decrypt path (distinct from counter-based // decrypt in fuzz_ratchet_decrypt). let _ = RatchetState::decrypt_first_message(Zeroizing::new(ck), data, aad); });