aboutsummaryrefslogtreecommitdiff
path: root/HISTORY.txt
diff options
context:
space:
mode:
Diffstat (limited to 'HISTORY.txt')
-rw-r--r--HISTORY.txt361
1 files changed, 361 insertions, 0 deletions
diff --git a/HISTORY.txt b/HISTORY.txt
new file mode 100644
index 0000000..7403412
--- /dev/null
+++ b/HISTORY.txt
@@ -0,0 +1,361 @@
+
+Release Notes:
+==============
+
+build???, 2011-06-??
+
+- Requires Java 5 or later.
+
+- Provide POM for Maven 3 build.
+
+- Performance gains with request parallelism in requests for read and write write operations in SFTPv3Client.
+
+- Bugfix for infinite timeout on socket connect.
+
+- SFTPInputStream and SFTPOutputStream to read or write from a SFTPv3FileHandle compatible with standard I/O operations in Java.
+
+- SCPClient returning SCPInputStream and SCPOutputStream for get and put operations respectively compatible with stanard I/O operations in Java.
+
+- Option to attach a packet listener to SFTPv3Client for logging purposes.
+
+- Fixed a bug in KnownHosts.getPreferredServerHostkeyAlgorithmOrder (it always returned null, which is a valid return value but wrong).
+
+- Added accessor to query session state and isConnected() in SFTPv3Client returning a boolean
+
+- Adjusted channel window size
+
+- Custom PEMDecryptException to catch PEM decoding failure.
+
+- Option to pass custom user agent string for identification string.
+
+- Continue silently when invalid key is found in known hosts file.
+
+- Add support for file append mode in SFTPv3Client.
+
+- Option to pass charset for commands executed on the remote machine.
+
+build251beta1, 2010-08-23:
+
+- Due to the slightly changed semantics of Thread.interrupt() and Object.wait() in JDK 6,
+ the code had to be adapted in several places. Please do not use Ganymed SSH-2 build250
+ on JDK 6, as the Kex and Streamgobbler code may occasionally consume all CPU resources.
+
+ Background: the JDK 6 javadocs for Object.wait say: "If the current thread is interrupted
+ by any thread before or while it is waiting, then an InterruptedException is thrown."
+ Unfortunately the Java 1.5 documentation does not say "before", only "while it is waiting".
+
+ Thanks to Elias Horness.
+
+build250, 2010-03-15:
+
+- Ganymed SSH-2 for Java is back.
+ The software can be downloaded from http://www.cleondris.ch/ssh2
+
+- Fixed the use of default platform character encodings.
+
+- Fixes for buggy servers.
+
+- Wait for the reply to the ServiceRequest packet before sending the next request.
+
+- Re-assign the interrupted flag after a InterruptedException.
+
+build211beta4, 2006-12-05: (never officially released)
+
+- 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.
+
+- 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.
+