mirror of
https://github.com/maxgoedjen/secretive.git
synced 2026-09-07 17:09:01 +02:00
26 lines
947 B
Swift
26 lines
947 B
Swift
import Foundation
|
|
import OSLog
|
|
import XPCWrappers
|
|
import SSHProtocolKit
|
|
|
|
final class SecretAgentHostsfileReader: NSObject, XPCProtocol {
|
|
|
|
private let logger = Logger(subsystem: "com.maxgoedjen.secretive.SecretAgentHostsfileReader", category: "SecretAgentHostsfileReader")
|
|
|
|
func process(_ data: Data) async throws -> [Data: String] {
|
|
logger.log("Parsing hostsfile")
|
|
var result: [Data: String] = [:]
|
|
for try await line in URL(filePath: NSHomeDirectory().appending("/.ssh/known_hosts")).lines {
|
|
let split = line.split(separator: " ").map(String.init)
|
|
guard split.count == 3 else { continue }
|
|
guard let decoded = Data(base64Encoded: split[2]) else { continue }
|
|
let reader = OpenSSHReader(data: decoded)
|
|
_ = try reader.readNextChunk()
|
|
let key = try reader.readNextChunk()
|
|
result[key] = split[0]
|
|
}
|
|
return result
|
|
}
|
|
|
|
}
|