ewf-forensic 0.7.0

Forensic integrity analysis and repair for EWF (Expert Witness Format / E01) images
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[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"