aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-07-20 17:25:41 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-07-20 17:25:41 +0200
commitdb4fe78387247ff039602030d964e4c0d6e39f46 (patch)
tree8e9ba8cd5e380c813376f6878b9593e84dff61b7
parent1e24a0feab544db99f19e55eb81c836f62c4585f (diff)
downloadqxmpp-db4fe78387247ff039602030d964e4c0d6e39f46.tar.gz
fix tests
-rw-r--r--src/base/QXmppSaslAuth.cpp10
-rw-r--r--src/base/QXmppSaslAuth_p.h2
-rw-r--r--tests/sasl.cpp5
3 files changed, 15 insertions, 2 deletions
diff --git a/src/base/QXmppSaslAuth.cpp b/src/base/QXmppSaslAuth.cpp
index 6c9c85fc..1c15ae02 100644
--- a/src/base/QXmppSaslAuth.cpp
+++ b/src/base/QXmppSaslAuth.cpp
@@ -35,6 +35,8 @@
const char *ns_xmpp_sasl = "urn:ietf:params:xml:ns:xmpp-sasl";
+static QByteArray forcedNonce;
+
// Calculate digest response for use with XMPP/SASL.
static QByteArray calculateDigest(const QByteArray &method, const QByteArray &digestUri, const QByteArray &secret, const QByteArray &nonce, const QByteArray &cnonce, const QByteArray &nc)
@@ -50,6 +52,9 @@ static QByteArray calculateDigest(const QByteArray &method, const QByteArray &di
static QByteArray generateNonce()
{
+ if (!forcedNonce.isEmpty())
+ return forcedNonce;
+
QByteArray nonce = QXmppUtils::generateRandomBytes(32);
// The random data can the '=' char is not valid as it is a delimiter,
@@ -655,6 +660,11 @@ QXmppSaslServer::Response QXmppSaslServerPlain::respond(const QByteArray &reques
}
}
+void QXmppSaslDigestMd5::setNonce(const QByteArray &nonce)
+{
+ forcedNonce = nonce;
+}
+
QMap<QByteArray, QByteArray> QXmppSaslDigestMd5::parseMessage(const QByteArray &ba)
{
QMap<QByteArray, QByteArray> map;
diff --git a/src/base/QXmppSaslAuth_p.h b/src/base/QXmppSaslAuth_p.h
index ace6b29f..783e8b9b 100644
--- a/src/base/QXmppSaslAuth_p.h
+++ b/src/base/QXmppSaslAuth_p.h
@@ -44,6 +44,8 @@
class QXmppSaslDigestMd5
{
public:
+ static void setNonce(const QByteArray &nonce);
+
// message parsing and serialization
static QMap<QByteArray, QByteArray> parseMessage(const QByteArray &ba);
static QByteArray serializeMessage(const QMap<QByteArray, QByteArray> &map);
diff --git a/tests/sasl.cpp b/tests/sasl.cpp
index 59a46174..0c57336b 100644
--- a/tests/sasl.cpp
+++ b/tests/sasl.cpp
@@ -86,7 +86,8 @@ void tst_QXmppSaslClient::testDigestMd5()
{
QFETCH(QByteArray, qop);
- qsrand(0);
+ QXmppSaslDigestMd5::setNonce("AMzVG8Oibf+sVUCPPlWLR8lZQvbbJtJB9vJd+u3c6dw=");
+
QXmppSaslClient *client = QXmppSaslClient::create("DIGEST-MD5");
QVERIFY(client != 0);
QCOMPARE(client->mechanism(), QLatin1String("DIGEST-MD5"));
@@ -182,7 +183,7 @@ void tst_QXmppSaslServer::testAnonymous()
void tst_QXmppSaslServer::testDigestMd5()
{
- qsrand(1);
+ QXmppSaslDigestMd5::setNonce("OI08/m+QRm6Ma+fKOjuqVXtz40sR5u9/u5GN6sSW0rs=");
QXmppSaslServer *server = QXmppSaslServer::create("DIGEST-MD5");
QVERIFY(server != 0);