diff options
author | Tarun Gupta <tarun1995gupta@gmail.com> | 2015-07-22 22:21:20 (GMT) |
---|---|---|
committer | Nick Hudson <nick.hudson@isode.com> | 2015-08-03 14:06:04 (GMT) |
commit | af3bb03053b9d83f4d38b31d66b292792206a327 (patch) | |
tree | 0e5826f6b1fbb638d899ee6aadca902a7c2fdb18 /src/com/isode/stroke/sasl/PLAINMessage.java | |
parent | 32ef37b9059e21de19209a9a1ab4ef2564051918 (diff) | |
download | stroke-af3bb03053b9d83f4d38b31d66b292792206a327.zip stroke-af3bb03053b9d83f4d38b31d66b292792206a327.tar.bz2 |
Make SASL equivalent with Swiften.
Adds DIGESTMD5ClientAuthenticator, DIGESTMD5Properties, ExternalClientAuthenticator, PLAINMessage.
Updates Client, ClientSession, CoreClient, ConnectDisconnect, StrokeGUI to reflect changes made in SASL.
Updates ClientAuthenticator, SCRAMSHA1ClientAuthenticator, PBKDF2.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
Added tests for DIGESTMD5ClientAuthenticator, DIGESTMD5Properties, PLAINClientAuthenticator, PLAINMessage.
Update test for SCRAMSHA1ClientAuthenticatorTest.
All tests pass.
Change-Id: I4fd38f922cab7e4c4548d9706f6ad3b9e1506e81
Diffstat (limited to 'src/com/isode/stroke/sasl/PLAINMessage.java')
-rw-r--r-- | src/com/isode/stroke/sasl/PLAINMessage.java | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/src/com/isode/stroke/sasl/PLAINMessage.java b/src/com/isode/stroke/sasl/PLAINMessage.java new file mode 100644 index 0000000..5c1fe8b --- /dev/null +++ b/src/com/isode/stroke/sasl/PLAINMessage.java @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2010-2013 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. + */ +/* + * Copyright (c) 2015 Tarun Gupta. + * Licensed under the simplified BSD license. + * See Documentation/Licenses/BSD-simplified.txt for more information. + */ + +package com.isode.stroke.sasl; + +import com.isode.stroke.sasl.ClientAuthenticator; +import com.isode.stroke.base.SafeByteArray; +import com.isode.stroke.base.ByteArray; + +public class PLAINMessage { + + private String authcid = ""; + private String authzid = ""; + private SafeByteArray password = new SafeByteArray(); + + public PLAINMessage(final String authcid, final SafeByteArray password) { + this(authcid, password, ""); + } + + public PLAINMessage(final String authcid, final SafeByteArray password, final String authzid) { + this.authcid = authcid; + this.password = password; + this.authzid = authzid; + } + + public PLAINMessage(final SafeByteArray value) { + int i = 0; + byte[] byteArrayValue = value.getData(); + while (i < value.getSize() && byteArrayValue[i] != ((byte)0)) { + authzid += (char)(byteArrayValue[i]); + ++i; + } + if (i == value.getSize()) { + return; + } + ++i; + while (i < value.getSize() && byteArrayValue[i] != ((byte)0)) { + authcid += (char)(byteArrayValue[i]); + ++i; + } + if (i == value.getSize()) { + authcid = ""; + return; + } + ++i; + while (i < value.getSize()) { + password.append(byteArrayValue[i]); + ++i; + } + } + + public SafeByteArray getValue() { + return new SafeByteArray().append(authzid).append((byte)0).append(authcid).append((byte)0).append(password); + } + + public String getAuthenticationID() { + return authcid; + } + + public SafeByteArray getPassword() { + return password; + } + + public String getAuthorizationID() { + return authzid; + } +}
\ No newline at end of file |