Crate shabal

Source
Expand description

An implementation of the Shabal cryptographic hash algorithm.

There are 5 standard algorithms specified in the Shabal standard:

  • Shabal192, which is the Shabal algorithm with the result truncated to 192 bits
  • Shabal224, which is the Shabal algorithm with the result truncated to 224 bits
  • Shabal256, which is the Shabal algorithm with the result truncated to 256 bits.
  • Shabal384, which is the Shabal algorithm with the result truncated to 384 bits.
  • Shabal512, which is the Shabal 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§

ShabalVarCore
Inner state of Shabal hash functions.

Traits§

Digest
Convenience wrapper trait covering functionality of cryptographic hash functions with fixed output size.

Type Aliases§

Shabal192
Shabal192 hasher.
Shabal224
Shabal224 hasher.
Shabal256
Shabal256 hasher.
Shabal384
Shabal384 hasher.
Shabal512
Shabal512 hasher.