diff options
Diffstat (limited to 'cli/checksum.rs')
-rw-r--r-- | cli/checksum.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/cli/checksum.rs b/cli/checksum.rs new file mode 100644 index 000000000..f92fd62cf --- /dev/null +++ b/cli/checksum.rs @@ -0,0 +1,20 @@ +use ring; +use std::fmt::Write; + +pub fn gen(v: Vec<&[u8]>) -> String { + let mut ctx = ring::digest::Context::new(&ring::digest::SHA256); + for src in v.iter() { + ctx.update(src); + } + let digest = ctx.finish(); + let mut out = String::new(); + // TODO There must be a better way to do this... + for byte in digest.as_ref() { + write!(&mut out, "{:02x}", byte).unwrap(); + } + out +} + +pub fn gen2(s: &str) -> String { + gen(vec![s.as_bytes()]) +} |