Release notes for Rebex SSH Shell for .NET
2012-11-01 Version 2012 R3 #
(build number 4700)
- All: Added .NET 4.x-style task-based asynchronous methods to objects previously using .NET 1.x-style Begin/End asynchronous pattern.
- All: Asynchronous method events are raised using the current synchronization context for the asynchronous operation.
- All: Added options to force the old-style event behavior (not using the current synchronization context).
- All: Added Rebex.Legacy namespace to .NET 4.x builds to allow compiling code that uses old-style asynchronous methods.
- All: Added official support for Visual Studio 2012.
- All: Fixed P/Invokes in NTLM/Kerberos code.
- All: AddRange method added to file item collections.
- All: FIPS 140-2 compliant mode enhancements.
- All: Fixed certificate validation issue on Windows XP and Windows Server 2003.
- All: Added Certificate.Thumbprint property.
- All: Fixed a bug in certificate chain building routine that caused it to ignore additional stores in some cases.
- Networking: NetworkSessionException is now the base class for all network protocol exceptions.
- Networking: Task-based asynchronous methods added to IFtp interface.
- Networking: Removed several Socket.Available calls, resulting in higher speed and Windows Azure compatibility.
- Networking: Events Traversing, TransferProgressChanged, DeleteProgressChanged and ProblemDetected added into IFtp to make it possible to get notified about significant actions and to be able to react to a problem in multi-file operations.
- Security: Fixed a bug in TransformFinalBlock method of Rebex.Security.Cryptography ciphers that caused interoperability issues with CryptoStream.
- Security: Fixed PKCS#7 padding check in built-in ciphers.
- Security: Added EncodingTools class that adds support for all the charsets needed on all platforms.
- Security: Added auto-detection of a bug in unpatched .NET 3.5's AesCryptoServiceProvider object.
- Security: Implicit ObjectIdentifier(string) constructor added.
- Security: Fixed CryptoHelper.CreateAlgorithm to return CSP version of SHA-2 hash algorithms when available.
- Security: Fixed CertificateFinder property behavior to keep old certificates if no certificates are found by the new finder.
- Security: Server certificate verification routine now allows certificats with '*.domain.net' names to be used for 'domain.net' in addition to '*.domain.net'.
- Security: Fixed a bug in private key decryption routine which failed with keys encrypted with PKCS #12 key derivation algorithm.
- SSH: Better error message for unsuccessful keboard-interactive fallback workaround.
- SSH: Enhanced "Invalid decoder state" error reporting.
- SSH: Added support for diffie-hellman-group-exchange-sha256 key exchange algorithm.
- SSH: Added SshPublicKey class, SshSession.ServerKey property and FingerprintCheck.ServerKey property (to make it possible to determine server host key in addition to fingerprint).
- SSL: Fixed a bug in server-side TLS/SSL that caused it to fail when session resuming was enabled.
- SSL: Fixed TlsException serialization that failed for some errors.
- SSL: Fixed a bug that caused problems with TLS/SSL in FIPS-only mode.
- Terminal: Added VT52 terminal emulation support.
- Terminal: Added LightBackColor value into BlinkingText enum.
- Terminal: Added support for 'CSI 1 m' sequence.
- Terminal: Fixed a bug that occasionally caused an exception to be thrown when scrolling using the scrollbar.
- Terminal: Fixed socket error handling in client-side keyboard and mouse methods.
- Terminal: Enhanced TerminalControl responsiveness under heavy load.
- Terminal: Compatibility enhancement for the Shell class in ShellMode.Prompt.
- Terminal: Added support for 'insertion replacement mode' ('CSI 4 h')
2012-06-10 Version 2012 R2 #
(build number 4546)
- All: Added FileSet.Flatten option (makes it possible to ignore source directory structure and copy all files into single target directory).
- All: Enhanced error reporting of file-path-based methods.
- All: Added LocalItem and LocalItemCollection classes (used by FileSet.GetLocalItems method).
- Networking: UseLargeBuffers option added into IFtpSettings.
- Security: Fixed local/UTC time comparison in Certificate.IsTimeValid.
- Security: Added implicit conversion between Certificate object and X509Certificate/X509Certificate2 objects.
- Security: Enhanced compatibility with Mono on non-Windows platforms - Certificate validation now works!
- Security: Support for saving .PFX/.P12 files added to Certificate.Save method.
- Security: Added new overloads of Certificate.Associate that make it possible to permanently bind the private key to the certificate.
- Security: Added Certificate.FriendlyName property.
- Security: Fixed Certificate.SignHash method which used to fail on .NET 2.0 when an associated key was used for MD5SHA1 signature generation.
- Security: Fixed MD5Managed.HashSize property which used to return 0.
- Security: Certificate.HasPrivateKey code in .NET CF version changed to behave identically to .NET version.
- SSH Core: Ssh.AuthenticationRequest event added (supports advanced keyboard-interactive variants).
- SSH Core: Added support for hmac-sha1-96 and hmac-md5-96 MAC algorithms.
- SSH Shell: Shell.ReadAll() modified to make it possible to return the welcome message in SshShell.PromptMode as well (just like in Rebex Telnet).
- SSH: Added SshPrivateKey(AsymmetricAlgorithm) constructor that makes it possible to initialize it from RSACryptoServiceProvider/DSACryptoServiceProvider (useful for SmartCard-based keys).
- SSH: Fixed wrong handling of large remote SSH channel window sizes (used by mod_sftp server).
- SSH: Client certificate authentication added (compatible with VanDyke VShell server).
- SSH: ZLIB support announced even when not preferred (without that, we were unable to connect to servers that refuse uncompressed sessions).
- SSH: Fixed a bug that causes a misleading error to be reported on immediately-closed connections.
- SSH: Added workaround for mod_sftp/0.9.7 which occasionally produces broken DSA signatures.
- SSL: Fixed a misleading error message which was reported when certificate revocation status could not be checked.
- SSL: When ProtocolVersion error occurs, data received prior to it is logged.
- Terminal: Better error recovery on invalid escape sequences.
- Terminal: SuppressAltAsMenuKey and SuppressShortcutKeys properties added to the TerminalControl to specify how to handle input keystrokes.
- Terminal: Added support for 'window title' and 'icon name' actions to ActionRequested events.
- Terminal: Better Alt-Gr key handling.
- Terminal: Added workaround for Clipboard errors.
- Terminal: Fixed TerminalControl.SetScreenSize method (did not work with AutoAdjustTerminalSize set to false).
2012-03-05 Version 2012 R1 #
(build number 4444)
- All: SecurityRuleSet.Level2 is used for .NET 4.0 binaries.
- All: Added a Stream.Flush() call after each Stream.Seek() or Stream.Position call in .NET Compact Framework (workaround for .NET CF FileStream bug).
- All: Fixed a bug in TraceLogWriter that caused an additional newline to be written at the end of each message.
- All: Added FileSystemItem and FileSystemItemCollection classes.
- All: Better readability in Verbose-level logs.
- All: Thread ID added to all log messages.
- Networking: Socket.NoDelay is used by default in non-CF version of Rebex components.
- Security: Faster Blowfish and Twofish algorithms.
- Security: SubjectPublicKeyInfo.Load method now supports binary keys.
- Security: Removed lots of CryptoApi dependencies from Certificate code.
- Security: 4096-bit DSA keys (used by some SSH servers) are no longer rejected.
- Security: Diffie-Hellman and DSA algorithms fall back to managed ModPow calculation on .NET CF with missing "Enhanced DSA and Diffie-Hellman" CSPs.
- Security: Added Certificate.Associate(PrivateKeyInfo) method.
- Security: Certificates associated with a private key using Associate method now support MD5SHA1 hash algoritm and suitable for TLS/SSL client certificate authentication.
- Security: Certificate.Save and Certificate.SavePrivateKey methods added, along with a corresponding variant of Certificate.LoadDerWithKey.
- Security: PKCS #7 writer changed to use a more compatible variant of EncryptedContent in EncryptedContentInfo structure. This solves interoperability issues with Entrust CSP and signed messages.
- Security: Added ObjectIdentifier.ToArray(bool useDer) method.
- Security: CertificateChain.LoadP7b method added (used for loading .P7B certificate chains).
- SSH Core: Added SshParameters.PreferredHostKeyAlgorithm property.
- SSH Core: Added SshChannel.PassEnvironmentVariable method.
- SSH Core: Fixed NullReferenceException during simultaneous channel close/read.
- SSH Core: Fixed a deadlock that may have occured when using multiple SSH channels from multiple threads.
- SSH Core: Fixed a race condition that may have occured when sending and reading from a single SSH channel at the same time.
- SSH Core: Removed SshParameters.Options property because it was ignored and only present by mistake.
- SSH Core: Added SshParameters.SetEncryptionAlgorithms method to specify exact list and order of allowed SSH ciphers. Corresponding GetEncryptionAlgorithms method added as well.
- SSH Shell: Changing Ssh's LogWriter now changes the underlying SshSession's LogWriter as well.
- SSH: Fixed error handling in SshSession.OpenTcpIpTunnel method that caused troubles when multiple channels were active at the same time.
- SSH: SshChannel no longer attempts to adjust window size after the channel has been closed.
- SSL: Fixed non-working TlsSocket.BeginSend and BeginReceive methods.
- Terminal: Added TerminalControl.MouseSelectionCopiesToClipboard property.
- Terminal: Added TerminalControl.SelectionChanged event.
- Terminal: TerminalControl now works in Linux under Mono.
- Terminal: Added TerminalCell.Blink property.
- Terminal: Oversized scroll region escape sequences are now clipped instead of ignored.
- Terminal: Fixed processing of CSI escape sequences with Extended Leading Intermediate.
- Terminal: Added FunctionKeys.Escape and FunctionKeys.Backspace to simplify sending these keys using TerminalControl's or VirtualTerminal's SendToServer method.
- Terminal: Added Disconnected event to VirtualTerminal
- Terminal: ProcessingError event is correctly called when an error occured while in automatic processing mode.
2011-03-09 Version 1.0.4086.0 #
(build number 4086)
- SSH Core: Added workaround for old SSH servers that miscalulate HMAC-SHA1 keys.
- SSH Core: Added SshParameters.AuthenticationMethods to make it possible to only enable desired authentication methods.
- SSH Core: SendEof method added to SshChannel to make it possible to achieve plink-like functionality.
- SSH Core: Fixed a bug in SSH channel window size adjustment code which could cause a timeout on servers which send oversized packets.
- SSH Core: Fixed a bug that prevented SSH key renegotiation requests from being processed, resulting in a timeout.
- SSH Core: Abort flag checking messages removed from Debug log.
- Terminal: HistoryMaxLength property added to TerminalControl.
- Terminal: Added regular-expression-based VirtualTerminal.Expect method.
- Terminal: Prompt doesn't have to be set when a question prompt is specified in a ReadLine/ReadAll call.
- Terminal: Shell class in ShellMode.Prompt works with *BSD now.
2011-02-11 Version 1.0.4060.0 #
(build number 4060)
- ProxySocket: Added a new ILogWriter implementation that logs all messages to .NET's System.Diagnostics.Trace.
- Security: Added a new overload of SshPrivateKey.Save to make it possible to save keys in SSLEay/OpenSSH format (in addition to PuTTY .ppk and PKCS #8 formats).
- Security: Added CertificateChain.Save method to save the chain in .p7b format.
- Security: Fixed a bug in DistinguishedName object that caused the elementes of string representation of DNs to be reversed.
- Security: Added CryptoHelper.ForceManagedAes flag as a workaround to .NET's leaking AesCryptoServiceProvider.
- SSH Core: AuthenticationRequest event added to make it possible to deal with all kinds of "keyboard-interactive" authentication prompts.
- SSH Core: Fixed a possible race condition that might have occured when using the same SshSession intance from multiple threads.
- SSH Core: Enhanced automated "keyboard-interactive" authentication to support more variants of password prompt.
- SSH Core: Fixed a bug in ZLIB decompression routines.
- SSH Core: SshSession.Encoding property added.
- SSH Core: Added SshOptions.WaitForServerWelcomeMessage option.
- SSH Core: Updated SFTP to detect, read and skip unexpected malformed packets which used to throw a "Message with invalid length xxx was received." exception when trying to login.
- Terminal: During Select Character Set control sequence, character set is immediately invoked into GL.
- Terminal: Added support for Pick terminals.
- Terminal: Added ActionRequested event to TerminalControl and VirtualTerminal objects to make it possible to handle action requests from the server.
- Terminal: CursorText and CursorMouse properties added to TerminalControl object.
- Terminal: Added terminal function keys support for HP-UX.
- Terminal: BlinkingText option added into TerminalOptions.
2010-07-20 Version 1.0.3854.0 #
(build number 3854)
- SSH Core: In FIPS-only mode, a CryptoAPI implementation of AES is used if available.
- SSH Core: SshSession class inherits from NetworkSession base class that implements some common properties.
- SSH Core: SshChannel.ExtendedDataReceived event added to make it possible to receive extended data.
- SSH Shell: Ssh class inherits from NetworkSession base class that implements some common properties.
- Terminal: Added new SendToServer method overload to TerminalControl and VirtualTerminal that makes it possible to easily simulate function keys.
- Terminal: New BreakSequence option added to TerminalOptions.
2010-05-20 Version 1.0.3793.0 #
(build number 3793)
- All: Packages for .NET 4.0 and Visual Studio 2010 now available.
- SSH Core: Added a workaround for a server that announces support for "password" authentication but requires "keyboard-interactive" instead.
- SSH Core: Fixed a bug in ZLIB compression routines that caused compatibility problems with GlobalScape and BitVise servers when compression was enabled.
- SSH Core: Fixed a bug that caused SSH session to hang if a broken (incomplete) SSH packet arrived (rare).
- SSH Shell: Added experimental support for CSH to Shell class.
- SSH Shell: Added Ssh.Bind method to make it possible to bind the Ssh object to an existing SSH session.
- Terminal: Fixed a bug that caused cursor to be redrawn incorrectly in some cases.
2010-03-11 Version 1.0.3723.0 #
(build number 3723)
- ProxySocket: The underscore character is now allowed in hostnames (this is non-standard, but used by Windows).
- ProxySocket: FileLogWriter is capable of logging into a single file from multiple applications now.
- ProxySocket: ProxySocket.Send behavior changed to always send all the data or fail.
- Security: Added Certificate.LoadDerWithKey method to make it possible to easily load certificates with private keys in external file (Unix-style).
- Security: Support for PKCS #7 EnvelopedData encrypted using RC2 with effective key length not equal to key data length.
- Security: Fixed a bug in EnvelopedData class that cause a NullReferenceException to be raised when unsupported encryption algorithm is encoutered.
- Security: Internal ModPow method optimized.
- Security: Key generation support removed from RSAManaged a DSAManaged. No part of any of our components ever used it at it was prohibitively slow anyway.
- SSH Core: Added SshFingerprint.Compute and SshFingerprint.FromBase64String methods to make it possible to easily calculate a fingerprint of the supplied public key.
- SSH Core: ZLIB compression is now switched off by default (caused problems with some servers).
- SSH Core: Client KEX_INIT packet is sent without waiting for the server side one (this is the only proper behavior).
- SSH Core: Added SshSession.KeepAlive method to make it possible to periodically "ping" the SSH connection to keep it working and detect failures.
- SSH Shell: Added Terminal.GetSelectedText method to make it possible to retrieve the currently selected text.
- SSH Shell: Ssh.Login method now accepts empty usernames.
- SSH Shell: SshTerminalControl.LogWriter property added to make logging easier.
- Terminal: Instances of Shell class returned from Ssh.StartShell i Prompt mode now refuse to work if the prompt was not set.
- Terminal: SshShell instances returned by Ssh.StartCommand no longer stop on prompt-like text when ReadAll is called.
- Terminal: Added TerminalPalette.Sco palette.
- Terminal: Changed TerminalControl.Save and VirtualTerminal.Save in ANSI mode to not write the final <CR><LF> sequence.
- Terminal: Fixed a bug in "CSI 0 J" escape sequence interpreter that caused the whole line to be cleared (instead of only a part of it).
- Terminal: TerminalOptions.PersistColorsOnSgr added to make it possible to specify whether "CSI 0 m" escape sequence (default rendition) whould reset colors as well.
- Terminal: TerminalScreen.GetRegion and TerminalScreen.GetRegionText methods added to make it easily possible to retrieve a part of the screen content.
- Terminal: Block selection mode added (accessible through TerminalControl.SelectionMode property or using the Ctrl key).
- Terminal: Added TerminalControl.MousePasteEnabled to make it possible to disable automated paste on right mouse button click.
- Terminal: Terminal emulator now supports CSI 10, CSI 11 and CSI 12 escape sequences.
- Terminal: Added SendToserver(byte[]) method to TerminalControl and VirtualTerminal classes.
- Terminal: Added experimental support for Wyse 60 terminals.
- Terminal: Fixed a bug that occasionally caused InvalidOperationException to be thrown on disconnected channels.
- Terminal: Added support for CFT and CBT escape sequences to terminal emulator.
- Terminal: New overload of TerminalScreen.Clear method added to make it possible to clear the history buffer as well.
- Terminal: Redefined background color in custom color scheme mode is now applied to all parts of the terminal screen.
2009-10-27 Version 1.0.3588.0 #
(build number 3588)
- ProxySocket: Proxy object now has Encoding property that makes it possible to specify character set to be used for parsing server responses.
- ProxySocket: ProxySocketException.ErrorCode property now returns HTTP and Socket4/Socks5 error codes when available.
- ProxySocket: SspiAuthentication and GssApiProvider classes added that provide GSSAPI/SSPI functionality.
- Security: Certificate's CRL distribution point list can be accessed using GetCrlDistributionPoints method.
- SSH Core: Fixed a bug in ArcFour cipher implementation that made it unusable.
- SSH Core: Fixed a bug that caused an SSH welcome message to be parsed incorrectly when split accross multiple packets.
- SSH Core: Added support for ZLIB transfer compression.
- SSH Shell: Added workaround for SSH packets 101 that some SSH servers were observed to use.
- Terminal: Fixed a bug that caused Disconnect event not to be raised when some types of connection failures occured.
- Terminal: TerminalControl now correctly resizes itself when hosted in WPF.
2009-07-17 Version 1.0.3484.0 #
(build number 3484)
- SSH Core: Fixed a bug in GSSAPI authentication that caused it to work improperly in 32bit .NET Framework.
2009-07-13 Version 1.0.3479.0 #
(build number 3479)
- Security: .PFX/P12 private key file loading support for Windows Mobile 5 and newer.
- Security: Added support for signatures based on SHA-2 (SHA-256, SHA-384 and SHA-512).
- Security: If .NET 3.5 is available, a new and much faster AES implementation is used instead of RijndaelManaged.
- Security: Behavior of certificate finders in CMS/PKCS #7 was enhanced - embedded certificates are always searched now.
- SSH Core: Support for GSSAPI authentication (gssapi-with-mic) added. Kerberos (not on .NET CF) and NTLM mechanisms are supported. MS SSPI is used as an underlying authentication provider.
- SSH Core: SshFingerprint class extended to support multiple hash algorithms.
- SSH Core: Added BannerReceived event that ca be used to receive banner messages sent by the server.
- SSH Core: Added FingerprintCheck event as an alternative way to check server fingerprint.
- SSH Core: Support for authentication using both username/password and public key at the same time made compatible with Maverick SSHD server.
- SSH Shell: Added support for break request defined by RFC 4335.
- SSH Shell: Added Shell.GetExitCode method to make it possible to retrieve process exit code (if available).
- Terminal: Fixed bad exception message in TerminalControl.Bind method.
- Terminal: TerminalOptions serialization fixed to work correctly with serialized data from older releases.
- Terminal: Fixed a bug in the logging code for SshChannel.SetTerminalSize method.
2009-05-20 Version 1.0.3428.0 #
(build number 3428)
- SSH Core: Added FIPS 140-2 compliant mode that is automatically enabled on systems where only compliant algorithms are allowed.
- SSH Core: Added a new exception status - PasswordChangeRequired - that is used when a password change is required before authentication can be successfully completed.
- Terminal: Poll method added into IShellChannel.
- Terminal: Fixed a bug that caused the Enter key not to be echoed when local echo is on.
2009-02-19 Version 1.0.3333.0 #
(build number 3333)
- ProxySocket: Fixed a bug in Socks4/Socks5 proxy code that made it impossible to use FTP in active mode with these proxies.
- Security: CertificateStore.FindCertificate overloads that accept DistinguishedName now search for certificates signed by intermediate CAs as well.
- Security: Enhanced treatment of empty passwords in the PFX loader.
- Security: Certificates with SubjectAlternativeName extension marked as critical are now treated as not having any e-mail address assigned to them if no e-mail address is found in the extension data.
- Security: Fixed a bug in DiffeHellmanManaged.ImportParameters method that made it impossible to import key with all parameters filled.
- SSH Core: Banner message is now logged when using the LogWriter fuctionality.
- SSH Core: Added workaround for badly-formed DSA signature produced by SSH Secure Shell 3.1.0 (and possibly other versions).
- SSH Core: Added a workaround to the Compact Framework version for VanDyke VShell server that sends primes that are one bit longer than expected.
- SSH Shell: Shell.Close method added to make it possible to gracefully close an SSH shell session.
- Terminal: Added a variant of Shell.SendCommand method that makes it possible to send 'invisible' data such as passwords.
- Terminal: Prompt-matching in Shell class changed to make it possible to match beginning of a line.
2009-01-14 Version 1.0.3300.0 #
(build number 3300)
- Security: Added support for reading and setting private key comment.
- Security: Added RootCertificate and LeafCertificate properties to CertificateChain class.
- Security: Added GetCommonName method to DistinguishedName class.
- Security: Added IEnumerator support to CertificateChain.
- Security: Added Equals method to DistinguishedName class.
- Security: Fixed a bug in OID decoding routine that cased it to occasionally hang on roken input data.
- Security: Added new Certificate.LoadPfx to make it possible to load keys into machine store.
- Security: Fixed a problem in Certificate.Decrypt method that made the decryption fail with some rare certificates.
- Security: Added Certificate.Associate method to make it possible to associate a RSA/DSA crypto service provider with access to a private key with a certificate.
- SSH Core: Added support for saving PuTTY private keys.
- SSH Core: Added ChangePassword method to SshSession class to make it possible to change user password.
- SSH Core: Added support for servers that don't require a password.
- SSH Core: Fixed a bug in SshSession that caused problems when multiple channels through the same SSH session were used at the same time.
- SSH Shell: Added scroll-back buffer support.
- SSH Shell: Asynchronous operations now use a thread pool.
- SSH Shell: Asynchronous method threads are now named.
- Terminal: Added Expect method to make scripting possible
easily.
- Terminal: Added drawing routines for most box-drawing and block element characters that are either not present or improperly drawn in majority of fonts.
- Terminal: Added custom palette support.
- Terminal: Added support for custom color schemes to TerminalOptions class.
- Terminal: Fixed a bug that caused an extra column to appear in a newly-created terminal control.
- Terminal: Added support for 'ksh' shell.
- Terminal: Added support for setting the font using the Control's Font property (previously, TerminalFont had to be used).
- Terminal: Added the ability to scroll while selecting a long chunk of text.
- Terminal: Fixed a bug that caused the terminal control to resize several times when minimized and maximized again.
- Terminal: Added DataReceived event to TerminalControl and VirtualTerminal classes.
- Terminal: Added AutoAdjustTerminalFont, UserInputEnabled, ScrollBarEnabled and ScrollbackResetOnDisplayActivity properties to TerminalControl class.
2008-07-24 Version 0.5.3127.0 #
(build number 3127)
- SSH Core: Fixed a problem in RSA private key reader that caused an error with some keys.
- SSH Core: Enhanced packet reader to support oversized SSH packets.
- ProxySocket: New ISocket interface to make it possible to easily implement custom transport layers.
- ProxySocket: Fixed an unhandled exception that occured during a failed connection to a proxy specified by an IP address.
- SSH: Fixed an internal static method that was not thread safe.
- SSH: PuTTY keys with no password are now supported as well (previously, only PuTTY keys with passwords worked).
- SSH: Added SSH tunneling capabilities.
- All: Packages for .NET 3.5 and Visual Studio 2008 now available.
- Security: Added support for loading PuTTY private keys.
- SSH: Changed the authentication routine to be compatible with servers that require a banner message to be sent to the client.
- SSH: Fixed a bug in block receiving code that occured when a block of certain invalid length was received.
- SSH: Added support for loading PuTTY private keys.
- Security: Added support for Blowfish and Twofish ciphers.
- Security: Added new CertificateIssuer class for certificate creation.
- Security: Added new CertificateChain-based certificate finder.
- Security: Certificate revocation list is now available in EnvelopedData and SignedData classes.
- Security: When the CertificateFinder property is changed in EnvelopedData and SignedData Certificate, the new finder is now immediately used to find any missing certificates.
- Security: Several serialization bugs in EnvelopedData and SignedData classes were fixed.
- Security: Certificate class has a new Extensions property that makes the extension collection accessible.
- Security: Various other changes that do not affect the FTP protocol.
- SSH: Added support for Blowfish and Twofish ciphers.
- SSH: Added support for authentication using both username/password and public key at the same time.
- Security: CertificateFinder can now be changed even after an EnvelopedData or SignedData has been loaded.
- SSH: Client no longer announces key exchange and encryption methods that are not supported on its current platform.
- SSH: Speed drop caused by ineffective data receiving loop was fixed.
- SSH: Fixed a bug that caused any extra key-exchange to fall.
- SSH: Fingerprint property added to SshPrivateKey class.
- Security: Added PrivateKeyInfo class and an ability to load and save private keys.
- Security: Fixed a bug in DSAManaged class that made impossible to use keys of some sizes.
- Security: Random big integer generator optimized.
- Security: Several typos in documentation fixed.
- SSH: Added support for RSA and DSA public key authentication.
- SSH: Added support for Diffie-Hellman Group Exchange authentication (RFC 4419).
- SSH: Fixed a bug that caused Timeout value to be ignored when waiting for the server's initial message.
- SSH: SshFingerprint class made serializable.
- Security: Fixed a bug in DSAManaged class that made impossible to use keys of less common sizes.
- ProxySocket: Added support for NTLM authentication through HTTP CONNECT proxies.
- Security: Several new methods.
- Security: A PKCS#7 parser and encoder added.
- Security: Several new methods added to Certificate and CertificateStore classes.
- ProxySocket: Fixed a bug that caused the proxy password to be ignored (since build 2305).
- Security: Several new methods and classes added.
- Security: Internal ASN.1 parser replaced by a recent version.
- Security: Fixed a bug in RSA signature format for MD5 and SHA-1.
- Security: GetSubjectKeyIdentifier method added to Certificate class.
- Security: Added several missing argument checks.
- Security: Certificates other than RSA and DSS now load as well.
- Security: Fixed a bug that caused the Certificate.Decrypt method to return an array of wrong length.
- ProxySocket: ProxySocketException, FtpProxy classes are serializable.
- Security: Various changes in Rebex Security to make Secure FTP for .NET completely compatible with 64bit version of .NET Framework 2.0.
- Security: CertificateChain enhanced to allow certificate validation using local machine chain engine in addition to current user chain engine.
- Security: CertificateStore constructor now accepts certificate store location, making it possible to use local machine store and others.
- Security: CertificateStore class now cleans all unmanaged resources when disposed.
- Security: Certificate, CertificateChain, CertificateException, DistinguishedName, TlsCipher and TlsException classes are serializable.
- ProxySocket: Fixed a bug in Socks5 authentication code (incorrect version in authentication messages).
- ProxySocket: Fixed a bug in ProxySocket's Accept method that could cause active mode transfers to hang under rare circumstances with some servers
- ProxySocket: Assembly have been marked as CLS-compliant.
- ProxySocket: Lots of changes and improvements to the proxy code.
- ProxySocket: GetAddressLong and GetAddressBytes methods added to ProxySocket class to overcome differences between .NET 1.0 and 1.1.
- ProxySocket: Enhancement in Available property of the ProxySocket class.
- ProxySocket: Fixed a bug in synchronous methods of the ProxySocket that caused them to hang.
- ProxySocket: Assembly divided into two parts: FTP and Proxy Socket.