diff options
author | Katharina Fey <kookie@spacekookie.de> | 2017-12-12 23:59:40 +0100 |
---|---|---|
committer | Katharina Fey <kookie@spacekookie.de> | 2017-12-12 23:59:40 +0100 |
commit | b40a7b5ea208fd9b20f01d519e76d86cd2ac2c0f (patch) | |
tree | e63ec9aec508cd181e3fdfef7f195485b3ff3fba /src/vault/mod.rs | |
parent | 62a8caa0348f58e7fadfd9d8062b15f3ea12be6a (diff) |
Fixing an issue where records were not recoded properly
Diffstat (limited to '')
-rw-r--r-- | src/vault/mod.rs | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/vault/mod.rs b/src/vault/mod.rs index 4fa99b3..13f91d7 100644 --- a/src/vault/mod.rs +++ b/src/vault/mod.rs @@ -71,10 +71,12 @@ pub struct Vault { name: String, path: PathBuf, crypto: CryptoEngine, - records: HashMap<String, Record>, + pub records: HashMap<String, Record>, } impl Vault { + + /// Attempt to create a new vault pub fn new(name: &str, path: &str, password: &str) -> Result<Vault, ErrorType> { let mut me = Vault { name: String::from(name), @@ -129,13 +131,10 @@ impl Vault { let mut file = File::open(record.path().as_os_str()).unwrap(); file.read_to_string(&mut encrypted).unwrap(); - /* Make the encrypted data a vector */ - let record_bytes = encrypted.as_bytes(); - let mut record_vector: Vec<u8> = Vec::new(); - for byte in record_bytes { - record_vector.push(*byte); - } - let decrypted = crypto.decrypt(&record_vector); + /* Base64 decode */ + let decoded = base64::decode(&encrypted).unwrap(); + + let decrypted = crypto.decrypt(&decoded); let a_record: Record = serde_json::from_str(&decrypted).unwrap(); let name = a_record.header.name.clone(); |