import Foundation // MARK: Accessible public enum LocksmithAccessibleOption: RawRepresentable { case WhenUnlocked, AfterFirstUnlock, Always, WhenUnlockedThisDeviceOnly, AfterFirstUnlockThisDeviceOnly, AlwaysThisDeviceOnly, WhenPasscodeSetThisDeviceOnly public init?(rawValue: String) { switch rawValue { case String(kSecAttrAccessibleWhenUnlocked): self = WhenUnlocked case String(kSecAttrAccessibleAfterFirstUnlock): self = AfterFirstUnlock case String(kSecAttrAccessibleAlways): self = Always case String(kSecAttrAccessibleWhenUnlockedThisDeviceOnly): self = WhenUnlockedThisDeviceOnly case String(kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly): self = AfterFirstUnlockThisDeviceOnly case String(kSecAttrAccessibleAlwaysThisDeviceOnly): self = AlwaysThisDeviceOnly case String(kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly): self = WhenPasscodeSetThisDeviceOnly default: self = WhenUnlocked } } public var rawValue: String { switch self { case .WhenUnlocked: return String(kSecAttrAccessibleWhenUnlocked) case .AfterFirstUnlock: return String(kSecAttrAccessibleAfterFirstUnlock) case .Always: return String(kSecAttrAccessibleAlways) case .WhenPasscodeSetThisDeviceOnly: return String(kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly) case .WhenUnlockedThisDeviceOnly: return String(kSecAttrAccessibleWhenUnlockedThisDeviceOnly) case .AfterFirstUnlockThisDeviceOnly: return String(kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly) case .AlwaysThisDeviceOnly: return String(kSecAttrAccessibleAlwaysThisDeviceOnly) } } }