innospect 0.1.1

Parse and inspect Inno Setup installer binaries
Documentation
[package]
name = "innospect"
version = "0.1.1"
edition = "2024"
authors = ["Johann Kempter <admin@binflip.rs>"]
rust-version = "1.88"
description = "Parse and inspect Inno Setup installer binaries"
license = "Apache-2.0"
repository = "https://github.com/BinFlip/inno-rs"
readme = "README.md"
keywords = ["inno-setup", "installer", "parser", "reverse-engineering", "binary-analysis"]
categories = ["parser-implementations"]
exclude = ["tests/samples/", "reference/", "research/"]

# innospect is used in malware-analysis pipelines where every input byte
# is adversarial. These lints prevent the parser from panicking on
# malformed input. The `cfg_attr(test, allow(...))` escape hatch in
# `src/lib.rs` lets tests still use `unwrap`/`expect`/`panic` for terseness.
# This crate also denies `unsafe_code`.
[lints.rust]
missing_docs = "deny"
unsafe_code = "deny"

[lints.clippy]
unwrap_used = "deny"
expect_used = "deny"
panic = "deny"
arithmetic_side_effects = "deny"
indexing_slicing = "deny"

[dependencies]
bitflags = "2.11.1"
goblin = "0.10.5"
# Compression for setup-1 chunks (per-chunk dispatch in `extract::chunk`):
# Stored / Zlib / LZMA1 / LZMA2 / BZip2.
flate2 = "1.1.9"
lzma-rs = "0.3.0"
bzip2 = "0.6.1"
# File-content checksums per `data_entry::DataChecksum`:
# SHA-256 (6.4+), SHA-1 (5.3.9..6.4), MD5 (4.2..5.3.9). CRC32 + Adler32
# are implemented in-crate (`util/checksum.rs`).
sha1 = "0.11.0"
sha2 = "0.11.0"
md-5 = "0.11.0"
pbkdf2 = { version = "0.13.0", default-features = false }
hmac = "0.13.0"
chacha20 = { version = "0.10.0", features = ["xchacha"] }
pascalscript = "0.1.1"

[dev-dependencies]