false-bottom/examples/encryption.rs

34 lines
1.1 KiB
Rust

use false_bottom::{FB128, FBAlgo};
fn main() {
// Input messages
let fake_msg = "Weather department warns of heavy rains within the upcoming two days";
let real_msg1 = "I have obtained intel regarding the government's illegal spying";
let real_msg2 = "Please meet me at the Paradise hotel at 5:30 PM";
// Cipher initialization
let mut fb = FB128::init(18, 12).unwrap();
// Encryption
let real_key1 = fb.add(&real_msg1.as_bytes());
let real_key2 = fb.add(&real_msg2.as_bytes());
let fake_key = fb.add(&fake_msg.as_bytes());
// Decryption
let fake_decr = fb.decrypt(&fake_key).unwrap();
let real1_decr = fb.decrypt(&real_key1).unwrap();
let real2_decr = fb.decrypt(&real_key2).unwrap();
let fake_str = String::from_utf8(fake_decr).unwrap();
let real_str1 = String::from_utf8(real1_decr).unwrap();
let real_str2 = String::from_utf8(real2_decr).unwrap();
println!("Decrypted Contents:");
println!("Fake Message: {fake_str}");
println!("Real Message 1: {real_str1}");
println!("Real Message 2: {real_str2}");
assert_eq!(fake_msg, fake_str);
assert_eq!(real_msg1, real_str1);
assert_eq!(real_msg2, real_str2);
}