Initial commit with sha256 implementation.

This commit is contained in:
Bill Thiede 2020-02-09 15:57:59 -08:00
commit 1cf4cdf1cc
3 changed files with 36 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
/target
Cargo.lock

11
Cargo.toml Normal file
View File

@ -0,0 +1,11 @@
[package]
name = "hexihasher"
version = "0.1.0"
authors = ["Bill Thiede <git@xinu.tv>"]
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"

23
src/lib.rs Normal file
View File

@ -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")
}