diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-08-20 13:05:33 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-08-20 13:05:33 +0000 |
| commit | 01b9f5be8eaaf368cb0368740c52b1fb8707cca9 (patch) | |
| tree | f567eeb26ba7b7b7a6a9776acae9ee9938ac0461 /src/QXmppStream.cpp | |
| parent | 31f92915ef254bbdb702e1de0de72bdeff831ab6 (diff) | |
| download | qxmpp-01b9f5be8eaaf368cb0368740c52b1fb8707cca9.tar.gz | |
use serializeDigestMd5 to ensure proper quoting
Diffstat (limited to 'src/QXmppStream.cpp')
| -rw-r--r-- | src/QXmppStream.cpp | 29 |
1 files changed, 14 insertions, 15 deletions
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<QByteArray, QByteArray> 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 xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>" - + response.toBase64() + "</response>"; + + data.toBase64() + "</response>"; sendData(packet); } |
