01: /*
02: * @(#)SecurityInfo.java 1.22 02/09/06 @(#)
03: *
04: * Copyright (c) 2001-2002 Sun Microsystems, Inc. All rights reserved.
05: * PROPRIETARY/CONFIDENTIAL
06: * Use is subject to license terms.
07: */
08:
09: package com.sun.portal.microedition.io;
10:
11: import java.lang.String;
12: import java.io.IOException;
13: import com.sun.portal.microedition.pki.Certificate;
14: import com.sun.portal.microedition.pki.CertificateException;
15:
16: /**
17: * This interface defines methods
18: * to access information about a secure network connection.
19: * Protocols that implement secure connections may use this interface
20: * to report the security parameters of the connection.
21: * <p>
22: * It provides the certificate, protocol, version, and cipher suite,
23: * etc. in use.
24: *
25: * @see CertificateException
26: * @see SecureConnection
27: * @see HttpsConnection
28: * @since MIDP 2.0
29: */
30: public interface SecurityInfo {
31:
32: /**
33: * Returns the <CODE>Certificate</CODE> used to establish the
34: * secure connection with the server.
35: *
36: * @return the <CODE>Certificate</CODE> used to establish the
37: * secure connection with the server.
38: */
39: public Certificate getServerCertificate();
40:
41: /**
42: * Returns the protocol version.
43: * If appropriate, it should contain the major and minor versions
44: * for the protocol separated with a "." (Unicode U+002E).
45: * <pre>
46: * For SSL V3 it MUST return "3.0"
47: * For TLS 1.0 it MUST return "3.1"
48: * For WTLS (WAP-199) it MUST return "1"
49: * For WAP TLS Profile and Tunneling Specification it MUST return "3.1"
50: *</pre>
51: * @return a String containing the version of the protocol;
52: * the return value MUST NOT be <CODE>null</CODE>.
53: */
54: public String getProtocolVersion();
55:
56: /**
57: * Returns the secure protocol name.
58: *
59: * @return a <code>String</code> containing the secure protocol identifier;
60: * if TLS (RFC 2246) or WAP TLS Profile and Tunneling (WAP-219-TLS)
61: * is used for the connection the return value is "TLS";
62: * if SSL V3 (The SSL Protocol Version 3.0) is used for the connection;
63: * the return value is "SSL");
64: * if WTLS (WAP 199) is used for the connection the return value is "WTLS".
65: */
66: public String getProtocolName();
67:
68: /**
69: * Returns the name of the cipher suite in use for the connection.
70: * The name returned is from the CipherSuite column of the CipherSuite
71: * definitions table in Appendix C of RFC 2246. If the cipher suite is
72: * not in Appendix C, the name returned is non-null and its contents
73: * are not specified. For non-TLS implementions the cipher suite name
74: * should be selected according to the actual key exchange, cipher,
75: * and hash
76: * combination used to establish the connection, so that regardless of
77: * whether the secure connection uses SSL V3
78: * or TLS 1.0 or WTLS or WAP TLS Profile and Tunneling,
79: * equivalent cipher suites have the same name.
80: *
81: * @return a <code>String</code> containing the name of the cipher suite
82: * in use.
83: */
84: public String getCipherSuite();
85: }
|