Update keychain dependency

This commit is contained in:
Sergey Abramchuk
2017-03-06 21:24:37 +03:00
parent 57577377e1
commit 8f8f7d22d8
57 changed files with 10791 additions and 0 deletions
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<playground version='3.0' sdk='iphonesimulator' auto-termination-delay='0'>
<sections>
<code source-file-name='section-1.swift'/>
</sections>
<timeline fileName='timeline.xctimeline'/>
</playground>
@@ -0,0 +1,144 @@
import UIKit
import XCPlayground
import KeychainAccess
var keychain: Keychain
/***************
* Instantiation
***************/
/* for Application Password */
keychain = Keychain(service: "com.example.github-token")
/* for Internet Password */
let url = URL(string: "https://github.com")!
keychain = Keychain(server: url, protocolType: .https)
/**************
* Adding items
**************/
/* subscripting */
keychain["kishikawakatsumi"] = "01234567-89ab-cdef-0123-456789abcdef"
/* set method */
try? keychain.set("01234567-89ab-cdef-0123-456789abcdef", key: "kishikawakatsumi")
/*****************
* Obtaining items
*****************/
var token: String?
/* subscripting (automatically convert to String) */
token = keychain["kishikawakatsumi"]
/* get method */
// as String
token = try! keychain.get("kishikawakatsumi")
token = try! keychain.getString("kishikawakatsumi")
// as Data
let data = try! keychain.getData("kishikawakatsumi")
/****************
* Removing items
****************/
/* subscripting */
keychain["kishikawakatsumi"] = nil
/* remove method */
try? keychain.remove("kishikawakatsumi")
/****************
* Error handling
****************/
/* set */
do {
try keychain.set("01234567-89ab-cdef-0123-456789abcdef", key: "kishikawakatsumi")
} catch let error {
print("error: \(error.localizedDescription)")
}
/* get */
// First, get the failable (value or error) object
do {
let token = try keychain.get("kishikawakatsumi")
} catch let error {
print("error: \(error.localizedDescription)")
}
/* remove */
do {
try keychain.remove("kishikawakatsumi")
} catch let error {
print("error: \(error.localizedDescription)")
}
/*******************
* Label and Comment
*******************/
keychain = Keychain(server: URL(string: "https://github.com")!, protocolType: .https)
.label("github.com (kishikawakatsumi)")
.comment("github access token")
/***************
* Configuration
***************/
/* for background application */
let background = Keychain(service: "com.example.github-token")
.accessibility(.afterFirstUnlock)
/* for forground application */
let forground = Keychain(service: "com.example.github-token")
.accessibility(.whenUnlocked)
/* Sharing Keychain Items */
let shared = Keychain(service: "com.example.github-token", accessGroup: "12ABCD3E4F.shared")
/* Synchronizing Keychain items with iCloud */
let iCloud = Keychain(service: "com.example.github-token")
.synchronizable(true)
/* One-Shot configuration change */
try? keychain
.accessibility(.afterFirstUnlock)
.synchronizable(true)
.set("01234567-89ab-cdef-0123-456789abcdef", key: "kishikawakatsumi")
try? keychain
.accessibility(.whenUnlocked)
.set("01234567-89ab-cdef-0123-456789abcdef", key: "kishikawakatsumi")
/***********
* Debugging
***********/
/* Display all stored items if print keychain object */
keychain = Keychain(server: URL(string: "https://github.com")!, protocolType: .https)
print("\(keychain)")
/* Obtaining all stored keys */
let keys = keychain.allKeys()
for key in keys {
print("key: \(key)")
}
/* Obtaining all stored items */
let items = keychain.allItems()
for item in items {
print("item: \(item)")
}