diff --git a/Sources/Packages/Sources/SecretAgentKit/Agent.swift b/Sources/Packages/Sources/SecretAgentKit/Agent.swift index 783b209..a8f3065 100644 --- a/Sources/Packages/Sources/SecretAgentKit/Agent.swift +++ b/Sources/Packages/Sources/SecretAgentKit/Agent.swift @@ -99,15 +99,15 @@ extension Agent { let reader = OpenSSHReader(data: data) guard try reader.readNextChunkAsString() == "session-bind@openssh.com" else { throw UnsupportedExtensionError() } let hostKey = try reader.readNextChunk() - let khReader = OpenSSHReader(data: hostKey) - print(try khReader.readNextChunkAsString()) - let keyData = try khReader.readNextChunk() + let keyReader = OpenSSHReader(data: hostKey) + _ = try keyReader.readNextChunkAsString() // Key Type + let keyData = try keyReader.readNextChunk() let sessionID = try reader.readNextChunk() let signatureData = try reader.readNextChunk() - let forwarding = try reader.readNextBytes(count: 1, as: Bool.self) - print(forwarding) + let forwarding = try reader.readNextBytes(as: Bool.self) let signatureReader = OpenSSHSignatureReader() guard try signatureReader.verify(signatureData, for: sessionID, with: keyData) else { throw SignatureVerificationFailedError() } + print("Fowarding: \(forwarding)") } struct UnsupportedExtensionError: Error {} diff --git a/Sources/Packages/Sources/SecretKit/OpenSSH/OpenSSHReader.swift b/Sources/Packages/Sources/SecretKit/OpenSSH/OpenSSHReader.swift index 422b6e3..bee41c1 100644 --- a/Sources/Packages/Sources/SecretKit/OpenSSH/OpenSSHReader.swift +++ b/Sources/Packages/Sources/SecretKit/OpenSSH/OpenSSHReader.swift @@ -26,8 +26,8 @@ public final class OpenSSHReader { return ret } - public func readNextBytes(count: Int = 0, as: T.Type) throws -> T { - let lengthRange = 0..(as: T.Type) throws -> T { + let lengthRange = 0...size let lengthChunk = remaining[lengthRange] remaining.removeSubrange(lengthRange) return lengthChunk.bytes.unsafeLoad(as: T.self)