blob: d0e95044ea8fc3e4872943a37c9cdd16df5d8e9f [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.5.0_12) on Tue Apr 01 14:48:48 CEST 2008 -->
<TITLE>
Connection
</TITLE>
<META NAME="keywords" CONTENT="com.trilead.ssh2.Connection class">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
parent.document.title="Connection";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../com/trilead/ssh2/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Connection.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Trilead SSH-2 for Java</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../com/trilead/ssh2/ChannelCondition.html" title="interface in com.trilead.ssh2"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../com/trilead/ssh2/ConnectionInfo.html" title="class in com.trilead.ssh2"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html?com/trilead/ssh2/Connection.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="Connection.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
com.trilead.ssh2</FONT>
<BR>
Class Connection</H2>
<PRE>
java.lang.Object
<IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.trilead.ssh2.Connection</B>
</PRE>
<HR>
<DL>
<DT><PRE>public class <B>Connection</B><DT>extends java.lang.Object</DL>
</PRE>
<P>
A <code>Connection</code> is used to establish an encrypted TCP/IP
connection to a SSH-2 server.
<p>
Typically, one
<ol>
<li>creates a <A HREF="../../../com/trilead/ssh2/Connection.html#Connection(java.lang.String)"><CODE>Connection</CODE></A> object.</li>
<li>calls the <A HREF="../../../com/trilead/ssh2/Connection.html#connect()"><CODE>connect()</CODE></A> method.</li>
<li>calls some of the authentication methods (e.g.,
<A HREF="../../../com/trilead/ssh2/Connection.html#authenticateWithPublicKey(java.lang.String, java.io.File, java.lang.String)"><CODE>authenticateWithPublicKey()</CODE></A>).</li>
<li>calls one or several times the <A HREF="../../../com/trilead/ssh2/Connection.html#openSession()"><CODE>openSession()</CODE></A>
method.</li>
<li>finally, one must close the connection and release resources with the
<A HREF="../../../com/trilead/ssh2/Connection.html#close()"><CODE>close()</CODE></A> method.</li>
</ol>
<P>
<P>
<DL>
<DT><B>Version:</B></DT>
<DD>$Id: Connection.java,v 1.3 2008/04/01 12:38:09 cplattne Exp $</DD>
<DT><B>Author:</B></DT>
<DD>Christian Plattner, plattner@trilead.com</DD>
</DL>
<HR>
<P>
<!-- =========== FIELD SUMMARY =========== -->
<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#identification">identification</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The identifier presented to the SSH-2 server.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#Connection(java.lang.String)">Connection</A></B>(java.lang.String&nbsp;hostname)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prepares a fresh <code>Connection</code> object which can then be used
to establish a connection to the specified SSH-2 server.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#Connection(java.lang.String, int)">Connection</A></B>(java.lang.String&nbsp;hostname,
int&nbsp;port)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prepares a fresh <code>Connection</code> object which can then be used
to establish a connection to the specified SSH-2 server.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#addConnectionMonitor(com.trilead.ssh2.ConnectionMonitor)">addConnectionMonitor</A></B>(<A HREF="../../../com/trilead/ssh2/ConnectionMonitor.html" title="interface in com.trilead.ssh2">ConnectionMonitor</A>&nbsp;cmon)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add a <A HREF="../../../com/trilead/ssh2/ConnectionMonitor.html" title="interface in com.trilead.ssh2"><CODE>ConnectionMonitor</CODE></A> to this connection.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#authenticateWithDSA(java.lang.String, java.lang.String, java.lang.String)">authenticateWithDSA</A></B>(java.lang.String&nbsp;user,
java.lang.String&nbsp;pem,
java.lang.String&nbsp;password)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>You should use one of the
<A HREF="../../../com/trilead/ssh2/Connection.html#authenticateWithPublicKey(java.lang.String, java.io.File, java.lang.String)"><CODE>authenticateWithPublicKey()</CODE></A>
methods, this method is just a wrapper for it and will
disappear in future builds.</I></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#authenticateWithKeyboardInteractive(java.lang.String, com.trilead.ssh2.InteractiveCallback)">authenticateWithKeyboardInteractive</A></B>(java.lang.String&nbsp;user,
<A HREF="../../../com/trilead/ssh2/InteractiveCallback.html" title="interface in com.trilead.ssh2">InteractiveCallback</A>&nbsp;cb)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A wrapper that calls
<A HREF="../../../com/trilead/ssh2/Connection.html#authenticateWithKeyboardInteractive(java.lang.String, java.lang.String[], com.trilead.ssh2.InteractiveCallback)"><CODE>authenticateWithKeyboardInteractivewith</CODE></A> a <code>null</code> submethod
list.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#authenticateWithKeyboardInteractive(java.lang.String, java.lang.String[], com.trilead.ssh2.InteractiveCallback)">authenticateWithKeyboardInteractive</A></B>(java.lang.String&nbsp;user,
java.lang.String[]&nbsp;submethods,
<A HREF="../../../com/trilead/ssh2/InteractiveCallback.html" title="interface in com.trilead.ssh2">InteractiveCallback</A>&nbsp;cb)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;After a successful connect, one has to authenticate oneself.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#authenticateWithNone(java.lang.String)">authenticateWithNone</A></B>(java.lang.String&nbsp;user)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;After a successful connect, one has to authenticate oneself.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#authenticateWithPassword(java.lang.String, java.lang.String)">authenticateWithPassword</A></B>(java.lang.String&nbsp;user,
java.lang.String&nbsp;password)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;After a successful connect, one has to authenticate oneself.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#authenticateWithPublicKey(java.lang.String, char[], java.lang.String)">authenticateWithPublicKey</A></B>(java.lang.String&nbsp;user,
char[]&nbsp;pemPrivateKey,
java.lang.String&nbsp;password)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;After a successful connect, one has to authenticate oneself.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#authenticateWithPublicKey(java.lang.String, java.io.File, java.lang.String)">authenticateWithPublicKey</A></B>(java.lang.String&nbsp;user,
java.io.File&nbsp;pemFile,
java.lang.String&nbsp;password)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A convenience wrapper function which reads in a private key (PEM format,
either DSA or RSA) and then calls
<code>authenticateWithPublicKey(String, char[], String)</code>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#cancelRemotePortForwarding(int)">cancelRemotePortForwarding</A></B>(int&nbsp;bindPort)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cancel an earlier requested remote port forwarding.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#close()">close</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Close the connection to the SSH-2 server.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../com/trilead/ssh2/ConnectionInfo.html" title="class in com.trilead.ssh2">ConnectionInfo</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#connect()">connect</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Same as
<A HREF="../../../com/trilead/ssh2/Connection.html#connect(com.trilead.ssh2.ServerHostKeyVerifier, int, int)"><CODE>connect(null, 0, 0)</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../com/trilead/ssh2/ConnectionInfo.html" title="class in com.trilead.ssh2">ConnectionInfo</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#connect(com.trilead.ssh2.ServerHostKeyVerifier)">connect</A></B>(<A HREF="../../../com/trilead/ssh2/ServerHostKeyVerifier.html" title="interface in com.trilead.ssh2">ServerHostKeyVerifier</A>&nbsp;verifier)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Same as
<A HREF="../../../com/trilead/ssh2/Connection.html#connect(com.trilead.ssh2.ServerHostKeyVerifier, int, int)"><CODE>connect(verifier, 0, 0)</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../com/trilead/ssh2/ConnectionInfo.html" title="class in com.trilead.ssh2">ConnectionInfo</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#connect(com.trilead.ssh2.ServerHostKeyVerifier, int, int)">connect</A></B>(<A HREF="../../../com/trilead/ssh2/ServerHostKeyVerifier.html" title="interface in com.trilead.ssh2">ServerHostKeyVerifier</A>&nbsp;verifier,
int&nbsp;connectTimeout,
int&nbsp;kexTimeout)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connect to the SSH-2 server and, as soon as the server has presented its
host key, use the
<A HREF="../../../com/trilead/ssh2/ServerHostKeyVerifier.html#verifyServerHostKey(java.lang.String, int, java.lang.String, byte[])"><CODE>ServerHostKeyVerifier.verifyServerHostKey()</CODE></A> method of the
<code>verifier</code> to ask for permission to proceed.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../com/trilead/ssh2/LocalPortForwarder.html" title="class in com.trilead.ssh2">LocalPortForwarder</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#createLocalPortForwarder(java.net.InetSocketAddress, java.lang.String, int)">createLocalPortForwarder</A></B>(java.net.InetSocketAddress&nbsp;addr,
java.lang.String&nbsp;host_to_connect,
int&nbsp;port_to_connect)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new <A HREF="../../../com/trilead/ssh2/LocalPortForwarder.html" title="class in com.trilead.ssh2"><CODE>LocalPortForwarder</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../com/trilead/ssh2/LocalPortForwarder.html" title="class in com.trilead.ssh2">LocalPortForwarder</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#createLocalPortForwarder(int, java.lang.String, int)">createLocalPortForwarder</A></B>(int&nbsp;local_port,
java.lang.String&nbsp;host_to_connect,
int&nbsp;port_to_connect)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new <A HREF="../../../com/trilead/ssh2/LocalPortForwarder.html" title="class in com.trilead.ssh2"><CODE>LocalPortForwarder</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../com/trilead/ssh2/LocalStreamForwarder.html" title="class in com.trilead.ssh2">LocalStreamForwarder</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#createLocalStreamForwarder(java.lang.String, int)">createLocalStreamForwarder</A></B>(java.lang.String&nbsp;host_to_connect,
int&nbsp;port_to_connect)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new <A HREF="../../../com/trilead/ssh2/LocalStreamForwarder.html" title="class in com.trilead.ssh2"><CODE>LocalStreamForwarder</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../com/trilead/ssh2/SCPClient.html" title="class in com.trilead.ssh2">SCPClient</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#createSCPClient()">createSCPClient</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a very basic <A HREF="../../../com/trilead/ssh2/SCPClient.html" title="class in com.trilead.ssh2"><CODE>SCPClient</CODE></A> that can be used to copy files
from/to the SSH-2 server.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#enableDebugging(boolean, com.trilead.ssh2.DebugLogger)">enableDebugging</A></B>(boolean&nbsp;enable,
<A HREF="../../../com/trilead/ssh2/DebugLogger.html" title="interface in com.trilead.ssh2">DebugLogger</A>&nbsp;logger)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enable/disable debug logging.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#forceKeyExchange()">forceKeyExchange</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Force an asynchronous key re-exchange (the call does not block).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#getAvailableCiphers()">getAvailableCiphers</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unless you know what you are doing, you will never need this.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#getAvailableMACs()">getAvailableMACs</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unless you know what you are doing, you will never need this.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#getAvailableServerHostKeyAlgorithms()">getAvailableServerHostKeyAlgorithms</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unless you know what you are doing, you will never need this.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../com/trilead/ssh2/ConnectionInfo.html" title="class in com.trilead.ssh2">ConnectionInfo</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#getConnectionInfo()">getConnectionInfo</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a <A HREF="../../../com/trilead/ssh2/ConnectionInfo.html" title="class in com.trilead.ssh2"><CODE>ConnectionInfo</CODE></A> object containing the details of the
connection.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#getHostname()">getHostname</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the hostname that was passed to the constructor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#getPort()">getPort</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the port that was passed to the constructor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#getRemainingAuthMethods(java.lang.String)">getRemainingAuthMethods</A></B>(java.lang.String&nbsp;user)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;After a successful connect, one has to authenticate oneself.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#isAuthenticationComplete()">isAuthenticationComplete</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Determines if the authentication phase is complete.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#isAuthenticationPartialSuccess()">isAuthenticationPartialSuccess</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if there was at least one failed authentication request and
the last failed authentication request was marked with "partial success"
by the server.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#isAuthMethodAvailable(java.lang.String, java.lang.String)">isAuthMethodAvailable</A></B>(java.lang.String&nbsp;user,
java.lang.String&nbsp;method)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks if a specified authentication method is available.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../com/trilead/ssh2/Session.html" title="class in com.trilead.ssh2">Session</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#openSession()">openSession</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Open a new <A HREF="../../../com/trilead/ssh2/Session.html" title="class in com.trilead.ssh2"><CODE>Session</CODE></A> on this connection.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#ping()">ping</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method can be used to perform end-to-end connection testing.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#requestRemotePortForwarding(java.lang.String, int, java.lang.String, int)">requestRemotePortForwarding</A></B>(java.lang.String&nbsp;bindAddress,
int&nbsp;bindPort,
java.lang.String&nbsp;targetAddress,
int&nbsp;targetPort)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Request a remote port forwarding.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#sendIgnorePacket()">sendIgnorePacket</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Send an SSH_MSG_IGNORE packet.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#sendIgnorePacket(byte[])">sendIgnorePacket</A></B>(byte[]&nbsp;data)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Send an SSH_MSG_IGNORE packet with the given data attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#setClient2ServerCiphers(java.lang.String[])">setClient2ServerCiphers</A></B>(java.lang.String[]&nbsp;ciphers)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unless you know what you are doing, you will never need this.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#setClient2ServerMACs(java.lang.String[])">setClient2ServerMACs</A></B>(java.lang.String[]&nbsp;macs)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unless you know what you are doing, you will never need this.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#setDHGexParameters(com.trilead.ssh2.DHGexParameters)">setDHGexParameters</A></B>(<A HREF="../../../com/trilead/ssh2/DHGexParameters.html" title="class in com.trilead.ssh2">DHGexParameters</A>&nbsp;dgp)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the parameters for the diffie-hellman group exchange.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#setProxyData(com.trilead.ssh2.ProxyData)">setProxyData</A></B>(<A HREF="../../../com/trilead/ssh2/ProxyData.html" title="interface in com.trilead.ssh2">ProxyData</A>&nbsp;proxyData)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Used to tell the library that the connection shall be established through
a proxy server.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#setSecureRandom(java.security.SecureRandom)">setSecureRandom</A></B>(java.security.SecureRandom&nbsp;rnd)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provide your own instance of SecureRandom.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#setServer2ClientCiphers(java.lang.String[])">setServer2ClientCiphers</A></B>(java.lang.String[]&nbsp;ciphers)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unless you know what you are doing, you will never need this.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#setServer2ClientMACs(java.lang.String[])">setServer2ClientMACs</A></B>(java.lang.String[]&nbsp;macs)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unless you know what you are doing, you will never need this.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#setServerHostKeyAlgorithms(java.lang.String[])">setServerHostKeyAlgorithms</A></B>(java.lang.String[]&nbsp;algos)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Define the set of allowed server host key algorithms to be used for the
following key exchange operations.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/trilead/ssh2/Connection.html#setTCPNoDelay(boolean)">setTCPNoDelay</A></B>(boolean&nbsp;enable)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enable/disable TCP_NODELAY (disable/enable Nagle's algorithm) on the
underlying socket.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ============ FIELD DETAIL =========== -->
<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Field Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="identification"><!-- --></A><H3>
identification</H3>
<PRE>
public static final java.lang.String <B>identification</B></PRE>
<DL>
<DD>The identifier presented to the SSH-2 server.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.trilead.ssh2.Connection.identification">Constant Field Values</A></DL>
</DL>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="Connection(java.lang.String)"><!-- --></A><H3>
Connection</H3>
<PRE>
public <B>Connection</B>(java.lang.String&nbsp;hostname)</PRE>
<DL>
<DD>Prepares a fresh <code>Connection</code> object which can then be used
to establish a connection to the specified SSH-2 server.
<p>
Same as <A HREF="../../../com/trilead/ssh2/Connection.html#Connection(java.lang.String, int)"><CODE>Connection(hostname, 22)</CODE></A>.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>hostname</CODE> - the hostname of the SSH-2 server.</DL>
</DL>
<HR>
<A NAME="Connection(java.lang.String, int)"><!-- --></A><H3>
Connection</H3>
<PRE>
public <B>Connection</B>(java.lang.String&nbsp;hostname,
int&nbsp;port)</PRE>
<DL>
<DD>Prepares a fresh <code>Connection</code> object which can then be used
to establish a connection to the specified SSH-2 server.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>hostname</CODE> - the host where we later want to connect to.<DD><CODE>port</CODE> - port on the server, normally 22.</DL>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="getAvailableCiphers()"><!-- --></A><H3>
getAvailableCiphers</H3>
<PRE>
public static java.lang.String[] <B>getAvailableCiphers</B>()</PRE>
<DL>
<DD>Unless you know what you are doing, you will never need this.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>The list of supported cipher algorithms by this implementation.</DL>
</DD>
</DL>
<HR>
<A NAME="getAvailableMACs()"><!-- --></A><H3>
getAvailableMACs</H3>
<PRE>
public static java.lang.String[] <B>getAvailableMACs</B>()</PRE>
<DL>
<DD>Unless you know what you are doing, you will never need this.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>The list of supported MAC algorthims by this implementation.</DL>
</DD>
</DL>
<HR>
<A NAME="getAvailableServerHostKeyAlgorithms()"><!-- --></A><H3>
getAvailableServerHostKeyAlgorithms</H3>
<PRE>
public static java.lang.String[] <B>getAvailableServerHostKeyAlgorithms</B>()</PRE>
<DL>
<DD>Unless you know what you are doing, you will never need this.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>The list of supported server host key algorthims by this
implementation.</DL>
</DD>
</DL>
<HR>
<A NAME="authenticateWithDSA(java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
authenticateWithDSA</H3>
<PRE>
public boolean <B>authenticateWithDSA</B>(java.lang.String&nbsp;user,
java.lang.String&nbsp;pem,
java.lang.String&nbsp;password)
throws java.io.IOException</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<I>You should use one of the
<A HREF="../../../com/trilead/ssh2/Connection.html#authenticateWithPublicKey(java.lang.String, java.io.File, java.lang.String)"><CODE>authenticateWithPublicKey()</CODE></A>
methods, this method is just a wrapper for it and will
disappear in future builds.</I>
<P>
<DD>After a successful connect, one has to authenticate oneself. This method
is based on DSA (it uses DSA to sign a challenge sent by the server).
<p>
If the authentication phase is complete, <code>true</code> will be
returned. If the server does not accept the request (or if further
authentication steps are needed), <code>false</code> is returned and
one can retry either by using this or any other authentication method
(use the <code>getRemainingAuthMethods</code> method to get a list of
the remaining possible methods).
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>user</CODE> - A <code>String</code> holding the username.<DD><CODE>pem</CODE> - A <code>String</code> containing the DSA private key of the
user in OpenSSH key format (PEM, you can't miss the
"-----BEGIN DSA PRIVATE KEY-----" tag). The string may contain
linefeeds.<DD><CODE>password</CODE> - If the PEM string is 3DES encrypted ("DES-EDE3-CBC"), then you
must specify the password. Otherwise, this argument will be
ignored and can be set to <code>null</code>.
<DT><B>Returns:</B><DD>whether the connection is now authenticated.
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="authenticateWithKeyboardInteractive(java.lang.String, com.trilead.ssh2.InteractiveCallback)"><!-- --></A><H3>
authenticateWithKeyboardInteractive</H3>
<PRE>
public boolean <B>authenticateWithKeyboardInteractive</B>(java.lang.String&nbsp;user,
<A HREF="../../../com/trilead/ssh2/InteractiveCallback.html" title="interface in com.trilead.ssh2">InteractiveCallback</A>&nbsp;cb)
throws java.io.IOException</PRE>
<DL>
<DD>A wrapper that calls
<A HREF="../../../com/trilead/ssh2/Connection.html#authenticateWithKeyboardInteractive(java.lang.String, java.lang.String[], com.trilead.ssh2.InteractiveCallback)"><CODE>authenticateWithKeyboardInteractivewith</CODE></A> a <code>null</code> submethod
list.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>user</CODE> - A <code>String</code> holding the username.<DD><CODE>cb</CODE> - An <code>InteractiveCallback</code> which will be used to
determine the responses to the questions asked by the server.
<DT><B>Returns:</B><DD>whether the connection is now authenticated.
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="authenticateWithKeyboardInteractive(java.lang.String, java.lang.String[], com.trilead.ssh2.InteractiveCallback)"><!-- --></A><H3>
authenticateWithKeyboardInteractive</H3>
<PRE>
public boolean <B>authenticateWithKeyboardInteractive</B>(java.lang.String&nbsp;user,
java.lang.String[]&nbsp;submethods,
<A HREF="../../../com/trilead/ssh2/InteractiveCallback.html" title="interface in com.trilead.ssh2">InteractiveCallback</A>&nbsp;cb)
throws java.io.IOException</PRE>
<DL>
<DD>After a successful connect, one has to authenticate oneself. This method
is based on "keyboard-interactive", specified in
draft-ietf-secsh-auth-kbdinteract-XX. Basically, you have to define a
callback object which will be feeded with challenges generated by the
server. Answers are then sent back to the server. It is possible that the
callback will be called several times during the invocation of this
method (e.g., if the server replies to the callback's answer(s) with
another challenge...)
<p>
If the authentication phase is complete, <code>true</code> will be
returned. If the server does not accept the request (or if further
authentication steps are needed), <code>false</code> is returned and
one can retry either by using this or any other authentication method
(use the <code>getRemainingAuthMethods</code> method to get a list of
the remaining possible methods).
<p>
Note: some SSH servers advertise "keyboard-interactive", however, any
interactive request will be denied (without having sent any challenge to
the client).
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>user</CODE> - A <code>String</code> holding the username.<DD><CODE>submethods</CODE> - An array of submethod names, see
draft-ietf-secsh-auth-kbdinteract-XX. May be <code>null</code>
to indicate an empty list.<DD><CODE>cb</CODE> - An <code>InteractiveCallback</code> which will be used to
determine the responses to the questions asked by the server.
<DT><B>Returns:</B><DD>whether the connection is now authenticated.
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="authenticateWithPassword(java.lang.String, java.lang.String)"><!-- --></A><H3>
authenticateWithPassword</H3>
<PRE>
public boolean <B>authenticateWithPassword</B>(java.lang.String&nbsp;user,
java.lang.String&nbsp;password)
throws java.io.IOException</PRE>
<DL>
<DD>After a successful connect, one has to authenticate oneself. This method
sends username and password to the server.
<p>
If the authentication phase is complete, <code>true</code> will be
returned. If the server does not accept the request (or if further
authentication steps are needed), <code>false</code> is returned and
one can retry either by using this or any other authentication method
(use the <code>getRemainingAuthMethods</code> method to get a list of
the remaining possible methods).
<p>
Note: if this method fails, then please double-check that it is actually
offered by the server (use
<A HREF="../../../com/trilead/ssh2/Connection.html#getRemainingAuthMethods(java.lang.String)"><CODE>getRemainingAuthMethods()</CODE></A>.
<p>
Often, password authentication is disabled, but users are not aware of
it. Many servers only offer "publickey" and "keyboard-interactive".
However, even though "keyboard-interactive" *feels* like password
authentication (e.g., when using the putty or openssh clients) it is
*not* the same mechanism.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>user</CODE> - <DD><CODE>password</CODE> -
<DT><B>Returns:</B><DD>if the connection is now authenticated.
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="authenticateWithNone(java.lang.String)"><!-- --></A><H3>
authenticateWithNone</H3>
<PRE>
public boolean <B>authenticateWithNone</B>(java.lang.String&nbsp;user)
throws java.io.IOException</PRE>
<DL>
<DD>After a successful connect, one has to authenticate oneself. This method
can be used to explicitly use the special "none" authentication method
(where only a username has to be specified).
<p>
Note 1: The "none" method may always be tried by clients, however as by
the specs, the server will not explicitly announce it. In other words,
the "none" token will never show up in the list returned by
<A HREF="../../../com/trilead/ssh2/Connection.html#getRemainingAuthMethods(java.lang.String)"><CODE>getRemainingAuthMethods(String)</CODE></A>.
<p>
Note 2: no matter which one of the authenticateWithXXX() methods you
call, the library will always issue exactly one initial "none"
authentication request to retrieve the initially allowed list of
authentication methods by the server. Please read RFC 4252 for the
details.
<p>
If the authentication phase is complete, <code>true</code> will be
returned. If further authentication steps are needed, <code>false</code>
is returned and one can retry by any other authentication method (use the
<code>getRemainingAuthMethods</code> method to get a list of the
remaining possible methods).
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>user</CODE> -
<DT><B>Returns:</B><DD>if the connection is now authenticated.
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="authenticateWithPublicKey(java.lang.String, char[], java.lang.String)"><!-- --></A><H3>
authenticateWithPublicKey</H3>
<PRE>
public boolean <B>authenticateWithPublicKey</B>(java.lang.String&nbsp;user,
char[]&nbsp;pemPrivateKey,
java.lang.String&nbsp;password)
throws java.io.IOException</PRE>
<DL>
<DD>After a successful connect, one has to authenticate oneself. The
authentication method "publickey" works by signing a challenge sent by
the server. The signature is either DSA or RSA based - it just depends on
the type of private key you specify, either a DSA or RSA private key in
PEM format. And yes, this is may seem to be a little confusing, the
method is called "publickey" in the SSH-2 protocol specification, however
since we need to generate a signature, you actually have to supply a
private key =).
<p>
The private key contained in the PEM file may also be encrypted
("Proc-Type: 4,ENCRYPTED"). The library supports DES-CBC and DES-EDE3-CBC
encryption, as well as the more exotic PEM encrpytions AES-128-CBC,
AES-192-CBC and AES-256-CBC.
<p>
If the authentication phase is complete, <code>true</code> will be
returned. If the server does not accept the request (or if further
authentication steps are needed), <code>false</code> is returned and
one can retry either by using this or any other authentication method
(use the <code>getRemainingAuthMethods</code> method to get a list of
the remaining possible methods).
<p>
NOTE PUTTY USERS: Event though your key file may start with
"-----BEGIN..." it is not in the expected format. You have to convert it
to the OpenSSH key format by using the "puttygen" tool (can be downloaded
from the Putty website). Simply load your key and then use the
"Conversions/Export OpenSSH key" functionality to get a proper PEM file.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>user</CODE> - A <code>String</code> holding the username.<DD><CODE>pemPrivateKey</CODE> - A <code>char[]</code> containing a DSA or RSA private key of
the user in OpenSSH key format (PEM, you can't miss the
"-----BEGIN DSA PRIVATE KEY-----" or "-----BEGIN RSA PRIVATE
KEY-----" tag). The char array may contain
linebreaks/linefeeds.<DD><CODE>password</CODE> - If the PEM structure is encrypted ("Proc-Type: 4,ENCRYPTED")
then you must specify a password. Otherwise, this argument
will be ignored and can be set to <code>null</code>.
<DT><B>Returns:</B><DD>whether the connection is now authenticated.
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="authenticateWithPublicKey(java.lang.String, java.io.File, java.lang.String)"><!-- --></A><H3>
authenticateWithPublicKey</H3>
<PRE>
public boolean <B>authenticateWithPublicKey</B>(java.lang.String&nbsp;user,
java.io.File&nbsp;pemFile,
java.lang.String&nbsp;password)
throws java.io.IOException</PRE>
<DL>
<DD>A convenience wrapper function which reads in a private key (PEM format,
either DSA or RSA) and then calls
<code>authenticateWithPublicKey(String, char[], String)</code>.
<p>
NOTE PUTTY USERS: Event though your key file may start with
"-----BEGIN..." it is not in the expected format. You have to convert it
to the OpenSSH key format by using the "puttygen" tool (can be downloaded
from the Putty website). Simply load your key and then use the
"Conversions/Export OpenSSH key" functionality to get a proper PEM file.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>user</CODE> - A <code>String</code> holding the username.<DD><CODE>pemFile</CODE> - A <code>File</code> object pointing to a file containing a
DSA or RSA private key of the user in OpenSSH key format (PEM,
you can't miss the "-----BEGIN DSA PRIVATE KEY-----" or
"-----BEGIN RSA PRIVATE KEY-----" tag).<DD><CODE>password</CODE> - If the PEM file is encrypted then you must specify the
password. Otherwise, this argument will be ignored and can be
set to <code>null</code>.
<DT><B>Returns:</B><DD>whether the connection is now authenticated.
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="addConnectionMonitor(com.trilead.ssh2.ConnectionMonitor)"><!-- --></A><H3>
addConnectionMonitor</H3>
<PRE>
public void <B>addConnectionMonitor</B>(<A HREF="../../../com/trilead/ssh2/ConnectionMonitor.html" title="interface in com.trilead.ssh2">ConnectionMonitor</A>&nbsp;cmon)</PRE>
<DL>
<DD>Add a <A HREF="../../../com/trilead/ssh2/ConnectionMonitor.html" title="interface in com.trilead.ssh2"><CODE>ConnectionMonitor</CODE></A> to this connection. Can be invoked at any
time, but it is best to add connection monitors before invoking
<code>connect()</code> to avoid glitches (e.g., you add a connection
monitor after a successful connect(), but the connection has died in the
mean time. Then, your connection monitor won't be notified.)
<p>
You can add as many monitors as you like.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>cmon</CODE> - An object implementing the <code>ConnectionMonitor</code>
interface.<DT><B>See Also:</B><DD><A HREF="../../../com/trilead/ssh2/ConnectionMonitor.html" title="interface in com.trilead.ssh2"><CODE>ConnectionMonitor</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="close()"><!-- --></A><H3>
close</H3>
<PRE>
public void <B>close</B>()</PRE>
<DL>
<DD>Close the connection to the SSH-2 server. All assigned sessions will be
closed, too. Can be called at any time. Don't forget to call this once
you don't need a connection anymore - otherwise the receiver thread may
run forever.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="connect()"><!-- --></A><H3>
connect</H3>
<PRE>
public <A HREF="../../../com/trilead/ssh2/ConnectionInfo.html" title="class in com.trilead.ssh2">ConnectionInfo</A> <B>connect</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Same as
<A HREF="../../../com/trilead/ssh2/Connection.html#connect(com.trilead.ssh2.ServerHostKeyVerifier, int, int)"><CODE>connect(null, 0, 0)</CODE></A>.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>see comments for the
<A HREF="../../../com/trilead/ssh2/Connection.html#connect(com.trilead.ssh2.ServerHostKeyVerifier, int, int)"><CODE>connect(ServerHostKeyVerifier, int, int)</CODE></A>
method.
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="connect(com.trilead.ssh2.ServerHostKeyVerifier)"><!-- --></A><H3>
connect</H3>
<PRE>
public <A HREF="../../../com/trilead/ssh2/ConnectionInfo.html" title="class in com.trilead.ssh2">ConnectionInfo</A> <B>connect</B>(<A HREF="../../../com/trilead/ssh2/ServerHostKeyVerifier.html" title="interface in com.trilead.ssh2">ServerHostKeyVerifier</A>&nbsp;verifier)
throws java.io.IOException</PRE>
<DL>
<DD>Same as
<A HREF="../../../com/trilead/ssh2/Connection.html#connect(com.trilead.ssh2.ServerHostKeyVerifier, int, int)"><CODE>connect(verifier, 0, 0)</CODE></A>.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>see comments for the
<A HREF="../../../com/trilead/ssh2/Connection.html#connect(com.trilead.ssh2.ServerHostKeyVerifier, int, int)"><CODE>connect(ServerHostKeyVerifier, int, int)</CODE></A>
method.
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="connect(com.trilead.ssh2.ServerHostKeyVerifier, int, int)"><!-- --></A><H3>
connect</H3>
<PRE>
public <A HREF="../../../com/trilead/ssh2/ConnectionInfo.html" title="class in com.trilead.ssh2">ConnectionInfo</A> <B>connect</B>(<A HREF="../../../com/trilead/ssh2/ServerHostKeyVerifier.html" title="interface in com.trilead.ssh2">ServerHostKeyVerifier</A>&nbsp;verifier,
int&nbsp;connectTimeout,
int&nbsp;kexTimeout)
throws java.io.IOException</PRE>
<DL>
<DD>Connect to the SSH-2 server and, as soon as the server has presented its
host key, use the
<A HREF="../../../com/trilead/ssh2/ServerHostKeyVerifier.html#verifyServerHostKey(java.lang.String, int, java.lang.String, byte[])"><CODE>ServerHostKeyVerifier.verifyServerHostKey()</CODE></A> method of the
<code>verifier</code> to ask for permission to proceed. If
<code>verifier</code> is <code>null</code>, then any host key will
be accepted - this is NOT recommended, since it makes man-in-the-middle
attackes VERY easy (somebody could put a proxy SSH server between you and
the real server).
<p>
Note: The verifier will be called before doing any crypto calculations
(i.e., diffie-hellman). Therefore, if you don't like the presented host
key then no CPU cycles are wasted (and the evil server has less
information about us).
<p>
However, it is still possible that the server presented a fake host key:
the server cheated (typically a sign for a man-in-the-middle attack) and
is not able to generate a signature that matches its host key. Don't
worry, the library will detect such a scenario later when checking the
signature (the signature cannot be checked before having completed the
diffie-hellman exchange).
<p>
Note 2: The <A HREF="../../../com/trilead/ssh2/ServerHostKeyVerifier.html#verifyServerHostKey(java.lang.String, int, java.lang.String, byte[])"><CODE>ServerHostKeyVerifier.verifyServerHostKey()</CODE></A> method will
*NOT* be called from the current thread, the call is being made from a
background thread (there is a background dispatcher thread for every
established connection).
<p>
Note 3: This method will block as long as the key exchange of the
underlying connection has not been completed (and you have not specified
any timeouts).
<p>
Note 4: If you want to re-use a connection object that was successfully
connected, then you must call the <A HREF="../../../com/trilead/ssh2/Connection.html#close()"><CODE>close()</CODE></A> method before invoking
<code>connect()</code> again.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>verifier</CODE> - An object that implements the <A HREF="../../../com/trilead/ssh2/ServerHostKeyVerifier.html" title="interface in com.trilead.ssh2"><CODE>ServerHostKeyVerifier</CODE></A>
interface. Pass <code>null</code> to accept any server host
key - NOT recommended.<DD><CODE>connectTimeout</CODE> - Connect the underlying TCP socket to the server with the given
timeout value (non-negative, in milliseconds). Zero means no
timeout. If a proxy is being used (see
<A HREF="../../../com/trilead/ssh2/Connection.html#setProxyData(com.trilead.ssh2.ProxyData)"><CODE>setProxyData(ProxyData)</CODE></A>), then this timeout is used
for the connection establishment to the proxy.<DD><CODE>kexTimeout</CODE> - Timeout for complete connection establishment (non-negative,
in milliseconds). Zero means no timeout. The timeout counts
from the moment you invoke the connect() method and is
cancelled as soon as the first key-exchange round has
finished. It is possible that the timeout event will be fired
during the invocation of the <code>verifier</code> callback,
but it will only have an effect after the
<code>verifier</code> returns.
<DT><B>Returns:</B><DD>A <A HREF="../../../com/trilead/ssh2/ConnectionInfo.html" title="class in com.trilead.ssh2"><CODE>ConnectionInfo</CODE></A> object containing the details of the
established connection.
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If any problem occurs, e.g., the server's host key is not
accepted by the <code>verifier</code> or there is problem
during the initial crypto setup (e.g., the signature sent by
the server is wrong).
<p>
In case of a timeout (either connectTimeout or kexTimeout) a
SocketTimeoutException is thrown.
<p>
An exception may also be thrown if the connection was already
successfully connected (no matter if the connection broke in
the mean time) and you invoke <code>connect()</code> again
without having called <A HREF="../../../com/trilead/ssh2/Connection.html#close()"><CODE>close()</CODE></A> first.
<p>
If a HTTP proxy is being used and the proxy refuses the
connection, then a <A HREF="../../../com/trilead/ssh2/HTTPProxyException.html" title="class in com.trilead.ssh2"><CODE>HTTPProxyException</CODE></A> may be thrown,
which contains the details returned by the proxy. If the
proxy is buggy and does not return a proper HTTP response,
then a normal IOException is thrown instead.</DL>
</DD>
</DL>
<HR>
<A NAME="createLocalPortForwarder(int, java.lang.String, int)"><!-- --></A><H3>
createLocalPortForwarder</H3>
<PRE>
public <A HREF="../../../com/trilead/ssh2/LocalPortForwarder.html" title="class in com.trilead.ssh2">LocalPortForwarder</A> <B>createLocalPortForwarder</B>(int&nbsp;local_port,
java.lang.String&nbsp;host_to_connect,
int&nbsp;port_to_connect)
throws java.io.IOException</PRE>
<DL>
<DD>Creates a new <A HREF="../../../com/trilead/ssh2/LocalPortForwarder.html" title="class in com.trilead.ssh2"><CODE>LocalPortForwarder</CODE></A>. A
<code>LocalPortForwarder</code> forwards TCP/IP connections that arrive
at a local port via the secure tunnel to another host (which may or may
not be identical to the remote SSH-2 server).
<p>
This method must only be called after one has passed successfully the
authentication step. There is no limit on the number of concurrent
forwardings.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>local_port</CODE> - the local port the LocalPortForwarder shall bind to.<DD><CODE>host_to_connect</CODE> - target address (IP or hostname)<DD><CODE>port_to_connect</CODE> - target port
<DT><B>Returns:</B><DD>A <A HREF="../../../com/trilead/ssh2/LocalPortForwarder.html" title="class in com.trilead.ssh2"><CODE>LocalPortForwarder</CODE></A> object.
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="createLocalPortForwarder(java.net.InetSocketAddress, java.lang.String, int)"><!-- --></A><H3>
createLocalPortForwarder</H3>
<PRE>
public <A HREF="../../../com/trilead/ssh2/LocalPortForwarder.html" title="class in com.trilead.ssh2">LocalPortForwarder</A> <B>createLocalPortForwarder</B>(java.net.InetSocketAddress&nbsp;addr,
java.lang.String&nbsp;host_to_connect,
int&nbsp;port_to_connect)
throws java.io.IOException</PRE>
<DL>
<DD>Creates a new <A HREF="../../../com/trilead/ssh2/LocalPortForwarder.html" title="class in com.trilead.ssh2"><CODE>LocalPortForwarder</CODE></A>. A
<code>LocalPortForwarder</code> forwards TCP/IP connections that arrive
at a local port via the secure tunnel to another host (which may or may
not be identical to the remote SSH-2 server).
<p>
This method must only be called after one has passed successfully the
authentication step. There is no limit on the number of concurrent
forwardings.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>addr</CODE> - specifies the InetSocketAddress where the local socket shall
be bound to.<DD><CODE>host_to_connect</CODE> - target address (IP or hostname)<DD><CODE>port_to_connect</CODE> - target port
<DT><B>Returns:</B><DD>A <A HREF="../../../com/trilead/ssh2/LocalPortForwarder.html" title="class in com.trilead.ssh2"><CODE>LocalPortForwarder</CODE></A> object.
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="createLocalStreamForwarder(java.lang.String, int)"><!-- --></A><H3>
createLocalStreamForwarder</H3>
<PRE>
public <A HREF="../../../com/trilead/ssh2/LocalStreamForwarder.html" title="class in com.trilead.ssh2">LocalStreamForwarder</A> <B>createLocalStreamForwarder</B>(java.lang.String&nbsp;host_to_connect,
int&nbsp;port_to_connect)
throws java.io.IOException</PRE>
<DL>
<DD>Creates a new <A HREF="../../../com/trilead/ssh2/LocalStreamForwarder.html" title="class in com.trilead.ssh2"><CODE>LocalStreamForwarder</CODE></A>. A
<code>LocalStreamForwarder</code> manages an Input/Outputstream pair
that is being forwarded via the secure tunnel into a TCP/IP connection to
another host (which may or may not be identical to the remote SSH-2
server).
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>host_to_connect</CODE> - <DD><CODE>port_to_connect</CODE> -
<DT><B>Returns:</B><DD>A <A HREF="../../../com/trilead/ssh2/LocalStreamForwarder.html" title="class in com.trilead.ssh2"><CODE>LocalStreamForwarder</CODE></A> object.
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="createSCPClient()"><!-- --></A><H3>
createSCPClient</H3>
<PRE>
public <A HREF="../../../com/trilead/ssh2/SCPClient.html" title="class in com.trilead.ssh2">SCPClient</A> <B>createSCPClient</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Create a very basic <A HREF="../../../com/trilead/ssh2/SCPClient.html" title="class in com.trilead.ssh2"><CODE>SCPClient</CODE></A> that can be used to copy files
from/to the SSH-2 server.
<p>
Works only after one has passed successfully the authentication step.
There is no limit on the number of concurrent SCP clients.
<p>
Note: This factory method will probably disappear in the future.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>A <A HREF="../../../com/trilead/ssh2/SCPClient.html" title="class in com.trilead.ssh2"><CODE>SCPClient</CODE></A> object.
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="forceKeyExchange()"><!-- --></A><H3>
forceKeyExchange</H3>
<PRE>
public void <B>forceKeyExchange</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Force an asynchronous key re-exchange (the call does not block). The
latest values set for MAC, Cipher and DH group exchange parameters will
be used. If a key exchange is currently in progress, then this method has
the only effect that the so far specified parameters will be used for the
next (server driven) key exchange.
<p>
Note: This implementation will never start a key exchange (other than the
initial one) unless you or the SSH-2 server ask for it.
<P>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - In case of any failure behind the scenes.</DL>
</DD>
</DL>
<HR>
<A NAME="getHostname()"><!-- --></A><H3>
getHostname</H3>
<PRE>
public java.lang.String <B>getHostname</B>()</PRE>
<DL>
<DD>Returns the hostname that was passed to the constructor.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>the hostname</DL>
</DD>
</DL>
<HR>
<A NAME="getPort()"><!-- --></A><H3>
getPort</H3>
<PRE>
public int <B>getPort</B>()</PRE>
<DL>
<DD>Returns the port that was passed to the constructor.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>the TCP port</DL>
</DD>
</DL>
<HR>
<A NAME="getConnectionInfo()"><!-- --></A><H3>
getConnectionInfo</H3>
<PRE>
public <A HREF="../../../com/trilead/ssh2/ConnectionInfo.html" title="class in com.trilead.ssh2">ConnectionInfo</A> <B>getConnectionInfo</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Returns a <A HREF="../../../com/trilead/ssh2/ConnectionInfo.html" title="class in com.trilead.ssh2"><CODE>ConnectionInfo</CODE></A> object containing the details of the
connection. Can be called as soon as the connection has been established
(successfully connected).
<P>
<DD><DL>
<DT><B>Returns:</B><DD>A <A HREF="../../../com/trilead/ssh2/ConnectionInfo.html" title="class in com.trilead.ssh2"><CODE>ConnectionInfo</CODE></A> object.
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - In case of any failure behind the scenes.</DL>
</DD>
</DL>
<HR>
<A NAME="getRemainingAuthMethods(java.lang.String)"><!-- --></A><H3>
getRemainingAuthMethods</H3>
<PRE>
public java.lang.String[] <B>getRemainingAuthMethods</B>(java.lang.String&nbsp;user)
throws java.io.IOException</PRE>
<DL>
<DD>After a successful connect, one has to authenticate oneself. This method
can be used to tell which authentication methods are supported by the
server at a certain stage of the authentication process (for the given
username).
<p>
Note 1: the username will only be used if no authentication step was done
so far (it will be used to ask the server for a list of possible
authentication methods by sending the initial "none" request). Otherwise,
this method ignores the user name and returns a cached method list (which
is based on the information contained in the last negative server
response).
<p>
Note 2: the server may return method names that are not supported by this
implementation.
<p>
After a successful authentication, this method must not be called
anymore.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>user</CODE> - A <code>String</code> holding the username.
<DT><B>Returns:</B><DD>a (possibly emtpy) array holding authentication method names.
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="isAuthenticationComplete()"><!-- --></A><H3>
isAuthenticationComplete</H3>
<PRE>
public boolean <B>isAuthenticationComplete</B>()</PRE>
<DL>
<DD>Determines if the authentication phase is complete. Can be called at any
time.
<P>
<DD><DL>
<DT><B>Returns:</B><DD><code>true</code> if no further authentication steps are
needed.</DL>
</DD>
</DL>
<HR>
<A NAME="isAuthenticationPartialSuccess()"><!-- --></A><H3>
isAuthenticationPartialSuccess</H3>
<PRE>
public boolean <B>isAuthenticationPartialSuccess</B>()</PRE>
<DL>
<DD>Returns true if there was at least one failed authentication request and
the last failed authentication request was marked with "partial success"
by the server. This is only needed in the rare case of SSH-2 server
setups that cannot be satisfied with a single successful authentication
request (i.e., multiple authentication steps are needed.)
<p>
If you are interested in the details, then have a look at RFC4252.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>if the there was a failed authentication step and the last one
was marked as a "partial success".</DL>
</DD>
</DL>
<HR>
<A NAME="isAuthMethodAvailable(java.lang.String, java.lang.String)"><!-- --></A><H3>
isAuthMethodAvailable</H3>
<PRE>
public boolean <B>isAuthMethodAvailable</B>(java.lang.String&nbsp;user,
java.lang.String&nbsp;method)
throws java.io.IOException</PRE>
<DL>
<DD>Checks if a specified authentication method is available. This method is
actually just a wrapper for <A HREF="../../../com/trilead/ssh2/Connection.html#getRemainingAuthMethods(java.lang.String)"><CODE>getRemainingAuthMethods()</CODE></A>.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>user</CODE> - A <code>String</code> holding the username.<DD><CODE>method</CODE> - An authentication method name (e.g., "publickey", "password",
"keyboard-interactive") as specified by the SSH-2 standard.
<DT><B>Returns:</B><DD>if the specified authentication method is currently available.
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="openSession()"><!-- --></A><H3>
openSession</H3>
<PRE>
public <A HREF="../../../com/trilead/ssh2/Session.html" title="class in com.trilead.ssh2">Session</A> <B>openSession</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Open a new <A HREF="../../../com/trilead/ssh2/Session.html" title="class in com.trilead.ssh2"><CODE>Session</CODE></A> on this connection. Works only after one has
passed successfully the authentication step. There is no limit on the
number of concurrent sessions.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>A <A HREF="../../../com/trilead/ssh2/Session.html" title="class in com.trilead.ssh2"><CODE>Session</CODE></A> object.
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="sendIgnorePacket()"><!-- --></A><H3>
sendIgnorePacket</H3>
<PRE>
public void <B>sendIgnorePacket</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Send an SSH_MSG_IGNORE packet. This method will generate a random data
attribute (length between 0 (invlusive) and 16 (exclusive) bytes,
contents are random bytes).
<p>
This method must only be called once the connection is established.
<P>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="sendIgnorePacket(byte[])"><!-- --></A><H3>
sendIgnorePacket</H3>
<PRE>
public void <B>sendIgnorePacket</B>(byte[]&nbsp;data)
throws java.io.IOException</PRE>
<DL>
<DD>Send an SSH_MSG_IGNORE packet with the given data attribute.
<p>
This method must only be called once the connection is established.
<P>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="setClient2ServerCiphers(java.lang.String[])"><!-- --></A><H3>
setClient2ServerCiphers</H3>
<PRE>
public void <B>setClient2ServerCiphers</B>(java.lang.String[]&nbsp;ciphers)</PRE>
<DL>
<DD>Unless you know what you are doing, you will never need this.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>ciphers</CODE> - </DL>
</DD>
</DL>
<HR>
<A NAME="setClient2ServerMACs(java.lang.String[])"><!-- --></A><H3>
setClient2ServerMACs</H3>
<PRE>
public void <B>setClient2ServerMACs</B>(java.lang.String[]&nbsp;macs)</PRE>
<DL>
<DD>Unless you know what you are doing, you will never need this.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>macs</CODE> - </DL>
</DD>
</DL>
<HR>
<A NAME="setDHGexParameters(com.trilead.ssh2.DHGexParameters)"><!-- --></A><H3>
setDHGexParameters</H3>
<PRE>
public void <B>setDHGexParameters</B>(<A HREF="../../../com/trilead/ssh2/DHGexParameters.html" title="class in com.trilead.ssh2">DHGexParameters</A>&nbsp;dgp)</PRE>
<DL>
<DD>Sets the parameters for the diffie-hellman group exchange. Unless you
know what you are doing, you will never need this. Default values are
defined in the <A HREF="../../../com/trilead/ssh2/DHGexParameters.html" title="class in com.trilead.ssh2"><CODE>DHGexParameters</CODE></A> class.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>dgp</CODE> - <A HREF="../../../com/trilead/ssh2/DHGexParameters.html" title="class in com.trilead.ssh2"><CODE>DHGexParameters</CODE></A>, non null.</DL>
</DD>
</DL>
<HR>
<A NAME="setServer2ClientCiphers(java.lang.String[])"><!-- --></A><H3>
setServer2ClientCiphers</H3>
<PRE>
public void <B>setServer2ClientCiphers</B>(java.lang.String[]&nbsp;ciphers)</PRE>
<DL>
<DD>Unless you know what you are doing, you will never need this.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>ciphers</CODE> - </DL>
</DD>
</DL>
<HR>
<A NAME="setServer2ClientMACs(java.lang.String[])"><!-- --></A><H3>
setServer2ClientMACs</H3>
<PRE>
public void <B>setServer2ClientMACs</B>(java.lang.String[]&nbsp;macs)</PRE>
<DL>
<DD>Unless you know what you are doing, you will never need this.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>macs</CODE> - </DL>
</DD>
</DL>
<HR>
<A NAME="setServerHostKeyAlgorithms(java.lang.String[])"><!-- --></A><H3>
setServerHostKeyAlgorithms</H3>
<PRE>
public void <B>setServerHostKeyAlgorithms</B>(java.lang.String[]&nbsp;algos)</PRE>
<DL>
<DD>Define the set of allowed server host key algorithms to be used for the
following key exchange operations.
<p>
Unless you know what you are doing, you will never need this.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>algos</CODE> - An array of allowed server host key algorithms. SSH-2 defines
<code>ssh-dss</code> and <code>ssh-rsa</code>. The
entries of the array must be ordered after preference, i.e.,
the entry at index 0 is the most preferred one. You must
specify at least one entry.</DL>
</DD>
</DL>
<HR>
<A NAME="setTCPNoDelay(boolean)"><!-- --></A><H3>
setTCPNoDelay</H3>
<PRE>
public void <B>setTCPNoDelay</B>(boolean&nbsp;enable)
throws java.io.IOException</PRE>
<DL>
<DD>Enable/disable TCP_NODELAY (disable/enable Nagle's algorithm) on the
underlying socket.
<p>
Can be called at any time. If the connection has not yet been established
then the passed value will be stored and set after the socket has been
set up. The default value that will be used is <code>false</code>.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>enable</CODE> - the argument passed to the <code>Socket.setTCPNoDelay()</code>
method.
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="setProxyData(com.trilead.ssh2.ProxyData)"><!-- --></A><H3>
setProxyData</H3>
<PRE>
public void <B>setProxyData</B>(<A HREF="../../../com/trilead/ssh2/ProxyData.html" title="interface in com.trilead.ssh2">ProxyData</A>&nbsp;proxyData)</PRE>
<DL>
<DD>Used to tell the library that the connection shall be established through
a proxy server. It only makes sense to call this method before calling
the <A HREF="../../../com/trilead/ssh2/Connection.html#connect()"><CODE>connect()</CODE></A> method.
<p>
At the moment, only HTTP proxies are supported.
<p>
Note: This method can be called any number of times. The
<A HREF="../../../com/trilead/ssh2/Connection.html#connect()"><CODE>connect()</CODE></A> method will use the value set in the last
preceding invocation of this method.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>proxyData</CODE> - Connection information about the proxy. If <code>null</code>,
then no proxy will be used (non surprisingly, this is also the
default).<DT><B>See Also:</B><DD><A HREF="../../../com/trilead/ssh2/HTTPProxyData.html" title="class in com.trilead.ssh2"><CODE>HTTPProxyData</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="requestRemotePortForwarding(java.lang.String, int, java.lang.String, int)"><!-- --></A><H3>
requestRemotePortForwarding</H3>
<PRE>
public void <B>requestRemotePortForwarding</B>(java.lang.String&nbsp;bindAddress,
int&nbsp;bindPort,
java.lang.String&nbsp;targetAddress,
int&nbsp;targetPort)
throws java.io.IOException</PRE>
<DL>
<DD>Request a remote port forwarding. If successful, then forwarded
connections will be redirected to the given target address. You can
cancle a requested remote port forwarding by calling
<A HREF="../../../com/trilead/ssh2/Connection.html#cancelRemotePortForwarding(int)"><CODE>cancelRemotePortForwarding()</CODE></A>.
<p>
A call of this method will block until the peer either agreed or
disagreed to your request-
<p>
Note 1: this method typically fails if you
<ul>
<li>pass a port number for which the used remote user has not enough
permissions (i.e., port &lt; 1024)</li>
<li>or pass a port number that is already in use on the remote server</li>
<li>or if remote port forwarding is disabled on the server.</li>
</ul>
<p>
Note 2: (from the openssh man page): By default, the listening socket on
the server will be bound to the loopback interface only. This may be
overriden by specifying a bind address. Specifying a remote bind address
will only succeed if the server's <b>GatewayPorts</b> option is enabled
(see sshd_config(5)).
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>bindAddress</CODE> - address to bind to on the server:
<ul>
<li>"" means that connections are to be accepted on all
protocol families supported by the SSH implementation</li>
<li>"0.0.0.0" means to listen on all IPv4 addresses</li>
<li>"::" means to listen on all IPv6 addresses</li>
<li>"localhost" means to listen on all protocol families
supported by the SSH implementation on loopback addresses
only, [RFC3330] and RFC3513]</li>
<li>"127.0.0.1" and "::1" indicate listening on the loopback
interfaces for IPv4 and IPv6 respectively</li>
</ul><DD><CODE>bindPort</CODE> - port number to bind on the server (must be &gt; 0)<DD><CODE>targetAddress</CODE> - the target address (IP or hostname)<DD><CODE>targetPort</CODE> - the target port
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="cancelRemotePortForwarding(int)"><!-- --></A><H3>
cancelRemotePortForwarding</H3>
<PRE>
public void <B>cancelRemotePortForwarding</B>(int&nbsp;bindPort)
throws java.io.IOException</PRE>
<DL>
<DD>Cancel an earlier requested remote port forwarding. Currently active
forwardings will not be affected (e.g., disrupted). Note that further
connection forwarding requests may be received until this method has
returned.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>bindPort</CODE> - the allocated port number on the server
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - if the remote side refuses the cancel request or another low
level error occurs (e.g., the underlying connection is
closed)</DL>
</DD>
</DL>
<HR>
<A NAME="setSecureRandom(java.security.SecureRandom)"><!-- --></A><H3>
setSecureRandom</H3>
<PRE>
public void <B>setSecureRandom</B>(java.security.SecureRandom&nbsp;rnd)</PRE>
<DL>
<DD>Provide your own instance of SecureRandom. Can be used, e.g., if you want
to seed the used SecureRandom generator manually.
<p>
The SecureRandom instance is used during key exchanges, public key
authentication, x11 cookie generation and the like.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>rnd</CODE> - a SecureRandom instance</DL>
</DD>
</DL>
<HR>
<A NAME="enableDebugging(boolean, com.trilead.ssh2.DebugLogger)"><!-- --></A><H3>
enableDebugging</H3>
<PRE>
public void <B>enableDebugging</B>(boolean&nbsp;enable,
<A HREF="../../../com/trilead/ssh2/DebugLogger.html" title="interface in com.trilead.ssh2">DebugLogger</A>&nbsp;logger)</PRE>
<DL>
<DD>Enable/disable debug logging. <b>Only do this when requested by Trilead
support.</b>
<p>
For speed reasons, some static variables used to check whether debugging
is enabled are not protected with locks. In other words, if you
dynamicaly enable/disable debug logging, then some threads may still use
the old setting. To be on the safe side, enable debugging before doing
the <code>connect()</code> call.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>enable</CODE> - on/off<DD><CODE>logger</CODE> - a <A HREF="../../../com/trilead/ssh2/DebugLogger.html" title="interface in com.trilead.ssh2"><CODE>DebugLogger</CODE></A> instance, <code>null</code>
means logging using the simple logger which logs all messages
to to stderr. Ignored if enabled is <code>false</code></DL>
</DD>
</DL>
<HR>
<A NAME="ping()"><!-- --></A><H3>
ping</H3>
<PRE>
public void <B>ping</B>()
throws java.io.IOException</PRE>
<DL>
<DD>This method can be used to perform end-to-end connection testing. It
sends a 'ping' message to the server and waits for the 'pong' from the
server.
<p>
When this method throws an exception, then you can assume that the
connection should be abandoned.
<p>
Note: Works only after one has passed successfully the authentication
step.
<p>
Implementation details: this method sends a SSH_MSG_GLOBAL_REQUEST
request ('trilead-ping') to the server and waits for the
SSH_MSG_REQUEST_FAILURE reply packet from the server.
<P>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - in case of any problem</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../com/trilead/ssh2/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Connection.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Trilead SSH-2 for Java</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../com/trilead/ssh2/ChannelCondition.html" title="interface in com.trilead.ssh2"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../com/trilead/ssh2/ConnectionInfo.html" title="class in com.trilead.ssh2"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html?com/trilead/ssh2/Connection.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="Connection.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
</BODY>
</HTML>