              */
             return ""
         case .biometricAny:
-            return "_AccessControlTouchIDAnyFingerprint"
+            if #available(macOS 10.12.1, *) {
+                return "_AccessControlTouchIDAnyFingerprint"
+            } else {
+                ErrorHandler.assertionFailure(".biometricAny requires macOS 10.12.1.")
+                return ""
+            }
         case .biometricCurrentSet:
-            return "_AccessControlTouchIDCurrentFingerprintSet"
+            if #available(macOS 10.12.1, *) {
+                return "_AccessControlTouchIDCurrentFingerprintSet"
+            } else {
+                ErrorHandler.assertionFailure(".biometricCurrentSet requires macOS 10.12.1.")
+                return ""
+            }
         case .devicePasscode:
             return "_AccessControlDevicePasscode"
         }

@objc
public enum SecureEnclaveAccessControl: Int, CustomStringConvertible, Equatable {
    /// Access to keychain elements requires user presence verification via Touch ID, Face ID, or device Passcode. Keychain elements are still accessible by Touch ID even if fingers are added or removed. Touch ID does not have to be available or enrolled.
    case userPresence = 1
    
    /// Access to keychain elements requires user presence verification via Face ID, or any finger enrolled in Touch ID. Keychain elements remain accessible via Face ID or Touch ID  after faces or fingers are added or removed. Face ID must be enabled with at least one face enrolled, or Touch ID must be available and at least one finger must be enrolled.
    @available(macOS 10.12.1, iOS 9.0, *)
    case biometricAny
    
    /// Access to keychain elements requires user presence verification via the face currently enrolled in Face ID, or fingers currently enrolled in Touch ID. Previously written keychain elements become inaccessible when faces or fingers are added or removed. Face ID must be enabled with at least one face enrolled, or Touch ID must be available and at least one finger must be enrolled.
    @available(macOS 10.12.1, iOS 9.0, *)
    case biometricCurrentSet
    
    /// Access to keychain elements requires user presence verification via device Passcode.
    @available(macOS 10.11, iOS 9.0, *)
    case devicePasscode
    
    // MARK: CustomStringConvertible

            if #available(macOS 10.12.1, *) {
                return .touchIDAny
            } else {
                ErrorHandler.assertionFailure(".biometricAny requires macOS 10.12.1.")
                return .userPresence
            }
        case .biometricCurrentSet:
            if #available(macOS 10.12.1, *) {
                return .touchIDCurrentSet
            } else {
                ErrorHandler.assertionFailure(".biometricCurrentSet requires macOS 10.12.1.")
                return .userPresence
            }
        case .devicePasscode:
