37 lines
926 B
Swift
37 lines
926 B
Swift
/*:
|
|
## KeychainMigratingCodableBackingStore
|
|
*/
|
|
import TIFoundationUtils
|
|
import TIKeychainUtils
|
|
import KeychainAccess
|
|
|
|
extension StorageKey {
|
|
static var knownPins: StorageKey<[String: Set<String>]> {
|
|
.init(rawValue: "knownPins")
|
|
}
|
|
}
|
|
|
|
extension Keychain {
|
|
static var keychain: Keychain {
|
|
.init()
|
|
}
|
|
|
|
static var groupKeychain: Keychain {
|
|
.init(service: "app.group.identifier")
|
|
}
|
|
}
|
|
|
|
extension KeychainMigratingStorageContainer {
|
|
static var defaultContainer: KeychainMigratingStorageContainer {
|
|
.init(sourceStorage: .keychain, targetStorage: .groupKeychain)
|
|
}
|
|
}
|
|
|
|
struct PinningManager {
|
|
|
|
// Migration from keychain to groupKeychain
|
|
// @KeychainCodableBackingStore(key: .knownPins, codableKeyValueStorage: .keychain)
|
|
@KeychainMigratingCodableBackingStore(key: .knownPins, storageContainer: .defaultContainer)
|
|
var knownPins = [String: Set<String>]()
|
|
}
|