From e76b724a16f4732e8f3054b483b239ba38938d1c Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Wed, 14 Jan 2026 11:41:40 -0600 Subject: [PATCH] Signed-off-by: Matt Bruce --- README.md | 7 ++++--- SecureStorgageSample/Services/AppStorageCatalog.swift | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index bb2ee76..51f2617 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ This app provides interactive demos for all LocalData storage options: |-----|------|----------------| | **Defaults** | Save/load/remove values | UserDefaults | | **Keychain** | Secure credentials with biometrics | Keychain | -| **Files** | User profiles with AnyCodable | File System | +| **Files** | User profiles with Codable models | File System | | **Encrypted** | Encrypted logs (AES or ChaCha20) | Encrypted File System | | **Sync** | Platform availability & sync policies | Multiple | @@ -52,6 +52,7 @@ SecureStorgageSample/ │ └── Platform/ ├── WatchOptimized.swift # Watch data models ├── Services/ +│ ├── AppStorageCatalog.swift │ ├── ExternalKeyMaterialProvider.swift │ └── WatchConnectivityService.swift └── Views/ @@ -63,8 +64,6 @@ SecureStorgageSample/ SecureStorageSample Watch App/ ├── SecureStorageSampleApp.swift ├── ContentView.swift -├── Models/ -│ └── UserProfile.swift ├── Protocols/ │ └── WatchDataHandling.swift ├── State/ @@ -113,6 +112,8 @@ The app demonstrates various storage configurations: - The shared model/constants live in `SharedPackage` (`SharedKit`) to keep the watch/iOS data contract centralized. - The watch app uses a handler-based WatchConnectivity layer so new payload types can be added in `Services/Handlers` without bloating the main service. - A `StorageKeyCatalog` sample is included to generate a security audit report of all storage keys. +- Each `StorageKey` includes a `description` used in audit reports. +- The catalog is registered at app startup to enforce key registration and catch duplicates. ## License diff --git a/SecureStorgageSample/Services/AppStorageCatalog.swift b/SecureStorgageSample/Services/AppStorageCatalog.swift index 70a460a..7a0ab8f 100644 --- a/SecureStorgageSample/Services/AppStorageCatalog.swift +++ b/SecureStorgageSample/Services/AppStorageCatalog.swift @@ -2,6 +2,7 @@ import Foundation import LocalData import SharedKit + struct AppStorageCatalog: StorageKeyCatalog { static var allKeys: [AnyStorageKey] { [