summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/SASL/ClientAuthenticator.h')
-rw-r--r--Swiften/SASL/ClientAuthenticator.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/Swiften/SASL/ClientAuthenticator.h b/Swiften/SASL/ClientAuthenticator.h
new file mode 100644
index 0000000..f42a51e
--- /dev/null
+++ b/Swiften/SASL/ClientAuthenticator.h
@@ -0,0 +1,43 @@
+#pragma once
+
+#include "Swiften/Base/String.h"
+#include "Swiften/Base/ByteArray.h"
+
+namespace Swift {
+ class ClientAuthenticator {
+ public:
+ ClientAuthenticator(const String& name);
+ virtual ~ClientAuthenticator();
+
+ const String& getName() const {
+ return name;
+ }
+
+ void setCredentials(const String& authcid, const String& password, const String& authzid = String()) {
+ this->authcid = authcid;
+ this->password = password;
+ this->authzid = authzid;
+ }
+
+ virtual ByteArray getResponse() const = 0;
+ virtual bool setChallenge(const ByteArray&) = 0;
+
+ const String& getAuthenticationID() const {
+ return authcid;
+ }
+
+ const String& getAuthorizationID() const {
+ return authzid;
+ }
+
+ const String& getPassword() const {
+ return password;
+ }
+
+ private:
+ String name;
+ String authcid;
+ String password;
+ String authzid;
+ };
+}