diff options
Diffstat (limited to 'Swiften/SASL/UnitTest/SCRAMSHA1ClientAuthenticatorTest.cpp')
| -rw-r--r-- | Swiften/SASL/UnitTest/SCRAMSHA1ClientAuthenticatorTest.cpp | 120 | 
1 files changed, 61 insertions, 59 deletions
| diff --git a/Swiften/SASL/UnitTest/SCRAMSHA1ClientAuthenticatorTest.cpp b/Swiften/SASL/UnitTest/SCRAMSHA1ClientAuthenticatorTest.cpp index 5d0edbd..f0ca01c 100644 --- a/Swiften/SASL/UnitTest/SCRAMSHA1ClientAuthenticatorTest.cpp +++ b/Swiften/SASL/UnitTest/SCRAMSHA1ClientAuthenticatorTest.cpp @@ -4,11 +4,13 @@   * See Documentation/Licenses/GPLv3.txt for more information.   */ +#include <QA/Checker/IO.h> +  #include <cppunit/extensions/HelperMacros.h>  #include <cppunit/extensions/TestFactoryRegistry.h> -#include "Swiften/SASL/SCRAMSHA1ClientAuthenticator.h" -#include "Swiften/Base/ByteArray.h" +#include <Swiften/SASL/SCRAMSHA1ClientAuthenticator.h> +#include <Swiften/Base/ByteArray.h>  using namespace Swift; @@ -41,179 +43,179 @@ class SCRAMSHA1ClientAuthenticatorTest : public CppUnit::TestFixture {  		void testGetInitialResponse() {  			SCRAMSHA1ClientAuthenticator testling("abcdefghABCDEFGH"); -			testling.setCredentials("user", "pass", ""); +			testling.setCredentials("user", createSafeByteArray("pass"), ""); -			ByteArray response = *testling.getResponse(); +			SafeByteArray response = *testling.getResponse(); -			CPPUNIT_ASSERT_EQUAL(std::string("n,,n=user,r=abcdefghABCDEFGH"), response.toString()); +			CPPUNIT_ASSERT_EQUAL(createSafeByteArray("n,,n=user,r=abcdefghABCDEFGH"), response);  		}  		void testGetInitialResponse_UsernameHasSpecialChars() {  			SCRAMSHA1ClientAuthenticator testling("abcdefghABCDEFGH"); -			testling.setCredentials(",us=,er=", "pass", ""); +			testling.setCredentials(",us=,er=", createSafeByteArray("pass"), ""); -			ByteArray response = *testling.getResponse(); +			SafeByteArray response = *testling.getResponse(); -			CPPUNIT_ASSERT_EQUAL(std::string("n,,n==2Cus=3D=2Cer=3D,r=abcdefghABCDEFGH"), response.toString()); +			CPPUNIT_ASSERT_EQUAL(createSafeByteArray("n,,n==2Cus=3D=2Cer=3D,r=abcdefghABCDEFGH"), response);  		}  		void testGetInitialResponse_WithAuthorizationID() {  			SCRAMSHA1ClientAuthenticator testling("abcdefghABCDEFGH"); -			testling.setCredentials("user", "pass", "auth"); +			testling.setCredentials("user", createSafeByteArray("pass"), "auth"); -			ByteArray response = *testling.getResponse(); +			SafeByteArray response = *testling.getResponse(); -			CPPUNIT_ASSERT_EQUAL(std::string("n,a=auth,n=user,r=abcdefghABCDEFGH"), response.toString()); +			CPPUNIT_ASSERT_EQUAL(createSafeByteArray("n,a=auth,n=user,r=abcdefghABCDEFGH"), response);  		}  		void testGetInitialResponse_WithAuthorizationIDWithSpecialChars() {  			SCRAMSHA1ClientAuthenticator testling("abcdefghABCDEFGH"); -			testling.setCredentials("user", "pass", "a=u,th"); +			testling.setCredentials("user", createSafeByteArray("pass"), "a=u,th"); -			ByteArray response = *testling.getResponse(); +			SafeByteArray response = *testling.getResponse(); -			CPPUNIT_ASSERT_EQUAL(std::string("n,a=a=3Du=2Cth,n=user,r=abcdefghABCDEFGH"), response.toString()); +			CPPUNIT_ASSERT_EQUAL(createSafeByteArray("n,a=a=3Du=2Cth,n=user,r=abcdefghABCDEFGH"), response);  		}  		void testGetInitialResponse_WithoutChannelBindingWithTLSChannelBindingData() {  			SCRAMSHA1ClientAuthenticator testling("abcdefghABCDEFGH", false); -			testling.setTLSChannelBindingData("xyza"); -			testling.setCredentials("user", "pass", ""); +			testling.setTLSChannelBindingData(createByteArray("xyza")); +			testling.setCredentials("user", createSafeByteArray("pass"), ""); -			ByteArray response = *testling.getResponse(); +			SafeByteArray response = *testling.getResponse(); -			CPPUNIT_ASSERT_EQUAL(std::string("y,,n=user,r=abcdefghABCDEFGH"), response.toString()); +			CPPUNIT_ASSERT_EQUAL(createSafeByteArray("y,,n=user,r=abcdefghABCDEFGH"), response);  		}  		void testGetInitialResponse_WithChannelBindingWithTLSChannelBindingData() {  			SCRAMSHA1ClientAuthenticator testling("abcdefghABCDEFGH", true); -			testling.setTLSChannelBindingData("xyza"); -			testling.setCredentials("user", "pass", ""); +			testling.setTLSChannelBindingData(createByteArray("xyza")); +			testling.setCredentials("user", createSafeByteArray("pass"), ""); -			ByteArray response = *testling.getResponse(); +			SafeByteArray response = *testling.getResponse(); -			CPPUNIT_ASSERT_EQUAL(std::string("p=tls-unique,,n=user,r=abcdefghABCDEFGH"), response.toString()); +			CPPUNIT_ASSERT_EQUAL(createSafeByteArray("p=tls-unique,,n=user,r=abcdefghABCDEFGH"), response);  		}  		void testGetFinalResponse() {  			SCRAMSHA1ClientAuthenticator testling("abcdefgh"); -			testling.setCredentials("user", "pass", ""); -			testling.setChallenge(ByteArray("r=abcdefghABCDEFGH,s=MTIzNDU2NzgK,i=4096")); +			testling.setCredentials("user", createSafeByteArray("pass"), ""); +			testling.setChallenge(createByteArray("r=abcdefghABCDEFGH,s=MTIzNDU2NzgK,i=4096")); -			ByteArray response = *testling.getResponse(); +			SafeByteArray response = *testling.getResponse(); -			CPPUNIT_ASSERT_EQUAL(std::string("c=biws,r=abcdefghABCDEFGH,p=CZbjGDpIteIJwQNBgO0P8pKkMGY="), response.toString()); +			CPPUNIT_ASSERT_EQUAL(createSafeByteArray("c=biws,r=abcdefghABCDEFGH,p=CZbjGDpIteIJwQNBgO0P8pKkMGY="), response);  		}  		void testGetFinalResponse_WithoutChannelBindingWithTLSChannelBindingData() {  			SCRAMSHA1ClientAuthenticator testling("abcdefgh", false); -			testling.setCredentials("user", "pass", ""); -			testling.setTLSChannelBindingData("xyza"); -			testling.setChallenge(ByteArray("r=abcdefghABCDEFGH,s=MTIzNDU2NzgK,i=4096")); +			testling.setCredentials("user", createSafeByteArray("pass"), ""); +			testling.setTLSChannelBindingData(createByteArray("xyza")); +			testling.setChallenge(createByteArray("r=abcdefghABCDEFGH,s=MTIzNDU2NzgK,i=4096")); -			ByteArray response = *testling.getResponse(); +			SafeByteArray response = *testling.getResponse(); -			CPPUNIT_ASSERT_EQUAL(std::string("c=eSws,r=abcdefghABCDEFGH,p=JNpsiFEcxZvNZ1+FFBBqrYvYxMk="), response.toString()); +			CPPUNIT_ASSERT_EQUAL(createSafeByteArray("c=eSws,r=abcdefghABCDEFGH,p=JNpsiFEcxZvNZ1+FFBBqrYvYxMk="), response);  		}  		void testGetFinalResponse_WithChannelBindingWithTLSChannelBindingData() {  			SCRAMSHA1ClientAuthenticator testling("abcdefgh", true); -			testling.setCredentials("user", "pass", ""); -			testling.setTLSChannelBindingData("xyza"); -			testling.setChallenge(ByteArray("r=abcdefghABCDEFGH,s=MTIzNDU2NzgK,i=4096")); +			testling.setCredentials("user", createSafeByteArray("pass"), ""); +			testling.setTLSChannelBindingData(createByteArray("xyza")); +			testling.setChallenge(createByteArray("r=abcdefghABCDEFGH,s=MTIzNDU2NzgK,i=4096")); -			ByteArray response = *testling.getResponse(); +			SafeByteArray response = *testling.getResponse(); -			CPPUNIT_ASSERT_EQUAL(std::string("c=cD10bHMtdW5pcXVlLCx4eXph,r=abcdefghABCDEFGH,p=i6Rghite81P1ype8XxaVAa5l7v0="), response.toString()); +			CPPUNIT_ASSERT_EQUAL(createSafeByteArray("c=cD10bHMtdW5pcXVlLCx4eXph,r=abcdefghABCDEFGH,p=i6Rghite81P1ype8XxaVAa5l7v0="), response);  		}  		void testSetFinalChallenge() {  			SCRAMSHA1ClientAuthenticator testling("abcdefgh"); -			testling.setCredentials("user", "pass", ""); -			testling.setChallenge(ByteArray("r=abcdefghABCDEFGH,s=MTIzNDU2NzgK,i=4096")); +			testling.setCredentials("user", createSafeByteArray("pass"), ""); +			testling.setChallenge(createByteArray("r=abcdefghABCDEFGH,s=MTIzNDU2NzgK,i=4096")); -			bool result = testling.setChallenge(ByteArray("v=Dd+Q20knZs9jeeK0pi1Mx1Se+yo=")); +			bool result = testling.setChallenge(createByteArray("v=Dd+Q20knZs9jeeK0pi1Mx1Se+yo="));  			CPPUNIT_ASSERT(result);  		}  		void testSetChallenge() {  			SCRAMSHA1ClientAuthenticator testling("abcdefgh"); -			testling.setCredentials("user", "pass", ""); +			testling.setCredentials("user", createSafeByteArray("pass"), ""); -			bool result = testling.setChallenge(ByteArray("r=abcdefghABCDEFGH,s=MTIzNDU2NzgK,i=4096")); +			bool result = testling.setChallenge(createByteArray("r=abcdefghABCDEFGH,s=MTIzNDU2NzgK,i=4096"));  			CPPUNIT_ASSERT(result);  		}  		void testSetChallenge_InvalidClientNonce() {  			SCRAMSHA1ClientAuthenticator testling("abcdefgh"); -			testling.setCredentials("user", "pass", ""); +			testling.setCredentials("user", createSafeByteArray("pass"), ""); -			bool result = testling.setChallenge(ByteArray("r=abcdefgiABCDEFGH,s=MTIzNDU2NzgK,i=4096")); +			bool result = testling.setChallenge(createByteArray("r=abcdefgiABCDEFGH,s=MTIzNDU2NzgK,i=4096"));  			CPPUNIT_ASSERT(!result);  		}  		void testSetChallenge_OnlyClientNonce() {  			SCRAMSHA1ClientAuthenticator testling("abcdefgh"); -			testling.setCredentials("user", "pass", ""); +			testling.setCredentials("user", createSafeByteArray("pass"), ""); -			bool result = testling.setChallenge(ByteArray("r=abcdefgh,s=MTIzNDU2NzgK,i=4096")); +			bool result = testling.setChallenge(createByteArray("r=abcdefgh,s=MTIzNDU2NzgK,i=4096"));  			CPPUNIT_ASSERT(!result);  		}  		void testSetChallenge_InvalidIterations() {  			SCRAMSHA1ClientAuthenticator testling("abcdefgh"); -			testling.setCredentials("user", "pass", ""); +			testling.setCredentials("user", createSafeByteArray("pass"), ""); -			bool result = testling.setChallenge(ByteArray("r=abcdefghABCDEFGH,s=MTIzNDU2NzgK,i=bla")); +			bool result = testling.setChallenge(createByteArray("r=abcdefghABCDEFGH,s=MTIzNDU2NzgK,i=bla"));  			CPPUNIT_ASSERT(!result);  		}  		void testSetChallenge_MissingIterations() {  			SCRAMSHA1ClientAuthenticator testling("abcdefgh"); -			testling.setCredentials("user", "pass", ""); +			testling.setCredentials("user", createSafeByteArray("pass"), ""); -			bool result = testling.setChallenge(ByteArray("r=abcdefghABCDEFGH,s=MTIzNDU2NzgK")); +			bool result = testling.setChallenge(createByteArray("r=abcdefghABCDEFGH,s=MTIzNDU2NzgK"));  			CPPUNIT_ASSERT(!result);  		}  		void testSetChallenge_ZeroIterations() {  			SCRAMSHA1ClientAuthenticator testling("abcdefgh"); -			testling.setCredentials("user", "pass", ""); +			testling.setCredentials("user", createSafeByteArray("pass"), ""); -			bool result = testling.setChallenge(ByteArray("r=abcdefghABCDEFGH,s=MTIzNDU2NzgK,i=0")); +			bool result = testling.setChallenge(createByteArray("r=abcdefghABCDEFGH,s=MTIzNDU2NzgK,i=0"));  			CPPUNIT_ASSERT(!result);  		}  		void testSetChallenge_NegativeIterations() {  			SCRAMSHA1ClientAuthenticator testling("abcdefgh"); -			testling.setCredentials("user", "pass", ""); +			testling.setCredentials("user", createSafeByteArray("pass"), ""); -			bool result = testling.setChallenge(ByteArray("r=abcdefghABCDEFGH,s=MTIzNDU2NzgK,i=-1")); +			bool result = testling.setChallenge(createByteArray("r=abcdefghABCDEFGH,s=MTIzNDU2NzgK,i=-1"));  			CPPUNIT_ASSERT(!result);  		}  		void testSetFinalChallenge_InvalidChallenge() {  			SCRAMSHA1ClientAuthenticator testling("abcdefgh"); -			testling.setCredentials("user", "pass", ""); -			testling.setChallenge(ByteArray("r=abcdefghABCDEFGH,s=MTIzNDU2NzgK,i=4096")); -			bool result = testling.setChallenge(ByteArray("v=e26kI69ICb6zosapLLxrER/631A=")); +			testling.setCredentials("user", createSafeByteArray("pass"), ""); +			testling.setChallenge(createByteArray("r=abcdefghABCDEFGH,s=MTIzNDU2NzgK,i=4096")); +			bool result = testling.setChallenge(createByteArray("v=e26kI69ICb6zosapLLxrER/631A="));  			CPPUNIT_ASSERT(!result);  		}  		void testGetResponseAfterFinalChallenge() {  			SCRAMSHA1ClientAuthenticator testling("abcdefgh"); -			testling.setCredentials("user", "pass", ""); -			testling.setChallenge(ByteArray("r=abcdefghABCDEFGH,s=MTIzNDU2NzgK,i=4096")); -			testling.setChallenge(ByteArray("v=Dd+Q20knZs9jeeK0pi1Mx1Se+yo=")); +			testling.setCredentials("user", createSafeByteArray("pass"), ""); +			testling.setChallenge(createByteArray("r=abcdefghABCDEFGH,s=MTIzNDU2NzgK,i=4096")); +			testling.setChallenge(createByteArray("v=Dd+Q20knZs9jeeK0pi1Mx1Se+yo="));  			CPPUNIT_ASSERT(!testling.getResponse());  		} | 
 Swift
 Swift