diff --git a/pass/Controllers/GitServerSettingTableViewController.swift b/pass/Controllers/GitServerSettingTableViewController.swift index c557e14..4e7b465 100644 --- a/pass/Controllers/GitServerSettingTableViewController.swift +++ b/pass/Controllers/GitServerSettingTableViewController.swift @@ -156,7 +156,7 @@ class GitServerSettingTableViewController: UITableViewController { if Defaults[.gitSSHKeySource] != nil { let deleteAction = UIAlertAction(title: "Remove Git SSH Keys", style: .destructive) { _ in - Utils.removeGitSSHKeys() + self.passwordStore.removeGitSSHKeys() Defaults[.gitSSHKeySource] = nil if let sshLabel = self.sshLabel { sshLabel.isEnabled = false diff --git a/pass/Controllers/SettingsTableViewController.swift b/pass/Controllers/SettingsTableViewController.swift index c2bcf16..3faea11 100644 --- a/pass/Controllers/SettingsTableViewController.swift +++ b/pass/Controllers/SettingsTableViewController.swift @@ -343,7 +343,7 @@ class SettingsTableViewController: UITableViewController { if Defaults[.pgpKeySource] != nil { let deleteAction = UIAlertAction(title: "Remove PGP Keys", style: .destructive) { _ in - Utils.removePGPKeys() + self.passwordStore.removePGPKeys() self.pgpKeyTableViewCell.detailTextLabel?.text = "Not Set" } optionMenu.addAction(deleteAction) diff --git a/pass/Helpers/Utils.swift b/pass/Helpers/Utils.swift index da3b779..4b749ff 100644 --- a/pass/Helpers/Utils.swift +++ b/pass/Helpers/Utils.swift @@ -70,28 +70,6 @@ class Utils { alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: handler)) controller.present(alert, animated: true, completion: completion) } - - - static func removePGPKeys() { - removeFileIfExists(atPath: Globals.pgpPublicKeyPath) - removeFileIfExists(atPath: Globals.pgpPrivateKeyPath) - Defaults.remove(.pgpKeySource) - Defaults.remove(.pgpPublicKeyArmor) - Defaults.remove(.pgpPrivateKeyArmor) - Defaults.remove(.pgpPrivateKeyURL) - Defaults.remove(.pgpPublicKeyURL) - Utils.removeKeychain(name: ".pgpKeyPassphrase") - } - - static func removeGitSSHKeys() { - removeFileIfExists(atPath: Globals.gitSSHPublicKeyPath) - removeFileIfExists(atPath: Globals.gitSSHPrivateKeyPath) - Defaults.remove(.gitSSHPublicKeyArmor) - Defaults.remove(.gitSSHPrivateKeyArmor) - Defaults.remove(.gitSSHPublicKeyURL) - Defaults.remove(.gitSSHPrivateKeyURL) - Utils.removeKeychain(name: ".gitSSHPrivateKeyPassphrase") - } static func getPasswordFromKeychain(name: String) -> String? { let keychain = Keychain(service: "me.mssun.passforios") diff --git a/pass/Models/PasswordStore.swift b/pass/Models/PasswordStore.swift index 44641a4..ecbc419 100644 --- a/pass/Models/PasswordStore.swift +++ b/pass/Models/PasswordStore.swift @@ -39,7 +39,7 @@ class PasswordStore { } } - let pgp: ObjectivePGP = ObjectivePGP() + var pgp: ObjectivePGP = ObjectivePGP() var pgpKeyPassphrase: String? { set { @@ -787,4 +787,30 @@ class PasswordStore { let encryptedData = try pgp.encryptData(plainData, usingPublicKey: publicKey, armored: Defaults[.encryptInArmored]) return encryptedData } + + + + func removePGPKeys() { + Utils.removeFileIfExists(atPath: Globals.pgpPublicKeyPath) + Utils.removeFileIfExists(atPath: Globals.pgpPrivateKeyPath) + Defaults.remove(.pgpKeySource) + Defaults.remove(.pgpPublicKeyArmor) + Defaults.remove(.pgpPrivateKeyArmor) + Defaults.remove(.pgpPrivateKeyURL) + Defaults.remove(.pgpPublicKeyURL) + Utils.removeKeychain(name: ".pgpKeyPassphrase") + pgp = ObjectivePGP() + publicKey = nil + privateKey = nil + } + + func removeGitSSHKeys() { + Utils.removeFileIfExists(atPath: Globals.gitSSHPublicKeyPath) + Utils.removeFileIfExists(atPath: Globals.gitSSHPrivateKeyPath) + Defaults.remove(.gitSSHPublicKeyArmor) + Defaults.remove(.gitSSHPrivateKeyArmor) + Defaults.remove(.gitSSHPublicKeyURL) + Defaults.remove(.gitSSHPrivateKeyURL) + Utils.removeKeychain(name: ".gitSSHPrivateKeyPassphrase") + } }