Crates.io | xxtea-nostd |
lib.rs | xxtea-nostd |
version | 0.1.0 |
source | src |
created_at | 2020-04-30 19:21:37.467266 |
updated_at | 2020-04-30 19:21:37.467266 |
description | Rust XXTEA implementation for no-std environments |
homepage | |
repository | https://github.com/mgottschlag/xxtea-nostd |
max_upload_size | |
id | 235922 |
size | 16,987 |
xxtea-nostd is an implementation of the XXTEA encryption algorithm designed for
no-std
environments. The code uses native endianess to interpret the byte
slices passed to the library as 4-byte words.
This code implements a raw block cipher. Do not use it directly, implement a more secure mode such as cipher block chaining (CBC) on top of it instead.
use xxtea_nostd::{decrypt, encrypt};
fn main() {
let key = [
0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0,
0x80,
];
let mut data = [0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80];
println!("Original: {:?}", data);
encrypt(&key, &mut data);
println!("Encrypted: {:?}", data); // Should be 8c3707c01c7fccc4.
decrypt(&key, &mut data);
println!("Decrypted: {:?}", data);
}
I am no cryptography expert. Use this code at your own risk. If you use this code, your program might kill cute little kittens. You have been warned.
The code is licensed under the CC0 1.0. See LICENSE or https://creativecommons.org/publicdomain/zero/1.0/ for more information.