33 lines
1.3 KiB
Swift
33 lines
1.3 KiB
Swift
import Foundation
|
|
import LocalData
|
|
|
|
/// Encrypted file system key for log data with configurable key derivation.
|
|
extension StorageKey where Value == [String] {
|
|
/// Stores session logs with full encryption.
|
|
/// Configurable PBKDF2 iterations.
|
|
nonisolated static let sessionLogs = StorageKey(
|
|
name: "session_logs.json",
|
|
domain: .encryptedFileSystem(directory: .caches),
|
|
security: .encrypted(.aes256(keyDerivation: .pbkdf2(iterations: 10_000))),
|
|
serializer: .json,
|
|
owner: "SampleApp",
|
|
description: "Stores session logs encrypted with PBKDF2-derived keys.",
|
|
availability: .phoneOnly,
|
|
syncPolicy: .never
|
|
)
|
|
|
|
/// Builds a variant with a custom PBKDF2 iteration count for demo purposes.
|
|
nonisolated static func sessionLogsKey(iterations: Int) -> StorageKey {
|
|
StorageKey(
|
|
name: "session_logs.json",
|
|
domain: .encryptedFileSystem(directory: .caches),
|
|
security: .encrypted(.aes256(keyDerivation: .pbkdf2(iterations: iterations))),
|
|
serializer: .json,
|
|
owner: "SampleApp",
|
|
description: "Stores session logs encrypted with PBKDF2-derived keys.",
|
|
availability: .phoneOnly,
|
|
syncPolicy: .never
|
|
)
|
|
}
|
|
}
|