1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#![feature(core, io, os)] extern crate cryptoil; use cryptoil::sha1; use cryptoil::stdish::io::Digest; pub fn digest_cmd(command: &str, message: &str) -> String { match command { "-sha1" => sha1::Sha1::new().hex_digest(message).unwrap(), _ => panic!("unknown hash algorithm"), } } pub fn main() { let mut reader = ::std::old_io::stdin(); let msg: Vec<u8> = reader.read_to_end().unwrap(); let message: &str = ::std::str::from_utf8(msg.as_slice()).unwrap(); let args = ::std::os::args(); let command: &str = args[1].as_slice(); println!("{}", digest_cmd(command, message)); }