false-bottom/examples/export.rs

38 lines
865 B
Rust

use false_bottom::{FBObj, FBKey};
fn main() {
// Cipher Initialization
let mut fb = FBObj::init(18, 9).unwrap();
// Encryption
let msg1 = "This is a message";
let key1 = fb.add(msg1.as_bytes());
let msg2 = "This is another message";
let key2 = fb.add(msg2.as_bytes());
// Export
let (cipher, keybase) = fb.export();
let key1_exp = key1.export();
let key2_exp = key2.export();
// Import
let fb_new = FBObj::import(&cipher, &keybase).unwrap();
let key1_imp = FBKey::import(&key1_exp).unwrap();
let key2_imp = FBKey::import(&key2_exp).unwrap();
// Decryption
let decr1 = fb_new.decrypt(&key1_imp).unwrap();
let decr2 = fb_new.decrypt(&key2_imp).unwrap();
// Display
println!("
CipherText: \n{cipher}\n
KeyBase: \n{keybase}\n
Key 1: {key1_exp}
Key 2: {key2_exp}
");
assert_eq!(msg1.as_bytes(), decr1);
assert_eq!(msg2.as_bytes(), decr2);
}