diff options
author | Jesse Luehrs <doy@tozt.net> | 2015-03-23 00:13:17 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2015-03-23 00:13:17 -0400 |
commit | b4e18078b1c742b7d973ac61422407d9871725fd (patch) | |
tree | 64a68826acc83a0b16d28ab9278fd29160dc0715 | |
parent | afc451615ea4c1713b4b101294dbd71ab1987193 (diff) | |
download | matasano-b4e18078b1c742b7d973ac61422407d9871725fd.tar.gz matasano-b4e18078b1c742b7d973ac61422407d9871725fd.zip |
factor this out
-rw-r--r-- | src/aes.rs | 18 |
1 files changed, 10 insertions, 8 deletions
@@ -249,14 +249,9 @@ fn find_block_size<F> (f: &F) -> usize where F: Fn(&[u8]) -> Vec<u8> { .collect(); let next = f(&prefix[..]); - let shared_prefix_len = prev - .iter() - .enumerate() - .take_while(|&(i, &c)| { c == next[i] }) - .count(); - - if shared_prefix_len > 0 { - return shared_prefix_len; + let prefix_len = shared_prefix_len(prev.iter(), next.iter()); + if prefix_len > 0 { + return prefix_len; } prev = next; @@ -264,6 +259,13 @@ fn find_block_size<F> (f: &F) -> usize where F: Fn(&[u8]) -> Vec<u8> { } } +fn shared_prefix_len<I> (i1: I, i2: I) -> usize where I: Iterator, <I as Iterator>::Item: PartialEq { + return i1 + .zip(i2) + .take_while(|&(ref c1, ref c2)| { c1 == c2 }) + .count(); +} + #[test] fn test_encrypt_decrypt () { let plaintext = b"Summertime and the wind is blowing outside in lower \ |