From 9f43983660e5fe7678895ab05eb0be19c1714262 Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Tue, 12 May 2020 01:10:22 +0800 Subject: [PATCH] add sample --- crypto/Cargo.lock | 1 + crypto/Cargo.toml | 1 + crypto/src/main.rs | 30 +++++++++++++++++++++++++++++- 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/crypto/Cargo.lock b/crypto/Cargo.lock index f1dc1c8..491eff6 100644 --- a/crypto/Cargo.lock +++ b/crypto/Cargo.lock @@ -51,6 +51,7 @@ dependencies = [ "p256", "p384", "p521", + "sha2", ] [[package]] diff --git a/crypto/Cargo.toml b/crypto/Cargo.toml index f632582..6488c90 100644 --- a/crypto/Cargo.toml +++ b/crypto/Cargo.toml @@ -15,4 +15,5 @@ k256 = "0.2.0" p256 = "0.2.0" p384 = "0.1.0" p521 = "0.0.0" +sha2 = "0.8.1" diff --git a/crypto/src/main.rs b/crypto/src/main.rs index e7a11a9..5a21df6 100644 --- a/crypto/src/main.rs +++ b/crypto/src/main.rs @@ -1,3 +1,31 @@ +use sha2::{Sha256, Sha512, Digest}; + fn main() { - println!("Hello, world!"); + println!("{}", to_hex(&sha256(b"hello world"))); + println!("{}", to_hex(&sha512(b"hello world"))); +} + +fn sha256(data: &[u8]) -> Vec { + let mut hasher = Sha256::new(); + hasher.input(data); + let result = hasher.result(); + result[..].to_vec() +} + +fn sha512(data: &[u8]) -> Vec { + let mut hasher = Sha512::new(); + hasher.input(data); + let result = hasher.result(); + result[..].to_vec() +} + +fn to_hex(bs: &[u8]) -> String { + bs.iter().map(|u| { + let x = format!("{:x}", u); + if x.len() == 1 { + "0".to_owned() + &x + } else { + x + } + }).collect() }