CVS: trilead-ssh2 (== orion-ssh2) patched sources should be in community part, actually
authorirengrig <Irina.Chernushina@jetbrains.com>
Thu, 25 Feb 2010 15:15:41 +0000 (18:15 +0300)
committerirengrig <Irina.Chernushina@jetbrains.com>
Thu, 25 Feb 2010 15:15:41 +0000 (18:15 +0300)
202 files changed:
plugins/cvs/cvs-core/cvs-core.iml
plugins/cvs/trilead-ssh2-build213/HISTORY.txt [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/LICENSE.txt [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/README.txt [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/examples/Basic.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/examples/BasicWithHTTPProxy.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/examples/PortForwarding.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/examples/PublicKeyAuthentication.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/examples/SimpleVerifier.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/examples/SingleThreadStdoutStderr.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/examples/StdoutAndStderr.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/examples/SwingShell.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/examples/UsingKnownHosts.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/faq/FAQ.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/allclasses-frame.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/allclasses-noframe.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/ChannelCondition.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/Connection.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/ConnectionInfo.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/ConnectionMonitor.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/DHGexParameters.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/DebugLogger.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/HTTPProxyData.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/HTTPProxyException.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/InteractiveCallback.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/KnownHosts.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/LocalPortForwarder.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/LocalStreamForwarder.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/ProxyData.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/SCPClient.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/SFTPException.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/SFTPv3Client.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/SFTPv3DirectoryEntry.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/SFTPv3FileAttributes.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/SFTPv3FileHandle.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/ServerHostKeyVerifier.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/Session.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/StreamGobbler.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/class-use/ChannelCondition.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/class-use/Connection.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/class-use/ConnectionInfo.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/class-use/ConnectionMonitor.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/class-use/DHGexParameters.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/class-use/DebugLogger.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/class-use/HTTPProxyData.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/class-use/HTTPProxyException.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/class-use/InteractiveCallback.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/class-use/KnownHosts.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/class-use/LocalPortForwarder.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/class-use/LocalStreamForwarder.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/class-use/ProxyData.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/class-use/SCPClient.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/class-use/SFTPException.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/class-use/SFTPv3Client.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/class-use/SFTPv3DirectoryEntry.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/class-use/SFTPv3FileAttributes.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/class-use/SFTPv3FileHandle.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/class-use/ServerHostKeyVerifier.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/class-use/Session.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/class-use/StreamGobbler.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/package-frame.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/package-summary.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/package-tree.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/package-use.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/constant-values.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/deprecated-list.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/help-doc.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/index-all.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/index.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/overview-summary.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/overview-tree.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/package-list [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/resources/inherit.gif [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/serialized-form.html [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/javadoc/stylesheet.css [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/ChannelCondition.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/Connection.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/ConnectionInfo.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/ConnectionMonitor.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/DHGexParameters.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/DebugLogger.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/HTTPProxyData.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/HTTPProxyException.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/InteractiveCallback.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/KnownHosts.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/LocalPortForwarder.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/LocalStreamForwarder.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/ProxyData.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/SCPClient.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/SFTPException.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/SFTPv3Client.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/SFTPv3DirectoryEntry.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/SFTPv3FileAttributes.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/SFTPv3FileHandle.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/SelfConnectionProxyData.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/ServerHostKeyVerifier.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/Session.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/StreamGobbler.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/auth/AuthenticationManager.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/channel/Channel.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/channel/ChannelInputStream.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/channel/ChannelManager.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/channel/ChannelOutputStream.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/channel/IChannelWorkerThread.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/channel/LocalAcceptThread.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/channel/RemoteAcceptThread.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/channel/RemoteForwardingData.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/channel/RemoteX11AcceptThread.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/channel/StreamForwarder.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/channel/X11ServerData.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/Base64.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/CryptoWishList.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/KeyMaterial.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/PEMDecoder.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/PEMStructure.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/SimpleDERReader.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/cipher/AES.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/cipher/BlockCipher.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/cipher/BlockCipherFactory.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/cipher/BlowFish.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/cipher/CBCMode.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/cipher/CTRMode.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/cipher/CipherInputStream.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/cipher/CipherOutputStream.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/cipher/DES.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/cipher/DESede.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/cipher/NullCipher.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/dh/DhExchange.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/dh/DhGroupExchange.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/digest/Digest.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/digest/HMAC.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/digest/HashForSSH2Types.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/digest/MAC.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/digest/MD5.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/crypto/digest/SHA1.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/log/Logger.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketChannelOpenConfirmation.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketChannelOpenFailure.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketChannelTrileadPing.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketChannelWindowAdjust.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketDisconnect.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketGlobalCancelForwardRequest.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketGlobalForwardRequest.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketGlobalTrileadPing.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketIgnore.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketKexDHInit.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketKexDHReply.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketKexDhGexGroup.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketKexDhGexInit.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketKexDhGexReply.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketKexDhGexRequest.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketKexDhGexRequestOld.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketKexInit.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketNewKeys.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketOpenDirectTCPIPChannel.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketOpenSessionChannel.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketServiceAccept.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketServiceRequest.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketSessionExecCommand.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketSessionPtyRequest.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketSessionStartShell.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketSessionSubsystemRequest.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketSessionX11Request.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketUserauthBanner.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketUserauthFailure.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketUserauthInfoRequest.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketUserauthInfoResponse.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketUserauthRequestInteractive.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketUserauthRequestNone.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketUserauthRequestPassword.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/PacketUserauthRequestPublicKey.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/Packets.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/TypesReader.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/packets/TypesWriter.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/sftp/AttrTextHints.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/sftp/AttribBits.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/sftp/AttribFlags.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/sftp/AttribPermissions.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/sftp/AttribTypes.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/sftp/ErrorCodes.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/sftp/OpenFlags.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/sftp/Packet.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/signature/DSAPrivateKey.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/signature/DSAPublicKey.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/signature/DSASHA1Verify.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/signature/DSASignature.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/signature/RSAPrivateKey.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/signature/RSAPublicKey.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/signature/RSASHA1Verify.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/signature/RSASignature.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/transport/ClientServerHello.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/transport/KexManager.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/transport/KexParameters.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/transport/KexState.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/transport/MessageHandler.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/transport/NegotiateException.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/transport/NegotiatedParameters.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/transport/SocketFactory.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/transport/TransportConnection.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/transport/TransportManager.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/util/TimeoutService.java [new file with mode: 0644]
plugins/cvs/trilead-ssh2-build213/src/com/trilead/ssh2/util/Tokenizer.java [new file with mode: 0644]

index a527003443f94024ef9b37abfc15b4719cac1673..53189febbd114768f37f76e29393120e6b76a57f 100644 (file)
@@ -16,7 +16,9 @@
           <root url="jar://$MODULE_DIR$/../lib/trilead-ssh2-build213.jar!/" />
         </CLASSES>
         <JAVADOC />
-        <SOURCES />
+        <SOURCES>
+          <root url="file://$MODULE_DIR$/../trilead-ssh2-build213/src" />
+        </SOURCES>
       </library>
     </orderEntry>
   </component>
diff --git a/plugins/cvs/trilead-ssh2-build213/HISTORY.txt b/plugins/cvs/trilead-ssh2-build213/HISTORY.txt
new file mode 100644 (file)
index 0000000..1d897a0
--- /dev/null
@@ -0,0 +1,347 @@
+
+Release Notes:
+==============
+
+build213, 2008-04-01:
+
+- Added a workaround for servers that violate RFC4253 when sending the
+  SSH_MSG_SERVICE_ACCEPT and the SSH_MSG_KEXDH_REPLY messages.
+  Thanks to Gordon Brockway.
+
+- Fixed encodings for alien platforms (e.g., EBCDIC based). Use "ISO-8859-1" in
+  most places where we used the default platform encoding so far.
+
+- API change: atime and mtime attributes in SFTPv3FileAttributes are now
+  of type Long (not Integer). Makes it easier to properly handle values > 2^31.
+
+- Fixed the blowfish-ctr cipher, it could not be instantiated (a typo that
+  got in during the move to the trilead namespace). Thanks to Roelof Kemp.
+
+- Still in the queue: SSH server support.
+
+build212, 2008-03-03:
+
+- Added possibility to enable debugging output without recompiling the library.
+  See the Connection.enableDebugging(...) method and the DebugLogger interface.
+
+- Added Connection.ping() and Session.ping() methods to perform end-to-end
+  connection/session testing. Initial code supplied by Alexander Kitaev. Thanks!
+
+- Some buggy SFTP servers send too big packets when we instruct them to read
+  directory entries. Therefore, increased the packet size limit for answers
+  to the SSH_FXP_READDIR request. Thanks to Ross Perry.
+  
+- Coming soon: SSH server support. 
+
+build211, 2007-10-28:
+
+- The library is now called "Trilead SSH-2 for Java".
+  It is still maintained by Christian Plattner (co-founder of Trilead).
+
+- The package has been moved to "com.trilead.ssh2". Therefore, please make sure
+  that you use "import com.trilead.ssh2.*" in your Java source files.
+  Otherwise, the library is completely backwards compatible.
+  
+- If you have questions, then please consult our new forum at http://www.trilead.com/support.
+
+- Added Connection.sendIgnorePacket(...) methods which allow to send SSH_MSG_IGNORE packets.
+  Thanks to Andrei Tchijov.
+
+- Added support for the "none" authentication method.
+
+- Revised the SHA-1 code. Highly optimized. Speed should be more than doubled.
+
+- Changed references to the correct RFCs (instead of the drafts) in the javadocs (where possible).
+
+- Fixed the write() method in the SFTP code. Unsatisfiable preconditions stopped the method
+  from writing any bytes. As stated in the documentation, the SFTP code is still experimental.
+  Thanks to Andreas Pueschel.
+
+- The "softwareversion" token for the SSH protocol version exchange has been changed
+  to "TrileadSSH2Java_XXX", where XXX is the build number.
+
+- Added a new createLocalPortForwarder(InetSocketAddress addr, ...) method which allows to
+  specify the local address and port to bind to. Thanks to Andrei Tchijov.
+
+- Slightly updated the FAQ.
+
+build210, 2006-10-06:
+
+- Added HTTP proxy support. See Connection.setProxyData() and the HTTPProxyData class.
+  Thanks to Jean-Pierre Schmit for providing example code.
+  
+- Added basic support for SFTP (v3).
+  
+- Beta users: removed support for automatic split of huge read transfers in SFTP,
+  as it was not possible to return EOF in a clean way. The write method still splits huge
+  transfers (in blocks of 32768 bytes). Thanks to Zhong Li.
+  
+- SCP enhancement. It is now possible to specify an empty target directory name when sending
+  files. This is analogous to using "scp file user@host:" (thanks to Bernd Eggink).
+
+- SCP enhancement. It is now possible to receive a remote file and pipe it directly into
+  an OutputStream. Thanks to Bernd Eggink.
+
+- SCP enhancement. It is now possible to specify a different remote filename when sending
+  a file. Thanks to Thomas Tatzel.
+
+- Added more verbose error messages in case a channel open operation fails (e.g., resource
+  shortage on the server). Related to this, added a comment to the FAQ regarding the limitation
+  on the number of concurrent sessions per connection in OpenSSH. Thanks to Ron Warshawsky.
+
+- Added a feature (ConnectionMonitor) to get notified when a connection breaks.
+  Thanks to Daniel Ritz (Alcatel).
+
+- It is now possible to override the used SecureRandom instance (Connection.setSecureRandom()).
+
+- Added getters for the server's hostname and port to the Connection class.
+
+- Added examples for HTTP proxy usage as well as local/remote port forwarding.
+
+- Added support for SSH_MSG_KEX_DH_GEX_REQUEST_OLD in the DHGexParameters class (there
+  is a new, additional constructor). Please check the Javadoc for DHGexParameters.
+
+- Clarified in the javadoc the issue of re-using Connection objects. Changed the exception
+  message in case connect() is invoked on an already connected connection.
+
+- Added an entry to the FAQ regarding pumping data into remote files.
+  Thanks to Daniel Schwager.
+
+- Changed JDialog.show() to JDialog.setVisible(true) in the SwingShell example.
+  The show() method is deprecated in Java 5.0. Thanks to Carlo Dapor.
+
+- Fixed the behavior of the local port forwarder code. Trying to listen on an already bound port
+  will not fail silently anymore. Also, the accept thread will continue accepting connections
+  even if there was a problem with the establishment of the underlying ssh-forwarding of a
+  previous incoming connection (e.g., one tried to establish a forwarding to a remote port that
+  is not in state open (yet)). Thanks to Claudio Nieder (Inodes, Switzerland) and
+  Daniel Ritz (Alcatel) for pointing this out.
+  Note: the interface for managing port forwardings needs to be further improved.
+
+- Tried to implement a workaround for the Sun JVM bug 5092063. Changed InetAddress.getByAddress(byte[])
+  in the "TransportManager.parseIPv4Address" method (which already is a workaround for JDK's that
+  use the resolver for dotted IP addresses, independently from the 5092063 bug) to
+  InetAddress.getByAddress(String, byte[]). Thanks to Alain Philipin.
+
+- Fixed a bug in KnownHosts.addHostkeyToFile. Hostnames were converted to lowercase which is
+  not good in case of hashed hostnames (it leads to a different BASE64 encoding and therefore
+  hashes won't match). Thanks to [unknown].
+
+- Fixed a typo in the SCP client (tag for modification times is 'T' and not 'P').
+  Thanks to Andreas Sahlbach.
+
+- Stupid performance enhancement in the Logger, it did unnecessary calls to System.currentTimeMillis().
+
+- The LICENCE.txt file is now also included in the pre-compiled jar. Of course, redistributions in
+  binary form must *still* include the contents of LICENCE.txt in the documentation and/or other
+  materials provided with the distribution.
+  
+- Small cleanups in the TransportManager code.
+
+build209, 2006-02-14:
+
+- A major release, many new features. Thanks to all who supported me with feedback!
+
+- Added remote port forwarding support.
+  Please consult the docs for Connection.requestRemotePortForwarding().
+
+- Added X11 forwarding support. Please consult Session.requestX11Forwarding().
+  X11 support is based on joint work with Simon Hartl (simon.hartl (at) gmx.net). Thanks, Simon!
+
+- The SCPClient constructor is now public. The factory method is still there (in the Connection
+  class), however, it will probably be marked as deprecated and eventually be removed in the future.
+
+- Added startSubSystem() method to the Session class. Now it is possible to implement subsystems,
+  e.g., sftp, outside of the library.
+
+- For advanced users: there is now a much better condition wait interface in the Session class.
+  It is now also possible to wait for the arrival of "exit-status" and "exit-signal".
+  The Session.waitUntilDataAvailable() method still works, but is marked as deprecated.
+
+  Users that used the beta version, please be aware of the following change: calling the close()
+  method on a Session object will immediatelly raise the ChannelCondition.CLOSED/EOF conditions
+  on the underlying channel - even though the remote side may not have yet responded with a
+  SSH_MSG_CHANNEL_CLOSE message (however, in the background the library still expects the server
+  to send the SSH_MSG_CHANNEL_CLOSE message). See below for an explanation.
+
+- The behavior of Session.close() has changed. If you *kill* a Session (i.e., call Session.close()
+  before EOF (or CLOSE) has been sent by the remote side), then immediatelly EOF will (locally)
+  be raised for both stdout and stderr. Further incoming data (for that particular Session) will
+  be ignored. However, remote data that arrived before we sent our SSH_MSG_CHANNEL_CLOSE message
+  is still available (you can think of having appended the EOF marker to the end of the local
+  incoming stdout and stderr queues).
+  
+  The reason to do this is simply because some SSH servers do sometimes not reply to our
+  SSH_MSG_CHANNEL_CLOSE message (event though they should). As a consequence, a local reader may
+  wait forever for the remote SSH_MSG_CHANNEL_EOF or SSH_MSG_CHANNEL_CLOSE messages to arrive.
+  If you are interested, then you can try to reproduce the problem: Execute something like
+  "tail -f /dev/null" (which should do nothing forever) and then concurrently close the Session
+  (enable debug mode to see the SSH packets on the wire) to check how standard compliant your server
+  implementation is). Thanks to Cristiano Sadun.
+
+- The Session code does not anymore make use of the synchronized attribute for any of its methods.
+  This has the advantage that a call to Session.close() will never by blocked by concurrent
+  calls to the Session object. However, note that in the worst case the call may still block until
+  we can send our SSH_MSG_CHANNEL_CLOSE over the TCP connection.
+
+- The SCP client can now also be used to directly inject the contents of a given byte array
+  into a remote file (thanks to Dieter Baier for suggesting this).
+
+- Added support for specifying timeouts for connection establishment.
+  Thanks to Rob Hasselbaum and Ben XYZ.
+
+- Performance improvement: we use only a single SecureRandom object per connection
+  (until now there were multiple instances).
+
+- Fixed the Swingshell example program, it did not read in the known_hosts file on startup.
+  (thanks to Ashwani Kumar).
+
+- There was a typo in the CBCMode class (srcoff was ignored), however since we always pass
+  a zero offset the bug did not show up (thanks to Alex Pakhomov).
+
+- While implementing X11 support, found a strange X11 bug in OpenSSH (reported, openssh bug 1076).
+  12.10.2005: has been fixed for OpenSSH 4.3 by the OpenSSH crowd.
+
+- Changed the SingleThreadStdoutStderr example so that it uses the new condition wait interface.
+
+- Efficiently handle IPv4 addresses (when creating the underlying socket), there was a report
+  that some JDK's try to lookup dotted addresses with the resolver.
+  (thanks to Alexander Kitaev).
+
+- Added setTCPNoDelay() method to the Connection class.
+
+- Improved handling of unsupported global/channel requests received from the server.
+
+- The KEX code is now more robust. Also, the ServerHostKeyVerifier callback (if specified) will be called
+  before doing any DH calculation.
+
+- Major cleanup (i.e., rewrite) of the SSH channel code.
+
+- Cleanup up Session class, removed unnecessary IOExceptions.
+
+- Implemented 2^32-1 conformance for channel windows.
+
+- I got several times questions by e-mail from people that have problems with "putty" keys.
+  Added an entry to the FAQ.
+
+- Added an entry to the FAQ regarding how to handle servers with disabled password authentication
+  (thanks to Nicolas Raoul).
+
+- Upcoming: SFTP support (in the meantime almost a running gag).
+
+- Changed the name from "Ganymed SSH2" to "Ganymed SSH-2". Will this improve the G**gle ranking? =)
+
+- Latest javadoc is now also online.
+
+
+build208, 2005-08-24:
+
+- Added support for RSA private keys (PEM format), also revised code for RSA signature verification.
+
+- Extended support for encrypted PEM files.
+  Supported encryptions: DES-CBC, DES-EDE3-CBC, AES-128-CBC, AES-192-CBC and AES-256-CBC.
+  
+- Added rather complete support for known_hosts files (in KnownHosts.java).
+  The parser is able to understand the same pseudo-regex (*,?,!) syntax as OpenSSH clients.
+  The class includes support for hostkey comparison as well as functionality to add accepted keys
+  to a known_hosts file. One can also create OpenSSH compatible fingerprints (Hex and Bubblebabble).
+  Hashed hostname entries are understood and can also be generated.
+  
+- Restructured the examples section, added more examples. The examples should cover most issues.
+  There is also a _very_ basic terminal emulator, see SwingShell.java.
+
+- It is now possible to override the default server hostkey algorithm order (for the key exchange)
+  with the Connection.setServerHostKeyAlgorithms method. This makes sense in combination with
+  known_hosts support (e.g., if you already know the server's public ssh-dss key, then
+  you probably prefer the "ssh-dss" over the "ssh-rsa" algorithm).
+  The used server hostkey algorithm is now also reflected in ConnectionInfo.
+
+- The default server hostkey algorithm order is now "ssh-rsa", "ssh-dss".
+
+- Important: revised Input- and OutputStream code, everything is now unbuffered
+  (less memory consumption, more direct interface, see also StreamGobbler class and the FAQ).
+
+- Added StreamGobbler helper class.
+
+- Method verifyServerHostKey() in the ServerHostKeyVerifier may now throw exceptions
+  (an alternative to returning "false").
+
+- All background threads (the per-connection receive thread as well as all threads
+  used in forwarders and StreamGobblers) now use setDaemon(true) on startup.
+
+- Added "diffie-hellman-group14-sha1" support to the key exchange code.
+
+- Added chained IOExceptions where applicable (IOException initialization with initCause()).
+
+- Cleaned up packet building code, removed unnecessary server-side methods.
+
+- Cleaned up javadoc of SCPClient: replaced umask with mode.
+
+- Fixed a bug in the server identification string parser. This actually prevented a successful
+  key exchange with some ssh servers (the server's signature was rejected).
+  Thanks to Alex Molochnikov for the initial bug report and for helping in tracking down the issue.
+
+- Fixed a buffer re-allocation bug in the beta version of the StreamGobbler class
+  (thanks to Marc Lijour).
+
+- Fixed flawed UINT64 support (thanks to Bob Simons).
+
+- Fixed a bug in the build script of the beta builds (sftp beta directory was not completely removed)
+  (thanks to Richard Hash).
+
+- Use zero based padding for unencrypted traffic.
+
+- Changed again the client identification string (the one presented to the server).
+
+- Created a FAQ, available on the website and in the distribution.
+  
+- Revised javadoc comments. Also, the generated documentation is now located in the subdirectory
+  "javadoc" instead of "doc" (in the distribution).
+
+- Added README.txt to the distribution.
+
+
+build207, 2005-07-21:
+
+- Added "Keyboard Interactive" authentication method:
+  authenticateWithKeyboardInteractive() in Connection.java,
+  also have a look at InteractiveCallback.java.
+
+- Extended authentication interface in Connection.java (backwards compatible).
+  New functionality: getRemainingAuthMethods(), isAuthMethodAvailable(),
+  isAuthenticationComplete() and isAuthenticationPartialSuccess().
+
+- Using an authentication method not supported by the server leads now to an exception
+  (instead of returning "false"). Use isAuthMethodAvailable() if you want to check
+  for the availability of an authentication method.
+
+- Fixed a bug in SCPClient which sometimes lead to failed downloads.
+
+- Improved channel window handling.
+
+- Removed bogus (CVS) version string from Connection.java
+
+- Changed client identification string to "Ganymed_buildXXX".
+
+- Changed the jar file naming scheme (ganymed-ssh2-buildXXX.jar).
+
+- Started adding logging support for debugging purposes (currently only for development).
+
+- Cleanup of javadoc and comments at several places.
+
+- Reversed order of entries in HISTORY.TXT
+
+
+build206, 2005-07-04:
+
+- Fixed small resource issue with SCP (thanks to MichaĆ«l Giraud).
+
+- Added LocalStreamForwarder.
+
+- Added HISTORY.TXT
+
+
+build205, 2005-06-27:
+
+- Initial release.
+
diff --git a/plugins/cvs/trilead-ssh2-build213/LICENSE.txt b/plugins/cvs/trilead-ssh2-build213/LICENSE.txt
new file mode 100644 (file)
index 0000000..5795385
--- /dev/null
@@ -0,0 +1,88 @@
+Copyright (c) 2007-2008 Trilead AG (http://www.trilead.com)
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+a.) Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+b.) Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+c.) Neither the name of Trilead nor the names of its contributors may
+    be used to endorse or promote products derived from this software
+    without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+Trilead SSH-2 for Java includes code that was written by Dr. Christian Plattner
+during his PhD at ETH Zurich. The license states the following:
+
+Copyright (c) 2005 - 2006 Swiss Federal Institute of Technology (ETH Zurich),
+  Department of Computer Science (http://www.inf.ethz.ch),
+  Christian Plattner. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+a.) Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+b.) Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+c.) Neither the name of ETH Zurich nor the names of its contributors may
+    be used to endorse or promote products derived from this software
+    without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+The Java implementations of the AES, Blowfish and 3DES ciphers have been
+taken (and slightly modified) from the cryptography package released by
+"The Legion Of The Bouncy Castle".
+
+Their license states the following:
+
+Copyright (c) 2000 - 2004 The Legion Of The Bouncy Castle
+(http://www.bouncycastle.org)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE. 
+
diff --git a/plugins/cvs/trilead-ssh2-build213/README.txt b/plugins/cvs/trilead-ssh2-build213/README.txt
new file mode 100644 (file)
index 0000000..e34e8b5
--- /dev/null
@@ -0,0 +1,24 @@
+
+Trilead SSH-2 for Java - build 213
+==================================
+
+http://www.trilead.com
+
+Trilead SSH-2 for Java is a library which implements the SSH-2 protocol in pure Java
+(minimum required JRE: 1.4.2). It allows one to connect to SSH servers from within
+Java programs. It supports SSH sessions (remote command execution and shell access),
+local and remote port forwarding, local stream forwarding, X11 forwarding, SCP and SFTP.
+There are no dependencies on any JCE provider, as all crypto functionality is included.
+
+This distribution contains the source code, examples, javadoc and the FAQ.
+It also includes a pre-compiled jar version of the library which is ready to use.
+
+- Please read the included LICENCE.txt
+- Latest changes can be found in HISTORY.txt
+
+The latest version of the FAQ is available on the website.
+
+Please feel free to contact us. We welcome feedback of any kind!
+Contact: support@trilead.com or go to the public forum at http://www.trilead.com
+
+Zurich, April 2008
diff --git a/plugins/cvs/trilead-ssh2-build213/examples/Basic.java b/plugins/cvs/trilead-ssh2-build213/examples/Basic.java
new file mode 100644 (file)
index 0000000..591caf7
--- /dev/null
@@ -0,0 +1,91 @@
+import com.trilead.ssh2.Connection;
+import com.trilead.ssh2.Session;
+import com.trilead.ssh2.StreamGobbler;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+
+/**
+ * This is a very basic example that shows
+ * how one can login to a machine and execute a command.
+ *  
+ * @author Christian Plattner, plattner@trilead.com
+ * @version $Id: Basic.java,v 1.4 2007/10/15 12:49:57 cplattne Exp $
+ */
+public class Basic
+{
+       public static void main(String[] args)
+       {
+               String hostname = "127.0.0.1";
+               String username = "joe";
+               String password = "joespass";
+
+               try
+               {
+                       /* Create a connection instance */
+
+                       Connection conn = new Connection(hostname);
+
+                       /* Now connect */
+
+                       conn.connect();
+
+                       /* Authenticate.
+                        * If you get an IOException saying something like
+                        * "Authentication method password not supported by the server at this stage."
+                        * then please check the FAQ.
+                        */
+
+                       boolean isAuthenticated = conn.authenticateWithPassword(username, password);
+
+                       if (isAuthenticated == false)
+                               throw new IOException("Authentication failed.");
+
+                       /* Create a session */
+
+                       Session sess = conn.openSession();
+
+                       sess.execCommand("uname -a && date && uptime && who");
+
+                       System.out.println("Here is some information about the remote host:");
+
+                       /* 
+                        * This basic example does not handle stderr, which is sometimes dangerous
+                        * (please read the FAQ).
+                        */
+
+                       InputStream stdout = new StreamGobbler(sess.getStdout());
+
+                       BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
+
+                       while (true)
+                       {
+                               String line = br.readLine();
+                               if (line == null)
+                                       break;
+                               System.out.println(line);
+                       }
+
+                       /* Show exit status, if available (otherwise "null") */
+
+                       System.out.println("ExitCode: " + sess.getExitStatus());
+
+                       /* Close this session */
+
+                       sess.close();
+
+                       /* Close the connection */
+
+                       conn.close();
+
+               }
+               catch (IOException e)
+               {
+                       e.printStackTrace(System.err);
+                       System.exit(2);
+               }
+       }
+}
diff --git a/plugins/cvs/trilead-ssh2-build213/examples/BasicWithHTTPProxy.java b/plugins/cvs/trilead-ssh2-build213/examples/BasicWithHTTPProxy.java
new file mode 100644 (file)
index 0000000..478bbef
--- /dev/null
@@ -0,0 +1,102 @@
+import com.trilead.ssh2.Connection;
+import com.trilead.ssh2.HTTPProxyData;
+import com.trilead.ssh2.Session;
+import com.trilead.ssh2.StreamGobbler;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+/**
+ * This is a very basic example that shows
+ * how one can login to a machine (via a HTTP proxy)
+ * and execute a command.
+ *  
+ * @author Christian Plattner, plattner@trilead.com
+ * @version $Id: BasicWithHTTPProxy.java,v 1.3 2007/10/15 12:49:57 cplattne Exp $
+ */
+public class BasicWithHTTPProxy
+{
+       public static void main(String[] args)
+       {
+               String hostname = "my-ssh-server";
+               String username = "joe";
+               String password = "joespass";
+
+               String proxyHost = "192.168.1.1";
+               int proxyPort = 3128; // default port used by squid
+               
+               try
+               {
+                       /* Create a connection instance */
+
+                       Connection conn = new Connection(hostname);
+
+                       /* We want to connect through a HTTP proxy */
+                       
+                       conn.setProxyData(new HTTPProxyData(proxyHost, proxyPort));
+                       
+                       // if the proxy requires basic authentication:
+                       // conn.setProxyData(new HTTPProxyData(proxyHost, proxyPort, "username", "secret"));
+                       
+                       /* Now connect (through the proxy) */
+
+                       conn.connect();
+
+                       /* Authenticate.
+                        * If you get an IOException saying something like
+                        * "Authentication method password not supported by the server at this stage."
+                        * then please check the FAQ.
+                        */
+
+                       boolean isAuthenticated = conn.authenticateWithPassword(username, password);
+
+                       if (isAuthenticated == false)
+                               throw new IOException("Authentication failed.");
+
+                       /* Create a session */
+
+                       Session sess = conn.openSession();
+
+                       sess.execCommand("uname -a && date && uptime && who");
+
+                       System.out.println("Here is some information about the remote host:");
+
+                       /* 
+                        * This basic example does not handle stderr, which is sometimes dangerous
+                        * (please read the FAQ).
+                        */
+
+                       InputStream stdout = new StreamGobbler(sess.getStdout());
+
+                       BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
+
+                       while (true)
+                       {
+                               String line = br.readLine();
+                               if (line == null)
+                                       break;
+                               System.out.println(line);
+                       }
+
+                       /* Show exit status, if available (otherwise "null") */
+
+                       System.out.println("ExitCode: " + sess.getExitStatus());
+
+                       /* Close this session */
+
+                       sess.close();
+
+                       /* Close the connection */
+
+                       conn.close();
+
+               }
+               catch (IOException e)
+               {
+                       e.printStackTrace(System.err);
+                       System.exit(2);
+               }
+       }
+}
diff --git a/plugins/cvs/trilead-ssh2-build213/examples/PortForwarding.java b/plugins/cvs/trilead-ssh2-build213/examples/PortForwarding.java
new file mode 100644 (file)
index 0000000..165bc44
--- /dev/null
@@ -0,0 +1,116 @@
+import com.trilead.ssh2.Connection;
+import com.trilead.ssh2.LocalPortForwarder;
+
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * This example shows how to deal with port forwardings.
+ *  
+ * @author Christian Plattner, plattner@trilead.com
+ * @version $Id: PortForwarding.java,v 1.2 2007/10/15 12:49:57 cplattne Exp $
+ */
+public class PortForwarding
+{
+       public static void sleepSomeTime(long milliSeconds)
+       {
+               try
+               {
+                       Thread.sleep(milliSeconds);
+               }
+               catch (InterruptedException e)
+               {
+               }
+       }
+
+       public static void main(String[] args)
+       {
+               String hostname = "127.0.0.1";
+               String username = "joe";
+
+               File keyfile = new File("~/.ssh/id_rsa"); // or "~/.ssh/id_dsa"
+               String keyfilePass = "joespass"; // will be ignored if not needed
+
+               try
+               {
+                       /* Create a connection instance */
+
+                       Connection conn = new Connection(hostname);
+
+                       /* Now connect */
+
+                       conn.connect();
+
+                       /* Authenticate */
+
+                       boolean isAuthenticated = conn.authenticateWithPublicKey(username, keyfile, keyfilePass);
+
+                       if (isAuthenticated == false)
+                               throw new IOException("Authentication failed.");
+
+                       /* ===== OK, now let's establish some local port forwardings ===== */
+
+                       /* Example Port Forwarding: -L 8080:www.icann.org:80 (OpenSSH notation)
+                        * 
+                        * This works by allocating a socket to listen on 8080 on the local interface (127.0.0.1).
+                        * Whenever a connection is made to this port (127.0.0.1:8080), the connection is forwarded
+                        * over the secure channel, and a connection is made to www.icann.org:80 from the remote
+                        * machine (i.e., the ssh server).
+                        * 
+                        * (the above text is based partially on the OpenSSH man page)
+                        */
+
+                       /* You can create as many of them as you want */
+
+                       LocalPortForwarder lpf1 = conn.createLocalPortForwarder(8080, "www.icann.org", 80);
+
+                       /* Now simply point your webbrowser to 127.0.0.1:8080 */
+                       /* (on the host where you execute this program)                         */
+
+                       /* ===== OK, now let's establish some remote port forwardings ===== */
+
+                       /* Example Port Forwarding: -R 127.0.0.1:8080:www.ripe.net:80 (OpenSSH notation)
+                        * 
+                        * Specifies that the port 127.0.0.1:8080 on the remote server is to be forwarded to the
+                        * given host and port on the local side.  This works by allocating a socket to listen to port
+                        * 8080 on the remote side (the ssh server), and whenever a connection is made to this port, the
+                        * connection is forwarded over the secure channel, and a connection is made to
+                        * www.ripe.net:80 by the Trilead SSH-2 library.
+                        * 
+                        * (the above text is based partially on the OpenSSH man page)
+                        */
+
+                       /* You can create as many of them as you want */
+
+                       conn.requestRemotePortForwarding("127.0.0.1", 8080, "www.ripe.net", 80);
+
+                       /* Now, on the ssh server, if you connect to 127.0.0.1:8080, then the connection is forwarded
+                        * through the secure tunnel to the library, which in turn will forward the connection
+                        * to www.ripe.net:80. */
+
+                       /* Sleep a bit... (30 seconds) */
+                       sleepSomeTime(30000);
+
+                       /* Stop accepting remote connections that are being forwarded to www.ripe.net:80 */
+
+                       conn.cancelRemotePortForwarding(8080);
+
+                       /* Sleep a bit... (20 seconds) */
+                       sleepSomeTime(20000);
+
+                       /* Stop accepting connections on 127.0.0.1:8080 that are being forwarded to www.icann.org:80 */
+
+                       lpf1.close();
+
+                       /* Close the connection */
+
+                       conn.close();
+
+               }
+               catch (IOException e)
+               {
+                       e.printStackTrace(System.err);
+                       System.exit(2);
+               }
+       }
+}
diff --git a/plugins/cvs/trilead-ssh2-build213/examples/PublicKeyAuthentication.java b/plugins/cvs/trilead-ssh2-build213/examples/PublicKeyAuthentication.java
new file mode 100644 (file)
index 0000000..ededf43
--- /dev/null
@@ -0,0 +1,76 @@
+import com.trilead.ssh2.Connection;
+import com.trilead.ssh2.Session;
+import com.trilead.ssh2.StreamGobbler;
+
+import java.io.*;
+
+/**
+ * This example shows how to login using
+ * public key authentication.
+ *  
+ * @author Christian Plattner, plattner@trilead.com
+ * @version $Id: PublicKeyAuthentication.java,v 1.2 2007/10/15 12:49:57 cplattne Exp $
+ */
+public class PublicKeyAuthentication
+{
+       public static void main(String[] args)
+       {
+               String hostname = "127.0.0.1";
+               String username = "joe";
+
+               File keyfile = new File("~/.ssh/id_rsa"); // or "~/.ssh/id_dsa"
+               String keyfilePass = "joespass"; // will be ignored if not needed
+
+               try
+               {
+                       /* Create a connection instance */
+
+                       Connection conn = new Connection(hostname);
+
+                       /* Now connect */
+
+                       conn.connect();
+
+                       /* Authenticate */
+
+                       boolean isAuthenticated = conn.authenticateWithPublicKey(username, keyfile, keyfilePass);
+
+                       if (isAuthenticated == false)
+                               throw new IOException("Authentication failed.");
+
+                       /* Create a session */
+
+                       Session sess = conn.openSession();
+
+                       sess.execCommand("uname -a && date && uptime && who");
+
+                       InputStream stdout = new StreamGobbler(sess.getStdout());
+
+                       BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
+
+                       System.out.println("Here is some information about the remote host:");
+
+                       while (true)
+                       {
+                               String line = br.readLine();
+                               if (line == null)
+                                       break;
+                               System.out.println(line);
+                       }
+
+                       /* Close this session */
+
+                       sess.close();
+
+                       /* Close the connection */
+
+                       conn.close();
+
+               }
+               catch (IOException e)
+               {
+                       e.printStackTrace(System.err);
+                       System.exit(2);
+               }
+       }
+}
diff --git a/plugins/cvs/trilead-ssh2-build213/examples/SimpleVerifier.java b/plugins/cvs/trilead-ssh2-build213/examples/SimpleVerifier.java
new file mode 100644 (file)
index 0000000..8189fb8
--- /dev/null
@@ -0,0 +1,55 @@
+import com.trilead.ssh2.KnownHosts;
+import com.trilead.ssh2.ServerHostKeyVerifier;
+
+/**
+ * This example hostkey verifier is used by the
+ * UsingKnownHosts.java example.
+ *  
+ * @author Christian Plattner, plattner@trilead.com
+ * @version $Id: SimpleVerifier.java,v 1.4 2007/10/15 12:49:57 cplattne Exp $
+ */
+class SimpleVerifier implements ServerHostKeyVerifier
+{
+       KnownHosts database;
+
+       public SimpleVerifier(KnownHosts database)
+       {
+               if (database == null)
+                       throw new IllegalArgumentException();
+
+               this.database = database;
+       }
+
+       public boolean verifyServerHostKey(String hostname, int port, String serverHostKeyAlgorithm, byte[] serverHostKey)
+                       throws Exception
+       {
+               int result = database.verifyHostkey(hostname, serverHostKeyAlgorithm, serverHostKey);
+
+               switch (result)
+               {
+               case KnownHosts.HOSTKEY_IS_OK:
+
+                       return true; // We are happy
+
+               case KnownHosts.HOSTKEY_IS_NEW:
+
+                       // Unknown host? Blindly accept the key and put it into the cache.
+                       // Well, you definitely can do better (e.g., ask the user).
+
+                       // The following call will ONLY put the key into the memory cache!
+                       // To save it in a known hosts file, also call "KnownHosts.addHostkeyToFile(...)"
+                       database.addHostkey(new String[] { hostname }, serverHostKeyAlgorithm, serverHostKey);
+
+                       return true;
+
+               case KnownHosts.HOSTKEY_HAS_CHANGED:
+
+                       // Close the connection if the hostkey has changed.
+                       // Better: ask user and add new key to database.
+                       return false;
+
+               default:
+                       throw new IllegalStateException();
+               }
+       }
+}
\ No newline at end of file
diff --git a/plugins/cvs/trilead-ssh2-build213/examples/SingleThreadStdoutStderr.java b/plugins/cvs/trilead-ssh2-build213/examples/SingleThreadStdoutStderr.java
new file mode 100644 (file)
index 0000000..f828cc8
--- /dev/null
@@ -0,0 +1,142 @@
+import com.trilead.ssh2.ChannelCondition;
+import com.trilead.ssh2.Connection;
+import com.trilead.ssh2.Session;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * This example shows how to use the Session.waitForCondition
+ * method to implement a state machine approach for
+ * proper stdout/stderr output handling in a single thread.
+ * 
+ * @author Christian Plattner, plattner@trilead.com
+ * @version $Id: SingleThreadStdoutStderr.java,v 1.6 2007/10/15 12:49:57 cplattne Exp $
+ */
+public class SingleThreadStdoutStderr
+{
+       public static void main(String[] args)
+       {
+               String hostname = "127.0.0.1";
+               String username = "joe";
+               String password = "joespass";
+
+               try
+               {
+                       /* Create a connection instance */
+
+                       Connection conn = new Connection(hostname);
+
+                       /* Now connect */
+
+                       conn.connect();
+
+                       /* Authenticate */
+
+                       boolean isAuthenticated = conn.authenticateWithPassword(username, password);
+
+                       if (isAuthenticated == false)
+                               throw new IOException("Authentication failed.");
+
+                       /* Create a session */
+
+                       Session sess = conn.openSession();
+
+                       sess.execCommand("echo \"Huge amounts of text on STDOUT\"; echo \"Huge amounts of text on STDERR\" >&2");
+
+                       /*
+                        * Advanced:
+                        * The following is a demo on how one can read from stdout and
+                        * stderr without having to use two parallel worker threads (i.e.,
+                        * we don't use the Streamgobblers here) and at the same time not
+                        * risking a deadlock (due to a filled SSH2 channel window, caused
+                        * by the stream which you are currently NOT reading from =).
+                        */
+
+                       /* Don't wrap these streams and don't let other threads work on
+                        * these streams while you work with Session.waitForCondition()!!!
+                        */
+
+                       InputStream stdout = sess.getStdout();
+                       InputStream stderr = sess.getStderr();
+
+                       byte[] buffer = new byte[8192];
+
+                       while (true)
+                       {
+                               if ((stdout.available() == 0) && (stderr.available() == 0))
+                               {
+                                       /* Even though currently there is no data available, it may be that new data arrives
+                                        * and the session's underlying channel is closed before we call waitForCondition().
+                                        * This means that EOF and STDOUT_DATA (or STDERR_DATA, or both) may
+                                        * be set together.
+                                        */
+
+                                       int conditions = sess.waitForCondition(ChannelCondition.STDOUT_DATA | ChannelCondition.STDERR_DATA
+                                                       | ChannelCondition.EOF, 2000);
+
+                                       /* Wait no longer than 2 seconds (= 2000 milliseconds) */
+
+                                       if ((conditions & ChannelCondition.TIMEOUT) != 0)
+                                       {
+                                               /* A timeout occured. */
+                                               throw new IOException("Timeout while waiting for data from peer.");
+                                       }
+
+                                       /* Here we do not need to check separately for CLOSED, since CLOSED implies EOF */
+
+                                       if ((conditions & ChannelCondition.EOF) != 0)
+                                       {
+                                               /* The remote side won't send us further data... */
+
+                                               if ((conditions & (ChannelCondition.STDOUT_DATA | ChannelCondition.STDERR_DATA)) == 0)
+                                               {
+                                                       /* ... and we have consumed all data in the local arrival window. */
+                                                       break;
+                                               }
+                                       }
+
+                                       /* OK, either STDOUT_DATA or STDERR_DATA (or both) is set. */
+
+                                       // You can be paranoid and check that the library is not going nuts:
+                                       // if ((conditions & (ChannelCondition.STDOUT_DATA | ChannelCondition.STDERR_DATA)) == 0)
+                                       //      throw new IllegalStateException("Unexpected condition result (" + conditions + ")");
+                               }
+
+                               /* If you below replace "while" with "if", then the way the output appears on the local
+                                * stdout and stder streams is more "balanced". Addtionally reducing the buffer size
+                                * will also improve the interleaving, but performance will slightly suffer.
+                                * OKOK, that all matters only if you get HUGE amounts of stdout and stderr data =)
+                                */
+
+                               while (stdout.available() > 0)
+                               {
+                                       int len = stdout.read(buffer);
+                                       if (len > 0) // this check is somewhat paranoid
+                                               System.out.write(buffer, 0, len);
+                               }
+
+                               while (stderr.available() > 0)
+                               {
+                                       int len = stderr.read(buffer);
+                                       if (len > 0) // this check is somewhat paranoid
+                                               System.err.write(buffer, 0, len);
+                               }
+                       }
+
+                       /* Close this session */
+
+                       sess.close();
+
+                       /* Close the connection */
+
+                       conn.close();
+
+               }
+               catch (IOException e)
+               {
+                       e.printStackTrace(System.err);
+                       System.exit(2);
+               }
+       }
+}
diff --git a/plugins/cvs/trilead-ssh2-build213/examples/StdoutAndStderr.java b/plugins/cvs/trilead-ssh2-build213/examples/StdoutAndStderr.java
new file mode 100644 (file)
index 0000000..3b1b83e
--- /dev/null
@@ -0,0 +1,93 @@
+import com.trilead.ssh2.Connection;
+import com.trilead.ssh2.Session;
+import com.trilead.ssh2.StreamGobbler;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+/**
+ * This example shows how to consume stdout/stderr output
+ * using two StreamGobblers. This is simpler to program
+ * than the state machine approach (see SingleThreadStdoutStderr.java),
+ * but you cannot control the amount of memory that is
+ * consumed by your application (i.e., in case the other
+ * side sends you lots of data).
+ * 
+ * @author Christian Plattner, plattner@trilead.com
+ * @version $Id: StdoutAndStderr.java,v 1.2 2007/10/15 12:49:57 cplattne Exp $
+ */
+public class StdoutAndStderr
+{
+       public static void main(String[] args)
+       {
+               String hostname = "127.0.0.1";
+               String username = "joe";
+               String password = "joespass";
+
+               try
+               {
+                       /* Create a connection instance */
+
+                       Connection conn = new Connection(hostname);
+
+                       /* Now connect */
+
+                       conn.connect();
+
+                       /* Authenticate */
+
+                       boolean isAuthenticated = conn.authenticateWithPassword(username, password);
+
+                       if (isAuthenticated == false)
+                               throw new IOException("Authentication failed.");
+
+                       /* Create a session */
+
+                       Session sess = conn.openSession();
+
+                       sess.execCommand("echo \"Text on STDOUT\"; echo \"Text on STDERR\" >&2");
+
+                       InputStream stdout = new StreamGobbler(sess.getStdout());
+                       InputStream stderr = new StreamGobbler(sess.getStderr());
+
+                       BufferedReader stdoutReader = new BufferedReader(new InputStreamReader(stdout));
+                       BufferedReader stderrReader = new BufferedReader(new InputStreamReader(stderr));
+
+                       System.out.println("Here is the output from stdout:");
+
+                       while (true)
+                       {
+                               String line = stdoutReader.readLine();
+                               if (line == null)
+                                       break;
+                               System.out.println(line);
+                       }
+
+                       System.out.println("Here is the output from stderr:");
+
+                       while (true)
+                       {
+                               String line = stderrReader.readLine();
+                               if (line == null)
+                                       break;
+                               System.out.println(line);
+                       }
+
+                       /* Close this session */
+
+                       sess.close();
+
+                       /* Close the connection */
+
+                       conn.close();
+
+               }
+               catch (IOException e)
+               {
+                       e.printStackTrace(System.err);
+                       System.exit(2);
+               }
+       }
+}
diff --git a/plugins/cvs/trilead-ssh2-build213/examples/SwingShell.java b/plugins/cvs/trilead-ssh2-build213/examples/SwingShell.java
new file mode 100644 (file)
index 0000000..803e7c8
--- /dev/null
@@ -0,0 +1,768 @@
+import com.trilead.ssh2.*;
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+/**
+ * This is a very primitive SSH-2 dumb terminal (Swing based).
+ * <p>
+ * The purpose of this class is to demonstrate:
+ * <ul>
+ * <li>Verifying server hostkeys with an existing known_hosts file</li>
+ * <li>Displaying fingerprints of server hostkeys</li>
+ * <li>Adding a server hostkey to a known_hosts file (+hashing the hostname for security)</li>
+ * <li>Authentication with DSA, RSA, password and keyboard-interactive methods</li>
+ * </ul>
+ * 
+ * @author Christian Plattner, plattner@trilead.com
+ * @version $Id: SwingShell.java,v 1.10 2007/10/15 12:49:57 cplattne Exp $
+ * 
+ */
+public class SwingShell
+{
+       /* 
+        * NOTE: to get this feature to work, replace the "tilde" with your home directory,
+        * at least my JVM does not understand it. Need to check the specs.
+        */
+
+       static final String knownHostPath = "~/.ssh/known_hosts";
+       static final String idDSAPath = "~/.ssh/id_dsa";
+       static final String idRSAPath = "~/.ssh/id_rsa";
+
+       JFrame loginFrame = null;
+       JLabel hostLabel;
+       JLabel userLabel;
+       JTextField hostField;
+       JTextField userField;
+       JButton loginButton;
+
+       KnownHosts database = new KnownHosts();
+
+       public SwingShell()
+       {
+               File knownHostFile = new File(knownHostPath);
+               if (knownHostFile.exists())
+               {
+                       try
+                       {
+                               database.addHostkeys(knownHostFile);
+                       }
+                       catch (IOException e)
+                       {
+                       }
+               }
+       }
+
+       /**
+        * This dialog displays a number of text lines and a text field.
+        * The text field can either be plain text or a password field.
+        */
+       class EnterSomethingDialog extends JDialog
+       {
+               private static final long serialVersionUID = 1L;
+
+               JTextField answerField;
+               JPasswordField passwordField;
+
+               final boolean isPassword;
+
+               String answer;
+
+               public EnterSomethingDialog(JFrame parent, String title, String content, boolean isPassword)
+               {
+                       this(parent, title, new String[] { content }, isPassword);
+               }
+
+               public EnterSomethingDialog(JFrame parent, String title, String[] content, boolean isPassword)
+               {
+                       super(parent, title, true);
+
+                       this.isPassword = isPassword;
+
+                       JPanel pan = new JPanel();
+                       pan.setLayout(new BoxLayout(pan, BoxLayout.Y_AXIS));
+
+                       for (int i = 0; i < content.length; i++)
+                       {
+                               if ((content[i] == null) || (content[i] == ""))
+                                       continue;
+                               JLabel contentLabel = new JLabel(content[i]);
+                               pan.add(contentLabel);
+
+                       }
+
+                       answerField = new JTextField(20);
+                       passwordField = new JPasswordField(20);
+
+                       if (isPassword)
+                               pan.add(passwordField);
+                       else
+                               pan.add(answerField);
+
+                       KeyAdapter kl = new KeyAdapter()
+                       {
+                               public void keyTyped(KeyEvent e)
+                               {
+                                       if (e.getKeyChar() == '\n')
+                                               finish();
+                               }
+                       };
+
+                       answerField.addKeyListener(kl);
+                       passwordField.addKeyListener(kl);
+
+                       getContentPane().add(BorderLayout.CENTER, pan);
+
+                       setResizable(false);
+                       pack();
+                       setLocationRelativeTo(null);
+               }
+
+               private void finish()
+               {
+                       if (isPassword)
+                               answer = new String(passwordField.getPassword());
+                       else
+                               answer = answerField.getText();
+
+                       dispose();
+               }
+       }
+
+       /**
+        * TerminalDialog is probably the worst terminal emulator ever written - implementing
+        * a real vt100 is left as an exercise to the reader, i.e., to you =)
+        *
+        */
+       class TerminalDialog extends JDialog
+       {
+               private static final long serialVersionUID = 1L;
+
+               JPanel botPanel;
+               JButton logoffButton;
+               JTextArea terminalArea;
+
+               Session sess;
+               InputStream in;
+               OutputStream out;
+
+               int x, y;
+
+               /**
+                * This thread consumes output from the remote server and displays it in
+                * the terminal window.
+                *
+                */
+               class RemoteConsumer extends Thread
+               {
+                       char[][] lines = new char[y][];
+                       int posy = 0;
+                       int posx = 0;
+
+                       private void addText(byte[] data, int len)
+                       {
+                               for (int i = 0; i < len; i++)
+                               {
+                                       char c = (char) (data[i] & 0xff);
+
+                                       if (c == 8) // Backspace, VERASE
+                                       {
+                                               if (posx < 0)
+                                                       continue;
+                                               posx--;
+                                               continue;
+                                       }
+
+                                       if (c == '\r')
+                                       {
+                                               posx = 0;
+                                               continue;
+                                       }
+
+                                       if (c == '\n')
+                                       {
+                                               posy++;
+                                               if (posy >= y)
+                                               {
+                                                       for (int k = 1; k < y; k++)
+                                                               lines[k - 1] = lines[k];
+                                                       posy--;
+                                                       lines[y - 1] = new char[x];
+                                                       for (int k = 0; k < x; k++)
+                                                               lines[y - 1][k] = ' ';
+                                               }
+                                               continue;
+                                       }
+
+                                       if (c < 32)
+                                       {
+                                               continue;
+                                       }
+
+                                       if (posx >= x)
+                                       {
+                                               posx = 0;
+                                               posy++;
+                                               if (posy >= y)
+                                               {
+                                                       posy--;
+                                                       for (int k = 1; k < y; k++)
+                                                               lines[k - 1] = lines[k];
+                                                       lines[y - 1] = new char[x];
+                                                       for (int k = 0; k < x; k++)
+                                                               lines[y - 1][k] = ' ';
+                                               }
+                                       }
+
+                                       if (lines[posy] == null)
+                                       {
+                                               lines[posy] = new char[x];
+                                               for (int k = 0; k < x; k++)
+                                                       lines[posy][k] = ' ';
+                                       }
+
+                                       lines[posy][posx] = c;
+                                       posx++;
+                               }
+
+                               StringBuffer sb = new StringBuffer(x * y);
+
+                               for (int i = 0; i < lines.length; i++)
+                               {
+                                       if (i != 0)
+                                               sb.append('\n');
+
+                                       if (lines[i] != null)
+                                       {
+                                               sb.append(lines[i]);
+                                       }
+
+                               }
+                               setContent(sb.toString());
+                       }
+
+                       public void run()
+                       {
+                               byte[] buff = new byte[8192];
+
+                               try
+                               {
+                                       while (true)
+                                       {
+                                               int len = in.read(buff);
+                                               if (len == -1)
+                                                       return;
+                                               addText(buff, len);
+                                       }
+                               }
+                               catch (Exception e)
+                               {
+                               }
+                       }
+               }
+
+               public TerminalDialog(JFrame parent, String title, Session sess, int x, int y) throws IOException
+               {
+                       super(parent, title, true);
+
+                       this.sess = sess;
+
+                       in = sess.getStdout();
+                       out = sess.getStdin();
+
+                       this.x = x;
+                       this.y = y;
+
+                       botPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
+
+                       logoffButton = new JButton("Logout");
+                       botPanel.add(logoffButton);
+
+                       logoffButton.addActionListener(new ActionListener()
+                       {
+                               public void actionPerformed(ActionEvent e)
+                               {
+                                       /* Dispose the dialog, "setVisible(true)" method will return */
+                                       dispose();
+                               }
+                       });
+
+                       Font f = new Font("Monospaced", Font.PLAIN, 16);
+
+                       terminalArea = new JTextArea(y, x);
+                       terminalArea.setFont(f);
+                       terminalArea.setBackground(Color.BLACK);
+                       terminalArea.setForeground(Color.ORANGE);
+                       /* This is a hack. We cannot disable the caret,
+                        * since setting editable to false also changes
+                        * the meaning of the TAB key - and I want to use it in bash.
+                        * Again - this is a simple DEMO terminal =)
+                        */
+                       terminalArea.setCaretColor(Color.BLACK);
+
+                       KeyAdapter kl = new KeyAdapter()
+                       {
+                               public void keyTyped(KeyEvent e)
+                               {
+                                       int c = e.getKeyChar();
+
+                                       try
+                                       {
+                                               out.write(c);
+                                       }
+                                       catch (IOException e1)
+                                       {
+                                       }
+                                       e.consume();
+                               }
+                       };
+
+                       terminalArea.addKeyListener(kl);
+
+                       getContentPane().add(terminalArea, BorderLayout.CENTER);
+                       getContentPane().add(botPanel, BorderLayout.PAGE_END);
+
+                       setResizable(false);
+                       pack();
+                       setLocationRelativeTo(parent);
+
+                       new RemoteConsumer().start();
+               }
+
+               public void setContent(String lines)
+               {
+                       // setText is thread safe, it does not have to be called from
+                       // the Swing GUI thread.
+                       terminalArea.setText(lines);
+               }
+       }
+
+       /**
+        * This ServerHostKeyVerifier asks the user on how to proceed if a key cannot be found
+        * in the in-memory database.
+        *
+        */
+       class AdvancedVerifier implements ServerHostKeyVerifier
+       {
+               public boolean verifyServerHostKey(String hostname, int port, String serverHostKeyAlgorithm,
+                               byte[] serverHostKey) throws Exception
+               {
+                       final String host = hostname;
+                       final String algo = serverHostKeyAlgorithm;
+
+                       String message;
+
+                       /* Check database */
+
+                       int result = database.verifyHostkey(hostname, serverHostKeyAlgorithm, serverHostKey);
+
+                       switch (result)
+                       {
+                       case KnownHosts.HOSTKEY_IS_OK:
+                               return true;
+
+                       case KnownHosts.HOSTKEY_IS_NEW:
+                               message = "Do you want to accept the hostkey (type " + algo + ") from " + host + " ?\n";
+                               break;
+
+                       case KnownHosts.HOSTKEY_HAS_CHANGED:
+                               message = "WARNING! Hostkey for " + host + " has changed!\nAccept anyway?\n";
+                               break;
+
+                       default:
+                               throw new IllegalStateException();
+                       }
+
+                       /* Include the fingerprints in the message */
+
+                       String hexFingerprint = KnownHosts.createHexFingerprint(serverHostKeyAlgorithm, serverHostKey);
+                       String bubblebabbleFingerprint = KnownHosts.createBubblebabbleFingerprint(serverHostKeyAlgorithm,
+                                       serverHostKey);
+
+                       message += "Hex Fingerprint: " + hexFingerprint + "\nBubblebabble Fingerprint: " + bubblebabbleFingerprint;
+
+                       /* Now ask the user */
+
+                       int choice = JOptionPane.showConfirmDialog(loginFrame, message);
+
+                       if (choice == JOptionPane.YES_OPTION)
+                       {
+                               /* Be really paranoid. We use a hashed hostname entry */
+
+                               String hashedHostname = KnownHosts.createHashedHostname(hostname);
+
+                               /* Add the hostkey to the in-memory database */
+
+                               database.addHostkey(new String[] { hashedHostname }, serverHostKeyAlgorithm, serverHostKey);
+
+                               /* Also try to add the key to a known_host file */
+
+                               try
+                               {
+                                       KnownHosts.addHostkeyToFile(new File(knownHostPath), new String[] { hashedHostname },
+                                                       serverHostKeyAlgorithm, serverHostKey);
+                               }
+                               catch (IOException ignore)
+                               {
+                               }
+
+                               return true;
+                       }
+
+                       if (choice == JOptionPane.CANCEL_OPTION)
+                       {
+                               throw new Exception("The user aborted the server hostkey verification.");
+                       }
+
+                       return false;
+               }
+       }
+
+       /**
+        * The logic that one has to implement if "keyboard-interactive" autentication shall be
+        * supported.
+        *
+        */
+       class InteractiveLogic implements InteractiveCallback
+       {
+               int promptCount = 0;
+               String lastError;
+
+               public InteractiveLogic(String lastError)
+               {
+                       this.lastError = lastError;
+               }
+
+               /* the callback may be invoked several times, depending on how many questions-sets the server sends */
+
+               public String[] replyToChallenge(String name, String instruction, int numPrompts, String[] prompt,
+                               boolean[] echo) throws IOException
+               {
+                       String[] result = new String[numPrompts];
+
+                       for (int i = 0; i < numPrompts; i++)
+                       {
+                               /* Often, servers just send empty strings for "name" and "instruction" */
+
+                               String[] content = new String[] { lastError, name, instruction, prompt[i] };
+
+                               if (lastError != null)
+                               {
+                                       /* show lastError only once */
+                                       lastError = null;
+                               }
+
+                               EnterSomethingDialog esd = new EnterSomethingDialog(loginFrame, "Keyboard Interactive Authentication",
+                                               content, !echo[i]);
+
+                               esd.setVisible(true);
+
+                               if (esd.answer == null)
+                                       throw new IOException("Login aborted by user");
+
+                               result[i] = esd.answer;
+                               promptCount++;
+                       }
+
+                       return result;
+               }
+
+               /* We maintain a prompt counter - this enables the detection of situations where the ssh
+                * server is signaling "authentication failed" even though it did not send a single prompt.
+                */
+
+               public int getPromptCount()
+               {
+                       return promptCount;
+               }
+       }
+
+       /**
+        * The SSH-2 connection is established in this thread.
+        * If we would not use a separate thread (e.g., put this code in
+        * the event handler of the "Login" button) then the GUI would not
+        * be responsive (missing window repaints if you move the window etc.)
+        */
+       class ConnectionThread extends Thread
+       {
+               String hostname;
+               String username;
+
+               public ConnectionThread(String hostname, String username)
+               {
+                       this.hostname = hostname;
+                       this.username = username;
+               }
+
+               public void run()
+               {
+                       Connection conn = new Connection(hostname);
+
+                       try
+                       {
+                               /*
+                                * 
+                                * CONNECT AND VERIFY SERVER HOST KEY (with callback)
+                                * 
+                                */
+
+                               String[] hostkeyAlgos = database.getPreferredServerHostkeyAlgorithmOrder(hostname);
+
+                               if (hostkeyAlgos != null)
+                                       conn.setServerHostKeyAlgorithms(hostkeyAlgos);
+
+                               conn.connect(new AdvancedVerifier());
+
+                               /*
+                                * 
+                                * AUTHENTICATION PHASE
+                                * 
+                                */
+
+                               boolean enableKeyboardInteractive = true;
+                               boolean enableDSA = true;
+                               boolean enableRSA = true;
+
+                               String lastError = null;
+
+                               while (true)
+                               {
+                                       if ((enableDSA || enableRSA) && conn.isAuthMethodAvailable(username, "publickey"))
+                                       {
+                                               if (enableDSA)
+                                               {
+                                                       File key = new File(idDSAPath);
+
+                                                       if (key.exists())
+                                                       {
+                                                               EnterSomethingDialog esd = new EnterSomethingDialog(loginFrame, "DSA Authentication",
+                                                                               new String[] { lastError, "Enter DSA private key password:" }, true);
+                                                               esd.setVisible(true);
+
+                                                               boolean res = conn.authenticateWithPublicKey(username, key, esd.answer);
+
+                                                               if (res == true)
+                                                                       break;
+
+                                                               lastError = "DSA authentication failed.";
+                                                       }
+                                                       enableDSA = false; // do not try again
+                                               }
+
+                                               if (enableRSA)
+                                               {
+                                                       File key = new File(idRSAPath);
+
+                                                       if (key.exists())
+                                                       {
+                                                               EnterSomethingDialog esd = new EnterSomethingDialog(loginFrame, "RSA Authentication",
+                                                                               new String[] { lastError, "Enter RSA private key password:" }, true);
+                                                               esd.setVisible(true);
+
+                                                               boolean res = conn.authenticateWithPublicKey(username, key, esd.answer);
+
+                                                               if (res == true)
+                                                                       break;
+
+                                                               lastError = "RSA authentication failed.";
+                                                       }
+                                                       enableRSA = false; // do not try again
+                                               }
+
+                                               continue;
+                                       }
+
+                                       if (enableKeyboardInteractive && conn.isAuthMethodAvailable(username, "keyboard-interactive"))
+                                       {
+                                               InteractiveLogic il = new InteractiveLogic(lastError);
+
+                                               boolean res = conn.authenticateWithKeyboardInteractive(username, il);
+
+                                               if (res == true)
+                                                       break;
+
+                                               if (il.getPromptCount() == 0)
+                                               {
+                                                       // aha. the server announced that it supports "keyboard-interactive", but when
+                                                       // we asked for it, it just denied the request without sending us any prompt.
+                                                       // That happens with some server versions/configurations.
+                                                       // We just disable the "keyboard-interactive" method and notify the user.
+
+                                                       lastError = "Keyboard-interactive does not work.";
+
+                                                       enableKeyboardInteractive = false; // do not try this again
+                                               }
+                                               else
+                                               {
+                                                       lastError = "Keyboard-interactive auth failed."; // try again, if possible
+                                               }
+
+                                               continue;
+                                       }
+
+                                       if (conn.isAuthMethodAvailable(username, "password"))
+                                       {
+                                               final EnterSomethingDialog esd = new EnterSomethingDialog(loginFrame,
+                                                               "Password Authentication",
+                                                               new String[] { lastError, "Enter password for " + username }, true);
+
+                                               esd.setVisible(true);
+
+                                               if (esd.answer == null)
+                                                       throw new IOException("Login aborted by user");
+
+                                               boolean res = conn.authenticateWithPassword(username, esd.answer);
+
+                                               if (res == true)
+                                                       break;
+
+                                               lastError = "Password authentication failed."; // try again, if possible
+
+                                               continue;
+                                       }
+
+                                       throw new IOException("No supported authentication methods available.");
+                               }
+
+                               /*
+                                * 
+                                * AUTHENTICATION OK. DO SOMETHING.
+                                * 
+                                */
+
+                               Session sess = conn.openSession();
+
+                               int x_width = 90;
+                               int y_width = 30;
+
+                               sess.requestPTY("dumb", x_width, y_width, 0, 0, null);
+                               sess.startShell();
+
+                               TerminalDialog td = new TerminalDialog(loginFrame, username + "@" + hostname, sess, x_width, y_width);
+
+                               /* The following call blocks until the dialog has been closed */
+
+                               td.setVisible(true);
+
+                       }
+                       catch (IOException e)
+                       {
+                               //e.printStackTrace();
+                               JOptionPane.showMessageDialog(loginFrame, "Exception: " + e.getMessage());
+                       }
+
+                       /*
+                        * 
+                        * CLOSE THE CONNECTION.
+                        * 
+                        */
+
+                       conn.close();
+
+                       /*
+                        * 
+                        * CLOSE THE LOGIN FRAME - APPLICATION WILL BE EXITED (no more frames)
+                        * 
+                        */
+
+                       Runnable r = new Runnable()
+                       {
+                               public void run()
+                               {
+                                       loginFrame.dispose();
+                               }
+                       };
+
+                       SwingUtilities.invokeLater(r);
+               }
+       }
+
+       void loginPressed()
+       {
+               String hostname = hostField.getText().trim();
+               String username = userField.getText().trim();
+
+               if ((hostname.length() == 0) || (username.length() == 0))
+               {
+                       JOptionPane.showMessageDialog(loginFrame, "Please fill out both fields!");
+                       return;
+               }
+
+               loginButton.setEnabled(false);
+               hostField.setEnabled(false);
+               userField.setEnabled(false);
+
+               ConnectionThread ct = new ConnectionThread(hostname, username);
+
+               ct.start();
+       }
+
+       void showGUI()
+       {
+               loginFrame = new JFrame("Trilead SSH-2 for Java SwingShell");
+
+               hostLabel = new JLabel("Hostname:");
+               userLabel = new JLabel("Username:");
+
+               hostField = new JTextField("", 20);
+               userField = new JTextField("", 10);
+
+               loginButton = new JButton("Login");
+
+               loginButton.addActionListener(new ActionListener()
+               {
+                       public void actionPerformed(java.awt.event.ActionEvent e)
+                       {
+                               loginPressed();
+                       }
+               });
+
+               JPanel loginPanel = new JPanel();
+
+               loginPanel.add(hostLabel);
+               loginPanel.add(hostField);
+               loginPanel.add(userLabel);
+               loginPanel.add(userField);
+               loginPanel.add(loginButton);
+
+               loginFrame.getRootPane().setDefaultButton(loginButton);
+
+               loginFrame.getContentPane().add(loginPanel, BorderLayout.PAGE_START);
+               //loginFrame.getContentPane().add(textArea, BorderLayout.CENTER);
+
+               loginFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+
+               loginFrame.pack();
+               loginFrame.setResizable(false);
+               loginFrame.setLocationRelativeTo(null);
+               loginFrame.setVisible(true);
+       }
+
+       void startGUI()
+       {
+               Runnable r = new Runnable()
+               {
+                       public void run()
+                       {
+                               showGUI();
+                       }
+               };
+
+               SwingUtilities.invokeLater(r);
+
+       }
+
+       public static void main(String[] args)
+       {
+               SwingShell client = new SwingShell();
+               client.startGUI();
+       }
+}
diff --git a/plugins/cvs/trilead-ssh2-build213/examples/UsingKnownHosts.java b/plugins/cvs/trilead-ssh2-build213/examples/UsingKnownHosts.java
new file mode 100644 (file)
index 0000000..0672b2c
--- /dev/null
@@ -0,0 +1,82 @@
+import com.trilead.ssh2.Connection;
+import com.trilead.ssh2.KnownHosts;
+import com.trilead.ssh2.Session;
+import com.trilead.ssh2.StreamGobbler;
+
+import java.io.*;
+
+/**
+ * This example shows how to deal with "known_hosts" files.
+ *  
+ * @author Christian Plattner, plattner@trilead.com
+ * @version $Id: UsingKnownHosts.java,v 1.2 2007/10/15 12:49:57 cplattne Exp $
+ */
+public class UsingKnownHosts
+{
+       static KnownHosts database = new KnownHosts();
+
+       public static void main(String[] args) throws IOException
+       {
+               String hostname = "somehost";
+               String username = "joe";
+               String password = "joespass";
+
+               File knownHosts = new File("~/.ssh/known_hosts");
+
+               try
+               {
+                       /* Load known_hosts file into in-memory database */
+
+                       if (knownHosts.exists())
+                               database.addHostkeys(knownHosts);
+
+                       /* Create a connection instance */
+
+                       Connection conn = new Connection(hostname);
+
+                       /* Now connect and use the SimpleVerifier */
+
+                       conn.connect(new SimpleVerifier(database));
+
+                       /* Authenticate */
+
+                       boolean isAuthenticated = conn.authenticateWithPassword(username, password);
+
+                       if (isAuthenticated == false)
+                               throw new IOException("Authentication failed.");
+
+                       /* Create a session */
+
+                       Session sess = conn.openSession();
+
+                       sess.execCommand("uname -a && date && uptime && who");
+
+                       InputStream stdout = new StreamGobbler(sess.getStdout());
+                       BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
+
+                       System.out.println("Here is some information about the remote host:");
+
+                       while (true)
+                       {
+                               String line = br.readLine();
+                               if (line == null)
+                                       break;
+                               System.out.println(line);
+                       }
+
+                       /* Close this session */
+
+                       sess.close();
+
+                       /* Close the connection */
+
+                       conn.close();
+
+               }
+               catch (IOException e)
+               {
+                       e.printStackTrace(System.err);
+                       System.exit(2);
+               }
+       }
+}
diff --git a/plugins/cvs/trilead-ssh2-build213/faq/FAQ.html b/plugins/cvs/trilead-ssh2-build213/faq/FAQ.html
new file mode 100644 (file)
index 0000000..d562193
--- /dev/null
@@ -0,0 +1,389 @@
+<html>
+<title>Trilead SSH-2 for Java FAQ</title>
+<body>
+
+<a name="oben"></a>
+<h1>Trilead SSH-2 for Java FAQ</h1>
+
+<p>
+This FAQ includes information regarding topics that were discussed in e-mails between developers and users
+of the Trilead SSH-2 for Java library.
+</p>
+<p>
+Trilead homepage: <a href="http://www.trilead.ethz.ch">http://www.trilead.ethz.ch</a><br>
+Last update of FAQ: oct-15-2007.
+</p>
+<p>
+Please report bugs, typos and any kind of suggestions to support@trilead.com.
+Also, please visit our <a href="http://www.trilead.com/support">support forum</a>.
+</p>
+
+<hr>
+
+<h2>Sections:</h2>
+
+<p>
+<ul>
+<li><a href="#env">When I start program XYZ with putty (or openssh, ..., whatever) then everything works.
+However, if I use "Session.execCommand", then XYZ behaves differently or does not work at all!</a></li>
+
+<li><a href="#blocking">My program sometimes hangs when I only read output from stdout!
+Or: can you explain me the story about the shared stdout/stderr window in the SSH-2 protocol?
+Or: what is this "StreamGobbler" thing all about?</a></li>
+
+<li><a href="#buffered">Why are the session's Input- and OutputStreams not buffered?</a></li>
+
+<li><a href="#sessioncommands">Why can't I execute several commands in one single session?</a></li>
+
+<li><a href="#sessionlimit">I cannot open more than 10 concurrent sessions (or SCP clients).</a></li>
+
+<li><a href="#passwordauth">Password authentication fails, I get "Authentication method password not
+supported by the server at this stage".</a></li>
+
+<li><a href="#puttygen">Why does public key authentication fail with my putty key?</a></li>
+
+<li><a href="#catmethod">I am sending data to a remote file using the "cat" method, but not all data is being written.</a></li>
+
+<li><a href="#pumptoremote">I want to pump data into a remote file, but the amount of data to be sent
+is not known at the time the transfer starts.</a></li>
+
+<li><a href="#swingshell">Do you have an example for the usage of feature XYZ?</a></li>
+</ul>
+</p>
+
+<hr><a name="env"></a><h2>When I start program XYZ with putty (or openssh, ..., whatever) then everything
+works. However, if I use "Session.execCommand", then XYZ behaves differently or does not work at all!</h2>
+
+<h3>Short answer:</h3>
+
+<p>
+The most often source of problems when executing a command with <tt>Session.execCommand()</tt>
+are missing/wrong set environment variables on the remote machine. Make sure that the minimum needed
+environment for XYZ is the same, independentely on how the shell is being invoked.
+</p>
+
+<p>
+Example quickfix for bash users:
+</p>
+
+<p>
+<ol>
+<li>Define all your settings in the file <tt><b>~/.bashrc</b></tt></li>
+<li>Make sure that the file <tt><b>~/.bash_profile</b></tt> only contains the line <tt><b>source
+~/.bashrc</b></tt>.</li>
+<li>Before executing <tt>Session.execCommand()</tt>, do NOT aquire any type of pseudo terminal in the
+session. Be prepared to consume stdout and stderr data.</li>
+</ol>
+</p>
+
+<p>
+<b>Note:</b> If you really want to mimic the behavior of putty, then don't use Session.execCommand(), 
+instead aquire a pty (pseudo terminal) and then start a shell (use <tt>Session.requestPTY()</tt> and
+<tt>Session.startShell()</tt>). You then have to communicate with the shell process at the other end
+through stdin and stdout. However, you also have to implement terminal logic (e.g., escape sequence
+handling (unless you use a "dumb" pty), "expect-send" logic (output parsing, shell prompt detection), etc.).
+</p>
+
+<h3>Long answer:</h3>
+
+<p>
+If you login by using putty, then putty will normally request a "xterm" pty and your assigned shell
+(e.g., bash) will be started (a so called "interactive login shell"). In contrast, if you use
+<tt>Session.execCommand()</tt> to start a command then (unless you ask for it) no pty will be aquired
+and the command will be given to the shell as an argument (with the shell's "-c" option).
+</p>
+
+<p>
+The way a shell is being invoked has an effect on the set of initialization files which will be read be the shell.
+</p>
+
+<p>
+To demonstrate the difference, try the following (from the command line, e.g., with an OpenSSH client):
+</p>
+
+<p>
+<ol>
+<li>Login interactively and print the environment with the "env" command:<br>&nbsp;<br>
+<tt><b>[user@host ~] ssh 127.0.0.1<br>
+[user@host ~] env</b></tt><br>&nbsp;<br>
+</li>
+<li>Let the ssh server execute the "env" command (equivalent to using <tt>Session.executeCommand()</tt>):<br>&nbsp;<br>
+<tt><b>[user@host ~] ssh 127.0.0.1 "env"</b></tt>
+</li>
+</ol>
+</p>
+
+<p>
+If you compare the two outputs, then you will (unless you have adjusted your shell's settings)
+observe different environments.
+</p>
+
+<p>
+<b>If you are interested in the details, then please read the <tt>INVOCATION</tt> section in man page
+for the bash shell. You may notice that the definitions of "interactive" and "non-interactive" 
+(and combinations with "login") are little bit tricky.</b>
+</p>
+
+[<a href="#oben">TOP</a>]
+
+<hr><a name="blocking"></a><h2>My program sometimes hangs when I only read output from stdout!
+Or: can you explain me the story about the shared stdout/stderr window in the SSH-2 protocol?
+Or: what is this "StreamGobbler" thing all about?</h2>
+
+<p>
+In the SSH-2 low level protocol, each channel (e.g., session) has a receive window. When the remote
+SSH daemon has filled up our receive window, it must wait until we have consumed the input and are ready to accept new data.
+</p>
+
+<p>
+Unfortunately, the SSH-2 protocol defines a shared window for stderr and stdout. As a consequence,
+if, for example, the remote process produces a lot of stderr data and you never consume it, then after
+some time the local receive window will be full and the sender is blocked. If you then try to read()
+from stdout, your call will be blocked: there is no stdout data (locally) available and the SSH daemon
+cannot send you any, since the receive window is full (you would have to read some stderr data first
+to "free" up space in the receive window).
+</p>
+
+<p>
+Fortunately, Trilead SSH-2 uses a 30KB window - the above described scenario should be very rare.
+</p>
+
+<p>
+Many other SSH-2 client implementations just blindly consume any remotely produced data into a buffer
+which gets automatically extended - however, this can lead to another problem: in the extreme case
+the remote side can overflow you with data (e.g., leading to out of memory errors).
+</p>
+
+<p>
+What can you do about this?
+</p>
+
+<p>
+<ol>
+<li><b>Bad: Do nothing</b> - just work with stderr and stdout Inputstreams and hope that the 30KB
+window is enough for your application.</li>
+
+<li><b>Better, recommended for most users:</b> use two worker threads that consume remote stdout
+and stderr in parallel. Since you probably are not in the mood to program such a thing, you can use
+the StreamGobbler class supplied with Trilead SSH-2. The Streamgobbler is a special InputStream that
+uses an internal worker thread to read and buffer internally all data produced by another InputStream.
+It is very simple to use:<br> <tt><b><pre>InputStream stdout = new StreamGobbler(mysession.getStdout());
+
+InputStream stderr = new StreamGobbler(mysession.getStderr());</pre></b></tt>
+You then can access stdout and stderr in any order, in the background the StreamGobblers will
+automatically consume all data from the remote side and store in an internal buffer.</li>
+
+<li><b>Advanced:</b> you are paranoid and don't like programs that automatically extend buffers
+without asking you. You then have to implement a state machine. The condition wait facility offered by
+<tt>Session.waitForCondition()</tt> is exactly what you need: you can use it to wait until either stdout
+or stderr data has arrived and can be consumed with the two InputStreams. You can either use the return value
+of <tt>Session.waitForCondition()</tt> or check with <tt>InputStream.available()</tt>
+(for stdout and stderr) which InputStream has data available (i.e., a <tt>read()</tt> call will not block).
+Be careful when wrapping the InputStreams, also do not concurrently call read() on the InputStreams while calling
+<tt>Session.waitForCondition()</tt> (unless you know what you are doing).<br>Please have a look a the
+<tt>SingleThreadStdoutStderr.java</tt> example.</li>
+
+<li><b>The lazy way:</b> you don't mind if stdout and stderr data is being mixed into the same
+stream. Just allocate a "dumb" pty and the server will hopefully not send you any data on the stderr
+stream anymore. <b>Note:</b> by allocating a pty, the shell used to execute the command will probably 
+behave differently in terms of initialization (see also <a href="#env">this question</a>).</li>
+</ol>
+</p>
+
+
+[<a href="#oben">TOP</a>]
+
+<hr><a name="buffered"></a><h2>Why are the session's Input- and OutputStreams not buffered?</h2>
+
+<p>
+If you need it, then this library offers quite a raw type of access to the SSH-2 protocol stack.
+Of course, many people don't need that kind of low level access. If you need buffered streams,
+then you should the do the same thing as you would probably do with the streams of a TCP socket:
+wrap them with instances of BufferedInputStream and BufferedOutputStream. In case you use
+StreamGobblers for the InputStreams, then you don't need any additional wrappers, since the
+StreamGobblers implement buffering already.
+</p>
+<p>
+This code snippet will probably work well for most people:
+</p>
+<p>
+<tt>
+<pre>
+InputStream stdout = new StreamGobbler(mysession.getStdout());
+InputStream stderr = new StreamGobbler(mysession.getStderr());
+OutputStream stdin = new BufferedOutputStream(mysession.getStdin(), 8192);
+</pre>
+</tt>
+</p>
+
+[<a href="#oben">TOP</a>]
+
+<hr><a name="sessioncommands"></a><h2>Why can't I execute several commands in one single session?</h2>
+<p>
+If you use <tt>Session.execCommand()</tt>, then you indeed can only execute only one command per session.
+This is not a restriction of the library, but rather an enforcement by the underlying SSH-2 protocol
+(a <tt>Session</tt> object models the underlying SSH-2 session).
+</p>
+<p>
+There are several solutions:
+</p>
+<p>
+<ul>
+<li><b>Simple: Execute several commands in one batch</b>, e.g., something like <tt>Session.execCommand("echo
+Hello && echo again")</tt>.</li>
+<li><b>Simple: The intended way: simply open a new session for each command</b> - once you have opened a
+connection, you can ask for as many sessions as you want, they are only a "virtual" construct.</li>
+<li><b>Advanced: Don't use <tt>Session.execCommand()</tt>, but rather aquire a shell with
+<tt>Session.startShell()</tt></b>. See also <a href="#env">this question</a>.</li>
+</ul>
+</p>
+
+
+[<a href="#oben">TOP</a>]
+
+<hr><a name="sessionlimit"></a><h2>I cannot open more than 10 concurrent sessions (or SCP clients).</h2>
+<p>
+You are probably using OpenSSH. By looking at their source code you will find out that there
+is a hard-coded constant called MAX_SESSIONS in the session.c file which is set to "10" by default.
+This is a per connection limit. Unfortunately, it is not a run-time tunable parameter.
+However, this limit has no effect on the number of concurrent port forwardings. Please note: this information
+is based on the OpenSSH 4.3 release.
+</p>
+<p>
+Possible solutions:
+<ul>
+<li>(a) Recompile your SSH daemon</li>
+<li>(b) Try to live with this limit and keep the number of concurrent sessions <= 10.</li>
+<li>(c) Distribute your sessions over multiple concurrent SSH connections.</li>
+</ul>
+</p>
+<p>
+Just for completeness: starting from release 210, the thrown exception may look as follows:<br>
+<tt>
+<pre>
+java.io.IOException: Could not open channel (The server refused to open the channel (SSH_OPEN_ADMINISTRATIVELY_PROHIBITED, 'open failed'))
+</pre>
+</tt>
+</p>
+
+[<a href="#oben">TOP</a>]
+
+<hr><a name="passwordauth"></a><h2>Password authentication fails, I get "Authentication method password
+not supported by the server at this stage".</h2>
+
+<p>
+Many default SSH server installations are configured to refuse the authentication type "password".
+Often, they only accept "publickey" and "keyboard-interactive". You have different options:
+</p>
+
+<p>
+<ul>
+<li><b>Enable password authentication.</b> E.g., in case of OpenSSH on Fedora, edit
+<code>/etc/sshd/sshd_config</code> and change the value of "PasswordAuthentication" to "yes",
+then send a HUP signal to the daemon so that it re-reads its configuration.</li>
+<li><b>Switch to public-key authentication.</b> Probably the best choice.</li>
+<li><b>Try to use keyboard-interactive authentication.</b> If you have a GUI that interacts with a user,
+then this is doable (check out the SwingShell.java example).</li>
+</ul>
+</p>
+
+<p>
+In general it is a good idea to call either <code>Connection.getRemainingAuthMethods()</code>
+or <code>Connection.isAuthMethodAvailable()</code> before using a certain authentication method.
+</p>
+
+<p>
+Please note that most servers let you in after one successful authentication step. However, in rare cases
+you may encounter servers that need several steps. I.e., if one of the <code>Connection.authenticateWithXXX()</code>
+methods returns <code>false</code> and <code>Connection.isAuthenticationPartialSuccess()</code> returns
+<code>true</code>, then further authentication is needed. For each step, to find out which authentication methods
+may proceed, you can use either the <code>Connection.getRemainingAuthMethods()</code> 
+or the <code>Connection.isAuthMethodAvailable()</code> method. Again, please have a look into the
+SwingShell.java example.
+</p>
+
+[<a href="#oben">TOP</a>]
+
+<hr><a name="puttygen"></a><h2>Why does public key authentication fail with my putty key?</h2>
+<p>
+When using putty private keys (e.g., .ppk files) with public key authentication, you get a
+"Publickey authentication failed" exception. The reason is that the library currently is not able to
+directly handle private keys in the proprietary format used by putty. However, you can use the
+"puttygen" tool (from the putty website) to convert your key to the desired format: load your key,
+then go to the conversions menu and select "Save OpenSSH key" (which saves the key in openssl PEM format,
+e.g., call it "private.pem").
+</p>
+
+[<a href="#oben">TOP</a>]
+
+<hr><a name="catmethod"></a><h2>I am sending data to a remote file using the "cat" method, but not all data is being written.</h2>
+<p>
+Please read carefully the answer to the following <a href="#pumptoremote">question</a>.
+</p>
+
+[<a href="#oben">TOP</a>]
+
+
+<hr><a name="pumptoremote"></a><h2>I want to pump data into a remote file, but the amount of data to be sent
+is not known at the time the transfer starts.</h2>
+<p>
+The SCP protocol communicates the amount of data to be sent at the start of the transfer,
+so SCP remains out of consideration. Possible other solutions:
+<ul>
+<li>Use the SFTP client. Recommended.</li>
+<li>Execute "cat > filename.txt" on the remote side and pump the data into stdin. This method is NOT recommended (and won't work on Windows...).</li>
+</ul>
+</p>
+<p>
+Be careful if you use the "cat" approach, as it may happen that not all your data will be
+written. If you close the stdin stream and immediatelly close the session (or the whole connection) then
+some SSH servers do not send the pending data to the process being executed ("cat" in this case).
+You have to wait until "cat" has received the EOF and terminates before closing the session. However,
+waiting for the termination may not always work, since SSH servers sometimes "forget" to send the exit code
+of the remote process. The following code MAY work:
+</p>
+<p>
+<tt>
+<pre>
+Session sess = conn.openSession();
+sess.execCommand("cat > test.txt");
+OutputStream stdin = sess.getStdin();
+
+... out.write(...) ... out.write(...) ...
+
+/* The following flush() is only needed if you wrap the  */
+/* stdin stream (e.g., with a BufferedOutputStream).     */
+out.flush();
+
+/* Now let's send EOF */
+out.close();
+
+/* Let's wait until cat has finished                     */
+sess.waitForCondition(ChannelCondition.EXIT_STATUS, 2000);
+/* Better: put the above statement into a while loop!    */
+/* In ANY CASE: read the Javadocs for waitForCondition() */
+
+/* Show exit status, if available (otherwise "null")     */
+System.out.println("ExitCode: " + sess.getExitStatus());
+/* Now its hopefully safe to close the session           */
+sess.close();
+</pre>
+</tt>
+</p>
+<p>
+(Just a thought for another solution: execute <code>cat > test.txt && echo "FINISHED"</code>
+and wait until you get "FINISHED" on stdout... - try it on your own risk =)
+</p>
+
+[<a href="#oben">TOP</a>]
+
+<hr><a name="swingshell"></a><h2>Do you have an example for the usage of feature XYZ?</h2>
+<p>
+Please have at look at the examples section in the distribution, especially at the SwingShell.java example.
+</p>
+
+[<a href="#oben">TOP</a>]
+
+</body>
+</html>
+
diff --git a/plugins/cvs/trilead-ssh2-build213/javadoc/allclasses-frame.html b/plugins/cvs/trilead-ssh2-build213/javadoc/allclasses-frame.html
new file mode 100644 (file)
index 0000000..b65cc46
--- /dev/null
@@ -0,0 +1,72 @@
+<!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:50 CEST 2008 -->
+<TITLE>
+All Classes
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="com/trilead/ssh2/ChannelCondition.html" title="interface in com.trilead.ssh2" target="classFrame"><I>ChannelCondition</I></A>
+<BR>
+<A HREF="com/trilead/ssh2/Connection.html" title="class in com.trilead.ssh2" target="classFrame">Connection</A>
+<BR>
+<A HREF="com/trilead/ssh2/ConnectionInfo.html" title="class in com.trilead.ssh2" target="classFrame">ConnectionInfo</A>
+<BR>
+<A HREF="com/trilead/ssh2/ConnectionMonitor.html" title="interface in com.trilead.ssh2" target="classFrame"><I>ConnectionMonitor</I></A>
+<BR>
+<A HREF="com/trilead/ssh2/DebugLogger.html" title="interface in com.trilead.ssh2" target="classFrame"><I>DebugLogger</I></A>
+<BR>
+<A HREF="com/trilead/ssh2/DHGexParameters.html" title="class in com.trilead.ssh2" target="classFrame">DHGexParameters</A>
+<BR>
+<A HREF="com/trilead/ssh2/HTTPProxyData.html" title="class in com.trilead.ssh2" target="classFrame">HTTPProxyData</A>
+<BR>
+<A HREF="com/trilead/ssh2/HTTPProxyException.html" title="class in com.trilead.ssh2" target="classFrame">HTTPProxyException</A>
+<BR>
+<A HREF="com/trilead/ssh2/InteractiveCallback.html" title="interface in com.trilead.ssh2" target="classFrame"><I>InteractiveCallback</I></A>
+<BR>
+<A HREF="com/trilead/ssh2/KnownHosts.html" title="class in com.trilead.ssh2" target="classFrame">KnownHosts</A>
+<BR>
+<A HREF="com/trilead/ssh2/LocalPortForwarder.html" title="class in com.trilead.ssh2" target="classFrame">LocalPortForwarder</A>
+<BR>
+<A HREF="com/trilead/ssh2/LocalStreamForwarder.html" title="class in com.trilead.ssh2" target="classFrame">LocalStreamForwarder</A>
+<BR>
+<A HREF="com/trilead/ssh2/ProxyData.html" title="interface in com.trilead.ssh2" target="classFrame"><I>ProxyData</I></A>
+<BR>
+<A HREF="com/trilead/ssh2/SCPClient.html" title="class in com.trilead.ssh2" target="classFrame">SCPClient</A>
+<BR>
+<A HREF="com/trilead/ssh2/ServerHostKeyVerifier.html" title="interface in com.trilead.ssh2" target="classFrame"><I>ServerHostKeyVerifier</I></A>
+<BR>
+<A HREF="com/trilead/ssh2/Session.html" title="class in com.trilead.ssh2" target="classFrame">Session</A>
+<BR>
+<A HREF="com/trilead/ssh2/SFTPException.html" title="class in com.trilead.ssh2" target="classFrame">SFTPException</A>
+<BR>
+<A HREF="com/trilead/ssh2/SFTPv3Client.html" title="class in com.trilead.ssh2" target="classFrame">SFTPv3Client</A>
+<BR>
+<A HREF="com/trilead/ssh2/SFTPv3DirectoryEntry.html" title="class in com.trilead.ssh2" target="classFrame">SFTPv3DirectoryEntry</A>
+<BR>
+<A HREF="com/trilead/ssh2/SFTPv3FileAttributes.html" title="class in com.trilead.ssh2" target="classFrame">SFTPv3FileAttributes</A>
+<BR>
+<A HREF="com/trilead/ssh2/SFTPv3FileHandle.html" title="class in com.trilead.ssh2" target="classFrame">SFTPv3FileHandle</A>
+<BR>
+<A HREF="com/trilead/ssh2/StreamGobbler.html" title="class in com.trilead.ssh2" target="classFrame">StreamGobbler</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/plugins/cvs/trilead-ssh2-build213/javadoc/allclasses-noframe.html b/plugins/cvs/trilead-ssh2-build213/javadoc/allclasses-noframe.html
new file mode 100644 (file)
index 0000000..5fa20c9
--- /dev/null
@@ -0,0 +1,72 @@
+<!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:50 CEST 2008 -->
+<TITLE>
+All Classes
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="com/trilead/ssh2/ChannelCondition.html" title="interface in com.trilead.ssh2"><I>ChannelCondition</I></A>
+<BR>
+<A HREF="com/trilead/ssh2/Connection.html" title="class in com.trilead.ssh2">Connection</A>
+<BR>
+<A HREF="com/trilead/ssh2/ConnectionInfo.html" title="class in com.trilead.ssh2">ConnectionInfo</A>
+<BR>
+<A HREF="com/trilead/ssh2/ConnectionMonitor.html" title="interface in com.trilead.ssh2"><I>ConnectionMonitor</I></A>
+<BR>
+<A HREF="com/trilead/ssh2/DebugLogger.html" title="interface in com.trilead.ssh2"><I>DebugLogger</I></A>
+<BR>
+<A HREF="com/trilead/ssh2/DHGexParameters.html" title="class in com.trilead.ssh2">DHGexParameters</A>
+<BR>
+<A HREF="com/trilead/ssh2/HTTPProxyData.html" title="class in com.trilead.ssh2">HTTPProxyData</A>
+<BR>
+<A HREF="com/trilead/ssh2/HTTPProxyException.html" title="class in com.trilead.ssh2">HTTPProxyException</A>
+<BR>
+<A HREF="com/trilead/ssh2/InteractiveCallback.html" title="interface in com.trilead.ssh2"><I>InteractiveCallback</I></A>
+<BR>
+<A HREF="com/trilead/ssh2/KnownHosts.html" title="class in com.trilead.ssh2">KnownHosts</A>
+<BR>
+<A HREF="com/trilead/ssh2/LocalPortForwarder.html" title="class in com.trilead.ssh2">LocalPortForwarder</A>
+<BR>
+<A HREF="com/trilead/ssh2/LocalStreamForwarder.html" title="class in com.trilead.ssh2">LocalStreamForwarder</A>
+<BR>
+<A HREF="com/trilead/ssh2/ProxyData.html" title="interface in com.trilead.ssh2"><I>ProxyData</I></A>
+<BR>
+<A HREF="com/trilead/ssh2/SCPClient.html" title="class in com.trilead.ssh2">SCPClient</A>
+<BR>
+<A HREF="com/trilead/ssh2/ServerHostKeyVerifier.html" title="interface in com.trilead.ssh2"><I>ServerHostKeyVerifier</I></A>
+<BR>
+<A HREF="com/trilead/ssh2/Session.html" title="class in com.trilead.ssh2">Session</A>
+<BR>
+<A HREF="com/trilead/ssh2/SFTPException.html" title="class in com.trilead.ssh2">SFTPException</A>
+<BR>
+<A HREF="com/trilead/ssh2/SFTPv3Client.html" title="class in com.trilead.ssh2">SFTPv3Client</A>
+<BR>
+<A HREF="com/trilead/ssh2/SFTPv3DirectoryEntry.html" title="class in com.trilead.ssh2">SFTPv3DirectoryEntry</A>
+<BR>
+<A HREF="com/trilead/ssh2/SFTPv3FileAttributes.html" title="class in com.trilead.ssh2">SFTPv3FileAttributes</A>
+<BR>
+<A HREF="com/trilead/ssh2/SFTPv3FileHandle.html" title="class in com.trilead.ssh2">SFTPv3FileHandle</A>
+<BR>
+<A HREF="com/trilead/ssh2/StreamGobbler.html" title="class in com.trilead.ssh2">StreamGobbler</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/ChannelCondition.html b/plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/ChannelCondition.html
new file mode 100644 (file)
index 0000000..6440c1b
--- /dev/null
@@ -0,0 +1,346 @@
+<!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>
+ChannelCondition
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.trilead.ssh2.ChannelCondition interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ChannelCondition";
+}
+</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/ChannelCondition.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;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../com/trilead/ssh2/Connection.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/ChannelCondition.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ChannelCondition.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;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</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>
+Interface ChannelCondition</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>ChannelCondition</B></DL>
+</PRE>
+
+<P>
+Contains constants that can be used to specify what conditions to wait for on
+ a SSH-2 channel (e.g., represented by a <A HREF="../../../com/trilead/ssh2/Session.html" title="class in com.trilead.ssh2"><CODE>Session</CODE></A>).
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+  <DD>$Id: ChannelCondition.java,v 1.1 2007/10/15 12:49:56 cplattne Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Christian Plattner, plattner@trilead.com</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../com/trilead/ssh2/Session.html#waitForCondition(int, long)"><CODE>Session.waitForCondition(int, long)</CODE></A></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;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/trilead/ssh2/ChannelCondition.html#CLOSED">CLOSED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The underlying SSH-2 channel, however not necessarily the whole connection,
+ has been closed.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/trilead/ssh2/ChannelCondition.html#EOF">EOF</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EOF on has been reached, no more _new_ stdout or stderr data will arrive
+ from the remote server.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/trilead/ssh2/ChannelCondition.html#EXIT_SIGNAL">EXIT_SIGNAL</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The exit signal of the remote process is available.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/trilead/ssh2/ChannelCondition.html#EXIT_STATUS">EXIT_STATUS</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The exit status of the remote process is available.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/trilead/ssh2/ChannelCondition.html#STDERR_DATA">STDERR_DATA</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;There is stderr data available that is ready to be consumed.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/trilead/ssh2/ChannelCondition.html#STDOUT_DATA">STDOUT_DATA</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;There is stdout data available that is ready to be consumed.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/trilead/ssh2/ChannelCondition.html#TIMEOUT">TIMEOUT</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A timeout has occurred, none of your requested conditions is fulfilled.</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="TIMEOUT"><!-- --></A><H3>
+TIMEOUT</H3>
+<PRE>
+static final int <B>TIMEOUT</B></PRE>
+<DL>
+<DD>A timeout has occurred, none of your requested conditions is fulfilled.
+ However, other conditions may be true - therefore, NEVER use the "=="
+ operator to test for this (or any other) condition. Always use
+ something like <code>((cond & ChannelCondition.CLOSED) != 0)</code>.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.trilead.ssh2.ChannelCondition.TIMEOUT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="CLOSED"><!-- --></A><H3>
+CLOSED</H3>
+<PRE>
+static final int <B>CLOSED</B></PRE>
+<DL>
+<DD>The underlying SSH-2 channel, however not necessarily the whole connection,
+ has been closed. This implies <code>EOF</code>. Note that there may still
+ be unread stdout or stderr data in the local window, i.e, <code>STDOUT_DATA</code>
+ or/and <code>STDERR_DATA</code> may be set at the same time.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.trilead.ssh2.ChannelCondition.CLOSED">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="STDOUT_DATA"><!-- --></A><H3>
+STDOUT_DATA</H3>
+<PRE>
+static final int <B>STDOUT_DATA</B></PRE>
+<DL>
+<DD>There is stdout data available that is ready to be consumed.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.trilead.ssh2.ChannelCondition.STDOUT_DATA">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="STDERR_DATA"><!-- --></A><H3>
+STDERR_DATA</H3>
+<PRE>
+static final int <B>STDERR_DATA</B></PRE>
+<DL>
+<DD>There is stderr data available that is ready to be consumed.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.trilead.ssh2.ChannelCondition.STDERR_DATA">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="EOF"><!-- --></A><H3>
+EOF</H3>
+<PRE>
+static final int <B>EOF</B></PRE>
+<DL>
+<DD>EOF on has been reached, no more _new_ stdout or stderr data will arrive
+ from the remote server. However, there may be unread stdout or stderr
+ data, i.e, <code>STDOUT_DATA</code> or/and <code>STDERR_DATA</code>
+ may be set at the same time.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.trilead.ssh2.ChannelCondition.EOF">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="EXIT_STATUS"><!-- --></A><H3>
+EXIT_STATUS</H3>
+<PRE>
+static final int <B>EXIT_STATUS</B></PRE>
+<DL>
+<DD>The exit status of the remote process is available.
+ Some servers never send the exist status, or occasionally "forget" to do so.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.trilead.ssh2.ChannelCondition.EXIT_STATUS">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="EXIT_SIGNAL"><!-- --></A><H3>
+EXIT_SIGNAL</H3>
+<PRE>
+static final int <B>EXIT_SIGNAL</B></PRE>
+<DL>
+<DD>The exit signal of the remote process is available.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.trilead.ssh2.ChannelCondition.EXIT_SIGNAL">Constant Field Values</A></DL>
+</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/ChannelCondition.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;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../com/trilead/ssh2/Connection.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/ChannelCondition.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ChannelCondition.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;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/Connection.html b/plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/Connection.html
new file mode 100644 (file)
index 0000000..d0e9504
--- /dev/null
@@ -0,0 +1,1745 @@
+<!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>
diff --git a/plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/ConnectionInfo.html b/plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/ConnectionInfo.html
new file mode 100644 (file)
index 0000000..33341f1
--- /dev/null
@@ -0,0 +1,419 @@
+<!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:49 CEST 2008 -->
+<TITLE>
+ConnectionInfo
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.trilead.ssh2.ConnectionInfo class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ConnectionInfo";
+}
+</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/ConnectionInfo.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/Connection.html" title="class in com.trilead.ssh2"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/trilead/ssh2/ConnectionMonitor.html" title="interface 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/ConnectionInfo.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ConnectionInfo.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="#methods_inherited_from_class_java.lang.Object">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;METHOD</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 ConnectionInfo</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.trilead.ssh2.ConnectionInfo</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>ConnectionInfo</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+In most cases you probably do not need the information contained in here.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+  <DD>$Id: ConnectionInfo.java,v 1.1 2007/10/15 12:49:56 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>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/trilead/ssh2/ConnectionInfo.html#clientToServerCryptoAlgorithm">clientToServerCryptoAlgorithm</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The currently used crypto algorithm for packets from to the client to the
+ server.</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/ConnectionInfo.html#clientToServerMACAlgorithm">clientToServerMACAlgorithm</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The currently used MAC algorithm for packets from to the client to the
+ server.</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/ConnectionInfo.html#keyExchangeAlgorithm">keyExchangeAlgorithm</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The used key exchange (KEX) algorithm in the latest key exchange.</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/ConnectionInfo.html#keyExchangeCounter">keyExchangeCounter</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Number of kex exchanges performed on this connection so far.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/trilead/ssh2/ConnectionInfo.html#serverHostKey">serverHostKey</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The server host key that was sent during the latest key exchange.</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/ConnectionInfo.html#serverHostKeyAlgorithm">serverHostKeyAlgorithm</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The type of the server host key (currently either "ssh-dss" or
+ "ssh-rsa").</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/ConnectionInfo.html#serverToClientCryptoAlgorithm">serverToClientCryptoAlgorithm</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The currently used crypto algorithm for packets from to the server to the
+ client.</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/ConnectionInfo.html#serverToClientMACAlgorithm">serverToClientMACAlgorithm</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The currently used MAC algorithm for packets from to the server to the
+ client.</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/ConnectionInfo.html#ConnectionInfo()">ConnectionInfo</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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>
+</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="keyExchangeAlgorithm"><!-- --></A><H3>
+keyExchangeAlgorithm</H3>
+<PRE>
+public java.lang.String <B>keyExchangeAlgorithm</B></PRE>
+<DL>
+<DD>The used key exchange (KEX) algorithm in the latest key exchange.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="clientToServerCryptoAlgorithm"><!-- --></A><H3>
+clientToServerCryptoAlgorithm</H3>
+<PRE>
+public java.lang.String <B>clientToServerCryptoAlgorithm</B></PRE>
+<DL>
+<DD>The currently used crypto algorithm for packets from to the client to the
+ server.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="serverToClientCryptoAlgorithm"><!-- --></A><H3>
+serverToClientCryptoAlgorithm</H3>
+<PRE>
+public java.lang.String <B>serverToClientCryptoAlgorithm</B></PRE>
+<DL>
+<DD>The currently used crypto algorithm for packets from to the server to the
+ client.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="clientToServerMACAlgorithm"><!-- --></A><H3>
+clientToServerMACAlgorithm</H3>
+<PRE>
+public java.lang.String <B>clientToServerMACAlgorithm</B></PRE>
+<DL>
+<DD>The currently used MAC algorithm for packets from to the client to the
+ server.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="serverToClientMACAlgorithm"><!-- --></A><H3>
+serverToClientMACAlgorithm</H3>
+<PRE>
+public java.lang.String <B>serverToClientMACAlgorithm</B></PRE>
+<DL>
+<DD>The currently used MAC algorithm for packets from to the server to the
+ client.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="serverHostKeyAlgorithm"><!-- --></A><H3>
+serverHostKeyAlgorithm</H3>
+<PRE>
+public java.lang.String <B>serverHostKeyAlgorithm</B></PRE>
+<DL>
+<DD>The type of the server host key (currently either "ssh-dss" or
+ "ssh-rsa").
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="serverHostKey"><!-- --></A><H3>
+serverHostKey</H3>
+<PRE>
+public byte[] <B>serverHostKey</B></PRE>
+<DL>
+<DD>The server host key that was sent during the latest key exchange.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="keyExchangeCounter"><!-- --></A><H3>
+keyExchangeCounter</H3>
+<PRE>
+public int <B>keyExchangeCounter</B></PRE>
+<DL>
+<DD>Number of kex exchanges performed on this connection so far.
+<P>
+<DL>
+</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="ConnectionInfo()"><!-- --></A><H3>
+ConnectionInfo</H3>
+<PRE>
+public <B>ConnectionInfo</B>()</PRE>
+<DL>
+</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/ConnectionInfo.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/Connection.html" title="class in com.trilead.ssh2"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/trilead/ssh2/ConnectionMonitor.html" title="interface 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/ConnectionInfo.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ConnectionInfo.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="#methods_inherited_from_class_java.lang.Object">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;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/ConnectionMonitor.html b/plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/ConnectionMonitor.html
new file mode 100644 (file)
index 0000000..87c668b
--- /dev/null
@@ -0,0 +1,229 @@
+<!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:49 CEST 2008 -->
+<TITLE>
+ConnectionMonitor
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.trilead.ssh2.ConnectionMonitor interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ConnectionMonitor";
+}
+</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/ConnectionMonitor.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/ConnectionInfo.html" title="class in com.trilead.ssh2"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/trilead/ssh2/DebugLogger.html" title="interface 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/ConnectionMonitor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ConnectionMonitor.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;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&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>
+Interface ConnectionMonitor</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>ConnectionMonitor</B></DL>
+</PRE>
+
+<P>
+A <code>ConnectionMonitor</code> is used to get notified when the
+ underlying socket of a connection is closed.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+  <DD>$Id: ConnectionMonitor.java,v 1.1 2007/10/15 12:49:56 cplattne Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Christian Plattner, plattner@trilead.com</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== 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/ConnectionMonitor.html#connectionLost(java.lang.Throwable)">connectionLost</A></B>(java.lang.Throwable&nbsp;reason)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method is called after the connection's underlying
+ socket has been closed.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ 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="connectionLost(java.lang.Throwable)"><!-- --></A><H3>
+connectionLost</H3>
+<PRE>
+void <B>connectionLost</B>(java.lang.Throwable&nbsp;reason)</PRE>
+<DL>
+<DD>This method is called after the connection's underlying
+ socket has been closed. E.g., due to the <A HREF="../../../com/trilead/ssh2/Connection.html#close()"><CODE>Connection.close()</CODE></A> request of the
+ user, if the peer closed the connection, due to a fatal error during connect()
+ (also if the socket cannot be established) or if a fatal error occured on
+ an established connection.
+ <p>
+ This is an experimental feature.
+ <p>
+ You MUST NOT make any assumption about the thread that invokes this method.
+ <p>
+ <b>Please note: if the connection is not connected (e.g., there was no successful
+ connect() call), then the invocation of <A HREF="../../../com/trilead/ssh2/Connection.html#close()"><CODE>Connection.close()</CODE></A> will NOT trigger
+ this method.</b>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>reason</CODE> - Includes an indication why the socket was closed.<DT><B>See Also:</B><DD><A HREF="../../../com/trilead/ssh2/Connection.html#addConnectionMonitor(com.trilead.ssh2.ConnectionMonitor)"><CODE>Connection.addConnectionMonitor(ConnectionMonitor)</CODE></A></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/ConnectionMonitor.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/ConnectionInfo.html" title="class in com.trilead.ssh2"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/trilead/ssh2/DebugLogger.html" title="interface 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/ConnectionMonitor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ConnectionMonitor.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;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&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>
diff --git a/plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/DHGexParameters.html b/plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/DHGexParameters.html
new file mode 100644 (file)
index 0000000..040cc69
--- /dev/null
@@ -0,0 +1,368 @@
+<!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:49 CEST 2008 -->
+<TITLE>
+DHGexParameters
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.trilead.ssh2.DHGexParameters class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="DHGexParameters";
+}
+</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/DHGexParameters.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/DebugLogger.html" title="interface in com.trilead.ssh2"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/trilead/ssh2/HTTPProxyData.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/DHGexParameters.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="DHGexParameters.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;FIELD&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;FIELD&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 DHGexParameters</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.trilead.ssh2.DHGexParameters</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>DHGexParameters</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+A <code>DHGexParameters</code> object can be used to specify parameters for
+ the diffie-hellman group exchange.
+ <p>
+ Depending on which constructor is used, either the use of a
+ <code>SSH_MSG_KEX_DH_GEX_REQUEST</code> or <code>SSH_MSG_KEX_DH_GEX_REQUEST_OLD</code>
+ can be forced.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+  <DD>$Id: DHGexParameters.java,v 1.1 2007/10/15 12:49:56 cplattne Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Christian Plattner, plattner@trilead.com</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../com/trilead/ssh2/Connection.html#setDHGexParameters(com.trilead.ssh2.DHGexParameters)"><CODE>Connection.setDHGexParameters(DHGexParameters)</CODE></A></DL>
+<HR>
+
+<P>
+
+<!-- ======== 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/DHGexParameters.html#DHGexParameters()">DHGexParameters</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Same as calling <A HREF="../../../com/trilead/ssh2/DHGexParameters.html#DHGexParameters(int, int, int)"><CODE>DHGexParameters(1024, 1024, 4096)</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/trilead/ssh2/DHGexParameters.html#DHGexParameters(int)">DHGexParameters</A></B>(int&nbsp;pref_group_len)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This constructor can be used to force the sending of a
+ <code>SSH_MSG_KEX_DH_GEX_REQUEST_OLD</code> request.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/trilead/ssh2/DHGexParameters.html#DHGexParameters(int, int, int)">DHGexParameters</A></B>(int&nbsp;min_group_len,
+                int&nbsp;pref_group_len,
+                int&nbsp;max_group_len)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This constructor can be used to force the sending of a
+ <code>SSH_MSG_KEX_DH_GEX_REQUEST</code> request.</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;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/trilead/ssh2/DHGexParameters.html#getMax_group_len()">getMax_group_len</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the maximum group length.</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/DHGexParameters.html#getMin_group_len()">getMin_group_len</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the minimum group length.</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/DHGexParameters.html#getPref_group_len()">getPref_group_len</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the preferred group length.</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>
+
+<!-- ========= 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="DHGexParameters()"><!-- --></A><H3>
+DHGexParameters</H3>
+<PRE>
+public <B>DHGexParameters</B>()</PRE>
+<DL>
+<DD>Same as calling <A HREF="../../../com/trilead/ssh2/DHGexParameters.html#DHGexParameters(int, int, int)"><CODE>DHGexParameters(1024, 1024, 4096)</CODE></A>.
+ This is also the default used by the Connection class.
+<P>
+</DL>
+<HR>
+
+<A NAME="DHGexParameters(int)"><!-- --></A><H3>
+DHGexParameters</H3>
+<PRE>
+public <B>DHGexParameters</B>(int&nbsp;pref_group_len)</PRE>
+<DL>
+<DD>This constructor can be used to force the sending of a
+ <code>SSH_MSG_KEX_DH_GEX_REQUEST_OLD</code> request.
+ Internally, the minimum and maximum group lengths will
+ be set to zero.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>pref_group_len</CODE> - has to be &gt= 1024 and &lt;= 8192</DL>
+</DL>
+<HR>
+
+<A NAME="DHGexParameters(int, int, int)"><!-- --></A><H3>
+DHGexParameters</H3>
+<PRE>
+public <B>DHGexParameters</B>(int&nbsp;min_group_len,
+                       int&nbsp;pref_group_len,
+                       int&nbsp;max_group_len)</PRE>
+<DL>
+<DD>This constructor can be used to force the sending of a
+ <code>SSH_MSG_KEX_DH_GEX_REQUEST</code> request.
+ <p>
+ Note: older OpenSSH servers don't understand this request, in which
+ case you should use the <A HREF="../../../com/trilead/ssh2/DHGexParameters.html#DHGexParameters(int)"><CODE>DHGexParameters(int)</CODE></A> constructor.
+ <p>
+ All values have to be &gt= 1024 and &lt;= 8192. Furthermore,
+ min_group_len &lt;= pref_group_len &lt;= max_group_len.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>min_group_len</CODE> - <DD><CODE>pref_group_len</CODE> - <DD><CODE>max_group_len</CODE> - </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="getMax_group_len()"><!-- --></A><H3>
+getMax_group_len</H3>
+<PRE>
+public int <B>getMax_group_len</B>()</PRE>
+<DL>
+<DD>Get the maximum group length.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the maximum group length, may be <code>zero</code> if
+         SSH_MSG_KEX_DH_GEX_REQUEST_OLD should be requested</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMin_group_len()"><!-- --></A><H3>
+getMin_group_len</H3>
+<PRE>
+public int <B>getMin_group_len</B>()</PRE>
+<DL>
+<DD>Get the minimum group length.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>minimum group length, may be <code>zero</code> if
+         SSH_MSG_KEX_DH_GEX_REQUEST_OLD should be requested</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getPref_group_len()"><!-- --></A><H3>
+getPref_group_len</H3>
+<PRE>
+public int <B>getPref_group_len</B>()</PRE>
+<DL>
+<DD>Get the preferred group length.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the preferred group length</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/DHGexParameters.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/DebugLogger.html" title="interface in com.trilead.ssh2"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/trilead/ssh2/HTTPProxyData.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/DHGexParameters.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="DHGexParameters.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;FIELD&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;FIELD&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>
diff --git a/plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/DebugLogger.html b/plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/DebugLogger.html
new file mode 100644 (file)
index 0000000..0f6865e
--- /dev/null
@@ -0,0 +1,220 @@
+<!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:49 CEST 2008 -->
+<TITLE>
+DebugLogger
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.trilead.ssh2.DebugLogger interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="DebugLogger";
+}
+</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/DebugLogger.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/ConnectionMonitor.html" title="interface in com.trilead.ssh2"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/trilead/ssh2/DHGexParameters.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/DebugLogger.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="DebugLogger.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;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&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>
+Interface DebugLogger</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>DebugLogger</B></DL>
+</PRE>
+
+<P>
+An interface which needs to be implemented if you
+ want to capture debugging messages.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+  <DD>$Id: DebugLogger.java,v 1.1 2008/03/03 07:01:36 cplattne Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Christian Plattner, plattner@trilead.com</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../com/trilead/ssh2/Connection.html#enableDebugging(boolean, com.trilead.ssh2.DebugLogger)"><CODE>Connection.enableDebugging(boolean, DebugLogger)</CODE></A></DL>
+<HR>
+
+<P>
+
+<!-- ========== 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/DebugLogger.html#log(int, java.lang.String, java.lang.String)">log</A></B>(int&nbsp;level,
+    java.lang.String&nbsp;className,
+    java.lang.String&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log a debug message.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ 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="log(int, java.lang.String, java.lang.String)"><!-- --></A><H3>
+log</H3>
+<PRE>
+void <B>log</B>(int&nbsp;level,
+         java.lang.String&nbsp;className,
+         java.lang.String&nbsp;message)</PRE>
+<DL>
+<DD>Log a debug message.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>level</CODE> - 0-99, 99 is a the most verbose level<DD><CODE>className</CODE> - the class that generated the message<DD><CODE>message</CODE> - the debug message</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/DebugLogger.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/ConnectionMonitor.html" title="interface in com.trilead.ssh2"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/trilead/ssh2/DHGexParameters.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/DebugLogger.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="DebugLogger.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;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&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>
diff --git a/plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/HTTPProxyData.html b/plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/HTTPProxyData.html
new file mode 100644 (file)
index 0000000..e8657f7
--- /dev/null
@@ -0,0 +1,411 @@
+<!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:49 CEST 2008 -->
+<TITLE>
+HTTPProxyData
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.trilead.ssh2.HTTPProxyData class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="HTTPProxyData";
+}
+</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/HTTPProxyData.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/DHGexParameters.html" title="class in com.trilead.ssh2"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/trilead/ssh2/HTTPProxyException.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/HTTPProxyData.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="HTTPProxyData.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="#methods_inherited_from_class_java.lang.Object">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;METHOD</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 HTTPProxyData</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.trilead.ssh2.HTTPProxyData</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../com/trilead/ssh2/ProxyData.html" title="interface in com.trilead.ssh2">ProxyData</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>HTTPProxyData</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../com/trilead/ssh2/ProxyData.html" title="interface in com.trilead.ssh2">ProxyData</A></DL>
+</PRE>
+
+<P>
+A <code>HTTPProxyData</code> object is used to specify the needed connection data
+ to connect through a HTTP proxy.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+  <DD>$Id: HTTPProxyData.java,v 1.1 2007/10/15 12:49:56 cplattne Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Christian Plattner, plattner@trilead.com</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../com/trilead/ssh2/Connection.html#setProxyData(com.trilead.ssh2.ProxyData)"><CODE>Connection.setProxyData(ProxyData)</CODE></A></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>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/trilead/ssh2/HTTPProxyData.html#proxyHost">proxyHost</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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/HTTPProxyData.html#proxyPass">proxyPass</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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/HTTPProxyData.html#proxyPort">proxyPort</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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/HTTPProxyData.html#proxyUser">proxyUser</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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/HTTPProxyData.html#requestHeaderLines">requestHeaderLines</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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/HTTPProxyData.html#HTTPProxyData(java.lang.String, int)">HTTPProxyData</A></B>(java.lang.String&nbsp;proxyHost,
+              int&nbsp;proxyPort)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Same as calling <A HREF="../../../com/trilead/ssh2/HTTPProxyData.html#HTTPProxyData(java.lang.String, int, java.lang.String, java.lang.String)"><CODE>HTTPProxyData(proxyHost, proxyPort, <code>null</code>, <code>null</code>)</CODE></A></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/trilead/ssh2/HTTPProxyData.html#HTTPProxyData(java.lang.String, int, java.lang.String, java.lang.String)">HTTPProxyData</A></B>(java.lang.String&nbsp;proxyHost,
+              int&nbsp;proxyPort,
+              java.lang.String&nbsp;proxyUser,
+              java.lang.String&nbsp;proxyPass)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Same as calling <A HREF="../../../com/trilead/ssh2/HTTPProxyData.html#HTTPProxyData(java.lang.String, int, java.lang.String, java.lang.String, java.lang.String[])"><CODE>HTTPProxyData(proxyHost, proxyPort, <code>null</code>, <code>null</code>, <code>null</code>)</CODE></A></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../com/trilead/ssh2/HTTPProxyData.html#HTTPProxyData(java.lang.String, int, java.lang.String, java.lang.String, java.lang.String[])">HTTPProxyData</A></B>(java.lang.String&nbsp;proxyHost,
+              int&nbsp;proxyPort,
+              java.lang.String&nbsp;proxyUser,
+              java.lang.String&nbsp;proxyPass,
+              java.lang.String[]&nbsp;requestHeaderLines)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection data for a HTTP proxy.</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>
+</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="proxyHost"><!-- --></A><H3>
+proxyHost</H3>
+<PRE>
+public final java.lang.String <B>proxyHost</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="proxyPort"><!-- --></A><H3>
+proxyPort</H3>
+<PRE>
+public final int <B>proxyPort</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="proxyUser"><!-- --></A><H3>
+proxyUser</H3>
+<PRE>
+public final java.lang.String <B>proxyUser</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="proxyPass"><!-- --></A><H3>
+proxyPass</H3>
+<PRE>
+public final java.lang.String <B>proxyPass</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="requestHeaderLines"><!-- --></A><H3>
+requestHeaderLines</H3>
+<PRE>
+public final java.lang.String[] <B>requestHeaderLines</B></PRE>
+<DL>
+<DL>
+</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="HTTPProxyData(java.lang.String, int)"><!-- --></A><H3>
+HTTPProxyData</H3>
+<PRE>
+public <B>HTTPProxyData</B>(java.lang.String&nbsp;proxyHost,
+                     int&nbsp;proxyPort)</PRE>
+<DL>
+<DD>Same as calling <A HREF="../../../com/trilead/ssh2/HTTPProxyData.html#HTTPProxyData(java.lang.String, int, java.lang.String, java.lang.String)"><CODE>HTTPProxyData(proxyHost, proxyPort, <code>null</code>, <code>null</code>)</CODE></A>
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>proxyHost</CODE> - Proxy hostname.<DD><CODE>proxyPort</CODE> - Proxy port.</DL>
+</DL>
+<HR>
+
+<A NAME="HTTPProxyData(java.lang.String, int, java.lang.String, java.lang.String)"><!-- --></A><H3>
+HTTPProxyData</H3>
+<PRE>
+public <B>HTTPProxyData</B>(java.lang.String&nbsp;proxyHost,
+                     int&nbsp;proxyPort,
+                     java.lang.String&nbsp;proxyUser,
+                     java.lang.String&nbsp;proxyPass)</PRE>
+<DL>
+<DD>Same as calling <A HREF="../../../com/trilead/ssh2/HTTPProxyData.html#HTTPProxyData(java.lang.String, int, java.lang.String, java.lang.String, java.lang.String[])"><CODE>HTTPProxyData(proxyHost, proxyPort, <code>null</code>, <code>null</code>, <code>null</code>)</CODE></A>
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>proxyHost</CODE> - Proxy hostname.<DD><CODE>proxyPort</CODE> - Proxy port.<DD><CODE>proxyUser</CODE> - Username for basic authentication (<code>null</code> if no authentication is needed).<DD><CODE>proxyPass</CODE> - Password for basic authentication (<code>null</code> if no authentication is needed).</DL>
+</DL>
+<HR>
+
+<A NAME="HTTPProxyData(java.lang.String, int, java.lang.String, java.lang.String, java.lang.String[])"><!-- --></A><H3>
+HTTPProxyData</H3>
+<PRE>
+public <B>HTTPProxyData</B>(java.lang.String&nbsp;proxyHost,
+                     int&nbsp;proxyPort,
+                     java.lang.String&nbsp;proxyUser,
+                     java.lang.String&nbsp;proxyPass,
+                     java.lang.String[]&nbsp;requestHeaderLines)</PRE>
+<DL>
+<DD>Connection data for a HTTP proxy. It is possible to specify a username and password
+ if the proxy requires basic authentication. Also, additional request header lines can
+ be specified (e.g., "User-Agent: CERN-LineMode/2.15 libwww/2.17b3").
+ <p>
+ Please note: if you want to use basic authentication, then both <code>proxyUser</code>
+ and <code>proxyPass</code> must be non-null.
+ <p>
+ Here is an example:
+ <p>
+ <code>
+ new HTTPProxyData("192.168.1.1", "3128", "proxyuser", "secret", new String[] {"User-Agent: TrileadBasedClient/1.0", "X-My-Proxy-Option: something"});
+ </code>
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>proxyHost</CODE> - Proxy hostname.<DD><CODE>proxyPort</CODE> - Proxy port.<DD><CODE>proxyUser</CODE> - Username for basic authentication (<code>null</code> if no authentication is needed).<DD><CODE>proxyPass</CODE> - Password for basic authentication (<code>null</code> if no authentication is needed).<DD><CODE>requestHeaderLines</CODE> - An array with additional request header lines (without end-of-line markers)
+        that have to be sent to the server. May be <code>null</code>.</DL>
+</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/HTTPProxyData.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/DHGexParameters.html" title="class in com.trilead.ssh2"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/trilead/ssh2/HTTPProxyException.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/HTTPProxyData.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="HTTPProxyData.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="#methods_inherited_from_class_java.lang.Object">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;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/HTTPProxyException.html b/plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/HTTPProxyException.html
new file mode 100644 (file)
index 0000000..79cf120
--- /dev/null
@@ -0,0 +1,304 @@
+<!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:49 CEST 2008 -->
+<TITLE>
+HTTPProxyException
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.trilead.ssh2.HTTPProxyException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="HTTPProxyException";
+}
+</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/HTTPProxyException.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/HTTPProxyData.html" title="class in com.trilead.ssh2"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/trilead/ssh2/InteractiveCallback.html" title="interface 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/HTTPProxyException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="HTTPProxyException.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="#methods_inherited_from_class_java.lang.Throwable">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;METHOD</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 HTTPProxyException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.io.IOException
+              <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.trilead.ssh2.HTTPProxyException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>HTTPProxyException</B><DT>extends java.io.IOException</DL>
+</PRE>
+
+<P>
+May be thrown upon connect() if a HTTP proxy is being used.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+  <DD>$Id: HTTPProxyException.java,v 1.1 2007/10/15 12:49:56 cplattne Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Christian Plattner, plattner@trilead.com</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../com/trilead/ssh2/Connection.html#connect()"><CODE>Connection.connect()</CODE></A>, 
+<A HREF="../../../com/trilead/ssh2/Connection.html#setProxyData(com.trilead.ssh2.ProxyData)"><CODE>Connection.setProxyData(ProxyData)</CODE></A>, 
+<A HREF="../../../serialized-form.html#com.trilead.ssh2.HTTPProxyException">Serialized Form</A></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>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/trilead/ssh2/HTTPProxyException.html#httpErrorCode">httpErrorCode</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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/HTTPProxyException.html#httpResponse">httpResponse</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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/HTTPProxyException.html#HTTPProxyException(java.lang.String, int)">HTTPProxyException</A></B>(java.lang.String&nbsp;httpResponse,
+                   int&nbsp;httpErrorCode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></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.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></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, 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="httpResponse"><!-- --></A><H3>
+httpResponse</H3>
+<PRE>
+public final java.lang.String <B>httpResponse</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="httpErrorCode"><!-- --></A><H3>
+httpErrorCode</H3>
+<PRE>
+public final int <B>httpErrorCode</B></PRE>
+<DL>
+<DL>
+</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="HTTPProxyException(java.lang.String, int)"><!-- --></A><H3>
+HTTPProxyException</H3>
+<PRE>
+public <B>HTTPProxyException</B>(java.lang.String&nbsp;httpResponse,
+                          int&nbsp;httpErrorCode)</PRE>
+<DL>
+</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/HTTPProxyException.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/HTTPProxyData.html" title="class in com.trilead.ssh2"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/trilead/ssh2/InteractiveCallback.html" title="interface 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/HTTPProxyException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="HTTPProxyException.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="#methods_inherited_from_class_java.lang.Throwable">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;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/InteractiveCallback.html b/plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/InteractiveCallback.html
new file mode 100644 (file)
index 0000000..d228c60
--- /dev/null
@@ -0,0 +1,251 @@
+<!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:49 CEST 2008 -->
+<TITLE>
+InteractiveCallback
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.trilead.ssh2.InteractiveCallback interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="InteractiveCallback";
+}
+</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/InteractiveCallback.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/HTTPProxyException.html" title="class in com.trilead.ssh2"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/trilead/ssh2/KnownHosts.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/InteractiveCallback.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="InteractiveCallback.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;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&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>
+Interface InteractiveCallback</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>InteractiveCallback</B></DL>
+</PRE>
+
+<P>
+An <code>InteractiveCallback</code> is used to respond to challenges sent
+ by the server if authentication mode "keyboard-interactive" is selected.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+  <DD>$Id: InteractiveCallback.java,v 1.1 2007/10/15 12:49:56 cplattne Exp $</DD>
+<DT><B>Author:</B></DT>
+  <DD>Christian Plattner, plattner@trilead.com</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../com/trilead/ssh2/Connection.html#authenticateWithKeyboardInteractive(java.lang.String, java.lang.String[], com.trilead.ssh2.InteractiveCallback)"><CODE>Connection.authenticateWithKeyboardInteractive(String,
+      String[], InteractiveCallback)</CODE></A></DL>
+<HR>
+
+<P>
+
+<!-- ========== 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;java.lang.String[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../com/trilead/ssh2/InteractiveCallback.html#replyToChallenge(java.lang.String, java.lang.String, int, java.lang.String[], boolean[])">replyToChallenge</A></B>(java.lang.String&nbsp;name,
+                 java.lang.String&nbsp;instruction,
+                 int&nbsp;numPrompts,
+                 java.lang.String[]&nbsp;prompt,
+                 boolean[]&nbsp;echo)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This callback interface is used during a "keyboard-interactive"
+ authentication.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ 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="replyToChallenge(java.lang.String, java.lang.String, int, java.lang.String[], boolean[])"><!-- --></A><H3>
+replyToChallenge</H3>
+<PRE>
+java.lang.String[] <B>replyToChallenge</B>(java.lang.String&nbsp;name,
+                                    java.lang.String&nbsp;instruction,
+                                    int&nbsp;numPrompts,
+                                    java.lang.String[]&nbsp;prompt,
+                                    boolean[]&nbsp;echo)
+                                    throws java.lang.Exception</PRE>
+<DL>
+<DD>This callback interface is used during a "keyboard-interactive"
+ authentication. Every time the server sends a set of challenges (however,
+ most often just one challenge at a time), this callback function will be
+ called to give your application a chance to talk to the user and to
+ determine the response(s).
+ <p>
+ Some copy-paste information from the standard: a command line interface
+ (CLI) client SHOULD print the name and instruction (if non-empty), adding
+ newlines. Then for each prompt in turn, the client SHOULD display the
+ prompt and read the user input. The name and instruction fields MAY be
+ empty strings, the client MUST be prepared to handle this correctly. The
+ prompt field(s) MUST NOT be empty strings.
+ <p>
+ Please refer to draft-ietf-secsh-auth-kbdinteract-XX.txt for the details.
+ <p>
+ Note: clients SHOULD use control character filtering as discussed in
+ RFC4251 to avoid attacks by including
+ terminal control characters in the fields to be displayed.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name String sent by the server.<DD><CODE>instruction</CODE> - the instruction String sent by the server.<DD><CODE>numPrompts</CODE> - number of prompts - may be zero (in this case, you should just
+            return a String array of length zero).<DD><CODE>prompt</CODE> - an array (length <code>numPrompts</code>) of Strings<DD><CODE>echo</CODE> - an array (length <code>numPrompts</code>) of booleans. For
+            each prompt, the corresponding echo field indicates whether or
+            not the user input should be echoed as characters are typed.
+<DT><B>Returns:</B><DD>an array of reponses - the array size must match the parameter
+         <code>numPrompts</code>.
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></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/InteractiveCallback.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/HTTPProxyException.html" title="class in com.trilead.ssh2"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../com/trilead/ssh2/KnownHosts.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/InteractiveCallback.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="InteractiveCallback.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;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&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>
diff --git a/plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/KnownHosts.html b/plugins/cvs/trilead-ssh2-build213/javadoc/com/trilead/ssh2/KnownHosts.html
new file mode 100644 (file)
index 0000000..c4867b6
--- /dev/null
@@ -0,0 +1,612 @@
+<!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:49 CEST 2008 -->
+<TITLE>
+KnownHosts
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.trilead.ssh2.KnownHosts class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="KnownHosts";
+}
+</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/KnownHosts.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="NavBar