aboutsummaryrefslogtreecommitdiff
path: root/src/QXmppSaslAuth.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-11-16 21:44:54 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-11-16 21:44:54 +0000
commit9e86da76e5b881fa4cba6b170573793b9b83a343 (patch)
tree8e38bd1e8a53cb29735b1b42b25d67a34e4ad7f3 /src/QXmppSaslAuth.cpp
parent1c8faec60853260865bb3e9dbbc3afa2ec86cb8a (diff)
downloadqxmpp-9e86da76e5b881fa4cba6b170573793b9b83a343.tar.gz
make QXmppSaslDigestMd5 capable of generating old-style (no qop) digests
Diffstat (limited to 'src/QXmppSaslAuth.cpp')
-rw-r--r--src/QXmppSaslAuth.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/QXmppSaslAuth.cpp b/src/QXmppSaslAuth.cpp
index 4a7453d8..c7341af4 100644
--- a/src/QXmppSaslAuth.cpp
+++ b/src/QXmppSaslAuth.cpp
@@ -150,8 +150,11 @@ QByteArray QXmppSaslDigestMd5::calculateDigest(const QByteArray &A1, const QByte
{
QByteArray HA1 = QCryptographicHash::hash(A1, QCryptographicHash::Md5).toHex();
QByteArray HA2 = QCryptographicHash::hash(A2, QCryptographicHash::Md5).toHex();
- QByteArray KD = HA1 + ':' + m_nonce + ':' + m_nc + ':' + m_cnonce + ':'
- + m_qop + ':' + HA2;
+ QByteArray KD;
+ if (m_qop == "auth" || m_qop == "auth-int")
+ KD = HA1 + ':' + m_nonce + ':' + m_nc + ':' + m_cnonce + ':' + m_qop + ':' + HA2;
+ else
+ KD = HA1 + ':' + m_nonce + ':' + HA2;
return QCryptographicHash::hash(KD, QCryptographicHash::Md5).toHex();
}