diff options
Diffstat (limited to 'src/com/isode/stroke/client')
-rw-r--r-- | src/com/isode/stroke/client/Client.java | 5 | ||||
-rw-r--r-- | src/com/isode/stroke/client/ClientSession.java | 10 | ||||
-rw-r--r-- | src/com/isode/stroke/client/CoreClient.java | 4 |
3 files changed, 13 insertions, 6 deletions
diff --git a/src/com/isode/stroke/client/Client.java b/src/com/isode/stroke/client/Client.java index 6938225..1d137c5 100644 --- a/src/com/isode/stroke/client/Client.java +++ b/src/com/isode/stroke/client/Client.java @@ -28,6 +28,7 @@ import com.isode.stroke.roster.XMPPRosterController; import com.isode.stroke.roster.XMPPRosterImpl; import com.isode.stroke.signals.Signal1; import com.isode.stroke.vcards.VCardManager; +import com.isode.stroke.base.SafeByteArray; /** * Provides the core functionality for writing XMPP client software. @@ -76,7 +77,7 @@ public class Client extends CoreClient { * @param networkFactories An implementation of network interaction, must * not be null. */ - public Client(final JID jid, final String password, final NetworkFactories networkFactories, Storages storages) { + public Client(final JID jid, final SafeByteArray password, final NetworkFactories networkFactories, Storages storages) { super(jid, password, networkFactories); this.storages = storages; @@ -111,7 +112,7 @@ public class Client extends CoreClient { pubSubManager = new PubSubManagerImpl(getStanzaChannel(), getIQRouter()); } - public Client(final JID jid, final String password, final NetworkFactories networkFactories) { + public Client(final JID jid, final SafeByteArray password, final NetworkFactories networkFactories) { this(jid, password, networkFactories, null); } diff --git a/src/com/isode/stroke/client/ClientSession.java b/src/com/isode/stroke/client/ClientSession.java index 7654630..fe9481d 100644 --- a/src/com/isode/stroke/client/ClientSession.java +++ b/src/com/isode/stroke/client/ClientSession.java @@ -50,6 +50,10 @@ import com.isode.stroke.tls.Certificate; import com.isode.stroke.tls.CertificateTrustChecker; import com.isode.stroke.tls.CertificateVerificationError; import com.isode.stroke.tls.ServerIdentityVerifier; +import com.isode.stroke.idn.IDNConverter; +import com.isode.stroke.idn.ICUConverter; +import com.isode.stroke.crypto.CryptoProvider; +import com.isode.stroke.crypto.JavaCryptoProvider; import java.util.List; import java.util.UUID; @@ -84,6 +88,8 @@ public class ClientSession { private StanzaAckResponder stanzaAckResponder_; private com.isode.stroke.base.Error error_; private CertificateTrustChecker certificateTrustChecker; + private IDNConverter idnConverter = new ICUConverter(); //TOPORT: Accomodated later in Constructor. + private CryptoProvider crypto = new JavaCryptoProvider(); //TOPORT: Accomodated later in Constructor. public enum State { @@ -354,7 +360,7 @@ public class ClientSession { stream.writeElement(new AuthRequest("EXTERNAL",new SafeByteArray())); } else if (streamFeatures.hasAuthenticationMechanism("SCRAM-SHA-1") || streamFeatures.hasAuthenticationMechanism("SCRAM-SHA-1-PLUS")) { - final SCRAMSHA1ClientAuthenticator scramAuthenticator = new SCRAMSHA1ClientAuthenticator(UUID.randomUUID().toString(), streamFeatures.hasAuthenticationMechanism("SCRAM-SHA-1-PLUS")); + final SCRAMSHA1ClientAuthenticator scramAuthenticator = new SCRAMSHA1ClientAuthenticator(UUID.randomUUID().toString(), streamFeatures.hasAuthenticationMechanism("SCRAM-SHA-1-PLUS"), idnConverter, crypto); if (stream.isTLSEncrypted()) { scramAuthenticator.setTLSChannelBindingData(stream.getTLSFinishMessage()); } @@ -508,7 +514,7 @@ public class ClientSession { return true; } - public void sendCredentials(final String password) { + public void sendCredentials(final SafeByteArray password) { if (!checkState(State.WaitingForCredentials)) { throw new IllegalStateException("Asking for credentials when we shouldn't be asked."); } diff --git a/src/com/isode/stroke/client/CoreClient.java b/src/com/isode/stroke/client/CoreClient.java index efefa1c..39229a3 100644 --- a/src/com/isode/stroke/client/CoreClient.java +++ b/src/com/isode/stroke/client/CoreClient.java @@ -80,7 +80,7 @@ public class CoreClient { */ public final Signal1<Stanza> onStanzaAcked = new Signal1<Stanza>(); private JID jid_; - private String password_; + private SafeByteArray password_; private ClientSessionStanzaChannel stanzaChannel_; private IQRouter iqRouter_; private Connector connector_; @@ -117,7 +117,7 @@ public class CoreClient { * @param networkFactories An implementation of network interaction, must * not be null. */ - public CoreClient(final JID jid, final String password, final NetworkFactories networkFactories) { + public CoreClient(final JID jid, final SafeByteArray password, final NetworkFactories networkFactories) { jid_ = jid; password_ = password; disconnectRequested_ = false; |