LocalData/Sources/LocalData/Models/KeychainAccessControl.swift
Matt Bruce b2616b8caa Add LocalData.swift, Models, Protocols (+1 more) and tests, docs, config
Summary:
- Sources: add LocalData.swift, Models, Protocols (+1 more)
- Tests: add tests for LocalDataTests.swift
- Docs: add docs for Proposal, README
- Config: add Package
- Other: add .gitignore

Stats:
- 19 files changed, 814 insertions(+)
2026-01-18 13:43:07 -06:00

28 lines
731 B
Swift

import Foundation
import Security
public enum KeychainAccessControl: Sendable {
case userPresence
// Add more as needed
func accessControl(accessibility: KeychainAccessibility) -> SecAccessControl? {
let accessibilityValue: CFString
switch accessibility {
case .whenUnlocked:
accessibilityValue = kSecAttrAccessibleWhenUnlocked
case .afterFirstUnlock:
accessibilityValue = kSecAttrAccessibleAfterFirstUnlock
}
switch self {
case .userPresence:
return SecAccessControlCreateWithFlags(
nil,
accessibilityValue,
.userPresence,
nil
)
}
}
}