javax.net.ssl

Class SSLSocket


public abstract class SSLSocket
extends Socket

A socket that communicates over the secure socket layer protocol.

Constructor Summary

SSLSocket()
SSLSocket(String host, int port)
SSLSocket(String host, int port, InetAddress localAddr, int localPort)
SSLSocket(InetAddress address, int port)
SSLSocket(InetAddress address, int port, InetAddress localAddr, int localPort)

Method Summary

void
addHandshakeCompletedListener(HandshakeCompletedListener listener)
Adds a handshake completed listener that wants to be notified when the SSL handshake completes.
boolean
getEnableSessionCreation()
Returns whether or not sessions will be created by this socket, and thus allow sessions to be continued later.
String[]
getEnabledCipherSuites()
Returns the list of currently enabled cipher suites.
String[]
getEnabledProtocols()
Returns the list of enabled SSL protocols.
boolean
getNeedClientAuth()
Returns whether or not this socket will require connecting clients to authenticate themselves.
SSLSession
getSession()
Returns this socket's session object.
String[]
getSupportedCipherSuites()
Returns the list of cipher suites supported by this socket.
String[]
getSupportedProtocols()
Returns the list of protocols supported by this socket.
boolean
getUseClientMode()
Returns whether or not this socket will connect in client mode.
boolean
getWantClientAuth()
Returns whether or not this socket will request that connecting clients authenticate themselves.
void
removeHandshakeCompletedListener(HandshakeCompletedListener listener)
Removes a handshake listener from this socket.
void
setEnableSessionCreation(boolean enable)
Sets whether or not sessions will be created by this socket.
void
setEnabledCipherSuites(String[] suites)
Sets the list of enabled cipher suites.
void
setEnabledProtocols(String[] protocols)
Sets the list of enabled SSL protocols.
void
setNeedClientAuth(boolean needAuth)
Sets whether or not this socket will require connecting clients to authenticate themselves.
void
setUseClientMode(boolean clientMode)
Sets whether or not this socket will connect in client mode.
void
setWantClientAuth(boolean wantAuth)
Sets whether or not this socket will request that connecting clients authenticate themselves.
void
startHandshake()
Explicitly begins the handshake, or, if the handshake has already completed, requests that the handshake be repeated.

Methods inherited from class java.net.Socket

bind, close, connect, connect, getChannel, getInetAddress, getInputStream, getKeepAlive, getLocalAddress, getLocalPort, getLocalSocketAddress, getOOBInline, getOutputStream, getPort, getReceiveBufferSize, getRemoteSocketAddress, getReuseAddress, getSendBufferSize, getSoLinger, getSoTimeout, getTcpNoDelay, getTrafficClass, isBound, isClosed, isConnected, isInputShutdown, isOutputShutdown, sendUrgentData, setKeepAlive, setOOBInline, setReceiveBufferSize, setReuseAddress, setSendBufferSize, setSoLinger, setSoTimeout, setSocketImplFactory, setTcpNoDelay, setTrafficClass, shutdownInput, shutdownOutput, toString

Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

SSLSocket

protected SSLSocket()


SSLSocket

protected SSLSocket(String host,
                    int port)
            throws IOException,
                   UnknownHostException


SSLSocket

protected SSLSocket(String host,
                    int port,
                    InetAddress localAddr,
                    int localPort)
            throws IOException,
                   UnknownHostException


SSLSocket

protected SSLSocket(InetAddress address,
                    int port)
            throws IOException


SSLSocket

protected SSLSocket(InetAddress address,
                    int port,
                    InetAddress localAddr,
                    int localPort)
            throws IOException

Method Details

addHandshakeCompletedListener

public void addHandshakeCompletedListener(HandshakeCompletedListener listener)
Adds a handshake completed listener that wants to be notified when the SSL handshake completes.

Parameters:
listener - The listener to add.


getEnableSessionCreation

public boolean getEnableSessionCreation()
Returns whether or not sessions will be created by this socket, and thus allow sessions to be continued later.

Returns:
Whether or not sessions will be created.


getEnabledCipherSuites

public String[] getEnabledCipherSuites()
Returns the list of currently enabled cipher suites.

Returns:
The list of enabled cipher suites.


getEnabledProtocols

public String[] getEnabledProtocols()
Returns the list of enabled SSL protocols.

Returns:
The list of enabled protocols.


getNeedClientAuth

public boolean getNeedClientAuth()
Returns whether or not this socket will require connecting clients to authenticate themselves. This value only applies to sockets in server mode.

Returns:
Whether or not this socket requires client authentication.


getSession

public SSLSession getSession()
Returns this socket's session object.

Returns:
The session.


getSupportedCipherSuites

public String[] getSupportedCipherSuites()
Returns the list of cipher suites supported by this socket.

Returns:
The list of supported cipher suites.


getSupportedProtocols

public String[] getSupportedProtocols()
Returns the list of protocols supported by this socket.

Returns:
The list of supported protocols.


getUseClientMode

public boolean getUseClientMode()
Returns whether or not this socket will connect in client mode.

Returns:
True if this is a client socket.


getWantClientAuth

public boolean getWantClientAuth()
Returns whether or not this socket will request that connecting clients authenticate themselves. This value only applies to sockets in server mode.

Returns:
The want client auth value.


removeHandshakeCompletedListener

public void removeHandshakeCompletedListener(HandshakeCompletedListener listener)
Removes a handshake listener from this socket.

Parameters:
listener - The listener to remove.


setEnableSessionCreation

public void setEnableSessionCreation(boolean enable)
Sets whether or not sessions will be created by this socket.

Parameters:
enable - The new value.


setEnabledCipherSuites

public void setEnabledCipherSuites(String[] suites)
Sets the list of enabled cipher suites.

Parameters:
suites - The list of suites to enable.


setEnabledProtocols

public void setEnabledProtocols(String[] protocols)
Sets the list of enabled SSL protocols.

Parameters:
protocols - The list of protocols to enable.


setNeedClientAuth

public void setNeedClientAuth(boolean needAuth)
Sets whether or not this socket will require connecting clients to authenticate themselves. This value only applies to sockets in server mode.

Parameters:
needAuth - The new need auth value.


setUseClientMode

public void setUseClientMode(boolean clientMode)
Sets whether or not this socket will connect in client mode.

Parameters:
clientMode - The new value.


setWantClientAuth

public void setWantClientAuth(boolean wantAuth)
Sets whether or not this socket will request that connecting clients authenticate themselves. This value only applies to sockets in server mode.

Parameters:
wantAuth - The new want auth value.


startHandshake

public void startHandshake()
            throws IOException
Explicitly begins the handshake, or, if the handshake has already completed, requests that the handshake be repeated.

The handshake will begin implicitly when any attempt to read or write to the socket is made.

Throws:
IOException - If an I/O or SSL error occurs.


SSLSocket.java -- an SSL client socket. Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.