SwiftySimpleKeychain
public extension SwiftySimpleKeychain
An extension of SwiftySimpleKeychain to deal with generation, retrieving and deletion of public / private RSA keys using the Keychain. It honours the configuration (and access control) of SwiftySimpleKeychain
-
Generates a RSA key pair with the specified key size and stores it in the Keychain
Usage:
keychain = SwiftySimpleKeychain(with: "service-name") let result = keychain.generateRSAKeyPair() if case let .failure(error) = result { print(error) }Declaration
Swift
func generateRSAKeyPair(with length: SwiftySimpleKeychainRSAKeySize = .size2048Bits, publicKeyTag: String = "public", privateKeyTag : String = "private" ) -> VoidErrorResultParameters
lengththe length (int bits) of the RSA keys. Defaults to 2048 bits
publicKeyTaga tag (identifier) for the public key. Defaults to public
privateKeyTaga tag (identifier) for the private key. Defaults to private
-
Finds a Key stored in the Keychain and returns a DataErrorResult Use this method if you would like to know why fetching a key fails, and an error is present in the failure response.
Usage:
let result = keychain.rsaKeyDataResult(with: "publicKeyTag") guard case let .success(publicKeyData) = publicKeyDataResult else { if case let .failure(error) = publicKeyDataResult { print(error) fail("Fail to get Public Key. \(error)") } return }Declaration
Swift
func rsaKeyDataResult(with tag: String) -> DataErrorResultParameters
taga tag (identifier) for the key.
-
Finds a Key stored in the Keychain and returns a Data if found Use this method if you want a simple response (data or zero) regardless of error on failure
Usage:
let data = keychain.rsaKeyData(with: "publicKeyTag")Declaration
Swift
func rsaKeyData(with tag: String) -> Data?Parameters
taga tag (identifier) for the key.
-
Cheks if there is a key with the provided tag
Declaration
Swift
func hasRSAKey(with tag: String) -> BoolParameters
taga tag (identifier) for the key.
-
Deletes a RSA Key identified with the provided tag
Usage:
let deleted = keychain.deleteRSAKey(with: "publicKeyTag")Declaration
Swift
func deleteRSAKey(with tag: String) -> BoolParameters
taga tag (identifier) for the key.
-
Finds a Key stored in the Keychain and returns a SecKeyErrorResult
let result = keychain.rsaSecKeyResult(with: "publicTag") if case let .failure(error) = result { print(error) }Declaration
Swift
func rsaSecKeyResult(with tag: String) -> SecKeyErrorResultParameters
taga tag (identifier) for the key.
-
Finds a Key stored in the Keychain and returns a SecKeyErrorResult
if let publicKey = keychain.rsaSecKey(with: "publicTag") { }Declaration
Swift
func rsaSecKey(with tag: String) -> SecKey?Parameters
taga tag (identifier) for the key.
SwiftySimpleKeychain Extension Reference