summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2009-11-22 10:20:58 (GMT)
committerRemko Tronçon <git@el-tramo.be>2009-11-22 10:27:01 (GMT)
commit4e244a9d1967ad416530aa3b9b07faad54097327 (patch)
tree413ee864cb85976178eaf9efee7cf6ff92acd4b7 /Swiften/SASL/SCRAMSHA1ClientAuthenticator.cpp
parent38fbde49ec4ff77708237d768581a47e6dd7d553 (diff)
downloadswift-4e244a9d1967ad416530aa3b9b07faad54097327.zip
swift-4e244a9d1967ad416530aa3b9b07faad54097327.tar.bz2
Added SCRAM-SHA-1 unit test.
Diffstat (limited to 'Swiften/SASL/SCRAMSHA1ClientAuthenticator.cpp')
-rw-r--r--Swiften/SASL/SCRAMSHA1ClientAuthenticator.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/Swiften/SASL/SCRAMSHA1ClientAuthenticator.cpp b/Swiften/SASL/SCRAMSHA1ClientAuthenticator.cpp
index 41e8f72..15c8ab6 100644
--- a/Swiften/SASL/SCRAMSHA1ClientAuthenticator.cpp
+++ b/Swiften/SASL/SCRAMSHA1ClientAuthenticator.cpp
@@ -87,8 +87,20 @@ std::map<char, String> SCRAMSHA1ClientAuthenticator::parseMap(const String& s) {
}
ByteArray SCRAMSHA1ClientAuthenticator::getInitialBareClientMessage() const {
- // TODO: Replace , and =
- return ByteArray(String("n=" + getAuthenticationID() + ",r=" + clientnonce));
+ String authenticationID = getAuthenticationID();
+ String escapedAuthenticationID;
+ for (size_t i = 0; i < authenticationID.getUTF8Size(); ++i) {
+ if (authenticationID[i] == ',') {
+ escapedAuthenticationID += "=2C";
+ }
+ else if (authenticationID[i] == '=') {
+ escapedAuthenticationID += "=3D";
+ }
+ else {
+ escapedAuthenticationID += authenticationID[i];
+ }
+ }
+ return ByteArray(String("n=" + escapedAuthenticationID + ",r=" + clientnonce));
}
}