decaf::net::ssl::SSLSocket Class Reference

#include <src/main/decaf/net/ssl/SSLSocket.h>

Inheritance diagram for decaf::net::ssl::SSLSocket:
Inheritance graph
[legend]

Public Member Functions

 SSLSocket ()
 SSLSocket (const InetAddress *address, int port)
 Creates a new SSLSocket instance and connects it to the given address and port.
 SSLSocket (const InetAddress *address, int port, const InetAddress *localAddress, int localPort)
 Creates a new SSLSocket instance and connects it to the given address and port.
 SSLSocket (const std::string &host, int port)
 Creates a new SSLSocket instance and connects it to the given host and port.
 SSLSocket (const std::string &host, int port, const InetAddress *localAddress, int localPort)
 Creates a new SSLSocket instance and connects it to the given host and port.
virtual ~SSLSocket ()
virtual std::vector< std::string > getSupportedCipherSuites () const =0
 Gets a vector containing the names of all the cipher suites that are supported by this SSLSocket.
virtual std::vector< std::string > getSupportedProtocols () const =0
 Gets a vector containing the names of all the protocols that could be enabled for this SSLSocket instance.
virtual std::vector< std::string > getEnabledCipherSuites () const =0
 Returns a vector containing the names of all the currently enabled Cipher Suites for this SSL Socket.
virtual void setEnabledCipherSuites (const std::vector< std::string > &suites)=0
 Sets the Cipher Suites that are to be enabled on the SSL Socket connection.
virtual std::vector< std::string > getEnabledProtocols () const =0
 Returns a vector containing the names of all the currently enabled Protocols for this SSL Socket.
virtual void setEnabledProtocols (const std::vector< std::string > &protocols)=0
 Sets the Protocols that are to be enabled on the SSL Socket connection.
virtual SSLParameters getSSLParameters () const
 Returns an SSLParameters object for this SSLSocket instance.
virtual void setSSLParameters (const SSLParameters &value)
 Sets the SSLParameters for this SSLSocket using the supplied SSLParameters instance.
virtual void startHandshake ()=0
 Initiates a handshake for this SSL Connection, this can be necessary for several reasons such as using new encryption keys, or starting a new session.
virtual void setUseClientMode (bool value)=0
 Determines the mode that the socket uses when a handshake is initiated, client or server.
virtual bool getUseClientMode () const =0
 Gets whether this Socket is in Client or Server mode, true indicates that the mode is set to Client.
virtual void setNeedClientAuth (bool value)=0
 Sets the Socket to require that a client authenticate itself by sending a valid Certificate that is trusted by this Server mode socket.
virtual bool getNeedClientAuth () const =0
 Returns if this socket is configured to require client authentication, true means that is has and that clients that failed to authenticate will be rejected.
virtual void setWantClientAuth (bool value)=0
 Sets the Socket to request that a client authenticate itself by sending a valid Certificate that is trusted by this Server mode socket.
virtual bool getWantClientAuth () const =0
 Returns if this socket is configured to request client authentication, true means that is has and that clients that failed to authenticate will be rejected but that cleints that do not send a certificate are not considered to have failed authentication.

Detailed Description

Since:
1.0

Constructor & Destructor Documentation

decaf::net::ssl::SSLSocket::SSLSocket (  ) 
decaf::net::ssl::SSLSocket::SSLSocket ( const InetAddress address,
int  port 
)

Creates a new SSLSocket instance and connects it to the given address and port.

If the host parameter is empty then the loop back address is used.

Parameters:
address The address to connect to.
port The port number to connect to [0...65535]
Exceptions:
UnknownHostException if the host cannot be resolved.
IOException if an I/O error occurs while connecting the Socket.
NullPointerException if the InetAddress instance in NULL.
IllegalArgumentException if the port if not in range [0...65535]
decaf::net::ssl::SSLSocket::SSLSocket ( const InetAddress address,
int  port,
const InetAddress localAddress,
int  localPort 
)

Creates a new SSLSocket instance and connects it to the given address and port.

The Socket will also bind to the local address and port specified.

Parameters:
address The address to connect to.
port The port number to connect to [0...65535]
localAddress The IP address on the local machine to bind to.
localPort The port on the local machine to bind to.
Exceptions:
UnknownHostException if the host cannot be resolved.
IOException if an I/O error occurs while connecting the Socket.
NullPointerException if the InetAddress instance in NULL.
IllegalArgumentException if the port if not in range [0...65535]
decaf::net::ssl::SSLSocket::SSLSocket ( const std::string &  host,
int  port 
)

