                 },
                 failure: { [self] error in
                     // Don't keep unaccepted credentials
-                    KeychainUtilitiesObjc.deletePassword(
-                        forService: NetworkVars.serverPath,
-                        account: username)
+                    KeychainUtilities.deletePassword(forService: NetworkVars.serverPath,
+                                                     account: username)
                     // Login request failed
                     logging(inConnectionError: NetworkVars.userCancelledCommunication ? nil : error)
                 })
         } else {
             // Reset keychain and credentials
-            KeychainUtilitiesObjc.deletePassword(forService: NetworkVars.serverPath,
-                                                 account: NetworkVars.username)
+            KeychainUtilities.deletePassword(forService: NetworkVars.serverPath,
+                                             account: NetworkVars.username)
             NetworkVars.username = ""
 
             // Check Piwigo version, get token, available sizes, etc.

        
        // Password text field
        passwordTextField.placeholder = NSLocalizedString("login_passwordPlaceholder", comment: "Password (optional)")
        passwordTextField.text = KeychainUtilitiesObjc.password(forService: NetworkVars.serverPath, account: NetworkVars.username)
        if #available(iOS 11.0, *) {
            passwordTextField.textContentType = .password
        }

    func requestHttpCredentials(afterError error: Error?) {
        DispatchQueue.main.async { [self] in
            let username = NetworkVars.httpUsername
            let password = KeychainUtilities.password(forService: "\(NetworkVars.serverProtocol)\(NetworkVars.serverPath)", account: username)

            httpAlertController = UIAlertController(
                title: NSLocalizedString("loginHTTP_title", comment: "HTTP Credentials"),
