From 766a36e790952f23cbea91223b7c609df17bf4ab Mon Sep 17 00:00:00 2001 From: Felix Martin Date: Wed, 13 Apr 2022 21:42:42 -0400 Subject: [PATCH] Implement challenge 9 pkcs 7 padding. --- src/bytes.rs | 8 ++++++++ src/main.rs | 3 +++ src/set2.rs | 11 +++++++++++ 3 files changed, 22 insertions(+) create mode 100644 src/set2.rs diff --git a/src/bytes.rs b/src/bytes.rs index 7ef71f1..84d7523 100644 --- a/src/bytes.rs +++ b/src/bytes.rs @@ -67,6 +67,14 @@ impl Bytes { r } + pub fn pad_pkcs7(&mut self, block_size: usize) -> () { + let Bytes(v) = self; + let padding_value = (block_size - v.len() % block_size) as u8; + for _ in 0..padding_value { + v.push(padding_value); + } + } + pub fn xor(Bytes(a): &Bytes, Bytes(b): &Bytes) -> Bytes { Bytes( Iterator::zip(a.iter(), b.iter()) diff --git a/src/main.rs b/src/main.rs index 123ae2b..bd2f177 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,7 @@ mod bytes; mod bytes_base64; mod set1; +mod set2; fn main() { set1::challenge1(); @@ -11,4 +12,6 @@ fn main() { set1::challenge6(); set1::challenge7(); set1::challenge8(); + set2::challenge9(); + set2::challenge10(); } diff --git a/src/set2.rs b/src/set2.rs new file mode 100644 index 0000000..26c62f9 --- /dev/null +++ b/src/set2.rs @@ -0,0 +1,11 @@ +use crate::bytes::Bytes; + +pub fn challenge9() { + let mut bytes = Bytes::from_utf8("YELLOW SUBMARINE"); + bytes.pad_pkcs7(20); + println!("[okay] Challenge 9: {:?}", bytes.to_utf8()); +} + +pub fn challenge10() { + println!("[TBD] Challenge 10: TBD"); +}