javax.microedition.io.SecureConnection Maven / Gradle / Ivy
/*
This is not an official specification document, and usage is restricted.
NOTICE
(c) 2005-2007 Sun Microsystems, Inc. All Rights Reserved.
Neither this file nor any files generated from it describe a complete
specification, and they may only be used as described below. For
example, no permission is given for you to incorporate this file, in
whole or in part, in an implementation of a Java specification.
Sun Microsystems Inc. owns the copyright in this file and it is provided
to you for informative, as opposed to normative, use. The file and any
files generated from it may be used to generate other informative
documentation, such as a unified set of documents of API signatures for
a platform that includes technologies expressed as Java APIs. The file
may also be used to produce "compilation stubs," which allow
applications to be compiled and validated for such platforms.
Any work generated from this file, such as unified javadocs or compiled
stub files, must be accompanied by this notice in its entirety.
This work corresponds to the API signatures of JSR 219: Foundation
Profile 1.1. In the event of a discrepency between this work and the
JSR 219 specification, which is available at
http://www.jcp.org/en/jsr/detail?id=219, the latter takes precedence.
*/
package javax.microedition.io;
import java.lang.String;
import java.io.IOException;
/**
* 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:
*
* - TLS Protocol Version 1.0 as specified in
* RFC 2246.
*
*
* - SSL V3 as specified in
*
* The SSL Protocol Version 3.0
*
*
* - WAP(TM) TLS Profile and Tunneling Specification as specified
* in
* WAP-219-TLS-20010411-a
*
*
*
*
* 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
*
*
*
*
* 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 MIDP 2.0
*/
public interface SecureConnection extends SocketConnection
{
/**
* Return the security information associated with this connection
* when it was opened.
*
* @return the security information associated with this open connection.
* @exception IOException if an arbitrary connection failure occurs
*/
public SecurityInfo getSecurityInfo() throws IOException;
}