From 35a9c84b6343bf7da07145cf99101c2f16baa48a Mon Sep 17 00:00:00 2001 From: Bob Sun Date: Thu, 2 Feb 2017 18:18:47 +0800 Subject: [PATCH] separate password and additional information of a password --- pass/Password.swift | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/pass/Password.swift b/pass/Password.swift index fd4b581..d06a787 100644 --- a/pass/Password.swift +++ b/pass/Password.swift @@ -29,7 +29,19 @@ extension PasswordEntity { let encryptedData = try Data(contentsOf: encryptedDataPath) let decryptedData = try PasswordStore.shared.pgp.decryptData(encryptedData, passphrase: Defaults[.pgpKeyPassphrase]) let plain = String(data: decryptedData, encoding: .ascii) ?? "" - password = Password(name: name!, password: plain, additions: nil) + var decrypted_password = "" + var decrypted_addtions = [String: String]() + plain.enumerateLines(invoking: { line, _ in + let item = line.characters.split(separator: ":").map(String.init) + if item.count == 1 { + decrypted_password = item[0] + } else { + let key = item[0] + let value = item[1].trimmingCharacters(in: .whitespaces) + decrypted_addtions[key] = value + } + }) + password = Password(name: name!, password: decrypted_password, additions: decrypted_addtions) } catch let error as NSError { print(error.debugDescription) }