Skip to content

UICKeyChainStore is a simple wrapper for Keychain on iOS. Makes using Keychain APIs as easy as NSUserDefaults.

License

Notifications You must be signed in to change notification settings

aklokov-iOS/UICKeyChainStore

 
 

Repository files navigation

UICKeyChainStore License MIT

Version Platform Build Status Analytics

UICKeyChainStore is a simple wrapper for Keychain on iOS and OS X. Makes using Keychain APIs as easy as NSUserDefaults.

Installation

CocoaPods

pod 'UICKeyChainStore'

Manual Install

  1. Add Security.framework to your target.
  2. Copy files in Lib (UICKeyChainStore.h and UICKeyChainStore.m) to your project.

Usage

Using convienient class methods

Add items using default service name (=bundle identifer).

[UICKeyChainStore setString:@"kishikawakatsumi" forKey:@"username"];
[UICKeyChainStore setString:@"password1234" forKey:@"password"];

//=> ["username" = "kishikawakatsumi", "password" = "password1234"]

Or specify the service name.

[UICKeyChainStore setString:@"kishikawakatsumi" forKey:@"username" service:@"com.kishikawakatsumi"];
[UICKeyChainStore setString:@"password1234" forKey:@"password" service:@"com.kishikawakatsumi"];

Remove items.

[UICKeyChainStore removeItemForKey:@"username" service:@"com.kishikawakatsumi"];
[UICKeyChainStore removeItemForKey:@"password" service:@"com.kishikawakatsumi"];

To set nil value also works remove item for the key.

[UICKeyChainStore setString:nil forKey:@"username" service:@"com.kishikawakatsumi"];
[UICKeyChainStore setString:nil forKey:@"password" service:@"com.kishikawakatsumi"];

=====

Using store object, easier to edit multiple items

Instantiate store object with default service name.

UICKeyChainStore *store = [UICKeyChainStore keyChainStore];

Or specify the service name.

UICKeyChainStore *store = [UICKeyChainStore keyChainStoreWithService:@"com.kishikawakatsumi"];

Add items and save.

[store setString:@"[email protected]" forKey:@"username"];
[store setString:@"password1234" forKey:@"password"];

[store synchronize]; // Write to keychain.

Remove items.

[store removeItemForKey:@"username"];
[store removeItemForKey:@"password"];

[store synchronize]; // Write to keychain.

=====

Object Subscripting

UICKeyChainStore *store = [UICKeyChainStore keyChainStoreWithService:@"com.kishikawakatsumi"];
store[@"username"] = @"[email protected]";
store[@"password"] = @"password1234";
[store synchronize];

Debug print

UICKeyChainStore *store = [UICKeyChainStore keyChainStoreWithService:@"com.kishikawakatsumi"];
NSLog(@"%@", store); // Print all keys and values for the service.

Easy as that. (See UICKeyChainStore.h for all of the methods.)

License

UICKeyChainStore is available under the MIT license. See the LICENSE file for more info.

About

UICKeyChainStore is a simple wrapper for Keychain on iOS. Makes using Keychain APIs as easy as NSUserDefaults.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Objective-C 95.4%
  • Ruby 4.6%