diff options
author | Christian Kandeler <christian.kandeler@theqtcompany.com> | 2015-07-21 18:01:56 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@theqtcompany.com> | 2015-08-25 09:37:47 +0000 |
commit | edb880429e70127387359d831c31263de363d39e (patch) | |
tree | 0aa195350aa59687f86ac3202823359888c5c7f9 | |
parent | b3f9207ea962b4106b017a435dc19bc93bede0d6 (diff) |
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>
(cherry picked from commit 0aadfbd4537e83bab7b65c3658aa323c003610c4)
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
-rw-r--r-- | src/libs/ssh/sshkeyexchange.cpp | 22 |
1 files changed, 1 insertions, 21 deletions
diff --git a/src/libs/ssh/sshkeyexchange.cpp b/src/libs/ssh/sshkeyexchange.cpp index 25da1805c8..18ad4971af 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) |