aboutsummaryrefslogtreecommitdiff
path: root/src/vault/mod.rs
diff options
context:
space:
mode:
authorKatharina Fey <kookie@spacekookie.de>2017-12-12 23:59:40 +0100
committerKatharina Fey <kookie@spacekookie.de>2017-12-12 23:59:40 +0100
commitb40a7b5ea208fd9b20f01d519e76d86cd2ac2c0f (patch)
treee63ec9aec508cd181e3fdfef7f195485b3ff3fba /src/vault/mod.rs
parent62a8caa0348f58e7fadfd9d8062b15f3ea12be6a (diff)
Fixing an issue where records were not recoded properly
Diffstat (limited to '')
-rw-r--r--src/vault/mod.rs15
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();