chksum 0.4.0

An implementation of hash functions with a straightforward interface for computing digests of bytes, files, directories, and more.
Documentation

chksum

GitHub Build docs.rs MSRV deps.rs unsafe forbidden LICENSE

An implementation of various hash functions with a straightforward interface for computing digests of bytes, files, directories, and more.

Setup

To use this crate, add the following entry to your Cargo.toml file in the dependencies section:

[dependencies]
chksum = "0.4.0"

Alternatively, you can use the cargo add subcommand:

cargo add chksum

Usage

Use the chksum function with the desired algorithm to calculate digest of file, directory and so on.

use chksum::{chksum, SHA2_256};

let file = File::open(path)?;
let digest = chksum::<SHA2_256>(file)?;
assert_eq!(
    digest.to_hex_lowercase(),
    "44752f37272e944fd2c913a35342eaccdd1aaf189bae50676b301ab213fc5061"
);

Alternatively, use the chksum function directly from the chosen hash module.

use chksum::sha2_256;

let file = File::open(path)?;
let digest = sha2_256::chksum(file)?;
assert_eq!(
    digest.to_hex_lowercase(),
    "44752f37272e944fd2c913a35342eaccdd1aaf189bae50676b301ab213fc5061"
);

For more usage examples, refer to the documentation available at docs.rs.

Hash Algorithms

Features

Algorithms

Cargo features are utilized to enable or disable specific hash 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.

Extra Options

Cargo features are also utilized to enable extra options.

  • reader enables the reader module with the Reader struct within each variant module.
  • writer enables the writer module with the Writer struct within each variant module.

By default, neither of these features is enabled.

License

This crate is licensed under the MIT License.