Function aes_frast::padding_128bit::pa_zeros_ifnotcomplete [] [src]

pub fn pa_zeros_ifnotcomplete(input_vec: &mut Vec<u8>)

Zeros padding only if not complete

This padding has never been standardized in cryptography specifications. So, NOT recommended.
Different from the pa_zeros function, this function only adds zeros to the incomplete end-block. When the end-block is complete, it keeps it unchanged.

[Attention!] If the origin data ends with zero(s) (one or more 0xFF), depadding will remove all these zeros.

Examples

use aes_frast::padding_128bit::pa_zeros_ifnotcomplete;
 
let mut origin = vec![0xFFu8; 7];
pa_zeros_ifnotcomplete(&mut origin);
 
assert_eq!(origin, vec![0xFFu8, 0xFFu8, 0xFFu8, 0xFFu8, 0xFFu8, 0xFFu8, 0xFFu8, 0x00u8,
                        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8]);
 
origin = vec![0xFFu8; 16];
pa_zeros_ifnotcomplete(&mut origin);
 
assert_eq!(origin, vec![0xFFu8, 0xFFu8, 0xFFu8, 0xFFu8, 0xFFu8, 0xFFu8, 0xFFu8, 0xFFu8,
                        0xFFu8, 0xFFu8, 0xFFu8, 0xFFu8, 0xFFu8, 0xFFu8, 0xFFu8, 0xFFu8]);