mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-29 12:07:46 +00:00
Merge pull request #2296 from oconnor663/blake2b_simd
switch from blake2-rfc to blake2b_simd
This commit is contained in:
commit
27456fc8fb
4 changed files with 31 additions and 19 deletions
30
Cargo.lock
generated
30
Cargo.lock
generated
|
@ -44,13 +44,22 @@ dependencies = [
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "arrayvec"
|
name = "array-init"
|
||||||
version = "0.4.12"
|
version = "2.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9"
|
checksum = "6945cc5422176fc5e602e590c2878d2c2acd9a4fe20a4baa7c28022521698ec6"
|
||||||
dependencies = [
|
|
||||||
"nodrop",
|
[[package]]
|
||||||
]
|
name = "arrayref"
|
||||||
|
version = "0.3.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "arrayvec"
|
||||||
|
version = "0.5.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "atty"
|
name = "atty"
|
||||||
|
@ -100,11 +109,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
|
checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "blake2-rfc"
|
name = "blake2b_simd"
|
||||||
version = "0.2.18"
|
version = "0.5.11"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400"
|
checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"arrayref",
|
||||||
"arrayvec",
|
"arrayvec",
|
||||||
"constant_time_eq",
|
"constant_time_eq",
|
||||||
]
|
]
|
||||||
|
@ -2029,7 +2039,7 @@ dependencies = [
|
||||||
name = "uu_hashsum"
|
name = "uu_hashsum"
|
||||||
version = "0.0.6"
|
version = "0.0.6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"blake2-rfc",
|
"blake2b_simd",
|
||||||
"clap",
|
"clap",
|
||||||
"digest",
|
"digest",
|
||||||
"hex",
|
"hex",
|
||||||
|
|
|
@ -25,7 +25,7 @@ regex-syntax = "0.6.7"
|
||||||
sha1 = "0.6.0"
|
sha1 = "0.6.0"
|
||||||
sha2 = "0.6.0"
|
sha2 = "0.6.0"
|
||||||
sha3 = "0.6.0"
|
sha3 = "0.6.0"
|
||||||
blake2-rfc = "0.2.18"
|
blake2b_simd = "0.5.11"
|
||||||
uucore = { version=">=0.0.8", package="uucore", path="../../uucore" }
|
uucore = { version=">=0.0.8", package="uucore", path="../../uucore" }
|
||||||
uucore_procs = { version=">=0.0.5", package="uucore_procs", path="../../uucore_procs" }
|
uucore_procs = { version=">=0.0.5", package="uucore_procs", path="../../uucore_procs" }
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
extern crate blake2_rfc;
|
|
||||||
extern crate digest;
|
extern crate digest;
|
||||||
extern crate md5;
|
extern crate md5;
|
||||||
extern crate sha1;
|
extern crate sha1;
|
||||||
|
@ -49,9 +48,9 @@ impl Digest for md5::Context {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Digest for blake2_rfc::blake2b::Blake2b {
|
impl Digest for blake2b_simd::State {
|
||||||
fn new() -> Self {
|
fn new() -> Self {
|
||||||
blake2_rfc::blake2b::Blake2b::new(64)
|
Self::new()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn input(&mut self, input: &[u8]) {
|
fn input(&mut self, input: &[u8]) {
|
||||||
|
@ -59,12 +58,12 @@ impl Digest for blake2_rfc::blake2b::Blake2b {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn result(&mut self, out: &mut [u8]) {
|
fn result(&mut self, out: &mut [u8]) {
|
||||||
let hash_result = &self.clone().finalize();
|
let hash_result = &self.finalize();
|
||||||
out.copy_from_slice(&hash_result.as_bytes());
|
out.copy_from_slice(&hash_result.as_bytes());
|
||||||
}
|
}
|
||||||
|
|
||||||
fn reset(&mut self) {
|
fn reset(&mut self) {
|
||||||
*self = blake2_rfc::blake2b::Blake2b::new(64);
|
*self = Self::new();
|
||||||
}
|
}
|
||||||
|
|
||||||
fn output_bits(&self) -> usize {
|
fn output_bits(&self) -> usize {
|
||||||
|
|
|
@ -19,7 +19,6 @@ mod digest;
|
||||||
|
|
||||||
use self::digest::Digest;
|
use self::digest::Digest;
|
||||||
|
|
||||||
use blake2_rfc::blake2b::Blake2b;
|
|
||||||
use clap::{App, Arg, ArgMatches};
|
use clap::{App, Arg, ArgMatches};
|
||||||
use hex::ToHex;
|
use hex::ToHex;
|
||||||
use md5::Context as Md5;
|
use md5::Context as Md5;
|
||||||
|
@ -85,7 +84,11 @@ fn detect_algo<'a>(
|
||||||
"sha256sum" => ("SHA256", Box::new(Sha256::new()) as Box<dyn Digest>, 256),
|
"sha256sum" => ("SHA256", Box::new(Sha256::new()) as Box<dyn Digest>, 256),
|
||||||
"sha384sum" => ("SHA384", Box::new(Sha384::new()) as Box<dyn Digest>, 384),
|
"sha384sum" => ("SHA384", Box::new(Sha384::new()) as Box<dyn Digest>, 384),
|
||||||
"sha512sum" => ("SHA512", Box::new(Sha512::new()) as Box<dyn Digest>, 512),
|
"sha512sum" => ("SHA512", Box::new(Sha512::new()) as Box<dyn Digest>, 512),
|
||||||
"b2sum" => ("BLAKE2", Box::new(Blake2b::new(64)) as Box<dyn Digest>, 512),
|
"b2sum" => (
|
||||||
|
"BLAKE2",
|
||||||
|
Box::new(blake2b_simd::State::new()) as Box<dyn Digest>,
|
||||||
|
512,
|
||||||
|
),
|
||||||
"sha3sum" => match matches.value_of("bits") {
|
"sha3sum" => match matches.value_of("bits") {
|
||||||
Some(bits_str) => match (&bits_str).parse::<usize>() {
|
Some(bits_str) => match (&bits_str).parse::<usize>() {
|
||||||
Ok(224) => (
|
Ok(224) => (
|
||||||
|
@ -187,7 +190,7 @@ fn detect_algo<'a>(
|
||||||
set_or_crash("SHA512", Box::new(Sha512::new()), 512)
|
set_or_crash("SHA512", Box::new(Sha512::new()), 512)
|
||||||
}
|
}
|
||||||
if matches.is_present("b2sum") {
|
if matches.is_present("b2sum") {
|
||||||
set_or_crash("BLAKE2", Box::new(Blake2b::new(64)), 512)
|
set_or_crash("BLAKE2", Box::new(blake2b_simd::State::new()), 512)
|
||||||
}
|
}
|
||||||
if matches.is_present("sha3") {
|
if matches.is_present("sha3") {
|
||||||
match matches.value_of("bits") {
|
match matches.value_of("bits") {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue