this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

support a config method to set the KeychainConfiguration

+34 -3
+34 -3
Sources/Vault/Vault.swift
··· 13 13 var accountName: String { get set } 14 14 } 15 15 16 + public enum VaultError: Error { 17 + case noKeychainConfiguration 18 + } 19 + 20 + extension VaultError: LocalizedError { 21 + public var errorDescription: String? { 22 + switch self { 23 + case .noKeychainConfiguration: 24 + "Vault error: A KeychainConfiguration object is needed to complete action. Please provide one by either passing it to this method or by using the Vault configure method" 25 + } 26 + } 27 + } 28 + 16 29 public struct Vault { 30 + static var keychainConfiguration: KeychainConfiguration? 17 31 18 - public static func savePrivateKey(_ privateKey: String, keychainConfiguration: KeychainConfiguration) throws { 32 + public static func configure(_ keychainConfiguration: KeychainConfiguration) { 33 + Vault.keychainConfiguration = keychainConfiguration 34 + } 35 + 36 + private static func getKeychainConfiguration(passedInParameterValue value: KeychainConfiguration?) throws -> KeychainConfiguration { 37 + if let value { 38 + return value 39 + } else if let keychainConfiguration { 40 + return keychainConfiguration 41 + } else { 42 + throw VaultError.noKeychainConfiguration 43 + } 44 + } 45 + 46 + public static func savePrivateKey(_ privateKey: String, keychainConfiguration: KeychainConfiguration? = nil) throws { 47 + let keychainConfiguration = try getKeychainConfiguration(passedInParameterValue: keychainConfiguration) 19 48 try KeychainItem(service: keychainConfiguration.serviceName, account: keychainConfiguration.accountName, accessGroup: keychainConfiguration.accessGroup).saveItem(privateKey) 20 49 } 21 50 22 - public static func getPrivateKey(keychainConfiguration: KeychainConfiguration) throws -> String { 51 + public static func getPrivateKey(keychainConfiguration: KeychainConfiguration? = nil) throws -> String { 52 + let keychainConfiguration = try getKeychainConfiguration(passedInParameterValue: keychainConfiguration) 23 53 return try KeychainItem(service: keychainConfiguration.serviceName, account: keychainConfiguration.accountName, accessGroup: keychainConfiguration.accessGroup).readItem() 24 54 } 25 55 26 - public static func deletePrivateKey(keychainConfiguration: KeychainConfiguration) throws { 56 + public static func deletePrivateKey(keychainConfiguration: KeychainConfiguration? = nil) throws { 57 + let keychainConfiguration = try getKeychainConfiguration(passedInParameterValue: keychainConfiguration) 27 58 try KeychainItem(service: keychainConfiguration.serviceName, account: keychainConfiguration.accountName, accessGroup: keychainConfiguration.accessGroup).deleteItem() 28 59 } 29 60 }