[package]
edition = "2021"
rust-version = "1.85"
name = "ewf-forensic"
version = "0.7.0"
authors = ["Albert Hui <albert@securityronin.com>"]
build = false
exclude = [
"tests/data/",
"fuzz/",
"corpus/",
"benches/",
".github/",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Forensic integrity analysis and repair for EWF (Expert Witness Format / E01) images"
homepage = "https://github.com/SecurityRonin/ewf-forensic"
documentation = "https://docs.rs/ewf-forensic"
readme = "README.md"
keywords = [
"forensics",
"ewf",
"e01",
"integrity",
"tampering",
]
categories = ["parser-implementations"]
license = "Apache-2.0"
repository = "https://github.com/SecurityRonin/ewf-forensic"
[features]
serde = [
"dep:serde",
"forensicnomicon/serde",
]
[lib]
name = "ewf_forensic"
path = "src/lib.rs"
[[bin]]
name = "ewf-check"
path = "src/bin/ewf_check.rs"
[[example]]
name = "validate"
path = "examples/validate.rs"
[[test]]
name = "analyse_and_compute_hashes_tests"
path = "tests/analyse_and_compute_hashes_tests.rs"
[[test]]
name = "builder"
path = "tests/builder.rs"
[[test]]
name = "canonical_finding_tests"
path = "tests/canonical_finding_tests.rs"
[[test]]
name = "chunk_integrity_tests"
path = "tests/chunk_integrity_tests.rs"
[[test]]
name = "cli_progress_tests"
path = "tests/cli_progress_tests.rs"
[[test]]
name = "cli_tests"
path = "tests/cli_tests.rs"
[[test]]
name = "compute_hashes_tests"
path = "tests/compute_hashes_tests.rs"
[[test]]
name = "ctf_fixture_tests"
path = "tests/ctf_fixture_tests.rs"
[[test]]
name = "differential_tests"
path = "tests/differential_tests.rs"
[[test]]
name = "display_tests"
path = "tests/display_tests.rs"
[[test]]
name = "ewf1_error2_tests"
path = "tests/ewf1_error2_tests.rs"
[[test]]
name = "ewf1_header_metadata_tests"
path = "tests/ewf1_header_metadata_tests.rs"
[[test]]
name = "ewf1_missing_section_tests"
path = "tests/ewf1_missing_section_tests.rs"
[[test]]
name = "ewf1_multiseg_fixture_tests"
path = "tests/ewf1_multiseg_fixture_tests.rs"
[[test]]
name = "ewf1_table2_tests"
path = "tests/ewf1_table2_tests.rs"
[[test]]
name = "ewf1_table_chunk_count_tests"
path = "tests/ewf1_table_chunk_count_tests.rs"
[[test]]
name = "ewf1_table_header_crc_tests"
path = "tests/ewf1_table_header_crc_tests.rs"
[[test]]
name = "ewf2_compressed_chunk_tests"
path = "tests/ewf2_compressed_chunk_tests.rs"
[[test]]
name = "ewf2_compression_method_tests"
path = "tests/ewf2_compression_method_tests.rs"
[[test]]
name = "ewf2_full_verification_tests"
path = "tests/ewf2_full_verification_tests.rs"
[[test]]
name = "ewf2_geometry_tests"
path = "tests/ewf2_geometry_tests.rs"
[[test]]
name = "ewf2_large_offset_tests"
path = "tests/ewf2_large_offset_tests.rs"
[[test]]
name = "ewf2_media_info_tests"
path = "tests/ewf2_media_info_tests.rs"
[[test]]
name = "ewf2_multiseg_discovery_tests"
path = "tests/ewf2_multiseg_discovery_tests.rs"
[[test]]
name = "ewf2_multiseg_hash_tests"
path = "tests/ewf2_multiseg_hash_tests.rs"
[[test]]
name = "ewf2_partial_coverage_tests"
path = "tests/ewf2_partial_coverage_tests.rs"
[[test]]
name = "ewf2_real_fixture_tests"
path = "tests/ewf2_real_fixture_tests.rs"
[[test]]
name = "ewf2_sha1_tests"
path = "tests/ewf2_sha1_tests.rs"
[[test]]
name = "ewf2_sha256_tests"
path = "tests/ewf2_sha256_tests.rs"
[[test]]
name = "external_hash_tests"
path = "tests/external_hash_tests.rs"
[[test]]
name = "integrity_tests"
path = "tests/integrity_tests.rs"
[[test]]
name = "libewf_quirks_tests"
path = "tests/libewf_quirks_tests.rs"
[[test]]
name = "new_capabilities_tests"
path = "tests/new_capabilities_tests.rs"
[[test]]
name = "path_progress_tests"
path = "tests/path_progress_tests.rs"
[[test]]
name = "progress_tests"
path = "tests/progress_tests.rs"
[[test]]
name = "proptest_tests"
path = "tests/proptest_tests.rs"
[[test]]
name = "real_image_tests"
path = "tests/real_image_tests.rs"
[[test]]
name = "recover_tests"
path = "tests/recover_tests.rs"
[[test]]
name = "serde_tests"
path = "tests/serde_tests.rs"
required-features = ["serde"]
[[test]]
name = "sleuthkit_fixture_tests"
path = "tests/sleuthkit_fixture_tests.rs"
[[test]]
name = "streaming_tests"
path = "tests/streaming_tests.rs"
[[test]]
name = "tool_fixtures_tests"
path = "tests/tool_fixtures_tests.rs"
[dependencies.ewf]
version = "0.4.0"
[dependencies.flate2]
version = "1"
[dependencies.forensicnomicon]
version = "1"
[dependencies.indicatif]
version = "0.18"
[dependencies.md-5]
version = "0.10"
[dependencies.memmap2]
version = "0.9"
[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
[dependencies.sha1]
version = "0.10"
[dependencies.sha2]
version = "0.10"
[dev-dependencies.blazehash]
version = "0.2.4"
package = "blazehash-core"
[dev-dependencies.hex]
version = "0.4"
[dev-dependencies.md-5]
version = "0.10"
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.sha1]
version = "0.10"
[dev-dependencies.tempfile]
version = "3"
[lints.clippy.cast_lossless]
level = "allow"
priority = 1
[lints.clippy.cast_possible_truncation]
level = "allow"
priority = 1
[lints.clippy.cast_possible_wrap]
level = "allow"
priority = 1
[lints.clippy.cast_precision_loss]
level = "allow"
priority = 1
[lints.clippy.cast_sign_loss]
level = "allow"
priority = 1
[lints.clippy.correctness]
level = "deny"
priority = -1
[lints.clippy.doc_markdown]
level = "allow"
priority = 1
[lints.clippy.expect_used]
level = "deny"
priority = 0
[lints.clippy.format_collect]
level = "allow"
priority = 1
[lints.clippy.format_push_string]
level = "allow"
priority = 1
[lints.clippy.manual_let_else]
level = "allow"
priority = 1
[lints.clippy.match_same_arms]
level = "allow"
priority = 1
[lints.clippy.missing_errors_doc]
level = "allow"
priority = 1
[lints.clippy.missing_panics_doc]
level = "allow"
priority = 1
[lints.clippy.module_name_repetitions]
level = "allow"
priority = 1
[lints.clippy.must_use_candidate]
level = "allow"
priority = 1
[lints.clippy.must_use_unit]
level = "allow"
priority = 1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.clippy.return_self_not_must_use]
level = "allow"
priority = 1
[lints.clippy.similar_names]
level = "allow"
priority = 1
[lints.clippy.struct_excessive_bools]
level = "allow"
priority = 1
[lints.clippy.suspicious]
level = "deny"
priority = -1
[lints.clippy.too_many_arguments]
level = "allow"
priority = 1
[lints.clippy.too_many_lines]
level = "allow"
priority = 1
[lints.clippy.trivially_copy_pass_by_ref]
level = "allow"
priority = 1
[lints.clippy.unwrap_used]
level = "deny"
priority = 0
[lints.rust]
unsafe_code = "deny"