separate password and additional information of a password

This commit is contained in:
Bob Sun 2017-02-02 18:18:47 +08:00
parent d44aec6527
commit 35a9c84b63
No known key found for this signature in database
GPG key ID: 1F86BA2052FED3B4

View file

@ -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)
}