1 unstable release
0.1.0 | Nov 6, 2023 |
---|
#1695 in Filesystem
1MB
837 lines
Intro
This crate takes an incremental backup from a directory while encrypting its entire content, including filenames. It supports AES256 and Chacha20 ciphers and uses the OpenSSL library via openssl crate.
Usage
The OpenSSL library must be already installed on the host OS:
# On Debian
$ sudo apt install libssl-dev
use std::{env, path::Path};
use secure_backup::{
backup::take_backup,
restore::restore_backup,
common::Cipher
};
let current_dir = env::current_dir().unwrap();
let password = "password";
let salt = "salt";
let ignore_list = vec!["*.ignore"];
let source_dir = current_dir.join(Path::new("path_to_the_src_dir")).to_path_buf();
let backup_dir = env::temp_dir().join("path_to_the_backup_dir").to_path_buf();
// Take a backup
take_backup(&source_dir, &backup_dir, Cipher::AES256, password, salt, &ignore_list);
// Restore the backup
let restore_dir = env::temp_dir().join("path_to_the_restore_dir").to_path_buf();
restore_backup(Cipher::AES256, &backup_dir, &restore_dir, password, salt);
License
Dependencies
~2.3–3.5MB
~81K SLoC