Crate chksum_sha2_512

source ·
Expand description

This crate provides an implementation of the SHA-2 512 hash function with a straightforward interface for computing digests of bytes, files, directories, and more.

For a low-level interface, you can explore the chksum_hash_sha2_512 crate.

Setup

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

[dependencies]
chksum-sha2-512 = "0.0.0"

Alternatively, you can use the cargo add subcommand:

cargo add chksum-sha2-512

Usage

Use the chksum function to calcualate digest of file, directory and so on.

use std::fs::File;

use chksum_sha2_512 as sha2_512;

let file = File::open(path)?;
let digest = sha2_512::chksum(file)?;
assert_eq!(
    digest.to_hex_lowercase(),
    "ed59c5759a9ece516cec0c0623142d0e9fe70a27d750eee7fd38f4550d50addd873d0fa1a51fc823c1e3d5cada203f4a05d8325caacb7d3e0727a701f3f07e5f"
);

Input Types

Bytes

Array

use chksum_sha2_512 as sha2_512;

let data = [0, 1, 2, 3];
let digest = sha2_512::chksum(data)?;
assert_eq!(
    digest.to_hex_lowercase(),
    "ed59c5759a9ece516cec0c0623142d0e9fe70a27d750eee7fd38f4550d50addd873d0fa1a51fc823c1e3d5cada203f4a05d8325caacb7d3e0727a701f3f07e5f"
);

Vec

use chksum_sha2_512 as sha2_512;

let data = vec![0, 1, 2, 3];
let digest = sha2_512::chksum(data)?;
assert_eq!(
    digest.to_hex_lowercase(),
    "ed59c5759a9ece516cec0c0623142d0e9fe70a27d750eee7fd38f4550d50addd873d0fa1a51fc823c1e3d5cada203f4a05d8325caacb7d3e0727a701f3f07e5f"
);

Slice

use chksum_sha2_512 as sha2_512;

let data = &[0, 1, 2, 3];
let digest = sha2_512::chksum(data)?;
assert_eq!(
    digest.to_hex_lowercase(),
    "ed59c5759a9ece516cec0c0623142d0e9fe70a27d750eee7fd38f4550d50addd873d0fa1a51fc823c1e3d5cada203f4a05d8325caacb7d3e0727a701f3f07e5f"
);

Strings

str

use chksum_sha2_512 as sha2_512;

let data = "&str";
let digest = sha2_512::chksum(data)?;
assert_eq!(
    digest.to_hex_lowercase(),
    "ed59c5759a9ece516cec0c0623142d0e9fe70a27d750eee7fd38f4550d50addd873d0fa1a51fc823c1e3d5cada203f4a05d8325caacb7d3e0727a701f3f07e5f"
);

String

use chksum_sha2_512 as sha2_512;

let data = String::from("String");
let digest = sha2_512::chksum(data)?;
assert_eq!(
    digest.to_hex_lowercase(),
    "ed59c5759a9ece516cec0c0623142d0e9fe70a27d750eee7fd38f4550d50addd873d0fa1a51fc823c1e3d5cada203f4a05d8325caacb7d3e0727a701f3f07e5f"
);

File

use std::fs::File;

use chksum_sha2_512 as sha2_512;

let file = File::open(path)?;
let digest = sha2_512::chksum(file)?;
assert_eq!(
    digest.to_hex_lowercase(),
    "ed59c5759a9ece516cec0c0623142d0e9fe70a27d750eee7fd38f4550d50addd873d0fa1a51fc823c1e3d5cada203f4a05d8325caacb7d3e0727a701f3f07e5f"
);

Directory

use std::fs::read_dir;

use chksum_sha2_512 as sha2_512;

let readdir = read_dir(path)?;
let digest = sha2_512::chksum(readdir)?;
assert_eq!(
    digest.to_hex_lowercase(),
    "ed59c5759a9ece516cec0c0623142d0e9fe70a27d750eee7fd38f4550d50addd873d0fa1a51fc823c1e3d5cada203f4a05d8325caacb7d3e0727a701f3f07e5f"
);

Path

use std::path::PathBuf;

use chksum_sha2_512 as sha2_512;

let path = PathBuf::from(path);
let digest = sha2_512::chksum(path)?;
assert_eq!(
    digest.to_hex_lowercase(),
    "ed59c5759a9ece516cec0c0623142d0e9fe70a27d750eee7fd38f4550d50addd873d0fa1a51fc823c1e3d5cada203f4a05d8325caacb7d3e0727a701f3f07e5f"
);

Standard Input

use std::io::stdin;

use chksum_sha2_512 as sha2_512;

let stdin = stdin();
let digest = sha2_512::chksum(stdin)?;
assert_eq!(
    digest.to_hex_lowercase(),
    "ed59c5759a9ece516cec0c0623142d0e9fe70a27d750eee7fd38f4550d50addd873d0fa1a51fc823c1e3d5cada203f4a05d8325caacb7d3e0727a701f3f07e5f"
);

Features

Cargo features are utilized to enable extra options.

By default, neither of these features is enabled.

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

[dependencies]
chksum-sha2-512 = { version = "0.0.0", features = ["reader", "writer"] }

Alternatively, you can use the cargo add subcommand:

cargo add chksum-sha2-512 --features reader,writer

License

This crate is licensed under the MIT License.

Re-exports

Modules

  • readerreader
    This module is optional and can be enabled using the reader Cargo feature.
  • writerwriter
    This module is optional and can be enabled using the writer Cargo feature.

Structs

Functions

  • Computes the hash of the given input.
  • Creates a default hash.
  • Computes the hash of the given input.
  • Creates a new hash.

Type Aliases