Creates a new SSLSocket instance and connects it to the given host and port.

If the host parameter is empty then the loop back address is used.

Parameters:
host The host name or IP address to connect to, empty string means loopback.
port The port number to connect to [0...65535]
Exceptions:
UnknownHostException if the host cannot be resolved.
IOException if an I/O error occurs while connecting the Socket.
IllegalArgumentException if the port if not in range [0...65535]
decaf::net::ssl::SSLSocket::SSLSocket ( const std::string &  host,
int  port,
const InetAddress localAddress,
int  localPort 
)

Creates a new SSLSocket instance and connects it to the given host and port.

If the host parameter is empty then the loop back address is used.

Parameters:
host The host name or IP address to connect to, empty string means loopback.
port The port number to connect to [0...65535]
localAddress The IP address on the local machine to bind to.
localPort The port on the local machine to bind to.
Exceptions:
UnknownHostException if the host cannot be resolved.
IOException if an I/O error occurs while connecting the Socket.
IllegalArgumentException if the port if not in range [0...65535]
virtual decaf::net::ssl::SSLSocket::~SSLSocket (  )  [virtual]

Member Function Documentation

virtual std::vector<std::string> decaf::net::ssl::SSLSocket::getEnabledCipherSuites (  )  const [pure virtual]

Returns a vector containing the names of all the currently enabled Cipher Suites for this SSL Socket.

Returns:
vector of the names of all enabled Cipher Suites.

Implemented in decaf::internal::net::ssl::openssl::OpenSSLSocket.

virtual std::vector<std::string> decaf::net::ssl::SSLSocket::getEnabledProtocols (  )  const [pure virtual]

Returns a vector containing the names of all the currently enabled Protocols for this SSL Socket.

Returns:
vector of the names of all enabled Protocols.

Implemented in decaf::internal::net::ssl::openssl::OpenSSLSocket.

virtual bool decaf::net::ssl::SSLSocket::getNeedClientAuth (  )  const [pure virtual]

Returns if this socket is configured to require client authentication, true means that is has and that clients that failed to authenticate will be rejected.

This option is only useful when the socket is operating in server mode.

Returns:
true if client authentication is required.

Implemented in decaf::internal::net::ssl::openssl::OpenSSLSocket.

virtual SSLParameters decaf::net::ssl::SSLSocket::getSSLParameters (  )  const [virtual]

Returns an SSLParameters object for this SSLSocket instance.

The cipherSuites and protocols vectors in the returned SSLParameters reference will never be empty.

Returns:
an SSLParameters object with the settings in use for the SSLSocket.

Reimplemented in decaf::internal::net::ssl::openssl::OpenSSLSocket.

virtual std::vector<std::string> decaf::net::ssl::SSLSocket::getSupportedCipherSuites (  )  const [pure virtual]

Gets a vector containing the names of all the cipher suites that are supported by this SSLSocket.

Normally not all of these cipher suites will be enabled on the Socket.

Returns:
a vector containing the names of all the supported cipher suites.

Implemented in decaf::internal::net::ssl::openssl::OpenSSLSocket.

virtual std::vector<std::string> decaf::net::ssl::SSLSocket::getSupportedProtocols (  )  const [pure virtual]

Gets a vector containing the names of all the protocols that could be enabled for this SSLSocket instance.

Returns:
a vector containing the names of all the supported protocols.

Implemented in decaf::internal::net::ssl::openssl::OpenSSLSocket.

virtual bool decaf::net::ssl::SSLSocket::getUseClientMode (  )  const [pure virtual]

Gets whether this Socket is in Client or Server mode, true indicates that the mode is set to Client.

Returns:
true if the Socket is in Client mode, false otherwise.

Implemented in decaf::internal::net::ssl::openssl::OpenSSLSocket.

virtual bool decaf::net::ssl::SSLSocket::getWantClientAuth (  )  const [pure virtual]

Returns if this socket is configured to request client authentication, true means that is has and that clients that failed to authenticate will be rejected but that cleints that do not send a certificate are not considered to have failed authentication.

This option is only useful when the socket is operating in server mode.

Returns:
true if client authentication is required.

Implemented in decaf::internal::net::ssl::openssl::OpenSSLSocket.

virtual void decaf::net::ssl::SSLSocket::setEnabledCipherSuites ( const std::vector< std::string > &  suites  )  [pure virtual]

