SecureStorageSample/SecureStorageSample/StorageKeys/EncryptedFileSystem/SessionLogsKey.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
)
}
}