commit 1cf4cdf1cc797e28260705bb232e437274a3df7e Author: Bill Thiede Date: Sun Feb 9 15:57:59 2020 -0800 Initial commit with sha256 implementation. diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..96ef6c0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/target +Cargo.lock diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..b228dd8 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "hexihasher" +version = "0.1.0" +authors = ["Bill Thiede "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +sha2 = "0.8.1" +faster-hex = "0.4.1" diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..abceaf3 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,23 @@ +//! This module contains various helpers for generating the hashes in hex representation. +use faster_hex; +use sha2; +use sha2::Digest; + +/// Return hex string representation of the sha256 hash of v. +/// ``` +/// use hexihasher; +/// let s = hexihasher::sha256(&[0, 1, 2, 3][..]); +/// +/// assert_eq!(s, "054edec1d0211f624fed0cbca9d4f9400b0e491c43742af2c5b0abebf0c990d8"); +/// ``` +pub fn sha256(v: &[u8]) -> String { + // create a Sha256 object + let mut hasher = sha2::Sha256::new(); + + // write input message + hasher.input(v); + + // read hash digest and consume hasher + let result = hasher.result(); + faster_hex::hex_string(&result).expect("failed to hash") +}