34 lines
1.1 KiB
Rust
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);
|
|
}
|