rs_sha512_224
rs_sha512_224
is a Rust crate implementing the SHA-512/224 cryptographic hash algorithm. Configured for compatibility with Rust's libcore within a #![no_std]
context, it operates as a standalone crate for specialized use cases and is also compatible with a #![no_std]
, #![no_alloc]
environment, rendering it suitable for systems where dynamic memory allocation is untenable.
This implementation of SHA-512/224 is compliant with the Federal Information Processing Standards (FIPS) Publication 180-4[^1]. In line with the National Institute of Standards and Technology (NIST) guidelines, SHA-512/224 is recommended for several use cases:
"SHA-512/224 provides 112 bits of security against collision attacks and, therefore, is suitable for functions requiring a hash length of 112 bits."
Given this advice, NIST recommendations imply that SHA-512/224 is suitable for the following contexts:
Beyond these specific recommendations, SHA-512/224 could also find application in:
Given your overall security objectives and risk tolerance, these points should be carefully considered.
For access to a comprehensive range of cryptographic functions, rs_sha512_224
can be utilized as part of the rs_ssl
library bundle.
Below are steps to use the rs_sha512_224
crate in your Rust projects:
Add the following line to your Cargo.toml
under the [dependencies]
section:
toml
rs_sha512_224 = "0.1.*"
Use the functions provided by the rs_sha512_224
module in your code. Here's an example of how to create a SHA-512/224 hash from a string:
```rust use rssha512224::{HasherContext, Sha512_224Hasher};
let mut sha512224hasher = Sha512224Hasher::default(); sha512_224hasher.write(b"your string here");
let u64result = sha512224hasher.finish(); let bytesresult = HasherContext::finish(&mut sha512224hasher); asserteq!(u64result, 0x233E7E4F520121E4); asserteq!(format!("{bytesresult:02x}"), "233e7e4f520121e40eef63455e3b7f1815aabb985431e7afbbf880b3"); asserteq!(format!("{bytesresult:02X}"), "233E7E4F520121E40EEF63455E3B7F1815AABB985431E7AFBBF880B3"); asserteq!( bytesresult, [ 0x23, 0x3E, 0x7E, 0x4F, 0x52, 0x01, 0x21, 0xE4, 0x0E, 0xEF, 0x63, 0x45, 0x5E, 0x3B, 0x7F, 0x18, 0x15, 0xAA, 0xBB, 0x98, 0x54, 0x31, 0xE7, 0xAF, 0xBB, 0xF8, 0x80, 0xB3 ] ) ```
For a more detailed exploration of rs_sha512_224
, an overview of other available cryptographic functions, and an introduction to the broader rs_ssl
project, please consult the RustySSL project page on crates.io.
Potential contributors are encouraged to consult the contribution guidelines on our GitHub page.
This project is licensed under GPL-2.0-only.
Note: The references have been provided as per the best knowledge as of Jun 02, 2023.