#read-write #write #read

xorio

A crate for XOR-ing Read/Write streams

1 unstable release

0.1.0 Feb 4, 2021

#1021 in Cryptography


Used in 2 crates

Custom license

7KB
57 lines

xorio

Crates.io Docs.rs Katharos License

Read/Write implementation that Xor's the bytes that come through it and wraps around another Read or Write.

Examples

Writing

let mut file = File::create("my_xored_file.bin").unwrap();
let mut writer = Xor::new(file);
writer.write_all("Hello World".as_bytes());

Reading

let mut file = File::open("my_xored_file.bin").unwrap();
let mut reader = Xor::new(file);
let mut content = String::new();
reader.read_to_string(&mut content);

Custom Xor Bytes

You can also customize the bytes that it will XOR the stream with. By default it uses a single byte 0b01010101 to calculate the XOR.

let mut file = File::create("my_xored_file.bin").unwrap();
let mut writer = Xor::new_with_xor_bytes(file, vec![1, 2, 3]);
writer.write_all("Hello World".as_bytes());

License

This crate is licensed under the Katharos License which places certain restrictions on what you are allowed to use it for. Please read and understand the terms before using this crate for your project.

No runtime deps