obg/aescbc/
xor.rs

1use crate::aescbc::tp::{B128, B256};
2
3pub fn xor_128(left: B128, right: B128) -> B128 {
4    let mut result: B128 = [0; 16];
5    for (i, (s, o)) in left.into_iter().zip(right.iter()).enumerate() {
6        result[i] = s ^ o;
7    }
8    result
9}
10
11pub fn xor_256(left: B256, right: B256) -> B256 {
12    let mut result: B256 = [0; 32];
13    for (i, (s, o)) in left.into_iter().zip(right.iter()).enumerate() {
14        result[i] = s ^ o;
15    }
16    result
17}
18
19pub fn xor(a: &[u8], b: &[u8]) -> Vec<u8> {
20    a.into_iter().zip(b.iter()).map(|(a, b)| a ^ b).collect()
21}