Sets the Cipher Suites that are to be enabled on the SSL Socket connection.

Each of the named Cipher Suites must appear in the list of supported cipher suites for this connection or an exception will be thrown.

Parameters:
suites An Vector of names for all the Cipher Suites that are to be enabled.
Exceptions:
IllegalArgumentException if the vector is empty or one of the names is invalid.

Implemented in decaf::internal::net::ssl::openssl::OpenSSLSocket.

virtual void decaf::net::ssl::SSLSocket::setEnabledProtocols ( const std::vector< std::string > &  protocols  )  [pure virtual]

Sets the Protocols that are to be enabled on the SSL Socket connection.

Each of the named Protocols must appear in the list of supported protocols suites for this connection or an exception will be thrown.

Parameters:
protocols An Vector of names for all the Protocols that are to be enabled.
Exceptions:
IllegalArgumentException if the vector is empty or one of the names is invalid.

Implemented in decaf::internal::net::ssl::openssl::OpenSSLSocket.

virtual void decaf::net::ssl::SSLSocket::setNeedClientAuth ( bool  value  )  [pure virtual]

Sets the Socket to require that a client authenticate itself by sending a valid Certificate that is trusted by this Server mode socket.

This option only applies to sockets in the Server mode.

If the option is enabled an the client does not provide a certificate then the handshake is considered failed and the connection is refused. Calling this method resets any previous value for this option as well as clears any value set in the setWantClientAuth method.

Parameters:
value The value indicating if a client is required to authenticate itself or not.

Implemented in decaf::internal::net::ssl::openssl::OpenSSLSocket.

virtual void decaf::net::ssl::SSLSocket::setSSLParameters ( const SSLParameters value  )  [virtual]

Sets the SSLParameters for this SSLSocket using the supplied SSLParameters instance.

If the cipherSutes vector in the SSLParameters instance is not empty them the setEnabledCipherSuites method is called with that vector, if the protocols vector in the SSLParameters instance is not empty then the setEnabledProtocols method is called with that vector. If the needClientAuth value or the wantClientAuth value is true then the setNeedClientAuth and setWantClientAuth methods are called respectively with a value of true, otherwise the setWantClientAuth method is called with a value of false.

Parameters:
value The SSLParameters instance that is used to update this SSLSocket's settings.
Exceptions:
IllegalArgumentException if an error occurs while calling setEnabledCipherSuites or setEnabledProtocols.

Reimplemented in decaf::internal::net::ssl::openssl::OpenSSLSocket.

virtual void decaf::net::ssl::SSLSocket::setUseClientMode ( bool  value  )  [pure virtual]

Determines the mode that the socket uses when a handshake is initiated, client or server.

This method must be called prior to any handshake attempts on this Socket, once a handshake has be initiated this socket remains the the set mode; client or server, for the life of this object.

Parameters:
value The mode setting, true for client or false for server.
Exceptions:
IllegalArguementException if the handshake process has begun and mode is lcoked.

Implemented in decaf::internal::net::ssl::openssl::OpenSSLSocket.

virtual void decaf::net::ssl::SSLSocket::setWantClientAuth ( bool  value  )  [pure virtual]

Sets the Socket to request that a client authenticate itself by sending a valid Certificate that is trusted by this Server mode socket.

This option only applies to sockets in the Server mode.

If the option is enabled an the client does not provide a certificate then the handshake is considered to have succeeded, if it does send a certificate and that certificate is invalid the the handshake will fail. Calling this method resets any previous value for this option as well as clears any value set in the setNeedClientAuth method.

Parameters:
value The value indicating if a client is requested to authenticate itself or not.

Implemented in decaf::internal::net::ssl::openssl::OpenSSLSocket.

virtual void decaf::net::ssl::SSLSocket::startHandshake (  )  [pure virtual]

Initiates a handshake for this SSL Connection, this can be necessary for several reasons such as using new encryption keys, or starting a new session.

When called for the first time after the socket connects this method blocks until the handshake is completed. The provider is not require to support multiple handshakes and can throw an IOException to indicate an error.

Exceptions:
IOException if an I/O error occurs while performing the Handshake

Implemented in decaf::internal::net::ssl::openssl::OpenSSLSocket.


The documentation for this class was generated from the following file:

Generated on 1 Dec 2014 for activemq-cpp-3.8.2 by  doxygen 1.6.1