aboutsummaryrefslogtreecommitdiff
path: root/tests/sasl.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-07-20 11:57:01 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-07-20 11:57:01 +0200
commitaab1b6b824d17fc30184a707f8a2763f06c0219e (patch)
tree1bca995b612cd33ee08a1aa3713269de09528163 /tests/sasl.cpp
parent15cab790071aabfc62977d590b89f54a5fa6e92d (diff)
downloadqxmpp-aab1b6b824d17fc30184a707f8a2763f06c0219e.tar.gz
work on server-side SASL
Diffstat (limited to 'tests/sasl.cpp')
-rw-r--r--tests/sasl.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/tests/sasl.cpp b/tests/sasl.cpp
index 622bccb6..3f861838 100644
--- a/tests/sasl.cpp
+++ b/tests/sasl.cpp
@@ -162,16 +162,27 @@ void tst_QXmppSaslServer::testAnonymous()
void tst_QXmppSaslServer::testDigestMd5()
{
- qsrand(0);
+ qsrand(1);
QXmppSaslServer *server = QXmppSaslServer::create("DIGEST-MD5");
QVERIFY(server != 0);
QCOMPARE(server->mechanism(), QLatin1String("DIGEST-MD5"));
+ // FIXME: support actual server workflow..
+ server->setPassword("qxmpp123");
+
// initial step returns challenge
QByteArray response;
QCOMPARE(server->respond(QByteArray(), response), QXmppSaslServer::Challenge);
- QCOMPARE(response, QByteArray("algorithm=md5-sess,charset=utf-8,nonce=\"AMzVG8Oibf+sVUCPPlWLR8lZQvbbJtJB9vJd+u3c6dw=\",qop=auth"));
+ QCOMPARE(response, QByteArray("algorithm=md5-sess,charset=utf-8,nonce=\"OI08/m+QRm6Ma+fKOjuqVXtz40sR5u9/u5GN6sSW0rs=\",qop=auth"));
+
+ // another challenge
+ QCOMPARE(server->respond(QByteArray("charset=utf-8,cnonce=\"AMzVG8Oibf+sVUCPPlWLR8lZQvbbJtJB9vJd+u3c6dw=\",digest-uri=\"xmpp/jabber.ru\",nc=00000001,nonce=\"OI08/m+QRm6Ma+fKOjuqVXtz40sR5u9/u5GN6sSW0rs=\",qop=auth,response=70e9063257ee2bf6bfd108975b917410,username=qxmpp1"), response), QXmppSaslServer::Challenge);
+ QCOMPARE(response, QByteArray("rspauth=2821a3add271b9ae02b813bed57ec878"));
+
+ // success
+ QCOMPARE(server->respond(QByteArray(), response), QXmppSaslServer::Succeeded);
+ QCOMPARE(response, QByteArray());
// any further step is an error
QCOMPARE(server->respond(QByteArray(), response), QXmppSaslServer::Failed);