| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- //
- // TegKeychain.swift
- // keychain
- //
- // Created by Evgenii Neumerzhitckii on 5/02/2015.
- // Copyright (c) 2015 The Exchange Group Pty Ltd. All rights reserved.
- //
- import UIKit
- import Security
- public class TegKeychain {
-
- public class func set(key: String, value: String) -> Bool {
- if let currentData = value.dataUsingEncoding(NSUTF8StringEncoding) {
- return set(key, value: currentData)
- }
-
- return false
- }
- public class func set(key: String, value: NSData) -> Bool {
- let query = [
- kSecClass as String : kSecClassGenericPassword as String,
- kSecAttrAccount as String : key,
- kSecValueData as String : value ]
-
- SecItemDelete(query as CFDictionaryRef)
-
- let status: OSStatus = SecItemAdd(query as CFDictionaryRef, nil)
-
- return status == noErr
- }
- public class func getString(key: String) -> String? {
- if let currentData = getData(key) {
- return NSString(data: currentData, encoding: NSUTF8StringEncoding)
- }
-
- return nil
- }
- public class func getData(key: String) -> NSData? {
- let query = [
- kSecClass as String : kSecClassGenericPassword,
- kSecAttrAccount as String : key,
- kSecReturnData as String : kCFBooleanTrue,
- kSecMatchLimit as String : kSecMatchLimitOne ]
-
- var dataTypeRef :Unmanaged<AnyObject>?
-
- let status: OSStatus = SecItemCopyMatching(query, &dataTypeRef)
-
- if status == noErr {
- if let currentDataTypeRef = dataTypeRef {
- return currentDataTypeRef.takeRetainedValue() as? NSData
- }
- }
-
- return nil
- }
- public class func delete(key: String) -> Bool {
- let query = [
- kSecClass as String : kSecClassGenericPassword,
- kSecAttrAccount as String : key ]
-
- let status: OSStatus = SecItemDelete(query as CFDictionaryRef)
-
- return status == noErr
- }
- public class func clear() -> Bool {
- let query = [ kSecClass as String : kSecClassGenericPassword ]
-
- let status: OSStatus = SecItemDelete(query as CFDictionaryRef)
-
- return status == noErr
- }
- }
|