Add the passcode cache back

This commit is contained in:
Yishi Lin 2019-10-01 00:16:56 +08:00
parent 4c83427a01
commit 230b421a90
2 changed files with 4 additions and 5 deletions

View file

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

View file

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