[][src]Function extendhash::sha512::padding_for_length

pub fn padding_for_length(input_length: usize) -> Vec<u8>

Compute the SHA-512 padding for the given input length.

Arguments

  • input_length - The length of the input length. This value is needed to determine the padding length, and to embed the length in the last 16 bytes of padding.

Returns

This function returns SHA-512 padding for the given input size. This padding has a length you can determine by calling sha512::padding_length_for_input_length.

Example

let data = "This string will be hashed.";
let padding = sha512::padding_for_length(data.len());
assert_eq!(data.len() + padding.len(), 128);
for (i, p) in padding.iter().enumerate() {
    match i {
        0       => 0b1000_0000,
        1..=84  => 0b0000_0000,
        85      => data.len() as u8 * 8,
        86..=100 => 0b0000_0000,
        _       => unreachable!("Invalid padding length")
    };
}