[package]
name = "blazehash"
version = "0.2.4"
edition = "2021"
rust-version = "1.85"
authors = ["Albert Hui <albert@securityronin.com>"]
description = "Forensic file hasher — hashdeep for the modern era, BLAKE3 by default"
license = "MIT"
repository = "https://github.com/SecurityRonin/blazehash"
homepage = "https://github.com/SecurityRonin/blazehash"
documentation = "https://docs.rs/blazehash"
readme = "README.md"
keywords = ["hash", "forensics", "blake3", "hashdeep", "dfir"]
categories = ["command-line-utilities", "cryptography"]
exclude = ["target/", ".github/", ".serena/", "docs/", "wix/", "tests/data/", ".pre-commit-config.yaml", "renovate.json", "PACKAGING.md", "Makefile"]
[[bin]]
name = "blazehash"
path = "src/main.rs"
[lib]
name = "blazehash"
path = "src/lib.rs"
[dependencies]
anyhow = "1"
base64 = "0.22"
blake3 = "1"
clap = { version = "4", features = ["derive"] }
digest = "0.10"
hex = "0.4"
md-5 = "0.10"
memmap2 = "0.9"
rayon = "1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
sha1 = { version = "0.10", features = ["oid"] }
sha2 = { version = "0.10", features = ["oid"] }
sha3 = "0.10"
tiger = "0.2"
tlsh2 = { version = "0.4", features = ["diff"] }
walkdir = "2"
whirlpool = "0.10"
xxhash-rust = { version = "0.8", features = ["xxh3"] }
crc32c = "0.6"
globset = "0.4"
chrono = { version = "0.4", default-features = false, features = ["std"] }
ed25519-dalek = { version = "2", features = ["rand_core"] }
rand = "0.8"
argon2 = "0.5"
rpassword = "6"
ewf = { version = "0.2", optional = true }
wgpu = { version = "22", optional = true }
pollster = { version = "0.3", optional = true }
toml = { version = "0.8", optional = true }
dirs = { version = "5", optional = true }
rusqlite = { version = "0.31", optional = true, features = ["bundled"] }
bloomfilter = { version = "1", optional = true, features = ["serde"] }
bincode = "1"
tempfile = "3"
[target.'cfg(target_os = "macos")'.dependencies]
libc = "0.2"
[target.'cfg(target_os = "linux")'.dependencies]
libc = "0.2"
[target.'cfg(target_os = "windows")'.dependencies]
windows-sys = { version = "0.59", features = [
"Win32_Storage_FileSystem",
"Win32_Foundation",
"Win32_System_Memory",
"Win32_Security",
"Win32_UI_Shell",
"Win32_System_Threading",
"Win32_System_Registry",
] }
tokio = { version = "1", features = ["rt-multi-thread", "fs", "sync", "macros"] }
[features]
default = ["forensic-image", "gpu"]
forensic-image = ["dep:ewf"]
gpu = ["dep:wgpu", "dep:pollster", "dep:toml", "dep:dirs"]
nsrl = ["dep:rusqlite", "dep:bloomfilter"]
[package.metadata.deb]
maintainer = "SecurityRonin <security-ronin@users.noreply.github.com>"
section = "utils"
priority = "optional"
extended-description = """\
blazehash is a forensic file hasher and drop-in superset of hashdeep. \
It defaults to BLAKE3 for speed, supports 8 hash algorithms \
(BLAKE3, SHA-256, SHA-512, SHA3-256, SHA-1, MD5, Tiger, Whirlpool), \
and provides multithreaded parallel hashing with memory-mapped I/O. \
Features include audit mode, piecewise hashing, resume support, \
and CSV/JSON/JSONL output formats."""
assets = [
["target/release/blazehash", "usr/bin/", "755"],
]
[dev-dependencies]
tempfile = "3"
assert_cmd = "2"
predicates = "3"