5 releases (3 breaking)
0.4.1 | Feb 17, 2022 |
---|---|
0.4.0 | Dec 7, 2021 |
0.3.0 | Jun 12, 2020 |
0.2.0 | Feb 26, 2019 |
0.1.0 | Feb 25, 2019 |
#2766 in Cryptography
3,050 downloads per month
Used in 6 crates
21KB
342 lines
RustCrypto: Shabal
Pure Rust implementation of the Shabal cryptographic hash algorithm.
About
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 shabal::{Shabal256, Digest};
// create a Shabal256 hasher instance
let mut hasher = Shabal256::new();
// process input message
hasher.input(b"helloworld");
// acquire hash digest in the form of GenericArray,
// which in this case is equivalent to [u8; 32]
let result = hasher.result();
assert_eq!(result[..], hex!("d945dee21ffca23ac232763aa9cac6c15805f144db9d6c97395437e01c8595a8"));
Minimum Supported Rust Version
Rust 1.41 or higher.
Minimum supported Rust version can be changed in the future, but it will be done with a minor version bump.
SemVer Policy
- All on-by-default features of this library are covered by SemVer
- MSRV is considered exempt from SemVer as noted above
License
Licensed under either of:
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~340KB