From 01b9f5be8eaaf368cb0368740c52b1fb8707cca9 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Fri, 20 Aug 2010 13:05:33 +0000 Subject: use serializeDigestMd5 to ensure proper quoting --- src/QXmppStream.cpp | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) (limited to 'src/QXmppStream.cpp') diff --git a/src/QXmppStream.cpp b/src/QXmppStream.cpp index 033e404e..d193f7af 100644 --- a/src/QXmppStream.cpp +++ b/src/QXmppStream.cpp @@ -844,7 +844,6 @@ void QXmppStream::sendAuthDigestMD5ResponseStep1(const QString& challenge) if(map.contains("realm")) realm = map["realm"]; - QByteArray response; QByteArray cnonce(32, 'm'); for(int n = 0; n < cnonce.size(); ++n) @@ -872,24 +871,24 @@ void QXmppStream::sendAuthDigestMD5ResponseStep1(const QString& challenge) + "auth" + ':' + HA2; QByteArray Z = QCryptographicHash::hash(KD, QCryptographicHash::Md5).toHex(); - response += "username=\"" + user + "\","; - + // Build response + QMap response; + response["username"] = user; if(!realm.isEmpty()) - response += "realm=\"" + realm + "\","; - - response += "nonce=\"" + map["nonce"] + "\","; - response += "cnonce=\"" + cnonce + "\","; - response += "nc=" + nc + ","; - response += "qop=auth,"; - response += "digest-uri=\"" + digest_uri + "\","; - response += "response=" + Z + ","; + response["realm"] = realm; + response["nonce"] = map["nonce"]; + response["cnonce"] = cnonce; + response["nc"] = nc; + response["qop"] = "auth"; + response["digest-uri"] = digest_uri; + response["response"] = Z; if(map.contains("authzid")) - response += "authzid=\"" + map["authzid"] + "\","; - response += "charset=utf-8"; + response["authzid"] = map["authzid"]; + response["charset"] = "utf-8"; - debug(response); + const QByteArray data = serializeDigestMd5(response); QByteArray packet = "" - + response.toBase64() + ""; + + data.toBase64() + ""; sendData(packet); } -- cgit v1.2.3