implement last few algorithms
This commit is contained in:
parent
80f0ce9d61
commit
d627771c56
2 changed files with 64 additions and 50 deletions
100
src/hashers.rs
100
src/hashers.rs
|
@ -1,35 +1,25 @@
|
||||||
use ascon_hash::AsconHash256;
|
use ascon_hash::{AsconHash256, ExtendableOutput};
|
||||||
use belt_hash::BeltHash;
|
use belt_hash::BeltHash;
|
||||||
use blake2::{Blake2b512, Blake2s256};
|
use blake2::{Blake2b512, Blake2s256};
|
||||||
use blake3::Hasher as Blake3;
|
use blake3::Hasher as Blake3;
|
||||||
use fsb::{Fsb160, Fsb224, Fsb256, Fsb384, Fsb512};
|
use fsb::{Fsb160, Fsb224, Fsb256, Fsb384, Fsb512};
|
||||||
use gost94::Gost94CryptoPro;
|
use gost94::Gost94CryptoPro;
|
||||||
use groestl::{Groestl224, Groestl256, Groestl384, Groestl512};
|
use groestl::{Groestl224, Groestl256, Groestl384, Groestl512};
|
||||||
use jh::{
|
use jh::{Jh224, Jh256, Jh384, Jh512};
|
||||||
// digest::{core_api::CoreWrapper, KeyInit},
|
use k12::KangarooTwelve;
|
||||||
Jh224,
|
// use kupyna::{Digest as _, Kupyna224, Kupyna256, Kupyna384, Kupyna512};
|
||||||
Jh256,
|
|
||||||
Jh384,
|
|
||||||
Jh512,
|
|
||||||
};
|
|
||||||
// use k12::KangarooTwelve;
|
|
||||||
// use kupyna::{Kupyna224, Kupyna256, Kupyna384, Kupyna512};
|
|
||||||
use md2::Md2;
|
use md2::Md2;
|
||||||
use md4::Md4;
|
use md4::Md4;
|
||||||
use md5::Md5;
|
use md5::Md5;
|
||||||
use ripemd::{Ripemd128, Ripemd160, Ripemd256, Ripemd320};
|
use ripemd::{Ripemd128, Ripemd160, Ripemd256, Ripemd320};
|
||||||
use sha1::Sha1;
|
use sha1::Sha1;
|
||||||
use sha2::{Digest, Sha224, Sha256, Sha384, Sha512};
|
use sha2::{Digest as _, Sha224, Sha256, Sha384, Sha512};
|
||||||
// use sha3::{Sha3_224, Sha3_256, Sha3_384, Sha3_512, Shake128, Shake256};
|
use sha3::{Sha3_224, Sha3_256, Sha3_384, Sha3_512, Shake128, Shake256};
|
||||||
use sha3::{Sha3_224, Sha3_256, Sha3_384, Sha3_512};
|
|
||||||
use shabal::{Shabal192, Shabal224, Shabal256, Shabal384, Shabal512};
|
use shabal::{Shabal192, Shabal224, Shabal256, Shabal384, Shabal512};
|
||||||
// use skein::{
|
use skein::{consts::U32, Skein1024, Skein256, Skein512};
|
||||||
// digest::{core_api::CoreWrapper, KeyInit},
|
|
||||||
// Skein1024, Skein256, Skein512,
|
|
||||||
// };
|
|
||||||
use sm3::Sm3;
|
use sm3::Sm3;
|
||||||
use std::fs::File;
|
|
||||||
use std::io;
|
use std::io;
|
||||||
|
use std::{fs::File, io::Read};
|
||||||
use streebog::{Streebog256, Streebog512};
|
use streebog::{Streebog256, Streebog512};
|
||||||
use tiger::Tiger;
|
use tiger::Tiger;
|
||||||
use whirlpool::Whirlpool;
|
use whirlpool::Whirlpool;
|
||||||
|
@ -104,19 +94,27 @@ pub fn hash_sha3_512(mut file: File) -> String {
|
||||||
return format!("{:x}", hasher.finalize());
|
return format!("{:x}", hasher.finalize());
|
||||||
}
|
}
|
||||||
|
|
||||||
// pub fn hash_shake128(mut file: File) -> String {
|
pub fn hash_shake128(mut file: File) -> String {
|
||||||
// let mut hasher: CoreWrapper<_> = Shake128::new();
|
let mut hasher = Shake128::default();
|
||||||
// _ = io::copy(&mut file, &mut hasher);
|
_ = io::copy(&mut file, &mut hasher);
|
||||||
|
|
||||||
// return format!("{:x}", hasher.finalize());
|
let mut result = String::new();
|
||||||
// }
|
let mut finalized = hasher.finalize_xof();
|
||||||
|
_ = finalized.read_to_string(&mut result);
|
||||||
|
|
||||||
// pub fn hash_shake256(mut file: File) -> String {
|
return format!("{}", result);
|
||||||
// let mut hasher = Shake256::new();
|
}
|
||||||
// _ = io::copy(&mut file, &mut hasher);
|
|
||||||
|
|
||||||
// return format!("{:x}", hasher.finalize());
|
pub fn hash_shake256(mut file: File) -> String {
|
||||||
// }
|
let mut hasher = Shake256::default();
|
||||||
|
_ = io::copy(&mut file, &mut hasher);
|
||||||
|
|
||||||
|
let mut result = String::new();
|
||||||
|
let mut finalized = hasher.finalize_xof();
|
||||||
|
_ = finalized.read_to_string(&mut result);
|
||||||
|
|
||||||
|
return format!("{}", result);
|
||||||
|
}
|
||||||
|
|
||||||
pub fn hash_shabal192(mut file: File) -> String {
|
pub fn hash_shabal192(mut file: File) -> String {
|
||||||
let mut hasher = Shabal192::new();
|
let mut hasher = Shabal192::new();
|
||||||
|
@ -153,26 +151,26 @@ pub fn hash_shabal512(mut file: File) -> String {
|
||||||
return format!("{:x}", hasher.finalize());
|
return format!("{:x}", hasher.finalize());
|
||||||
}
|
}
|
||||||
|
|
||||||
// pub fn hash_skein256(mut file: File) -> String {
|
pub fn hash_skein256(mut file: File) -> String {
|
||||||
// let mut hasher = Skein256::new();
|
let mut hasher = Skein256::<U32>::new();
|
||||||
// _ = io::copy(&mut file, &mut hasher);
|
_ = io::copy(&mut file, &mut hasher);
|
||||||
|
|
||||||
// return format!("{:x}", hasher.finalize());
|
return format!("{:x}", hasher.finalize());
|
||||||
// }
|
}
|
||||||
|
|
||||||
// pub fn hash_skein512(mut file: File) -> String {
|
pub fn hash_skein512(mut file: File) -> String {
|
||||||
// let mut hasher = Skein512::new();
|
let mut hasher = Skein512::<U32>::new();
|
||||||
// _ = io::copy(&mut file, &mut hasher);
|
_ = io::copy(&mut file, &mut hasher);
|
||||||
|
|
||||||
// return format!("{:x}", hasher.finalize());
|
return format!("{:x}", hasher.finalize());
|
||||||
// }
|
}
|
||||||
|
|
||||||
// pub fn hash_skein1024(mut file: File) -> String {
|
pub fn hash_skein1024(mut file: File) -> String {
|
||||||
// let mut hasher = Skein1024::new();
|
let mut hasher = Skein1024::<U32>::new();
|
||||||
// _ = io::copy(&mut file, &mut hasher);
|
_ = io::copy(&mut file, &mut hasher);
|
||||||
|
|
||||||
// return format!("{:x}", hasher.finalize());
|
return format!("{:x}", hasher.finalize());
|
||||||
// }
|
}
|
||||||
|
|
||||||
pub fn hash_gost94(mut file: File) -> String {
|
pub fn hash_gost94(mut file: File) -> String {
|
||||||
let mut hasher = Gost94CryptoPro::new();
|
let mut hasher = Gost94CryptoPro::new();
|
||||||
|
@ -237,15 +235,19 @@ pub fn hash_jh512(mut file: File) -> String {
|
||||||
return format!("{:x}", hasher.finalize());
|
return format!("{:x}", hasher.finalize());
|
||||||
}
|
}
|
||||||
|
|
||||||
// pub fn hash_k12(mut file: File) -> String {
|
pub fn hash_k12(mut file: File) -> String {
|
||||||
// let mut hasher = KangarooTwelve::new();
|
let mut hasher = KangarooTwelve::default();
|
||||||
// _ = io::copy(&mut file, &mut hasher);
|
_ = io::copy(&mut file, &mut hasher);
|
||||||
|
|
||||||
// return format!("{:x}", hasher.finalize());
|
let mut result = String::new();
|
||||||
// }
|
let mut finalized = hasher.finalize_xof();
|
||||||
|
_ = finalized.read_to_string(&mut result);
|
||||||
|
|
||||||
|
return format!("{}", result);
|
||||||
|
}
|
||||||
|
|
||||||
// pub fn hash_kupyna224(mut file: File) -> String {
|
// pub fn hash_kupyna224(mut file: File) -> String {
|
||||||
// let mut hasher = Kupyna224::new();
|
// let mut hasher = Kupyna224::default();
|
||||||
// _ = io::copy(&mut file, &mut hasher);
|
// _ = io::copy(&mut file, &mut hasher);
|
||||||
|
|
||||||
// return format!("{:x}", hasher.finalize());
|
// return format!("{:x}", hasher.finalize());
|
||||||
|
|
14
src/main.rs
14
src/main.rs
|
@ -9,7 +9,7 @@ use std::thread::{self, available_parallelism, JoinHandle};
|
||||||
mod common;
|
mod common;
|
||||||
mod hashers;
|
mod hashers;
|
||||||
|
|
||||||
const ALGORITHMS: [&'static str; 38] = [
|
const ALGORITHMS: [&'static str; 44] = [
|
||||||
"ascon",
|
"ascon",
|
||||||
"belt",
|
"belt",
|
||||||
"blake3",
|
"blake3",
|
||||||
|
@ -28,6 +28,7 @@ const ALGORITHMS: [&'static str; 38] = [
|
||||||
"jh256",
|
"jh256",
|
||||||
"jh384",
|
"jh384",
|
||||||
"jh512",
|
"jh512",
|
||||||
|
"k12",
|
||||||
"ripemd128",
|
"ripemd128",
|
||||||
"ripemd160",
|
"ripemd160",
|
||||||
"ripemd256",
|
"ripemd256",
|
||||||
|
@ -45,6 +46,11 @@ const ALGORITHMS: [&'static str; 38] = [
|
||||||
"shabal256",
|
"shabal256",
|
||||||
"shabal384",
|
"shabal384",
|
||||||
"shabal512",
|
"shabal512",
|
||||||
|
"shake128",
|
||||||
|
"shake256",
|
||||||
|
"skein256",
|
||||||
|
"skein512",
|
||||||
|
"skein1024",
|
||||||
"sm3",
|
"sm3",
|
||||||
"tiger",
|
"tiger",
|
||||||
"whirlpool",
|
"whirlpool",
|
||||||
|
@ -186,6 +192,7 @@ fn hash(info: ThreadInfo) -> Result<(), String> {
|
||||||
"jh256" => hashers::hash_jh256(file),
|
"jh256" => hashers::hash_jh256(file),
|
||||||
"jh384" => hashers::hash_jh384(file),
|
"jh384" => hashers::hash_jh384(file),
|
||||||
"jh512" => hashers::hash_jh512(file),
|
"jh512" => hashers::hash_jh512(file),
|
||||||
|
"k12" => hashers::hash_k12(file),
|
||||||
"md2" => hashers::hash_md2(file),
|
"md2" => hashers::hash_md2(file),
|
||||||
"md4" => hashers::hash_md4(file),
|
"md4" => hashers::hash_md4(file),
|
||||||
"md5" => hashers::hash_md5(file),
|
"md5" => hashers::hash_md5(file),
|
||||||
|
@ -207,6 +214,11 @@ fn hash(info: ThreadInfo) -> Result<(), String> {
|
||||||
"shabal256" => hashers::hash_shabal256(file),
|
"shabal256" => hashers::hash_shabal256(file),
|
||||||
"shabal384" => hashers::hash_shabal384(file),
|
"shabal384" => hashers::hash_shabal384(file),
|
||||||
"shabal512" => hashers::hash_shabal512(file),
|
"shabal512" => hashers::hash_shabal512(file),
|
||||||
|
"shake128" => hashers::hash_shake128(file),
|
||||||
|
"shake256" => hashers::hash_shake256(file),
|
||||||
|
"skein256" => hashers::hash_skein256(file),
|
||||||
|
"skein512" => hashers::hash_skein512(file),
|
||||||
|
"skein1024" => hashers::hash_skein1024(file),
|
||||||
"sm3" => hashers::hash_sm3(file),
|
"sm3" => hashers::hash_sm3(file),
|
||||||
"streebog256" => hashers::hash_streebog256(file),
|
"streebog256" => hashers::hash_streebog256(file),
|
||||||
"streebog512" => hashers::hash_streebog512(file),
|
"streebog512" => hashers::hash_streebog512(file),
|
||||||
|
|
Loading…
Add table
Reference in a new issue