From 0aadfbd4537e83bab7b65c3658aa323c003610c4 Mon Sep 17 00:00:00 2001
From: Christian Kandeler <christian.kandeler@theqtcompany.com>
Date: Tue, 21 Jul 2015 18:01:56 +0200
Subject: [PATCH] SSH: Remove bogus compatibility check.

All host keys can be used with all HMACs.

Change-Id: I71055d3085d13683e53491ac9a9d98734dd6e7e5
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
---
 src/libs/ssh/sshkeyexchange.cpp | 22 +---------------------
 1 file changed, 1 insertion(+), 21 deletions(-)

diff --git a/src/libs/ssh/sshkeyexchange.cpp b/src/libs/ssh/sshkeyexchange.cpp
index 25da1805c8b..18ad4971af7 100644
--- a/src/libs/ssh/sshkeyexchange.cpp
+++ b/src/libs/ssh/sshkeyexchange.cpp
@@ -252,27 +252,7 @@ void SshKeyExchange::determineHashingAlgorithm(const SshKeyExchangeInit &kexInit
     const QList<QByteArray> &serverCapabilities = serverToClient
             ? kexInit.macAlgorithmsServerToClient.names
             : kexInit.macAlgorithmsClientToServer.names;
-    const QList<QByteArray> commonAlgos = SshCapabilities::commonCapabilities(
-                SshCapabilities::MacAlgorithms, serverCapabilities);
-    const QByteArray hashAlgo = hashAlgoForKexAlgo();
-    foreach (const QByteArray &potentialAlgo, commonAlgos) {
-        if (potentialAlgo == hashAlgo
-                || !m_kexAlgoName.startsWith(SshCapabilities::EcdhKexNamePrefix)) {
-            *algo = potentialAlgo;
-            break;
-        }
-    }
-
-    if (algo->isEmpty()) {
-        throw SshServerException(SSH_DISCONNECT_KEY_EXCHANGE_FAILED,
-            "Invalid combination of key exchange and hashing algorithms.",
-            QCoreApplication::translate("SshConnection",
-                "Server requested invalid combination of key exchange and hashing algorithms. "
-                "Key exchange algorithm list was: %1.\nHashing algorithm list was %2.")
-                .arg(QString::fromLocal8Bit(kexInit.keyAlgorithms.names.join(", ")))
-                .arg(QString::fromLocal8Bit(serverCapabilities.join(", "))));
-
-    }
+    *algo = SshCapabilities::findBestMatch(SshCapabilities::MacAlgorithms, serverCapabilities);
 }
 
 void SshKeyExchange::checkHostKey(const QByteArray &hostKey)
-- 
GitLab