From 5f19c348c8fd2ec8d8c95d3d5527268192b77ee8 Mon Sep 17 00:00:00 2001 From: Danny Moesch Date: Tue, 2 Jul 2019 19:34:12 +0200 Subject: [PATCH] Keep global constants for armor keys and clean them up during migration and user initiated key removal --- passKit/Helpers/DefaultsKeys.swift | 4 ++++ passKit/Models/PasswordStore.swift | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/passKit/Helpers/DefaultsKeys.swift b/passKit/Helpers/DefaultsKeys.swift index 700681c..4df77b0 100644 --- a/passKit/Helpers/DefaultsKeys.swift +++ b/passKit/Helpers/DefaultsKeys.swift @@ -16,6 +16,10 @@ public extension DefaultsKeys { static let pgpPublicKeyURL = DefaultsKey("pgpPublicKeyURL") static let pgpPrivateKeyURL = DefaultsKey("pgpPrivateKeyURL") + // Keep them for legacy reasons. + static let pgpPublicKeyArmor = DefaultsKey("pgpPublicKeyArmor") + static let pgpPrivateKeyArmor = DefaultsKey("pgpPrivateKeyArmor") + static let gitURL = DefaultsKey("gitURL") static let gitAuthenticationMethod = DefaultsKey("gitAuthenticationMethod") static let gitUsername = DefaultsKey("gitUsername") diff --git a/passKit/Models/PasswordStore.swift b/passKit/Models/PasswordStore.swift index a2a43ef..101b797 100644 --- a/passKit/Models/PasswordStore.swift +++ b/passKit/Models/PasswordStore.swift @@ -190,6 +190,8 @@ public class PasswordStore { do { try KeyFileManager(keyType: PgpKeyType.PUBLIC, keyPath: Globals.pgpPublicKeyPath).importKeyAndDeleteFile() try KeyFileManager(keyType: PgpKeyType.PRIVATE, keyPath: Globals.pgpPrivateKeyPath).importKeyAndDeleteFile() + SharedDefaults.remove(.pgpPublicKeyArmor) + SharedDefaults.remove(.pgpPrivateKeyArmor) SharedDefaults[.pgpKeySource] = "file" } catch { print("MigrationError".localize(error)) @@ -838,6 +840,8 @@ public class PasswordStore { SharedDefaults.remove(.pgpKeySource) SharedDefaults.remove(.pgpPrivateKeyURL) SharedDefaults.remove(.pgpPublicKeyURL) + SharedDefaults.remove(.pgpPublicKeyArmor) + SharedDefaults.remove(.pgpPrivateKeyArmor) AppKeychain.removeContent(for: "pgpKeyPassphrase") AppKeychain.removeContent(for: PgpKeyType.PUBLIC.getKeychainKey()) AppKeychain.removeContent(for: PgpKeyType.PRIVATE.getKeychainKey())