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 |
#2981 in Cryptography
31,505 downloads per month
Used in 7 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 theShabalalgorithm with the result truncated to 192 bitsShabal224, which is theShabalalgorithm with the result truncated to 224 bitsShabal256, which is theShabalalgorithm with the result truncated to 256 bits.Shabal384, which is theShabalalgorithm with the result truncated to 384 bits.Shabal512, which is theShabalalgorithm 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
~660KB
~16K SLoC