caps, ecaps2: Make Blake2b panic and update the blake2 crate to 0.6.1.
See https://github.com/RustCrypto/hashes/issues/34 for more information.
This commit is contained in:
parent
9e6e84fcb4
commit
83c9713ab9
3 changed files with 16 additions and 5 deletions
|
@ -20,6 +20,6 @@ digest = "0.6.0"
|
||||||
sha-1 = "0.4.0"
|
sha-1 = "0.4.0"
|
||||||
sha2 = "0.6.0"
|
sha2 = "0.6.0"
|
||||||
sha3 = "0.6.0"
|
sha3 = "0.6.0"
|
||||||
blake2 = "0.6.0"
|
blake2 = "0.6.1"
|
||||||
chrono = "0.4.0"
|
chrono = "0.4.0"
|
||||||
try_from = "0.2.2"
|
try_from = "0.2.2"
|
||||||
|
|
|
@ -15,11 +15,12 @@ use error::Error;
|
||||||
use ns;
|
use ns;
|
||||||
use base64;
|
use base64;
|
||||||
|
|
||||||
|
use digest::Digest;
|
||||||
use sha_1::Sha1;
|
use sha_1::Sha1;
|
||||||
use sha2::{Sha256, Sha512};
|
use sha2::{Sha256, Sha512};
|
||||||
use sha3::{Sha3_256, Sha3_512};
|
use sha3::{Sha3_256, Sha3_512};
|
||||||
use blake2::Blake2b;
|
//use blake2::Blake2b;
|
||||||
use digest::{Digest, VariableOutput};
|
//use digest::{Digest, VariableOutput};
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Caps {
|
pub struct Caps {
|
||||||
|
@ -173,6 +174,9 @@ pub fn hash_caps(data: &[u8], algo: Algo) -> Result<Hash, String> {
|
||||||
let hash = hasher.result();
|
let hash = hasher.result();
|
||||||
get_hash_vec(hash.as_slice())
|
get_hash_vec(hash.as_slice())
|
||||||
},
|
},
|
||||||
|
Algo::Blake2b_256
|
||||||
|
| Algo::Blake2b_512 => panic!("See https://github.com/RustCrypto/hashes/issues/34"),
|
||||||
|
/*
|
||||||
Algo::Blake2b_256 => {
|
Algo::Blake2b_256 => {
|
||||||
let mut hasher = Blake2b::default();
|
let mut hasher = Blake2b::default();
|
||||||
hasher.input(data);
|
hasher.input(data);
|
||||||
|
@ -187,6 +191,7 @@ pub fn hash_caps(data: &[u8], algo: Algo) -> Result<Hash, String> {
|
||||||
let hash = hasher.variable_result(&mut buf).unwrap();
|
let hash = hasher.variable_result(&mut buf).unwrap();
|
||||||
get_hash_vec(hash)
|
get_hash_vec(hash)
|
||||||
},
|
},
|
||||||
|
*/
|
||||||
Algo::Unknown(algo) => return Err(format!("Unknown algorithm: {}.", algo)),
|
Algo::Unknown(algo) => return Err(format!("Unknown algorithm: {}.", algo)),
|
||||||
},
|
},
|
||||||
algo: algo,
|
algo: algo,
|
||||||
|
|
|
@ -15,10 +15,11 @@ use error::Error;
|
||||||
use ns;
|
use ns;
|
||||||
use base64;
|
use base64;
|
||||||
|
|
||||||
|
use digest::Digest;
|
||||||
use sha2::{Sha256, Sha512};
|
use sha2::{Sha256, Sha512};
|
||||||
use sha3::{Sha3_256, Sha3_512};
|
use sha3::{Sha3_256, Sha3_512};
|
||||||
use blake2::Blake2b;
|
//use blake2::Blake2b;
|
||||||
use digest::{Digest, VariableOutput};
|
//use digest::{Digest, VariableOutput};
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct ECaps2 {
|
pub struct ECaps2 {
|
||||||
|
@ -151,6 +152,9 @@ pub fn hash_ecaps2(data: &[u8], algo: Algo) -> Result<Hash, String> {
|
||||||
let hash = hasher.result();
|
let hash = hasher.result();
|
||||||
get_hash_vec(hash.as_slice())
|
get_hash_vec(hash.as_slice())
|
||||||
},
|
},
|
||||||
|
Algo::Blake2b_256
|
||||||
|
| Algo::Blake2b_512 => panic!("See https://github.com/RustCrypto/hashes/issues/34"),
|
||||||
|
/*
|
||||||
Algo::Blake2b_256 => {
|
Algo::Blake2b_256 => {
|
||||||
let mut hasher = Blake2b::default();
|
let mut hasher = Blake2b::default();
|
||||||
hasher.input(data);
|
hasher.input(data);
|
||||||
|
@ -165,6 +169,7 @@ pub fn hash_ecaps2(data: &[u8], algo: Algo) -> Result<Hash, String> {
|
||||||
let hash = hasher.variable_result(&mut buf).unwrap();
|
let hash = hasher.variable_result(&mut buf).unwrap();
|
||||||
get_hash_vec(hash)
|
get_hash_vec(hash)
|
||||||
},
|
},
|
||||||
|
*/
|
||||||
Algo::Sha_1 => return Err(String::from("Disabled algorithm sha-1: unsafe.")),
|
Algo::Sha_1 => return Err(String::from("Disabled algorithm sha-1: unsafe.")),
|
||||||
Algo::Unknown(algo) => return Err(format!("Unknown algorithm: {}.", algo)),
|
Algo::Unknown(algo) => return Err(format!("Unknown algorithm: {}.", algo)),
|
||||||
},
|
},
|
||||||
|
@ -455,6 +460,7 @@ mod tests {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
#[ignore]
|
||||||
fn test_blake2b_512() {
|
fn test_blake2b_512() {
|
||||||
let hash = ecaps2::hash_ecaps2("abc".as_bytes(), Algo::Blake2b_512).unwrap();
|
let hash = ecaps2::hash_ecaps2("abc".as_bytes(), Algo::Blake2b_512).unwrap();
|
||||||
let known_hash: Vec<u8> = vec!(
|
let known_hash: Vec<u8> = vec!(
|
||||||
|
|
Loading…
Reference in a new issue