Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // SafariKeychainManager.swift
- // UltraMotivator
- //
- // Created by Shehryar Hussain on 04/15/16.
- // Copyright (c) 2014 Shehryar Hussain. All rights reserved.
- //
- import Foundation
- @objc class SafariKeychainManager: NSObject {
- @objc class func checkSafariCredentialsWithCompletion(completion: ((error: NSError?, username: String?, password: String?) -> Void)) {
- let domain: CFString = "classpass.com"
- SecRequestSharedWebCredential(domain, .None, {
- (credentials: CFArray?, error: CFError?) -> Void in
- if let error = error {
- print("error: \(error)")
- completion(error: error as NSError, username: nil, password: nil)
- } else if CFArrayGetCount(credentials) > 0 {
- let dict = unsafeBitCast(CFArrayGetValueAtIndex(credentials, 0), CFDictionaryRef.self) as NSDictionary
- let username = dict[kSecAttrAccount as String] as! String
- let password = dict[kSecSharedPassword as String] as! String
- dispatch_async(dispatch_get_main_queue()) {
- completion(error: nil, username: username, password: password)
- }
- } else {
- dispatch_async(dispatch_get_main_queue()) {
- completion(error:nil, username: nil, password: nil)
- }
- }
- });
- }
- @objc class func updateSafariCredentials(username: String, password: String) {
- let domain: CFString = "classpass.com"
- SecAddSharedWebCredential(domain,
- username as CFString,
- password.characters.count > 0 ? password as CFString : .None,
- {(error: CFError?) -> Void in
- print("error: \(error)")
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement