00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef QXMPPSASLAUTH_H
00026 #define QXMPPSASLAUTH_H
00027
00028 #include <QByteArray>
00029 #include <QMap>
00030
00031 class QXmppSaslDigestMd5
00032 {
00033 public:
00034 QByteArray authzid() const;
00035 void setAuthzid(const QByteArray &cnonce);
00036
00037 QByteArray cnonce() const;
00038 void setCnonce(const QByteArray &cnonce);
00039
00040 QByteArray digestUri() const;
00041 void setDigestUri(const QByteArray &digestUri);
00042
00043 QByteArray nc() const;
00044 void setNc(const QByteArray &nc);
00045
00046 QByteArray nonce() const;
00047 void setNonce(const QByteArray &nonce);
00048
00049 QByteArray qop() const;
00050 void setQop(const QByteArray &qop);
00051
00052 QByteArray realm() const;
00053 void setRealm(const QByteArray &realm);
00054
00055 QByteArray username() const;
00056 void setUsername(const QByteArray &username);
00057
00058 void setPassword(const QByteArray &password);
00059
00060 QByteArray calculateDigest(const QByteArray &A2) const;
00061 QByteArray calculateDigest(const QByteArray &A1, const QByteArray &A2) const;
00062 static QByteArray generateNonce();
00063
00064
00065 static QMap<QByteArray, QByteArray> parseMessage(const QByteArray &ba);
00066 static QByteArray serializeMessage(const QMap<QByteArray, QByteArray> &map);
00067
00068 private:
00069 QByteArray m_authzid;
00070 QByteArray m_cnonce;
00071 QByteArray m_digestUri;
00072 QByteArray m_nc;
00073 QByteArray m_nonce;
00074 QByteArray m_qop;
00075 QByteArray m_realm;
00076 QByteArray m_username;
00077 QByteArray m_password;
00078 };
00079
00080 #endif