IV generation
This commit is contained in:
parent
821af01c8f
commit
4ec212dd4b
3 changed files with 9 additions and 5 deletions
2
Cargo.lock
generated
2
Cargo.lock
generated
|
@ -598,7 +598,7 @@ dependencies = [
|
|||
"password-hash 0.4.2",
|
||||
"passwords",
|
||||
"pbkdf2",
|
||||
"rand_core",
|
||||
"rand",
|
||||
"reqwest",
|
||||
"sha2",
|
||||
"sha3",
|
||||
|
|
|
@ -12,7 +12,7 @@ argon2 = "0.4.1"
|
|||
bcrypt = "0.13.0"
|
||||
pbkdf2 = "0.10"
|
||||
password-hash = "0.4.2"
|
||||
rand_core = { version = "0.6", features = ["std"] }
|
||||
rand = "0.8.5"
|
||||
passwords = "3.1.12"
|
||||
reqwest = "0.11.13"
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@ use std::{
|
|||
use aes_gcm::{aead::Aead, Aes256Gcm, KeyInit, Nonce};
|
||||
use argon2::PasswordHasher;
|
||||
use password_hash::SaltString;
|
||||
use rand::{rngs::StdRng, RngCore, SeedableRng};
|
||||
|
||||
use super::{Store, StoreRecord};
|
||||
|
||||
|
@ -217,13 +218,16 @@ fn serialize_header(header: &LocalStoreHeader) -> Vec<u8> {
|
|||
fn try_create_store(path: &String, passphrase: &Vec<u8>) -> bool {
|
||||
let timestamp: u32 = std::time::UNIX_EPOCH.elapsed().unwrap().as_secs() as u32;
|
||||
|
||||
let salt = SaltString::generate(&mut rand_core::OsRng);
|
||||
let mut rng = StdRng::from_entropy();
|
||||
|
||||
let salt = SaltString::generate(&mut rng);
|
||||
|
||||
let (default_hash_type, default_enc_type) = (HashType::Argon2, EncryptionType::AesGcm);
|
||||
|
||||
let key = derive_key(&passphrase, &salt, default_hash_type).unwrap();
|
||||
|
||||
let iv: &[u8; 12] = b"unique nonce"; //TODO: Nonce generation
|
||||
let mut iv: [u8; 12] = [0; 12];
|
||||
rng.fill_bytes(&mut iv);
|
||||
|
||||
let mut salt_buf: [u8; 16] = [0; 16];
|
||||
salt.b64_decode(&mut salt_buf).unwrap();
|
||||
|
@ -262,7 +266,7 @@ fn try_create_store(path: &String, passphrase: &Vec<u8>) -> bool {
|
|||
let mut buf = serialize_header(&header);
|
||||
|
||||
buf.extend_from_slice(&salt_buf);
|
||||
buf.extend_from_slice(iv);
|
||||
buf.extend_from_slice(&iv);
|
||||
buf.append([b'\0'].repeat(16 - iv.len()).as_mut());
|
||||
buf.extend_from_slice(&enc_buf);
|
||||
|
||||
|
|
Loading…
Reference in a new issue