From 6b40b392ef64e13a5a7a5ebce28bfa87bc56a9e9 Mon Sep 17 00:00:00 2001 From: Max Goedjen Date: Sun, 22 Mar 2020 15:50:40 -0700 Subject: [PATCH] Better handling of unsupported requests. --- SecretAgentKit/Agent.swift | 6 +++++- SecretAgentKit/SSHAgentProtocol.swift | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/SecretAgentKit/Agent.swift b/SecretAgentKit/Agent.swift index c38b44d..ead95db 100644 --- a/SecretAgentKit/Agent.swift +++ b/SecretAgentKit/Agent.swift @@ -26,7 +26,11 @@ extension Agent { let data = reader.availableData guard !data.isEmpty else { return } let requestTypeInt = data[4] - guard let requestType = SSHAgent.RequestType(rawValue: requestTypeInt) else { return } + guard let requestType = SSHAgent.RequestType(rawValue: requestTypeInt) else { + writer.write(SSHAgent.ResponseType.agentFailure.data) + os_log(.debug, "Agent returned %@", SSHAgent.ResponseType.agentFailure.debugDescription) + return + } os_log(.debug, "Agent handling request of type %@", requestType.debugDescription) let subData = Data(data[5...]) let response = handle(requestType: requestType, data: subData, reader: reader) diff --git a/SecretAgentKit/SSHAgentProtocol.swift b/SecretAgentKit/SSHAgentProtocol.swift index 6164875..3de8ef5 100644 --- a/SecretAgentKit/SSHAgentProtocol.swift +++ b/SecretAgentKit/SSHAgentProtocol.swift @@ -12,7 +12,7 @@ extension SSHAgent { switch self { case .requestIdentities: return "RequestIdentities" - default: + case .signRequest: return "SignRequest" } }