Crate chksum

source ·
Expand description

High-level interface for easy calculation of checksum digest for files, directories, stdin and more.

Setup

Update your Cargo.toml by adding entry to dependencies section.

[dependencies]
# ...
chksum = "0.2.2"

Alternatively use cargo add subcommand.

cargo add chksum

Usage

File

Use File or &File as an input.

use chksum::chksum;
use chksum::hash::MD5;

let file = File::open(path)?;
let digest = chksum::<MD5, _>(file)?;
assert_eq!(
    digest.to_hex_lowercase(),
    "b35e02f32d924c3da7ca8613ea91deb0"
);

Directory

Use ReadDir as an input.

use chksum::chksum;
use chksum::hash::MD5;

let dir = read_dir(path)?;
let digest = chksum::<MD5, _>(dir)?;
assert_eq!(
    digest.to_hex_lowercase(),
    "30672e8a0cb95ef3b0a29601f2874ba5"
);

Paths

Use &Path, PathBuf or &PathBuf as an input.

use chksum::chksum;
use chksum::hash::MD5;

let digest = chksum::<MD5, _>(path)?;
assert_eq!(
    digest.to_hex_lowercase(),
    "0bccc59d6997a74e1813d058aa1ad80d"
);

Stdin

Use StdinLock as an input.

use chksum::chksum;
use chksum::hash::MD5;

let handle = stdin().lock();
let digest = chksum::<MD5, _>(handle)?;
assert_eq!(
    digest.to_hex_lowercase(),
    "e91509789cba933399182e6a8864bdd8"
);

Algorithms

MD5

Use MD5 struct to calculate MD5 digest.

use chksum::chksum;
use chksum::hash::MD5;

let digest = chksum::<MD5, _>(path)?;
assert_eq!(
    digest.to_hex_lowercase(),
    "3081d73d94e101bfa7bf39a3ef7351e9"
);

SHA-1

Use SHA1 struct to calculate SHA-1 digest.

use chksum::chksum;
use chksum::hash::SHA1;

let digest = chksum::<SHA1, _>(path)?;
assert_eq!(
    digest.to_hex_lowercase(),
    "d2b8d92228efb73147151566f059d1cace37046e"
);

SHA-2

SHA-2 224

Use SHA2_224 struct to calculate SHA-2 224 digest.

use chksum::chksum;
use chksum::hash::SHA2_224;

let digest = chksum::<SHA2_224, _>(path)?;
assert_eq!(
    digest.to_hex_lowercase(),
    "cfa726b42c9ef788e99eb81e4dce181763feac230485dde49dba717a"
);

SHA-2 256

Use SHA2_256 struct to calculate SHA-2 256 digest.

use chksum::chksum;
use chksum::hash::SHA2_256;

let digest = chksum::<SHA2_256, _>(path)?;
assert_eq!(
    digest.to_hex_lowercase(),
    "10a0933e11c86746636370a913ba9be34bc2ac2871585cb0e573c354e7116772"
);

SHA-2 384

Use SHA2_384 struct to calculate SHA-2 384 digest.

use chksum::chksum;
use chksum::hash::SHA2_384;

let digest = chksum::<SHA2_384, _>(path)?;
assert_eq!(
    digest.to_hex_lowercase(),
    "7d44140596271726d0e57b3f97615d615d771d48b9b62a0b9da053e68e11992fa9166795671999d036a1e2c17a60414e"
);

SHA-2 512

Use SHA2_512 struct to calculate SHA-2 512 digest.

use chksum::chksum;
use chksum::hash::SHA2_512;

let digest = chksum::<SHA2_512, _>(path)?;
assert_eq!(
    digest.to_hex_lowercase(),
    "6bf5a2ab9e922a5723a937acd2b8afa685d20c1f9f16d435fce8c7fd41c3425bbed990bb0a16124f2b62147cd4342496769b789e7186a0e2d85dafc1e5dc626b"
);

Feature flags

Algorithms

  • md5: Enables MD5 hash algorithm.
  • sha1: Enables SHA-1 hash algorithm.
  • sha2: Enables SHA-2 hash family algorithms.
    • sha2-224: Enables only SHA-2 224 hash algorithm.
    • sha2-256: Enables only SHA-2 256 hash algorithm.
    • sha2-384: Enables only SHA-2 384 hash algorithm.
    • sha2-512: Enables only SHA-2 512 hash algorithm.

By default all of them are enabled.

Compilation

  • unstable: Enables unstable options (like build script).

By default none of them are enabled.

License

MIT

Re-exports

Enums

  • A common error type for the current crate.

Traits

  • A trait for objects which are able to calculate checksum of given input.

Functions

  • Calculates checksum of given input.

Type Definitions