Headers viewer
This commit is contained in:
parent
18b0818ee4
commit
7cf87d5fa4
24
src/bin/headers.rs
Normal file
24
src/bin/headers.rs
Normal file
@ -0,0 +1,24 @@
|
||||
use std::{env, fs::File, io::{self, Read}};
|
||||
use doby::{MAGIC_BYTES, crypto::EncryptionParams};
|
||||
|
||||
fn main() -> io::Result<()> {
|
||||
let args: Vec<String> = env::args().collect();
|
||||
let mut file = File::open(&args[1])?;
|
||||
|
||||
let mut magic_bytes = vec![0; MAGIC_BYTES.len()];
|
||||
file.read(&mut magic_bytes)?;
|
||||
if magic_bytes == MAGIC_BYTES {
|
||||
match EncryptionParams::read(&mut file)? {
|
||||
Some(params) => {
|
||||
println!("Argon2 time cost: {}", params.argon2.t_cost);
|
||||
println!("Argon2 memory cost: {}KB", params.argon2.m_cost);
|
||||
println!("Argon2 parallelism: {}", params.argon2.parallelism);
|
||||
println!("Encryption cihpher: {}", params.cipher);
|
||||
}
|
||||
None => eprintln!("Invalid cipher")
|
||||
}
|
||||
} else {
|
||||
eprintln!("Doby format not recognized.");
|
||||
}
|
||||
Ok(())
|
||||
}
|
@ -1,4 +1,8 @@
|
||||
use std::{convert::TryFrom, io::{self, Read, Write}};
|
||||
use std::{
|
||||
convert::TryFrom,
|
||||
fmt::{self, Display, Formatter},
|
||||
io::{self, Read, Write}
|
||||
};
|
||||
use num_enum::TryFromPrimitive;
|
||||
use chacha20::XChaCha20;
|
||||
use aes::{Aes256Ctr, cipher::{NewCipher, StreamCipher}};
|
||||
@ -37,13 +41,22 @@ impl CipherAlgorithm {
|
||||
}
|
||||
}
|
||||
|
||||
impl Display for CipherAlgorithm {
|
||||
fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
|
||||
f.write_str(match self {
|
||||
CipherAlgorithm::AesCtr => "AES-CTR",
|
||||
CipherAlgorithm::XChaCha20 => "XChaCha20",
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Eq)]
|
||||
pub struct EncryptionParams {
|
||||
password_salt: [u8; SALT_LEN],
|
||||
argon2: ArgonParams,
|
||||
pub argon2: ArgonParams,
|
||||
hkdf_salt: [u8; SALT_LEN],
|
||||
nonce: Vec<u8>,
|
||||
cipher: CipherAlgorithm,
|
||||
pub cipher: CipherAlgorithm,
|
||||
}
|
||||
|
||||
impl EncryptionParams {
|
||||
|
Loading…
Reference in New Issue
Block a user