Pad block with zeros excpet the last byte which will be set to the number
bytes.
use block_padding::{AnsiX923, Padding};
let msg = b"test";
let n = msg.len();
let mut buffer = [0xff; 16];
buffer[..n].copy_from_slice(msg);
let padded_msg = AnsiX923::pad(&mut buffer, n, 8).unwrap();
assert_eq!(padded_msg, b"test\x00\x00\x00\x04");
assert_eq!(AnsiX923::unpad(&padded_msg).unwrap(), msg);
let padded_msg = AnsiX923::pad(&mut buffer, n, 2).unwrap();
assert_eq!(padded_msg, b"test\x00\x02");
assert_eq!(AnsiX923::unpad(&padded_msg).unwrap(), msg);
assert!(AnsiX923::unpad(&buffer).is_err());
In addition to conditions stated in the Padding trait documentation,
pad_block will return PadError if block.len() > 255, and in case of
pad if block_size > 255.
Pads block filled with data up to pos. Read more
Unpad given data by truncating it according to the used padding. In case of the malformed padding will return UnpadError Read more
Pads message with length pos in the provided buffer. Read more
🔬 This is a nightly-only experimental API. (try_from)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from)
🔬 This is a nightly-only experimental API. (try_from)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from)
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
🔬 This is a nightly-only experimental API. (get_type_id)
this method will likely be replaced by an associated static