sqlcrypto 0.1.0

lightweight and memory efficient sqlite/sqlcipher encryption (not secure)/decryption in pure rust
Documentation
use std::time::Instant;
use std::fs::File;
use sqlcrypto::Error;

fn main() -> sqlcrypto::Result<()> {
    let mut args: Vec<String> = std::env::args().collect();
    args.remove(0);
    if args.len() != 4 {
        println!("sqlcrypto-cli.exe encrypt/decrypt encrypted.db password decrypted.db");
        return Ok(())
    }
    let victim = std::fs::read(&args[1])?;
    let password = &args[2];
    let mut result = File::create(&args[3])?;
    let instant = Instant::now();
    match &*args[0] {
        "decrypt" => {
            println!("decrypting");
            sqlcrypto::decrypt(victim, password.as_bytes(), &mut result)?;
            Ok(())
        }
        "encrypt" => {
            println!("encrypting");
            sqlcrypto::encrypt(victim, password.as_bytes(), &mut result)?;
            Ok(())
        }
        _ => {
            Err(Error::Message("Invalid mode"))
        }
    }?;
    println!("took {} seconds", instant.elapsed().as_secs_f32());
    Ok(())
}