diff options
author | Remko Tronçon <git@el-tramo.be> | 2011-07-12 18:47:03 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2011-07-12 18:47:03 (GMT) |
commit | 63b311c1bb60469eb5e2ccd2107739e11b189a15 (patch) | |
tree | 870057043f88e91b71b961a821a4dace859fc839 /Swiften/SASL | |
parent | c6819a5fd632d03cfe72a58922054765c7383aa6 (diff) | |
parent | 08536b4ed31c30a25a343c3c2619676e67a0c692 (diff) | |
download | swift-contrib-63b311c1bb60469eb5e2ccd2107739e11b189a15.zip swift-contrib-63b311c1bb60469eb5e2ccd2107739e11b189a15.tar.bz2 |
Merge branch 'swift-1.x'
* swift-1.x:
Fixed bug with illegal resource in JID resulting in empty resource.
Updated the german translation
Conflicts:
Swiften/IDN/StringPrep.cpp
Swiften/SASL/SCRAMSHA1ClientAuthenticator.cpp
Diffstat (limited to 'Swiften/SASL')
-rw-r--r-- | Swiften/SASL/SCRAMSHA1ClientAuthenticator.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/Swiften/SASL/SCRAMSHA1ClientAuthenticator.cpp b/Swiften/SASL/SCRAMSHA1ClientAuthenticator.cpp index 5fa1f05..20b3d8a 100644 --- a/Swiften/SASL/SCRAMSHA1ClientAuthenticator.cpp +++ b/Swiften/SASL/SCRAMSHA1ClientAuthenticator.cpp @@ -100,7 +100,11 @@ bool SCRAMSHA1ClientAuthenticator::setChallenge(const boost::optional<ByteArray> } // Compute all the values needed for the server signature - saltedPassword = PBKDF2::encode(StringPrep::getPrepared(getPassword(), StringPrep::SASLPrep), salt, iterations); + try { + saltedPassword = PBKDF2::encode(StringPrep::getPrepared(getPassword(), StringPrep::SASLPrep), salt, iterations); + } + catch (const std::exception&) { + } authMessage = concat(getInitialBareClientMessage(), createByteArray(","), initialServerMessage, createByteArray(","), getFinalMessageWithoutProof()); ByteArray serverKey = HMACSHA1::getResult(saltedPassword, createByteArray("Server Key")); serverSignature = HMACSHA1::getResult(serverKey, authMessage); @@ -147,7 +151,12 @@ std::map<char, std::string> SCRAMSHA1ClientAuthenticator::parseMap(const std::st } ByteArray SCRAMSHA1ClientAuthenticator::getInitialBareClientMessage() const { - std::string authenticationID = StringPrep::getPrepared(getAuthenticationID(), StringPrep::SASLPrep); + std::string authenticationID; + try { + authenticationID = StringPrep::getPrepared(getAuthenticationID(), StringPrep::SASLPrep); + } + catch (const std::exception&) { + } return createByteArray(std::string("n=" + escape(authenticationID) + ",r=" + clientnonce)); } |