aboutsummaryrefslogtreecommitdiff
path: root/src/base/QXmppSaslAuth.h
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-07-19 16:52:26 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-07-19 16:52:26 +0200
commit8626bb00697e224231227c35c2df301b3dc8f6b2 (patch)
tree46e9f56c7971c93ebd54925f70f5598e22e5f051 /src/base/QXmppSaslAuth.h
parent2f2f419542247a78f412cff3d3631ade5e09de80 (diff)
downloadqxmpp-8626bb00697e224231227c35c2df301b3dc8f6b2.tar.gz
add QXmppSaslClient class + tests
Diffstat (limited to 'src/base/QXmppSaslAuth.h')
-rw-r--r--src/base/QXmppSaslAuth.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/src/base/QXmppSaslAuth.h b/src/base/QXmppSaslAuth.h
index 35edf326..1ae20a37 100644
--- a/src/base/QXmppSaslAuth.h
+++ b/src/base/QXmppSaslAuth.h
@@ -30,6 +30,8 @@
#include "QXmppGlobal.h"
+class QXmppSaslClientPrivate;
+
class QXMPP_EXPORT QXmppSaslDigestMd5
{
public:
@@ -71,4 +73,75 @@ private:
QByteArray m_secret;
};
+/// The QXmppSaslClient class is the base class for all SASL client
+// authentication methods.
+
+class QXMPP_EXPORT QXmppSaslClient
+{
+public:
+ QXmppSaslClient();
+ virtual ~QXmppSaslClient();
+
+ QString server() const;
+ void setServer(const QString &server);
+
+ QString username() const;
+ void setUsername(const QString &username);
+
+ QString password() const;
+ void setPassword(const QString &password);
+
+ virtual QString mechanism() const = 0;
+ virtual bool respond(const QByteArray &challenge, QByteArray &response) = 0;
+
+private:
+ QXmppSaslClientPrivate *d;
+};
+
+class QXmppSaslClientAnonymous : public QXmppSaslClient
+{
+public:
+ QXmppSaslClientAnonymous();
+ QString mechanism() const;
+ bool respond(const QByteArray &challenge, QByteArray &response);
+
+private:
+ int m_step;
+};
+
+class QXmppSaslClientDigestMd5 : public QXmppSaslClient
+{
+public:
+ QXmppSaslClientDigestMd5();
+ QString mechanism() const;
+ bool respond(const QByteArray &challenge, QByteArray &response);
+
+private:
+ QXmppSaslDigestMd5 m_saslDigest;
+ int m_step;
+};
+
+class QXmppSaslClientFacebook : public QXmppSaslClient
+{
+public:
+ QXmppSaslClientFacebook();
+ QString mechanism() const;
+ bool respond(const QByteArray &challenge, QByteArray &response);
+
+private:
+ int m_step;
+};
+
+class QXmppSaslClientPlain : public QXmppSaslClient
+{
+public:
+ QXmppSaslClientPlain();
+ QString mechanism() const;
+ bool respond(const QByteArray &challenge, QByteArray &response);
+
+private:
+ int m_step;
+};
+
+
#endif