forked from kay/RouterOS
XcodeGen-basiertes SwiftUI-Projekt für den RouterOS-Interview-Assistenten. Erster Wizard-Schritt: Verbindung zu Mikrotik-Geräten per REST-API (RouterOS >=7.1) mit SSH-CLI-Fallback für ältere Firmware, Zertifikats- TOFU-Bestätigung, Zugangsdaten im Keychain. Unit-Tests für CLI-Parser und Fallback-Logik. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HReLXMbmPvtQ23p1iWiJNW
22 lines
681 B
Swift
22 lines
681 B
Swift
import Foundation
|
|
|
|
/// Trust-on-first-use store for self-signed RouterOS REST certificates.
|
|
final class CertificateTrustStore {
|
|
private let defaults = UserDefaults.standard
|
|
private let key = "RouterOSAssistant.TrustedCertificateFingerprints"
|
|
|
|
func isTrusted(host: String, fingerprint: String) -> Bool {
|
|
trustedFingerprints()[host] == fingerprint
|
|
}
|
|
|
|
func trust(host: String, fingerprint: String) {
|
|
var all = trustedFingerprints()
|
|
all[host] = fingerprint
|
|
defaults.set(all, forKey: key)
|
|
}
|
|
|
|
private func trustedFingerprints() -> [String: String] {
|
|
defaults.dictionary(forKey: key) as? [String: String] ?? [:]
|
|
}
|
|
}
|