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