#sha-2 #hashing #hash #digest #checksum

chksum-hash-sha2

An implementation of SHA-2 hash algorithms for batch and stream computation

2 releases

0.0.1 Apr 28, 2024
0.0.0 Dec 21, 2023

#43 in #sha-2

Download history 2229/week @ 2024-02-07 1879/week @ 2024-02-14 2444/week @ 2024-02-21 2087/week @ 2024-02-28 2374/week @ 2024-03-06 2411/week @ 2024-03-13 2395/week @ 2024-03-20 964/week @ 2024-03-27 485/week @ 2024-04-03 816/week @ 2024-04-10 324/week @ 2024-04-17 545/week @ 2024-04-24 470/week @ 2024-05-01 434/week @ 2024-05-08 395/week @ 2024-05-15 544/week @ 2024-05-22

1,902 downloads per month
Used in 4 crates (2 directly)

MIT license

8KB

chksum-hash-sha2

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

An implementation of SHA-2 hash algorithms for batch and stream computation.

Setup

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

[dependencies]
chksum-hash-sha2 = "0.0.1"

Alternatively, you can use the cargo add subcommand:

cargo add chksum-hash-sha2

Usage

Use the hash function for batch digest calculation.

use chksum_hash_sha2::sha2_256;

let digest = sha2_256::hash(b"example data");
assert_eq!(
    digest.to_hex_lowercase(),
    "44752f37272e944fd2c913a35342eaccdd1aaf189bae50676b301ab213fc5061"
);

Use the default function to create a hash instance for stream digest calculation.

use chksum_hash_sha2::sha2_512;

let digest = sha2_512::default()
    .update("example")
    .update(b"data")
    .update([0, 1, 2, 3])
    .digest();
assert_eq!(
    digest.to_hex_lowercase(),
    "57f35477757af6734892604de3846a97d2cc17cd37068373075e56a4843b3e9c83f9b435beae9fcf1da590e73e62fe20468f52ff13b095241fec77884086b090"
);

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

Features

Cargo features are used to enable or disable specific algorithm functions.

  • 224 enables SHA-2 224, accessible via the sha2_224 module,
  • 256 enables SHA-2 256, accessible via the sha2_256 module,
  • 384 enables SHA-2 384, accessible via the sha2_384 module,
  • 512 enables SHA-2 512, accessible via the sha2_512 module.

By default all of them are enabled.

To customize your setup, turn off the default features and enable only those that you want in your Cargo.toml file:

[dependencies]
chksum-hash-sha2 = { version = "0.0.1", default-features = no, features = ["256", "512"] }

Alternatively, you can use the cargo add subcommand:

cargo add chksum-hash-sha2 --no-default-features --features 256,512

License

This crate is licensed under the MIT License.

Dependencies

~180KB