Expand description
An implementation of the Shabal cryptographic hash algorithm.
There are 5 standard algorithms specified in the Shabal standard:
Shabal192
, which is theShabal
algorithm with the result truncated to 192 bitsShabal224
, which is theShabal
algorithm with the result truncated to 224 bitsShabal256
, which is theShabal
algorithm with the result truncated to 256 bits.Shabal384
, which is theShabal
algorithm with the result truncated to 384 bits.Shabal512
, which is theShabal
algorithm with the result not truncated.
There is a single Shabal algorithm. All variants have different initialisation and apart from Shabal512 all truncate the result.
§Usage
use hex_literal::hex;
use shabal::{Shabal256, Digest};
// create a Shabal256 hasher instance
let mut hasher = Shabal256::new();
// process input message
hasher.update(b"helloworld");
// acquire hash digest in the form of GenericArray,
// which in this case is equivalent to [u8; 32]
let result = hasher.finalize();
assert_eq!(result[..], hex!("
d945dee21ffca23ac232763aa9cac6c15805f144db9d6c97395437e01c8595a8
")[..]);
Also see RustCrypto/hashes readme.
Re-exports§
pub use digest;
Structs§
- Shabal
VarCore - Inner state of Shabal hash functions.
Traits§
- Digest
- Convenience wrapper trait covering functionality of cryptographic hash functions with fixed output size.