forked from qt-creator/qt-creator
SSH: Add support for SHA-256 HMAC.
As recommended in RFC 6668. Task-number: QTCREATORBUG-14008 Change-Id: Icd4613dda9cce2b482499c626b863c17e8fa0c20 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This commit is contained in:
@@ -94,16 +94,20 @@ inline const char *botanSha1Name() { return "SHA-1"; }
|
|||||||
|
|
||||||
inline const char *botanHMacAlgoName(const QByteArray &rfcAlgoName)
|
inline const char *botanHMacAlgoName(const QByteArray &rfcAlgoName)
|
||||||
{
|
{
|
||||||
Q_ASSERT(rfcAlgoName == SshCapabilities::HMacSha1);
|
Q_ASSERT(rfcAlgoName == SshCapabilities::HMacSha1
|
||||||
Q_UNUSED(rfcAlgoName);
|
|| rfcAlgoName == SshCapabilities::HMacSha256);
|
||||||
return botanSha1Name();
|
if (rfcAlgoName == SshCapabilities::HMacSha1)
|
||||||
|
return botanSha1Name();
|
||||||
|
return "SHA-256";
|
||||||
}
|
}
|
||||||
|
|
||||||
inline quint32 botanHMacKeyLen(const QByteArray &rfcAlgoName)
|
inline quint32 botanHMacKeyLen(const QByteArray &rfcAlgoName)
|
||||||
{
|
{
|
||||||
Q_ASSERT(rfcAlgoName == SshCapabilities::HMacSha1);
|
Q_ASSERT(rfcAlgoName == SshCapabilities::HMacSha1
|
||||||
Q_UNUSED(rfcAlgoName);
|
|| rfcAlgoName == SshCapabilities::HMacSha256);
|
||||||
return 20;
|
if (rfcAlgoName == SshCapabilities::HMacSha1)
|
||||||
|
return 20;
|
||||||
|
return 32;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
@@ -78,8 +78,10 @@ const QList<QByteArray> SshCapabilities::EncryptionAlgorithms
|
|||||||
|
|
||||||
const QByteArray SshCapabilities::HMacSha1("hmac-sha1");
|
const QByteArray SshCapabilities::HMacSha1("hmac-sha1");
|
||||||
const QByteArray SshCapabilities::HMacSha196("hmac-sha1-96");
|
const QByteArray SshCapabilities::HMacSha196("hmac-sha1-96");
|
||||||
|
const QByteArray SshCapabilities::HMacSha256("hmac-sha2-256");
|
||||||
const QList<QByteArray> SshCapabilities::MacAlgorithms
|
const QList<QByteArray> SshCapabilities::MacAlgorithms
|
||||||
= QList<QByteArray>() /* << SshCapabilities::HMacSha196 */
|
= QList<QByteArray>() /* << SshCapabilities::HMacSha196 */
|
||||||
|
<< SshCapabilities::HMacSha256 // Recommended as per RFC 6668
|
||||||
<< SshCapabilities::HMacSha1;
|
<< SshCapabilities::HMacSha1;
|
||||||
|
|
||||||
const QList<QByteArray> SshCapabilities::CompressionAlgorithms
|
const QList<QByteArray> SshCapabilities::CompressionAlgorithms
|
||||||
|
@@ -58,6 +58,7 @@ public:
|
|||||||
|
|
||||||
static const QByteArray HMacSha1;
|
static const QByteArray HMacSha1;
|
||||||
static const QByteArray HMacSha196;
|
static const QByteArray HMacSha196;
|
||||||
|
static const QByteArray HMacSha256;
|
||||||
static const QList<QByteArray> MacAlgorithms;
|
static const QList<QByteArray> MacAlgorithms;
|
||||||
|
|
||||||
static const QList<QByteArray> CompressionAlgorithms;
|
static const QList<QByteArray> CompressionAlgorithms;
|
||||||
|
Reference in New Issue
Block a user