Expand description
An implementation of the SHA-2 cryptographic hash algorithms.
There are 6 standard algorithms specified in the SHA-2 standard:
Sha224
, which is the 32-bitSha256
algorithm with the result truncated to 224 bits.Sha256
, which is the 32-bitSha256
algorithm.Sha384
, which is the 64-bitSha512
algorithm with the result truncated to 384 bits.Sha512
, which is the 64-bitSha512
algorithm.Sha512Trunc224
, which is the 64-bitSha512
algorithm with the result truncated to 224 bits.Sha512Trunc256
, which is the 64-bitSha512
algorithm with the result truncated to 256 bits.
Algorithmically, there are only 2 core algorithms: Sha256
and Sha512
.
All other algorithms are just applications of these with different initial hash
values, and truncated to different digest bit lengths.
§Usage
An example of using Sha256
is:
use self::crypto::digest::Digest;
use self::crypto::sha2::Sha256;
// create a Sha256 object
let mut hasher = Sha256::new();
// write input message
hasher.input_str("hello world");
// read hash digest
let hex = hasher.result_str();
assert_eq!(hex,
concat!("b94d27b9934d3e08a52e52d7da7dabfa",
"c484efe37a5380ee9088f7ace2efcde9"));
An example of using Sha512
is:
use self::crypto::digest::Digest;
use self::crypto::sha2::Sha512;
// create a Sha512 object
let mut hasher = Sha512::new();
// write input message
hasher.input_str("hello world");
// read hash digest
let hex = hasher.result_str();
assert_eq!(hex,
concat!("309ecc489c12d6eb4cc40f50c902f2b4",
"d0ed77ee511a7c7a9bcd3ca86d4cd86f",
"989dd35bc5ff499670da34255b45b0cf",
"d830e81f605dcf7dc5542e93ae9cd76f"));
Structs§
- The SHA-256 hash algorithm with the SHA-224 initial hash value. The result is truncated to 224 bits.
- The SHA-256 hash algorithm with the SHA-256 initial hash value.
- The SHA-512 hash algorithm with the SHA-384 initial hash value. The result is truncated to 384 bits.
- The SHA-512 hash algorithm with the SHA-512 initial hash value.
- The SHA-512 hash algorithm with the SHA-512/224 initial hash value. The result is truncated to 224 bits.
- The SHA-512 hash algorithm with the SHA-512/256 initial hash value. The result is truncated to 256 bits.
Constants§
- Constants necessary for SHA-256 family of digests.
- Constants necessary for SHA-512 family of digests.
- Constants necessary for SHA-256 family of digests.
- Constants necessary for SHA-512 family of digests.
Functions§
- Process a block with the SHA-256 algorithm. (See more…)
- Process a block with the SHA-256 algorithm.
- Emulates
llvm.x86.sha256rnds2
intrinsic. - Performs 4 rounds of the SHA-256 message schedule update.
- Process a block with the SHA-512 algorithm. (See more…)
- Process a block with the SHA-512 algorithm.
- Performs one round of the SHA-512 message block digest.
- Performs 2 rounds of the SHA-512 message schedule update.