Store ssh key passphrase in Keychain

This commit is contained in:
Evgeny Morozov 2017-02-23 17:34:55 +03:00
parent 04ceeb87dc
commit de6183764b
4 changed files with 8 additions and 7 deletions

View file

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

View file

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