dup_crypto/xor_cipher.rs
1// Copyright (C) 2020 Éloïs SANCHEZ.
2//
3// This program is free software: you can redistribute it and/or modify
4// it under the terms of the GNU Affero General Public License as
5// published by the Free Software Foundation, either version 3 of the
6// License, or (at your option) any later version.
7//
8// This program is distributed in the hope that it will be useful,
9// but WITHOUT ANY WARRANTY; without even the implied warranty of
10// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11// GNU Affero General Public License for more details.
12//
13// You should have received a copy of the GNU Affero General Public License
14// along with this program. If not, see <https://www.gnu.org/licenses/>.
15
16//! XOR Cipher
17
18#[cfg(feature = "dewif")]
19pub(crate) fn xor_cipher(input: &[u8], key: &[u8], output: &mut [u8]) {
20 assert_eq!(input.len(), key.len());
21 assert_eq!(input.len(), output.len());
22
23 for i in 0..input.len() {
24 output[i] = input[i] ^ key[i];
25 }
26}