diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-07-19 16:52:26 +0200 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-07-19 16:52:26 +0200 |
| commit | 8626bb00697e224231227c35c2df301b3dc8f6b2 (patch) | |
| tree | 46e9f56c7971c93ebd54925f70f5598e22e5f051 /src/base/QXmppSaslAuth.h | |
| parent | 2f2f419542247a78f412cff3d3631ade5e09de80 (diff) | |
| download | qxmpp-8626bb00697e224231227c35c2df301b3dc8f6b2.tar.gz | |
add QXmppSaslClient class + tests
Diffstat (limited to 'src/base/QXmppSaslAuth.h')
| -rw-r--r-- | src/base/QXmppSaslAuth.h | 73 |
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 |
