Skip to content

Commit 0ce0fca

Browse files
committed
tmp: debug
1 parent 239fb83 commit 0ce0fca

File tree

1 file changed

+83
-7
lines changed

1 file changed

+83
-7
lines changed

firefox-ios/Storage/Rust/RustLogins.swift

Lines changed: 83 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -224,13 +224,27 @@ public class RustLoginEncryptionKeys {
224224
let canary = try createCanary(text: canaryPhrase, encryptionKey: secret)
225225

226226
DispatchQueue.global(qos: .background).sync {
227-
self.keychain.set(secret,
228-
forKey: self.loginPerFieldKeychainKey,
229-
withAccessibility: MZKeychainItemAccessibility.afterFirstUnlock)
230-
self.keychain.set(canary,
231-
forKey: self.canaryPhraseKey,
232-
withAccessibility: MZKeychainItemAccessibility.afterFirstUnlock)
227+
let result = self.keychain.set(secret,
228+
forKey: self.loginPerFieldKeychainKey,
229+
withAccessibility: MZKeychainItemAccessibility.whenUnlocked)
230+
self.logger.log("[issam] 0 createAndStoreKey set result",
231+
level: .warning,
232+
category: .storage,
233+
description: "\(result)")
234+
let result2 = self.keychain.set(canary,
235+
forKey: self.canaryPhraseKey,
236+
withAccessibility: MZKeychainItemAccessibility.whenUnlocked)
237+
self.logger.log("[issam] 00 createAndStoreKey set result",
238+
level: .warning,
239+
category: .storage,
240+
description: "\(result2)")
233241
}
242+
243+
let key = self.keychain.string(forKey: self.loginPerFieldKeychainKey)
244+
self.logger.log("[issam] 1 createAndStoreKey",
245+
level: .warning,
246+
category: .storage,
247+
description: "\(key ?? "empty")")
234248
return secret
235249
} catch let err as NSError {
236250
if let loginsStoreError = err as? LoginsStoreError {
@@ -605,9 +619,17 @@ public class RustLogins: LoginsProtocol, KeyManager {
605619
public func addLogin(login: LoginEntry) -> Deferred<Maybe<String>> {
606620
let deferred = Deferred<Maybe<String>>()
607621

622+
self.logger.log("[issam] 0 Adding login",
623+
level: .warning,
624+
category: .storage,
625+
description: "xxxx")
608626
queue.async {
609627
guard self.isOpen else {
610628
let error = LoginsStoreError.UnexpectedLoginsApiError(reason: "Database is closed")
629+
self.logger.log("[issam] 1 Adding login",
630+
level: .warning,
631+
category: .storage,
632+
description: error.descriptionValue)
611633

612634
deferred.fill(Maybe(failure: error as MaybeErrorType))
613635
return
@@ -620,9 +642,17 @@ public class RustLogins: LoginsProtocol, KeyManager {
620642
let id = try self.storage?.add(login: login).id
621643
deferred.fill(Maybe(success: id!))
622644
} catch let err as NSError {
645+
self.logger.log("[issam] 2 Error adding login",
646+
level: .warning,
647+
category: .storage,
648+
description: err.localizedDescription)
623649
deferred.fill(Maybe(failure: err))
624650
}
625651
case .failure(let err):
652+
self.logger.log("[issam] 3 Error adding login",
653+
level: .warning,
654+
category: .storage,
655+
description: err.localizedDescription)
626656
deferred.fill(Maybe(failure: err))
627657
}
628658
}
@@ -853,12 +883,25 @@ public class RustLogins: LoginsProtocol, KeyManager {
853883
private func getKeychainData(rustKeys: RustLoginEncryptionKeys) -> (String?, String?) {
854884
var keychainData: (String?, String?) = (nil, nil)
855885

886+
self.logger.log("[issam] 1 getKeychainData",
887+
level: .warning,
888+
category: .storage,
889+
description: "")
890+
856891
DispatchQueue.global(qos: .background).sync {
857892
let key = rustKeys.keychain.string(forKey: rustKeys.loginPerFieldKeychainKey)
858893
let encryptedCanaryPhrase = rustKeys.keychain.string(forKey: rustKeys.canaryPhraseKey)
859894
keychainData = (key, encryptedCanaryPhrase)
895+
self.logger.log("[issam] 2 getKeychainData",
896+
level: .warning,
897+
category: .storage,
898+
description: "\(keychainData.0 ?? "empty")")
860899
}
861900

901+
self.logger.log("[issam] 3 getKeychainData",
902+
level: .warning,
903+
category: .storage,
904+
description: "\(keychainData.0 ?? "empty")")
862905
return keychainData
863906
}
864907

@@ -937,27 +980,52 @@ public class RustLogins: LoginsProtocol, KeyManager {
937980
// call or the key data has been cleared from the keychain.
938981

939982
self.hasSyncedLogins().upon { result in
983+
self.logger.log("[issam] 0 getStoredKey",
984+
level: .warning,
985+
category: .storage,
986+
description: "")
940987
guard result.failureValue == nil else {
941988
completion(.failure(result.failureValue! as NSError))
942989
return
943990
}
991+
self.logger.log("[issam] 1 getStoredKey",
992+
level: .warning,
993+
category: .storage,
994+
description: "")
944995

945996
guard let hasLogins = result.successValue else {
946997
let msg = "Failed to verify logins count before attempting to reset key"
947998
completion(.failure(LoginEncryptionKeyError.dbRecordCountVerificationError(msg) as NSError))
948999
return
9491000
}
9501001

1002+
self.logger.log("[issam] 2 getStoredKey",
1003+
level: .warning,
1004+
category: .storage,
1005+
description: "")
1006+
9511007
if hasLogins {
9521008
// Since the key data isn't present and we have login records in
9531009
// the database, we both clear the database and reset the key.
9541010
GleanMetrics.LoginsStoreKeyRegeneration.keychainDataLost.record()
1011+
self.logger.log("[issam] 3 getStoredKey",
1012+
level: .warning,
1013+
category: .storage,
1014+
description: "")
9551015
self.resetLoginsAndKey(rustKeys: rustKeys, completion: completion)
9561016
} else {
9571017
// There are no records in the database so we don't need to wipe any
9581018
// existing login records. We just need to create a new key.
9591019
do {
1020+
self.logger.log("[issam] 4 getStoredKey",
1021+
level: .warning,
1022+
category: .storage,
1023+
description: "")
9601024
let key = try rustKeys.createAndStoreKey()
1025+
self.logger.log("[issam] 5 getStoredKey",
1026+
level: .warning,
1027+
category: .storage,
1028+
description: "\(key)")
9611029
completion(.success(key))
9621030
} catch let error as NSError {
9631031
completion(.failure(error))
@@ -998,8 +1066,16 @@ public class RustLogins: LoginsProtocol, KeyManager {
9981066
*/
9991067
public func getKey() throws -> Data {
10001068
let rustKeys = RustLoginEncryptionKeys()
1069+
let key1 = rustKeys.keychain.string(forKey: rustKeys.loginPerFieldKeychainKey)
1070+
self.logger.log("[issam] 0 getKey",
1071+
level: .warning,
1072+
category: .storage,
1073+
description: "\(key1 ?? "empty")")
10011074
let (key, _) = getKeychainData(rustKeys: rustKeys)
1002-
1075+
self.logger.log("[issam] 1 getKey",
1076+
level: .warning,
1077+
category: .storage,
1078+
description: "\(key ?? "empty")")
10031079
guard let keyData = key?.data(using: .utf8) else {
10041080
throw LoginsStoreError.MissingKey
10051081
}

0 commit comments

Comments
 (0)