extern crate core;
use std::fs::{File, OpenOptions};
use std::io::{Read, Write};
use base64::decode;
use cryptostream::{read, write};
use openssl::symm::Cipher;
use encrypted_fs::encrypted_fs::crypto_util::{decrypt_string, encrypt_string};
fn main() {
let src: Vec<u8> = decode(concat!(
"vuU+0SXFWQLu8vl/o1WzmPCmf7x/O6ToGQ162Aq2CHxcnc/ax/Q8nTbRlNn0OSPrFuE3yDdO",
"VC35RmwtUIlxKIkWbnxJpRF5yRJvVByQgWX1qLW8DfMjRp7gVaFNv4qr7G65M6hbSx6hGJXv",
"Q6s1GiFwi91q0V17DI79yVrINHCXdBnUOqeLGfJ05Edu+39EQNYn4dky7VdgTP2VYZE7Vw==",
))
.unwrap();
let key: Vec<_> = decode("kjtbxCPw3XPFThb3mKmzfg==").unwrap();
let iv: Vec<_> = decode("dB0Ej+7zWZWTS5JUCldWMg==").unwrap();
let mut decryptor =
read::Decryptor::new(src.as_slice(), Cipher::aes_128_cbc(), &key, &iv).unwrap();
let mut decrypted = [0u8; 1024]; let mut bytes_decrypted = 0;
loop {
let read_count = decryptor.read(&mut decrypted[bytes_decrypted..]).unwrap();
bytes_decrypted += read_count;
if read_count == 0 {
break;
}
}
let key: Vec<_> = decode("kjtbxCPw3XPFThb3mKmzfg==").unwrap();
let iv: Vec<_> = decode("dB0Ej+7zWZWTS5JUCldWMg==").unwrap();
let file = OpenOptions::new()
.write(true)
.create(true)
.open("encrypted_file.enc")
.unwrap();
let mut encryptor =
write::Encryptor::new(file, Cipher::aes_128_cbc(), &key, &iv).unwrap();
encryptor.write_all(b"test-42").unwrap();
encryptor.flush().unwrap();
let file = File::open("encrypted_file.enc").unwrap();
let mut decryptor =
read::Decryptor::new(file, Cipher::aes_128_cbc(), &key, &iv).unwrap();
let mut decrypted = [0u8; 1024]; let mut bytes_decrypted = 0;
loop {
let read_count = decryptor.read(&mut decrypted[bytes_decrypted..]).unwrap();
bytes_decrypted += read_count;
if read_count == 0 {
break;
}
}
println!("dec {}", String::from_utf8_lossy(&decrypted));
}