Add StorageServiceIdentifiers
This commit is contained in:
parent
ac9cca89b6
commit
d135edc8ef
@ -1,5 +1,8 @@
|
||||
import Foundation
|
||||
import SharedKit
|
||||
|
||||
enum AppGroupConfiguration {
|
||||
static let identifier = "group.com.mbrucedogs.securestorage"
|
||||
static var identifier: String {
|
||||
StorageServiceIdentifiers.appGroupIdentifier
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import Foundation
|
||||
import LocalData
|
||||
import SharedKit
|
||||
|
||||
extension StorageKeys {
|
||||
/// Stores API token in keychain.
|
||||
@ -7,7 +8,7 @@ extension StorageKeys {
|
||||
typealias Value = String
|
||||
|
||||
let name = "api_token"
|
||||
let domain: StorageDomain = .keychain(service: "com.example.securestorage.api")
|
||||
let domain: StorageDomain = .keychain(service: StorageServiceIdentifiers.keychainAPIToken)
|
||||
let security: SecurityPolicy = .keychain(
|
||||
accessibility: .whenUnlockedThisDeviceOnly,
|
||||
accessControl: nil
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import Foundation
|
||||
import LocalData
|
||||
import SharedKit
|
||||
|
||||
extension StorageKeys {
|
||||
/// Stores user credentials securely in keychain.
|
||||
@ -8,7 +9,7 @@ extension StorageKeys {
|
||||
typealias Value = Credential
|
||||
|
||||
let name = "user_credentials"
|
||||
let domain: StorageDomain = .keychain(service: "com.example.securestorage")
|
||||
let domain: StorageDomain = .keychain(service: StorageServiceIdentifiers.keychainCredentials)
|
||||
let security: SecurityPolicy
|
||||
let serializer: Serializer<Credential> = .json
|
||||
let owner = "SampleApp"
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import Foundation
|
||||
import LocalData
|
||||
import SharedKit
|
||||
|
||||
extension StorageKeys {
|
||||
/// Stores external key material used for encryption policies.
|
||||
@ -7,7 +8,7 @@ extension StorageKeys {
|
||||
typealias Value = Data
|
||||
|
||||
let name = "external_key_material"
|
||||
let domain: StorageDomain = .keychain(service: "com.example.securestorage.externalkey")
|
||||
let domain: StorageDomain = .keychain(service: StorageServiceIdentifiers.keychainExternalKeyMaterial)
|
||||
let security: SecurityPolicy = .keychain(
|
||||
accessibility: .afterFirstUnlock,
|
||||
accessControl: nil
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import Foundation
|
||||
import LocalData
|
||||
import SharedKit
|
||||
|
||||
extension StorageKeys {
|
||||
/// Stores sensitive location data in keychain with biometric protection.
|
||||
@ -7,7 +8,7 @@ extension StorageKeys {
|
||||
typealias Value = SampleLocationData
|
||||
|
||||
let name = "last_known_location"
|
||||
let domain: StorageDomain = .keychain(service: "com.example.app.security")
|
||||
let domain: StorageDomain = .keychain(service: StorageServiceIdentifiers.keychainLocation)
|
||||
let security: SecurityPolicy = .keychain(
|
||||
accessibility: .afterFirstUnlock,
|
||||
accessControl: .userPresence
|
||||
|
||||
@ -0,0 +1,27 @@
|
||||
import Foundation
|
||||
|
||||
public enum StorageServiceIdentifiers {
|
||||
public static var bundleIdentifier: String {
|
||||
Bundle.main.bundleIdentifier ?? "com.example.securestorage"
|
||||
}
|
||||
|
||||
public static var appGroupIdentifier: String {
|
||||
"group.\(bundleIdentifier)"
|
||||
}
|
||||
|
||||
public static var keychainCredentials: String {
|
||||
bundleIdentifier
|
||||
}
|
||||
|
||||
public static var keychainAPIToken: String {
|
||||
"\(bundleIdentifier).api"
|
||||
}
|
||||
|
||||
public static var keychainExternalKeyMaterial: String {
|
||||
"\(bundleIdentifier).externalkey"
|
||||
}
|
||||
|
||||
public static var keychainLocation: String {
|
||||
"\(bundleIdentifier).security"
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user