diff --git a/passKit/Models/PasscodeLock.swift b/passKit/Models/PasscodeLock.swift index 10868f0..fa4d774 100644 --- a/passKit/Models/PasscodeLock.swift +++ b/passKit/Models/PasscodeLock.swift @@ -12,11 +12,7 @@ public class PasscodeLock { private static let identifier = Globals.bundleIdentifier + "passcode" /// Cached passcode to avoid frequent access to Keychain - private var passcode: String? { - get { - AppKeychain.shared.get(for: PasscodeLock.identifier) - } - } + private var passcode: String? = AppKeychain.shared.get(for: PasscodeLock.identifier) /// Constructor used to migrate passcode from SharedDefaults to Keychain private init() { @@ -32,6 +28,7 @@ public class PasscodeLock { public func save(passcode: String) { AppKeychain.shared.add(string: passcode, for: PasscodeLock.identifier) + self.passcode = passcode } public func check(passcode: String) -> Bool { @@ -40,5 +37,6 @@ public class PasscodeLock { public func delete() { AppKeychain.shared.removeContent(for: PasscodeLock.identifier) + passcode = nil } } diff --git a/passKit/Models/PasswordStore.swift b/passKit/Models/PasswordStore.swift index b5672a0..bed8ba4 100644 --- a/passKit/Models/PasswordStore.swift +++ b/passKit/Models/PasswordStore.swift @@ -644,6 +644,7 @@ public class PasswordStore { SharedDefaults.removeAll() storeRepository = nil + PasscodeLock.shared.delete() // delete the passcode cache NotificationCenter.default.post(name: .passwordStoreUpdated, object: nil) NotificationCenter.default.post(name: .passwordStoreErased, object: nil)