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.
reader
enables thereader
module with theReader
struct.writer
enables thewriter
module with theWriter
struct.
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
pub use chksum_core::Chksumable;
pub use chksum_core::Error;
pub use chksum_core::Hash;
pub use chksum_core::Hashable;
pub use chksum_core::Result;
pub use chksum_hash_sha2_512 as hash;
Modules
- reader
reader
This module is optional and can be enabled using thereader
Cargo feature. - writer
writer
This module is optional and can be enabled using thewriter
Cargo feature.
Structs
- A hash digest.
- The SHA-2 512 hash instance.
Functions
- Computes the hash of the given input.
- Creates a default hash.
- Computes the hash of the given input.
- Creates a new hash.