diff --git a/SimpleKeychain/Accessibility.swift b/SimpleKeychain/Accessibility.swift index ea54dd4..6af1fa7 100644 --- a/SimpleKeychain/Accessibility.swift +++ b/SimpleKeychain/Accessibility.swift @@ -1,7 +1,7 @@ import Security /// Represents the accessibility types of Keychain items. It's a mirror of `kSecAttrAccessible` values. -public enum Accessibility: RawRepresentable { +public enum Accessibility: RawRepresentable, @unchecked Sendable { /// The data in the Keychain item can be accessed only while the device is unlocked by the user. /// See [kSecAttrAccessibleWhenUnlocked](https://developer.apple.com/documentation/security/ksecattraccessiblewhenunlocked). @@ -50,9 +50,3 @@ public enum Accessibility: RawRepresentable { } } } - -// MARK: - Sendable conformance - -#if canImport(_Concurrency) -extension Accessibility: Sendable {} -#endif diff --git a/SimpleKeychain/SimpleKeychain.swift b/SimpleKeychain/SimpleKeychain.swift index 2e01b20..24191d5 100644 --- a/SimpleKeychain/SimpleKeychain.swift +++ b/SimpleKeychain/SimpleKeychain.swift @@ -1,12 +1,7 @@ import Foundation import Security #if canImport(LocalAuthentication) -#if canImport(_Concurrency) @preconcurrency import LocalAuthentication -#else -// swiftlint:disable:next duplicate_imports -import LocalAuthentication -#endif #endif typealias RetrieveFunction = (_ query: CFDictionary, _ result: UnsafeMutablePointer?) -> OSStatus @@ -15,22 +10,16 @@ typealias RemoveFunction = (_ query: CFDictionary) -> OSStatus /// A simple Keychain wrapper for iOS, macOS, tvOS, and watchOS. /// Supports sharing credentials with an **access group** or through **iCloud**, and integrating /// **Touch ID / Face ID**. -public struct SimpleKeychain { +public struct SimpleKeychain: @unchecked Sendable { let service: String let accessGroup: String? let accessibility: Accessibility let accessControlFlags: SecAccessControlCreateFlags? let isSynchronizable: Bool - - #if canImport(_Concurrency) - nonisolated(unsafe) let attributes: [String: Any] - nonisolated(unsafe) var retrieve: RetrieveFunction = SecItemCopyMatching - nonisolated(unsafe) var remove: RemoveFunction = SecItemDelete - #else let attributes: [String: Any] + var retrieve: RetrieveFunction = SecItemCopyMatching var remove: RemoveFunction = SecItemDelete - #endif #if canImport(LocalAuthentication) && !os(tvOS) let context: LAContext? @@ -332,9 +321,3 @@ extension SimpleKeychain { return query } } - -// MARK: - Sendable conformance - -#if canImport(_Concurrency) -extension SimpleKeychain: Sendable {} -#endif