diff --git a/pass/Controllers/SSHKeySettingTableViewController.swift b/pass/Controllers/SSHKeySettingTableViewController.swift index 65a672e..4986a22 100644 --- a/pass/Controllers/SSHKeySettingTableViewController.swift +++ b/pass/Controllers/SSHKeySettingTableViewController.swift @@ -18,7 +18,7 @@ class SSHKeySettingTableViewController: UITableViewController { override func viewDidLoad() { super.viewDidLoad() - passphraseTextField.text = Defaults[.gitRepositorySSHPrivateKeyPassphrase] + passphraseTextField.text = Utils.getPasswordFromKeychain(name: "gitRepositorySSHPrivateKeyPassphrase")! privateKeyURLTextField.text = Defaults[.gitRepositorySSHPrivateKeyURL]?.absoluteString publicKeyURLTextField.text = Defaults[.gitRepositorySSHPublicKeyURL]?.absoluteString var doneBarButtonItem: UIBarButtonItem? @@ -43,7 +43,7 @@ class SSHKeySettingTableViewController: UITableViewController { Defaults[.gitRepositorySSHPublicKeyURL] = URL(string: publicKeyURLTextField.text!) Defaults[.gitRepositorySSHPrivateKeyURL] = URL(string: privateKeyURLTextField.text!) - Defaults[.gitRepositorySSHPrivateKeyPassphrase] = passphraseTextField.text! + Utils.addPasswrodToKeychain(name: "gitRepositorySSHPrivateKeyPassphrase", password: passphraseTextField.text!) do { try Data(contentsOf: Defaults[.gitRepositorySSHPublicKeyURL]!).write(to: Globals.sshPublicKeyURL, options: .atomic) diff --git a/pass/Controllers/SettingsTableViewController.swift b/pass/Controllers/SettingsTableViewController.swift index 85376c6..4c72a09 100644 --- a/pass/Controllers/SettingsTableViewController.swift +++ b/pass/Controllers/SettingsTableViewController.swift @@ -116,7 +116,7 @@ class SettingsTableViewController: UITableViewController { gitCredential = GitCredential( credential: GitCredential.Credential.ssh( userName: username, - password: Defaults[.gitRepositorySSHPrivateKeyPassphrase]!, + password: Utils.getPasswordFromKeychain(name: "gitRepositorySSHPrivateKeyPassphrase")!, publicKeyFile: Globals.sshPublicKeyURL, privateKeyFile: Globals.sshPrivateKeyURL, passwordNotSetCallback: self.requestSshKeyPassword diff --git a/pass/Helpers/DefaultsKeys.swift b/pass/Helpers/DefaultsKeys.swift index 791e9c1..ae3f6f6 100644 --- a/pass/Helpers/DefaultsKeys.swift +++ b/pass/Helpers/DefaultsKeys.swift @@ -26,7 +26,7 @@ extension DefaultsKeys { static let gitRepositoryPasswordAttempts = DefaultsKey("gitRepositoryPasswordAttempts") static let gitRepositorySSHPublicKeyURL = DefaultsKey("gitRepositorySSHPublicKeyURL") static let gitRepositorySSHPrivateKeyURL = DefaultsKey("gitRepositorySSHPrivateKeyURL") - static let gitRepositorySSHPrivateKeyPassphrase = DefaultsKey("gitRepositorySSHPrivateKeyPassphrase") + static let lastUpdatedTime = DefaultsKey("lasteUpdatedTime") static let isTouchIDOn = DefaultsKey("isTouchIDOn") diff --git a/pass/Models/PasswordStore.swift b/pass/Models/PasswordStore.swift index 28577a0..2034f16 100644 --- a/pass/Models/PasswordStore.swift +++ b/pass/Models/PasswordStore.swift @@ -77,13 +77,14 @@ struct GitCredential { newPassword = passwordNotSetCallback!() } + // Save password for the future + Utils.addPasswrodToKeychain(name: "gitRepositorySSHPrivateKeyPassphrase", password: newPassword!) + // nil is expected in case of empty password if newPassword == "" { newPassword = nil } - // Save password for the future - Defaults[.gitRepositorySSHPrivateKeyPassphrase] = newPassword credential = try? GTCredential(userName: userName, publicKeyURL: publicKeyFile, privateKeyURL: privateKeyFile, passphrase: newPassword) } @@ -141,7 +142,7 @@ class PasswordStore { gitCredential = GitCredential( credential: GitCredential.Credential.ssh( userName: Defaults[.gitRepositoryUsername]!, - password: Defaults[.gitRepositorySSHPrivateKeyPassphrase]!, + password: Utils.getPasswordFromKeychain(name: "gitRepositorySSHPrivateKeyPassphrase")!, publicKeyFile: Globals.sshPublicKeyURL, privateKeyFile: Globals.sshPrivateKeyURL, passwordNotSetCallback: nil