javax.microedition.io
Interface SecureConnection

All Superinterfaces:
Connection, InputConnection, OutputConnection, SocketConnection, StreamConnection

public interface SecureConnection
extends SocketConnection

This interface defines the secure socket stream connection. A secure connection is established using Connector.open with the scheme "ssl" and the secure connection is established before open returns. If the secure connection cannot be established due to errors related to certificates a CertificateException is thrown.

A secure socket is accessed using a generic connection string with an explicit host and port number. The host may be specified as a fully qualified host name or IPv4 number. e.g. ssl://host.com:79 defines a target socket on the host.com system at port 79.

Note that RFC1900 recommends the use of names rather than IP numbers for best results in the event of IP number reassignment.

A secure connection MUST be implemented by one or more of the following specifications:

BNF Format for Connector.open() string

The URI must conform to the BNF syntax specified below. If the URI does not conform to this syntax, an IllegalArgumentException is thrown.

<socket_connection_string> ::= "ssl://"<hostport>
<hostport> ::= host ":" port
<host> ::= host name or IP address
<port> ::= numeric port number

Blocking Operations

This interface performs blocking Input and Output operations. An application will lock if an implementation of this interface opens a connection from within the main event thread. Prevent an application from locking by opening a connection from within a thread that is separate from the main event thread. SeeConnector for more information.

Examples

The following examples show how a SecureConnection would be used to access a sample loopback program.

   SecureConnection sc = (SecureConnection)
                         Connector.open("ssl://host.com:79");
   SecurityInfo info = sc.getSecurityInfo();
   boolean isTLS = (info.getProtocolName().equals("TLS"));
 
   sc.setSocketOption(SocketConnection.LINGER, 5);

   InputStream is  = sc.openInputStream();
   OutputStream os = sc.openOutputStream();

   os.write("\r\n".getBytes());
   int ch = 0;
   while(ch != -1) {
       ch = is.read();
   }

   is.close();
   os.close();
   sc.close();
 

Since:
BlackBerry API 4.0.0, MIDP 2.0

Field Summary
 
Fields inherited from interface javax.microedition.io.SocketConnection
DELAY, KEEPALIVE, LINGER, RCVBUF, SNDBUF
 
Method Summary
 SecurityInfo getSecurityInfo()
          Return the security information associated with this connection when it was opened.
 
Methods inherited from interface javax.microedition.io.SocketConnection
getAddress, getLocalAddress, getLocalPort, getPort, getSocketOption, setSocketOption
 
Methods inherited from interface javax.microedition.io.InputConnection
openDataInputStream, openInputStream
 
Methods inherited from interface javax.microedition.io.Connection
close
 
Methods inherited from interface javax.microedition.io.OutputConnection
openDataOutputStream, openOutputStream
 
Methods inherited from interface javax.microedition.io.Connection
close
 



Method Detail

getSecurityInfo

SecurityInfo getSecurityInfo()
                             throws IOException
Return the security information associated with this connection when it was opened.

Returns:
the security information associated with this open connection.
Throws:
IOException - if an arbitrary connection failure occurs
Since:
BlackBerry API 4.0.0





Copyright 1999-2010 Research In Motion Limited. 295 Phillip Street, Waterloo, Ontario, Canada, N2L 3W8. All Rights Reserved.
Copyright 1993-2003 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. All Rights Reserved.
Copyright 2002-2003 Nokia Corporation All Rights Reserved.
Java is a trademark of Sun Microsystems, Inc.