Rebex ZIP

ZIP and GZIP compression .NET library

Download 30-day free trial Buy from $199

Release notes for Rebex ZIP

2020 R1 #

(build 7357 from 2020-02-21)

Detailed list of changes:

  • All: Binaries targeting .NET Standard 2.0 now support Xamarin.Android and Xamarin.iOS.
  • All: Deprecated binaries targeting .NET Standard 1.5, Xamarin.Android and Xamarin.iOS.
  • All: Fixed several occurences of culture-sensitive string formatting.
  • All: Fixed several occurrences of wrong synchronization context.
  • All: Mainstream edition no longer supports .NET Framework 2.0/3.0 and .NET Core 1.0/1.1.
  • ZIP: Fixed handling of symbolic link source paths in non-recursive multi-file operation.
  • Cryptography: Added full support for Elliptic Curve Diffie-Hellman (ECDH) on Windows 10, Windows Server 2016 and Windows Server 2019.
  • Cryptography: Added native support for ECDH with X25519 curve on Windows 10, Windows Server 2016 and Windows Server 2019.
  • Common: Internal optimizations.
Released
February212020

2019 R4.2 #

(build 7320 from 2020-01-15)

Maintenance release

This release solves several issues in the shared functionality.

Detailed list of changes:

  • Cryptography: Added workaround for RSA signatures shorter than the key size (.NET Core on Linux is unable to handle them).
  • Cryptography: Fixed AsymmetricKeyAlgorithm.GetRawPublicKey() key format when RSA via MS CNG is in use.
  • Cryptography: Only known external plugins are allowed for enhanced security.
  • Cryptography: Saving public key as well when saving X25519 private keys.
Released
January152020

2019 R4.1 #

(build 7290 from 2019-12-16)

.NET Core 3.1 support

.NET Core 3.1 is now supported on the following platforms:

  • Windows (x64, x86, ARM32)
  • Windows 10 IoT (x64, x86, ARM32)
  • Linux (x64, ARM32)
  • macOS (x64)

Detailed list of changes:

  • All: Added support for .NET Core 3.1.
  • All: Added support for Mono 6.x.
  • Cryptography: Added workaround for bad RSA/PSS signature algorithm identifiers with missing parameters.
  • Cryptography: Enabled workaround for private key loading from Mono key store in .NET Standard edition on Mono.
  • Cryptography: Enhanced 'Invalid key format' error message when loading a private key.
  • Cryptography: Fixed serial number handling in CertificateIssuer to conform to RFC 5280 constraints.
  • Common: Binaries for .NET Standard 1.5 now use System.Collections.NonGeneric instead of custom implementations.
  • Common: Enabled Xamarin.Android workarounds in .NET Standard 2.0 edition.
  • Common: Improved ISafeSerializationData support detection.
Released
December162019

2019 R4 #

(build 7244 from 2019-10-31)

Enhancement release

This release brings enhancements in the shared functionality.

Detailed list of changes:

  • Cryptography: Added PkcsBase.LoadSignedOrEnvelopedData method (a replacement for deprecated PkcsBase.Load).
Released
October312019

2019 R3.3 #

(build 7242 from 2019-10-29)

.NET Compact Framework legacy edition update

This release is only available for .NET Compact Framework legacy editions.

Detailed list of changes:

  • All: This release also includes all updates from 2019 R4 except TLS 1.3 and ALPN support.
  • Cryptography: Optimized memory usage when loading CRLs from cache in the built-in custom certificate validator on .NET Compact Framework.
  • Common: Fixed possible ArgumentOutOfRangeException in custom .NET Compact Framework thread pool.
  • Common: Fixed possible crash on .NET Compact Framework 3.5 when SSPI single sign-on is attempted.
Released
October292019

2019 R3.2 #

(build 7206 from 2019-09-23)

.NET Core 3.0 support

This release introduces support for .NET Core 3.0 on the following platforms:

  • Windows (x64, x86, ARM32)
  • Windows 10 IoT (x64, x86, ARM32)
  • Linux (x64, ARM32)
  • macOS (x64)

Windows 10 IoT support

This release introduces support for .NET Core 3.0 on Windows 10 IoT on x64, x86 and ARM32 platforms.

Detailed list of changes:

  • All: Added support for .NET Core 3.0.
  • All: Added support for Windows 10 IoT (via .NET Core 3.0).
  • Common: Optimized internal Task infrastructure on old .NET platforms.
Released
September232019

2019 R3.1 #

(build 7161 from 2019-08-09)

Serialization on Xamarin.Android and Xamarin.iOS platforms

Added support for classic .NET serialization ([Serializable] attributes and related infrastructure) on Xamarin.Android and Xamarin.iOS platforms.

Detailed list of changes:

  • All: Added support for serialization on Xamarin.Android and Xamarin.iOS platforms.
  • Cryptography: Fixed handling of user-supplied RSACng in AsymmetricKeyAlgorithm and SshPrivateKey on modern platforms.
Released
August092019

2019 R3 #

(build 7119 from 2019-06-28)

Support for .NET Standard 2.0 on Mono 5.14 and higher

Binaries of Rebex components targeting .NET Standard 2.0 are now also supported on Mono 5.14 and higher.

End of Standard Support for .NET Compact Framework 3.5 and 3.9

2019 R3 is the last release that includes support for .NET Compact Framework 3.5 and 3.9 in the standard package. Starting with 2019 R4, .NET CF 3.5/3.9 will only be supported with Legacy Editions, which will be available as separate products.

Detailed list of changes:

  • All: Binaries targeting .NET Standard 2.0 are now supported on Mono 5.14 or higher.
  • Cryptography: Added Certificate.GetPrivateKeyInfo() method.
  • Cryptography: Added CertificateEngine.LocalMachine engine and CertificateEngine.Bind method.
  • Cryptography: Added support for SHA-224 hash algorithm.
  • Cryptography: Added support for X25519 key format (RFC 8410).
  • Cryptography: Always using AES by default to encrypt PKCS #8 private keys.
  • Cryptography: Meaningful error message for the CNG AEAD auth tag mismatch.
  • Common: Optimized asynchronous continuations on modern platforms.
  • Common: Upgraded Task infrastructure in Xamarin.Android binaries.
Released
June282019

2019 R2 #

(build 7077 from 2019-05-17)

Support for Visual Studio 2019

All Rebex components are now fully supported in Microsoft Visual Studio 2019.

Support for .NET Framework 4.8

.NET Framework 4.8 is a fully supported platform.

Detailed list of changes:

  • All: Added support for .NET Framework 4.8 and Visual Studio 2019.
  • All: Removed leftover Trace.Write logging.
  • Cryptography: Added CertificationRequest.Save method.
  • Cryptography: Added support for ECDSA and ECDH on .NET Core 2.1/.2.2 on Linux (no need for external plugins).
  • Cryptography: Added workaround for broken export of RSA keys from the CNG providers on Windows 7.
  • Cryptography: Added workaround for CRLs with redundant trailing data to CertificateRevocationList.
  • Cryptography: Added workaround for legacy versions of Mono with lack of SHA-2 support.
  • Common: Asynchronous infrastructure improvements.
Released
May172019

2019 R1 #

(build 7027 from 2019-03-28)

Improved platform support

This release adds three new sets of binaries targeting the following platforms:

  • .NET Core 2.0/2.1/2.2 (via .NET Standard 2.0)
  • .NET 4.6.x/4.7.x
  • .NET 3.5 SP1

For an overview of available binaries and supported platforms, check out Rebex Support Lifecycle KB article.

API changes

In this release we changed our API a bit. We removed parts of our API that have been deprecated for years, and we deprecated parts of our API that were considered outdated. Additionally, we made some missing methods available on Xamarin and .NET Standard 1.5 platforms as well.

These changes should only affect a minority of our users. If you are affected and need help, please contact us!

Detailed list of changes:

  • All: Added binaries targeting .NET Framework 3.5 SP1.
  • All: Added binaries targeting .NET Framework 4.6 and higher.
  • All: Added binaries targeting .NET Standard 2.0.
  • All: Removed long-deprecated API. Deprecated legacy API.
  • Cryptography: Fixed behavior of HMAC mode in KeyMaterialDeriver.DeriveKeyMaterial method.
  • Cryptography: Fixed garbage collection issue with PFX-based certificate keys on non-Windows platforms.
  • Cryptography: Fixed handling of shared secred padding in AsymmetricKeyAlgorithm.GetKeyMaterialDeriver.
  • Cryptography: Fixed possible NullReferenceException in CertificationRequest.GetAlternativeHostnames method.
  • Common: Fixed Certificate.Associate with permanent bind on .NET Compact Framework to ensure the key is not garbage-collected.
  • Common: LocalItem constructor no longer fails on items with invalid paths.
Released
March282019

2018 R4 #

(build 6930 from 2018-12-21)

Maintenance release

This is a maintenance release with enhancements in the shared functionality.

Detailed list of changes:

  • Cryptography: Added support for 'BEGIN RSA PUBLIC KEY' keys (PKCS #1 / RFC 3447) to PublicKeyInfo.
  • Cryptography: Added support for IP addresses in Subject Alternative Name certificate extension.
  • Common: Added support for new OpenSSH key format with AES-CTR encryption.
  • Common: Fixed possible certificate validation failures on some versions of Xamarin.Android.
Released
December212018

2018 R3 #

(build 6874 from 2018-10-26)

Maintenance release

This release includes enhancements in the shared functionality.

Detailed list of changes:

  • All: Added password-hiding in Verbose logging mode.
  • All: Added experimental support for Mono on Windows.
  • All: Fixed messages of some ObjectDisposedException objects.
  • Cryptography: CertificateStore implements IEnumerable<Certificate>.
  • Cryptography: Proper error is reported when trying to validate ECDSA certificates on Mono.
  • Common: Added optimized thread pool on .NET Compact Framework.
Released
October262018

2018 R2.1 #

(build 6821 from 2018-09-03)

Enhancements and bugfixes

This is a maintenance release with several bugfixes and enhancements.

Detailed list of changes:

  • ZIP: Tweaked GZIP header to be compatible with more third-party implementations.
  • ZIP: Multiple calls of Close() on stream returned by ZipItem.Open() do not throw an exception anymore.
  • Cryptography: Optimized certificate signature validation on .NET Compact Framework.
Released
September032018

2018 R2 #

(build 6755 from 2018-06-29)

New fully supported platform: .NET Core on macOS

This release adds full support for .NET Core 2.x on macOS.

Enhancements and bugfixes

Enhancements and bugfixes in the shared functionality.

Detailed list of changes:

  • All: Added support for .NET Core on macOS.
  • Cryptography: Added workaround for eToken CSP private key operations.
  • Cryptography: Fixed possible 'Unexpected key algorithm' error in AsymmetricKeyAlgorithm.
  • Cryptography: Fixed Certificate.GetSignatureHashAlgorithm() for RSASSA-PSS certificates
  • Cryptography: RSACryptoServiceProvider usability detection made more compatible.
  • Cryptography: Fixed CertificateStore.Exists on .NET Core.
  • Cryptography: Fixed Certificate.HasPrivateKey for non-silent keys.
  • Cryptography: Fixed potential security vulnerability in RSAManaged class (proper padding check in signature verification).
  • Common: Fixed compatibility with AWS Lambda.
Released
June292018

2018 R1.1 #

(build 6690 from 2018-04-25)

New fully supported platform: .NET Core on Linux

This release adds full support for .NET Core 2.x on Linux.

Detailed list of changes:

  • All: Added support for .NET Core on Linux.
  • Cryptography: Enhanced error message when trying to use signing-only RSA certificate for decryption.
  • Cryptography: Fixed private key exporting on .NET Core on Linux.
  • Cryptography: Fixed retrieval of certificate with bound keys from store on .NET Core on Linux.
  • Cryptography: Fixed possible NullReferenceException in built-in custom certificate validator on .NET Compact Framework. Could occur using CRL validation.
  • Cryptography: Fixed DSAManaged.ExportParameter method that failed to export parameters with missing Seed.
  • Cryptography: Added CertificateEngine.BuildChain(Certificate) method.
  • Cryptography: Current CertificateEngine's BuildChain method is now used in CMS (PKCS #7) SignedData and EnvelopedData.
  • Cryptography: Added Certificate.Tag property to make it possible to associate custom objects with a particular Certificate instance.
  • Cryptography: Enhanced logging in built-in custom certificate validator on .NET Compact Framework.
Released
April252018

2018 R1 #

(build 6666 from 2018-04-01)

Fixed ZIP compression of large files

We have fixed a bug that caused occasional data corruption and a failed CRC check when compressing files larger than 2 GB.

Detailed list of changes:

  • ZIP: Enhanced error message when trying to open GZIP as ZIP (or the other way around).
  • ZIP: Added ZipArchive.Decrypt static method.
  • ZIP: Added logging capability to ZipArchive class (ZipArchive.LogWriter property).
  • ZIP: Fixed directory detection for Zip 64 archives.
  • ZIP: Fixed a bug that could result in corrupted .ZIP files when compressing some files longer than 2 GB.
  • ZIP: Enhanced internals.
  • ZIP: Fixed possible NullReferenceException while decompressing corrupted data or (legacy encrypted ZIP with wrong password).
  • Cryptography: Added CryptographicCollection<T> as a base for cryptographic collection classes.
  • Cryptography: Fixed possible NullReferenceException inCertificateRevocationList.GetRevocationReason() method.
  • Cryptography: Fixed PFX saving on Mono.
  • Cryptography: Fixed "Unable to load DLL 'Bcrypt.dll'" error on Linux with .NET Core.
  • Cryptography: Added EnhancedCertificateEngine to .NET Compact Framework version to make it possible to supply custom root certification authorities.
  • Common: Enabled Certificate/CertificateChain.LoadPfx with AlwaysCng option on .NET Compact Framework 3.9.
  • Common: Fixed rare race condition in possibly leading to NullReferenceException on .NET Core and UWP platforms.
  • Common: Fixed COMException in CertificateChain.BuildFrom method on experimental UWP platform.
  • Common: Built-in custom certificate validator on .NET CF no longer unnecessarily validates signature of root CA certificates that are trusted by the OS.
Released
April012018

2017 R6.3 #

(build 6586 from 2018-01-11)

Maintenance release

This is a maintenance release with enhancements in the shared functionality.

Detailed list of changes:

  • Cryptography: Added support for RSAES-OAEP with input parameter (label).
  • Cryptography: Added support for RSAES-OAEP with mismatched hash algorithms.
  • Cryptography: Fixed initialization of EncryptionAlgorithm property in MailMessage.Recipients collection items.
  • Cryptography: Added support for RSASSA-PSS with mismatched hash algorithms.
  • Cryptography: Fixed CNG private key conversion workaround.
Released
January112018

2017 R6.2 #

(build 6565 from 2017-12-21)

Faster AES on Windows

Rebex components now use Windows CNG for AES symmetric encryption algorithm when available. CNG implementation of AES is faster and takes advantage of AES-NI instructions.

Detailed list of changes:

  • ZIP: Optimized memory usage to accommodate ZIP files with more items.
  • ZIP: Internal optimizations.
  • ZIP: Usage of ActionOnExistingFiles.ResumeIfPossible in ZipArchive method arguments triggers ArgumentException (resume is not supported for ZIP files).
  • ZIP: Added ZipArchive.ExtractAll(string, ActionOnExistingFiles) method.
  • ZIP: Added GzipCompressionStream constructor that makes it possible to specify a file name when using stream as input.
  • Cryptography: Added CertificateChain.LoadDer method to load a chain of Base64-encoded certificates.
  • Cryptography: Fast CNG implementation of AES (which takes advantage of AES-NI instructions) is used when available.
  • Cryptography: Added workaround for broken X509Certificate.GetPublicKey() on Mono 5.4.
  • Cryptography: Added a workaround for GPG's gpgsm utility that required some SignedData fields to be DER-encoded.
Released
December212017

2017 R6.1 #

(build 6534 from 2017-11-20)

Maintenance release

This is a maintenance release with improvements, bugfixes or workarounds.

Detailed list of changes:

  • ZIP: Added ZipItemCollection.Sort(IComparer) method to make it possible to use Rebex.IO.FileSystemItemComparer class for sorting.
  • ZIP: Fixed behavior of ZipItemCollection.Sort() method that used reverse sorting order for item types.
  • ZIP: Fixed ZipArchive.ShrinkProgress.ProgressPercentage to return a proper value.
  • ZIP: Fixed ZipProgressChangedEventArgs to set ProgressPercentage on base class as well.
  • Cryptography: Enhanced custom CRL downloader for .NET Compact Framework to handle all 3xx redirect codes.
  • Cryptography: Enhanced Certificate.LoadDer to handle files with multiple certificates (loads the first one).
  • Cryptography: Enabled usage of MS CNG API in .NET Compact Framework 3.9 edition on Windows Embedded Compact 2013 when appropriate.
  • Cryptography: Fixed detection of AES/GCM support.
  • Cryptography: Fixed detection of native Brainpool and secp256k1 support.
  • Cryptography: Added 'params' to CertificateInfo.SetExtendedUsave/SetAlternativeHostnames methods.
  • Cryptography: Fixed null handling in CertificateInfo.MailAddress.
  • Cryptography: Fixed empty block processing in AES/GCM.
  • Common: Added workaround for broken Encoding.ASCII encoder on legacy Mono platforms.
  • Common: Enhanced SSPI error reporting.
  • Common: Fixed platform info in logs on macOS.
Released
November202017

2017 R6 #

(build 6508 from 2017-10-25)

Maintenance release

This is a maintenance release with several improvements, bugfixes and workarounds in the shared functionality.

Detailed list of changes:

  • All: Added support for DSA key generation on .NET Core on Windows.
  • Cryptography: Added support for RSAES-OAEP encryption to EnvelopedData/RecipientInfo objects (CMS / PKCS #7).
  • Cryptography: Added support for RSAES-OAEP encryption to Encrypt/Decrypt methods in Certificate and AsymmetricKeyAlgorithm classes.
  • Cryptography: Added support for DSA key generation on .NET Core 1.1 on Windows.
  • Cryptography: Added support for RSASSA-PSS signatures to SignMessage/VerifyMessage methods in Certificate and AsymmetricKeyAlgorithm classes.
  • Cryptography: Enhanced environment info logging.
  • Cryptography: Fixed KeySize property of RSAManaged and DSAManaged to return the proper size for key sizes that are not evenly divisible by 8.
  • Cryptography: Added support for RSASSA-PSS signatures to SignedData/SignerInfo objects (CMS / PKCS #7).
  • Cryptography: Added support for legacy MD4 algorithm.
  • Cryptography: Fixed saving of Brainpool keys (used wrong OID).
  • Cryptography: Fixed handling of ED25519 keys in PrivateKeyInfo.
  • Cryptography: Fixed CertificateStore private key saving on Mono.
  • Common: Environment info is now logged when creating an instance of FileLogWriter.
Released
October252017

2017 R5 #

(build 6461 from 2017-09-08)

New fully supported platforms: .NET Core 1.1 and 2.0 on Windows

This release adds full support for .NET Core 2.0 and 1.1 on Windows. Support for .NET Core on Linux and macOS is still experimental.

Support for .NET Standard 1.5, 1.6 and 2.0 (on .NET Core 1.1 and 2.0)

All Rebex components support .NET Standard 1.5, 1.6 and 2.0 on .NET Core 1.1 and 2.0. Support for other platforms (such as .NET Standard on .NET 4.6.x or higher) is still experimental.

Detailed list of changes:

  • All: Added support for .NET Core 1.1 and 2.0 on Windows.
  • Cryptography: Added HTTP redirect handling to CRL downloader on .NET Compact Framework.
  • Cryptography: Added workaround to enable SHA-2 on legacy operating systems (such as pre-SP3 Windows XP).
  • Cryptography: Using ASN.1 GeneralizedTime for dates greater than 2050.
  • Cryptography: Enhanced logging of some SSPI errors.
  • Cryptography: Added workaround for invalid or empty HTTP header names.
  • Common: Enabled SHA-2 support workaround for legacy RSA providers.
  • Common: Using custom IBM 437 encoding on .NET Compact Framework.
Released
September082017

2017 R4.1 #

(build 6426 from 2017-08-04)

Maintenance release

This is a maintenance release with several improvements, bugfixes and workarounds.

Detailed list of changes:

  • ZIP: Added path indexer to ZipItemCollection class.
  • ZIP: Improved .NET Core compatibility.
  • Cryptography: Enhanced RSAES-OAEP support.
  • Cryptography: Added CertificateStore.Add method (replacement for deprecated CertificateStore.AddCertificate method).
  • Cryptography: Added KeySetOptions.PreferCng and KeySetOptions.AlwaysCng options.
  • Cryptography: Fixed AsymmetricKeyAlgorithm.Dispose method.
  • Cryptography: Fixed AsymmetricKeyAlgorithm.CreateFrom method (always honors the ownsAlgorithm argument now).
Released
August042017

2017 R4 #

(build 6391 from 2017-06-30)

Maintenance release

This is a maintenance release with enhancements in the shared functionality.

Detailed list of changes:

  • All: Deprecated .NET Compact Framework 2.0, Windows (Store) 8.0 and Windows (Store/Phone) 8.1 platforms.
  • All: Lots of improvements in experimental .NET Core / .NET Standard edition.
  • Cryptography: Added support for certificates with private keys stored in CNG Key Storage Providers.
  • Cryptography: Compatibility enhancements in Certificate public/private key operations and AsymmetricKeyAlgorithm class.
  • Cryptography: Added Certificate.GetPublicKeyInfo() method.
  • Cryptography: Fixed PublicKeyInfo.GetKeySize() method that used to throw an exception for ECDSA and ED keys.
  • Cryptography: Added native support for secp256k1, Brainpool P-256 R1, P-384 R1 and P-512 R1 on Windows 10 and Windows Server 2016.
  • Cryptography: Fixed default hash algorithm detection in SignMessage/VerifyMessage methods in Certificate and AsymmetricKeyAlgorithm classes.
  • Cryptography: Experimental support for CMS (PKCS #7) decryption with RSA/OAEP/SHA-1 (RSAES-OAEP defined by RFC 3447).
  • Cryptography: Fixed 'Unexpected PFX length' error when exporting 4096-bit RSA certificates into PFX/P12 file.
Released
June302017

2017 R3 #

(build 6339 from 2017-05-09)

NuGet packages

Rebex components just got official NuGet packages!

If you have an active subscription, you will get NuGet packages as part of Rebex components. These are supposed to be added to your private NuGet repository.

Rebex packages are available at NuGet.org as well.

Experimental support for .NET Standard 1.5 and NET Core

This release adds experimental support for .NET Core (or rather .NET Standard 1.5/1.6) to all Rebex components.

In addition to .NET Core on Windows, Linux and macOS, .NET Standard edition of Rebex components can be used on any platform with .NET Standard 1.5 support. This currently includes .NET 4.6.2 and .NET 4.7, and hopefully other platforms soon.

Please note that 'experimental' support means that this edition has not yet reached the 'mainstream' support phase, and the API is subject to change. Any feedback is greatly appreciated.

Support for .NET Framework 4.7

.NET Framework 4.7 is a fully supported platform.

Detailed list of changes:

  • All: Added NuGet packages.
  • All: Added experimental support for .NET Core and .NET Standard 1.5.
  • All: Added workaround for a breaking change in Exception.Data on recent Xamarin.Android.
  • All: Added support for .NET Framework 4.7.
  • Cryptography: Enhanced error messages in AsymmetricKeyAlgorithm.
  • Cryptography: Custom certificate validator now behaves like MS CryptoAPI validator when dealing with RSA key sizes shorter than 1024 bits; MD5 signature hash algorithm is always considered to be weak for non-root certificates.
  • Cryptography: Added support for .PFX/.P12 saving on .NET Compact Framework (requires Windows CE 5.0 or later).
  • Common: Fixed incorrect handling of CNG RSA keys.
Released
May092017

2017 R2 #

(build 6291 from 2017-03-22)

Support for Visual Studio 2017

All Rebex components are now fully supported in Microsoft Visual Studio 2017. Older Visual Studio versions (2008 and higher) and .NET Framework versions (2.0 and higher) are still supported as well.

Maintenance release

This is a maintenance release with several improvements and workarounds.

Detailed list of changes:

  • All: Mono 2.10 is no longer supported. (Mono 3.x and 4.x still supported.)
  • ZIP: Improved ZipItem.ItemType detection for ZIP files created on Unix.
  • ZIP: Improved ZipException.ProblemType reporting in multi-file operations.
  • Cryptography: Added support for Elliptic Curve DSA to Certificate/CertificateChain/CertificateIssuer classes.
  • Cryptography: SignMessage/VerifyMessage methods added to AsymmetricKeyAlgorithm.
  • Cryptography: Renamed KeyDerivationOptions class to KeyDerivationParameters.
  • Cryptography: Removed seldom-used static methods from CryptoHelper.
  • Cryptography: CertificateIssuer class made available on .NET Compact Framework.
  • Cryptography: Fixed TLS 1.0/1.1 on FIPS-only Windows with disabled UseFipsAlgorithmsOnly.
  • Cryptography: Enhanced CertificateIssuer API.
  • Cryptography: Fixed PrivateKeyInfo.KeyAlgorithm that returned non-standard values for some ECDSA keys.
  • Cryptography: Fixed handling of padding in ECDSA private keys stored using the new OpenSSH format.
  • Cryptography: Fixed weak algorithm detection in .NET Compact Framework custom certificate verifier.
Released
March222017

2017 R1 #

(build 6249 from 2017-02-08)

Maintenance release

This is a maintenance release with enhancements in the shared functionality.

Detailed list of changes:

  • Cryptography: Added support for ValidationOptions.UseCacheOnly on .NET CF.
  • Cryptography: Substantially optimized CRL parsing code used by enhanced certificate validator on .NET Compact Framework.
Released
February082017

2016 R3 #

(build 6198 from 2016-12-19)

Maintenance release

This update brings several improvements, workarounds and bugfixes.

Detailed list of changes:

  • ZIP: ZipItem.LastWriteTime now returns null if not specified (instead of 0001-01-01 or 1980-01-01). It accepts null as well.
  • ZIP: Added ZipArchive.Options.ChecksumVerificationMode to make it possible to verify checksum immediately after a new file is added into the ZIP archive.
  • ZIP: Fixed ZipArchive.Close method behavior when called from multiple threads.
  • Cryptography: Improved ASN.1 time node parser.
  • Cryptography: Added support for certificate validation on Universal Windows Platform.
  • Cryptography: Added custom X.509 certificate validator for .NET Compact Framework with full SHA-2 support on all platforms.
  • Cryptography: Fixed parsing of 'Intended Usage' extension when 'Decipher Only' was specified.
  • Cryptography: Added static Create method to SHA256Managed/SHA384Managed/SHA512Managed classes on .NET Compact Framework.
  • Cryptography: ValidationResult.ErrorCode deprecated and replaced with NativeErrorCode.
  • Cryptography: Optimized memory usage in CMS/PKCS #7 (SingedData/EnvelopedData classes).
  • Cryptography: Added missing argument checks to CertificateIssuer methods.
  • Cryptography: Added support for Base64-encoded files with CRLF end-of-line sequences to CertificateChain.LoadP7b method.
  • Cryptography: Fixed HMAC calculation based on SHA-384 and SHA-512 on NET Compact Framework and Mono platforms.
  • Cryptography: Added Rebex.Security.Certificates.CertificateEngine class to make it possible to implement custom X.509 chain building and validation engines.
  • Common: Added ConsoleLogWriter for Xamarin platforms.
  • Common: Added Rebex.TeeLogWriter class that makes it possible to log to multiple log writers.
  • Common: Added LocalItem.GetChecksum methods and related types.
Released
December192016

2016 R2.2 #

(build 6083 from 2016-08-26)

Maintenance release

This update brings several improvements, workarounds and bugfixes.

Detailed list of changes:

  • ZIP: Fixed a bug in LZ77 window handling in Enhanced Deflate decompression routine. This might have caused errors in rare scenarios.
  • Cryptography: Added CheckCertificate/GetIssuingDistributionPoint methods to CertificateRevocationList class and ValidateRevocationList method to Certificate class.
  • Cryptography: Enhanced SHA-2 support check on .NET Compact Framework.
  • Cryptography: Fixed SHA-2 support in AsymmetricKeyAlgorithm.SignHash on Windows Server 2008 (and possibly other old platforms).
  • Common: Added workaround for broken FileStream.SetLength on some .NET Compact Framework platforms.
Released
August262016

2016 R2.1 #

(build 6054 from 2016-07-28)

Optimized ZIP memory usage

ZipArchive objects now occupy less memory than before, particularly when working with ZIP archives with lots of items.

Detailed list of changes:

  • ZIP: Optimized memory usage.
  • ZIP: WinZip encryption uses version 2 by default.
  • Cryptography: Fixed AsymmetricKeyAlgorithm.SignHash (in 2016 R2, it falls back to RSAManaged without trying to use RSACryptoServiceProvider first).
  • Cryptography: Fixed CertificateIssuer.IssueRevocationList method that ignored signatureHashAlgorithm argument and always used SHA-1.
  • Common: FileLogWriter on Windows Store 8.x / Universal Windows Platform is now thread-safe.
  • Common: Fixed LocalItem(string) constructor on Windows Store 8.x / Universal Windows Platform.
  • Common: Added workaround for broken handling of surrogate pairs when converting to "iso-8859-1" using System.Text.Encoding on Mono 4.x.
Released
July282016

2016 R2 #

(build 6026 from 2016-06-30)

Support for Xamarin June 2016 Update

June 2016 update of Xamarin.iOS/Xamarin.Android/Xamarin.Mac introduced a breaking change in Mono.Security API that broke compatibility with Rebex components. This issue has been solved in this release.

Fixed multi-core compression

Fixed a bug that prevented multi-core compression from working properly.

Detailed list of changes:

  • ZIP: Added BytesProcessed and CurrentFileBytesProcessed properties to ZipProgressChangedEventArgs object.
  • ZIP: Fixed a bug that caused an error when shrinking ZIP archives with Zip64 extension in some cases.
  • ZIP: Fixed multi-core compression to use the specified number of threads.
  • Cryptography: Fixed detection of native SHA-2 support in .NET Compact Framework version.
  • Cryptography: Added support for more variants of OpenSSL/OpenSSH (SSLeay) key files.
  • Cryptography: Fixed Certificate.Associate to work with DSA keys.
  • Cryptography: Added CrlNumber property to CertificateRevocationList object.
  • Cryptography: Added support for SHA-2 certificates to Certificate.VerifyHash in .NET 2.0 on Windows with FIPS-compliant mode enabled.
  • Cryptography: Certificate.LoadPfx and CertificateChain.LoadPfx methods now specify Exportable options by default (in addition to UserKeySet).
  • Cryptography: Added workaround for RSA implementations that reject rare signatures shorter than the key size.
  • Common: Enhanced SSPI error messages.
  • Common: Fixed LogWriterBase.Level default value.
  • Common: Fixed compatibility issue in Xamarin edition (caused by a breaking change in June 2016 update of Xamarin).
Released
June302016

2016 R1.1 #

(build 5885 from 2016-02-10)

Experimental assemblies for Xamarin.Mac

Added experimental binaries of most Rebex components (FTP/SSL, SFTP, File Server, Secure Mail, ZIP, Time, Security) for Xamarin.Mac platforms. They are suitable for targeting Xamarin.Mac Mobile Framework and Xamarin.Mac .NET 4.5 Framework projects.

Maintenance release

Experimental binaries of most Rebex components (FTP/SSL, SFTP, File Server, Secure Mail, ZIP, Time, Security) for the Xamarin.Mac platform are now available. They are suitable for targeting both Xamarin.Mac Mobile and Xamarin.Mac .NET 4.5 Framework projects.

Maintenance release

This release includes several hotfixes.

Detailed list of changes:

  • ZIP: Added workaround for ZIP files which specify zero for "total count of disks".
Released
February102016

2016 R1 #

(build 5855 from 2016-01-11)

Experimental assemblies for Windows Store Apps

Experimental binaries of many Rebex components (SFTP, FTP/SSL, Time, ZIP, File Transfer Pack, Terminal Emulation) for "Windows 8 Store", "Windows 8.1 PCL", and "Windows Universal Platform" are now available. The are suitable for "Store Apps" targeting Windows 8.0, Windows 8.1, Windows Phone 8.1, Windows 10, Windows 10 Mobile and Windows 10 IoT. Visit Rebex Labs for additional information.

Detailed list of changes:

  • All: Added workaround for Xamarin.Android whose Dns.GetHostEntry resolves 'localhost' to device's external IP address.
  • All: Rebex assemblies are now signed with SHA-256 signatures in addition to legacy SHA-1 signatures.
  • ZIP: Better exception message when working with ZIP archives which use PKWARE's proprietary encryption algorithm.
  • ZIP: ZipArchive now implements IEnumerable<ZipItem> to make it easier to iterate the items.
  • ZIP: ZipArchive.PasswordRequired event is raised correctly when calling ZipItem.Open method.
  • Cryptography: Enhanced cryptographic provider initialization error message.
  • Cryptography: Added workaround for PuTTY keys with bad data at the end.
  • Common: Fixed multi-file operations to never modify input FileSet's BasePath.
  • Common: ThreadPool is now used to handle background operations instead of a custom implementation.
  • Common: Enhanced multithread operation support in log writers.
Released
January112016

2015 R4.1 #

(build 5715 from 2015-08-24)

Fixed Xamarin mobile platform detection

Fixed platform detection code on Xamarin.iOS and Xamarin.Android.

Detailed list of changes:

  • All: Fixed platform detection on Xamarin.Android and Xamarin.iOS.
  • All: Version and platform added to assembly description.
Released
August242015

2015 R4 #

(build 5700 from 2015-08-09)

Support for Windows 10, .NET Framework 4.6 and Visual Studio 2015

All Rebex components now ship with full support for Windows 10, .NET Framework 4.6 and Microsoft Visual Studio 2015. Older Visual Studio versions (2005 and higher) and .NET Framework versions (2.0 and higher) are still supported as well.

Multi-core compression

Rebex ZIP now supports multi-core compression that enhances compression speed a lot on modern CPUs. Number of compressors can be configured via ZipArchive.Options.CompressorCount property.

Detailed list of changes:

  • All: Enhanced platform detection code.
  • ZIP: Added multi-core compression support. The number of cores used for compression can be configured via ZipArchive.Options.CompressorCount property.
  • Cryptography: Fixed final empty block handling in Twofish/Blowfish/ArcTwo TransformFinalBlock with PKCS #7 padding.
  • Cryptography: SSH and TLS/SSL now use Java-based Diffie-Hellman objects on Xamarin.Android platform to speed up negotiation.
  • Common: Fixed end-of-line sequences in LogWriterBase, optimized FileLogWriter.
  • Common: Added workaround for broken ASN.1 time values with the second part of "60".
Released
August092015

2015 R3 #

(build 5577 from 2015-04-08)

Maintenance release

This update brings several enhancements and bugfixes.

Detailed list of changes:

  • All: Fixed Version property of Ftp, Imap, Pop3, Scp, Sftp, Smtp and Ssh classes to return a proper version number. Changed Ftp.Version to a static propery to match the other objects.
  • Cryptography: Enhanced weak signature algorithm detection during certificate validation on Xamarin.iOS.
  • Common: Connect methods no longer require FileIOPermission (used to determine the assembly version for a log).
Released
April082015

2015 R2 #

(build 5555 from 2015-03-17)

Maintenance release

This update brings several enhancements and bugfixes.

Detailed list of changes:

  • Cryptography: Added support for SSLeay private keys with AES-256-CBC encryption.
  • Cryptography: Fixed broken HashSize property in SHA-2 CSP on .NET Compact Framework.
Released
March172015

2015 R1 #

(build 5512 from 2015-02-02)

Support for Xamarin Unified API

Added support for the new Unified API. This includes unified 32-bit and 64-bit platform support and makes it simple to share code between iOS and Mac.

Detailed list of changes:

  • All: Added support for Xamarin.iOS unified API.
  • ZIP: Added workaround to make it possible to open ZIP files that contain items with corrupted modification time.
Released
February022015

2014 R3 #

(build 5466 from 2014-12-18)

Legacy SSL 3.0 disabled by default in TLS/SSL-enabled components.

TLS 1.1 is now used by default in TLS/SSL-enabled components. Legacy SSL 3.0 support is disabled by default because it is no longer considered secure. Its use is strongly discouraged after disclosure of POODLE Attack.

Maintenance release

This update brings several improvements, workarounds and bugfixes.

Detailed list of changes:

  • All: Added more overloads to asynchronous Connect and Login methods.
  • All: Removed legacy Connect methods and enumerations from Xamarin.iOS and Xamarin.Android version (should never have been there).
  • ZIP: Changed default encoding for zip password to windows-1252 + added ZipArchive.Options.PasswordEncoding to support other encodings.
  • Cryptography: Fixed SymmetricKeyAlgorithm.Padding for non-CBC modes.
  • Cryptography: Added support for base-64 encoded P7B certificate chains.
  • Cryptography: Changed padding of parameters exported by DSAManaged.ExportParameters to match DSACryptoServiceProvider.
  • Cryptography: Added AsymmetricKeyAlgorithm.PublicOnly property.
  • Cryptography: Added workaround for non-working HMACSHA256/384/512 on some FIPS-only systems.
  • Cryptography: Added CertificateExtension.EnhancedKeyUsage method Useful when constructing certificate requests using CertificateRequest object.
  • Cryptography: Fixed DiffieHellmanManaged.KeySize that sometimes reported shorter bit lengths.
  • Cryptography: Several new AsymmetricKeyAlgorithm-based methods added to Certificate and CertificationRequest.
  • Common: Added LocalItem.Attributes property.
  • Common: PKCS #12 key loading routines changed to not persist keys in Windows key storage by default.
  • Common: Added ConsoleLogWriter, a console-based log writer class.
Released
December182014

2014 R2 #

(build 5298 from 2014-07-03)

Maintenance release

This update brings several improvements, workarounds and bugfixes.

Detailed list of changes:

  • All: Eliminated "Unknown heap type" warnings in Mono.
  • ZIP: Added argument-less overload for ZipArchive.Close method.
  • ZIP: Added static Compressor class with simple data compression methods.
  • Cryptography: Added Load, Save and Generate methods to PrivateKeyInfo and PublicKeyInfo classes.
  • Cryptography: Enhanced CertificationRequest class to support request generating in addition to parsing.
  • Cryptography: Fixed behavior with disabled UseFipsAlgorithmOnly on FIPS-only systems.
Released
July032014

2014 R1 #

(build 5171 from 2014-02-26)

Maintenance release

This update brings several improvements, workarounds and bugfixes.

Detailed list of changes:

  • All: Various small low-level optimizations.
  • ZIP: ZipArchive no longer throws 'unsaved changes' when nothing has been changed explicitly.
  • ZIP: ActionOnExistingFiles can be now specified in AddFile and ExtractFile methods.
  • ZIP: Added ZipArchiveOptions.CreateDirectoryEntries option to force creation of directory entries.
  • Cryptography: Fixed a bug in MD5SHA1 signature validation on .NET Compact Framework.
  • Cryptography: Fixed AES CSP availability detection in FIPS-compliant mode.
  • Cryptography: Fixed sorting of PKCS #7 signature attributes.
  • Cryptography: Added support for AES-128-CBC SSLeay private keys.
  • Cryptography: Added workaround for certificates and keys in Base64-encoded format ending with a zero octet.
  • Common: Assemblies made more obfuscator-friendly.
  • Common: Fixed null value comparisons in FileSystemItemComparer.
Released
February262014

2013 R3 #

(build 5085 from 2013-12-02)

Support for Xamarin.iOS and Xamarin.Android

Rebex components now support Xamarin.iOS and Xamarin.Android, making it possible to target iPad/iPhone and Android devices! (The only exception is the Terminal Emulation component whose TerminalControl object relies heavily on Windows Forms and is only available for Windows and Linux at the moment.)

Support for .NET Compact Framework 3.9

In addition to .NET CF 2.0 and 3.5, we now support .NET CF 3.9 as well. This makes it possible to target Windows Embedded Compact 2013, Microsoft's latest incarnation of Window CE.

Assemblies for every supported platform for all

With every purchase, you now get binaries for all supported platforms. Users with active support contract were upgraded for free. This will make it easy to embrace the new trends - we offer a single API that works with .NET, .NET Compact Framework, Mono, Xamarin.iOS and Xamarin.Android.

Support for Visual Studio 2013

All Rebex components now ship with full support for Microsoft Visual Studio 2013. Older Visual Studio versions (2005 and higher) and .NET Framework versions (2.0 and higher) are still supported as well.

Encrypt an existing ZIP file in a single line of code

Need to password-encrypt an existing ZIP file? It's now possible with a single line of code thanks to ZipArchive.Encrypt static method.

Detailed list of changes:

  • All: Xamarin.iOS and Xamarin.Android officially supported in all components except Rebex Terminal Emulation.
  • All: .NET Compact Framework 3.9 officially supported.
  • All: Visual Studio 2013 officially supported.
  • ZIP: Fixed format of NTFS extra fields.
  • ZIP: Added Unix properties to ZipItem.
  • ZIP: Fixed empty archivePath checking in ZipArchive.AddFile method.
  • ZIP: Fixed creation of ZIP item headers when adding data from stream.
  • ZIP: Added ZipArchive.Encrypt static method to add password protection to existing ZIP files without recompressing them.
  • ZIP: Optimized memory usage in ZipItem.ExtractToArray() method.
  • ZIP: Fixed handling of non-standard Zip64 files (which contain duplicate header values).
  • ZIP: Fixed issues with event handlers (used to be raised improperly in some cases).
  • ZIP: Fixed SetLength() method of streams returned by ZipItem.Open() method to throw an exception.
  • ZIP: Support for checksum-based file modification checking added to Add and Extract methods (ActionOnExistingFiles.ChecksumDiffers).
  • ZIP: Fixed assignment of default reaction in response to a problem encountered during Add/Extract methods.
  • Cryptography: Changed Certificate.FindCertificates method not to include subordinate CAs in the search by default.
  • Cryptography: Fixed CertificateStore.Exists on non-Windows platforms.
  • Cryptography: Added workaround for opening certificate stores in .NET CF that don't exist yet.
  • Cryptography: Added workaround for problem with DSA certificate in .PFX importing code on Windows Embedded Compact 2013.
  • Cryptography: Added .NET CF support for Certificate.Associate(privateKey, permanentBind)
  • Cryptography: Added Certificate.GetAuthorityKeyIdentifier() method.
  • Cryptography: Changed SignerInfo and SignerInfo objects to use NULL parameters for hash algorithms (in order to match RSACryptoServiceProvider behavior).
  • Common: Added FileLogWriter.Path to replace FileLogWriter.Filename.
  • Common: Added LocalItem.ComputeCrc32() method.
  • Common: Signed and encrypted message parsing made more compatible with broken messages.
Released
December022013

2013 R2 #

(build 4981 from 2013-08-20)

Faster ZIP archive parsing

ZIP archive parsing has been optimized, resulting in huge speed increase on slow disk drives.

Detailed list of changes:

  • ZIP: Optimized ZIP archive parsing, resulting in huge speed increase on slow disk drives.
Released
August202013

2013 R1 #

(build 4959 from 2013-07-29)

Official support for Mono

All Rebex components now officially support Mono, an open source, cross-platform, implementation of C# and the CLR that is binary compatible with Microsoft .NET Framework. The same assemblies that work on Windows now work on Mono in Linux or Apple OS X as well.

Detailed list of changes:

  • All: Added support for Mono.
  • All: Fixed finalizers that used to call state-changed events in some cases.
  • ZIP: Added Zip.Options.RaiseEventsFromCurrentThread option.
  • ZIP: Added support for ASi Unix extra field.
  • ZIP: Multi-file operations fixed to work properly with '.'-based FileSets.
  • ZIP: Fixed Delete("dir/.") that used to delete "dir" as well.
  • Cryptography: Added support for anyExtendedKeyUsage attribute (in X.509 certificates).
  • Cryptography: Added DiffieHellmanCryptoServiceProvider class.
  • Cryptography: Added PrivateKeyFormat.RawPkcs8 format for PrivateKeyInfo.Save and PrivateKeyInfo.Encode methods.
  • Cryptography: RSAManaged.VerifyHash returns false on error.
  • Cryptography: Fixed ArcTwoTransform to treat EffectiveKeySize of 0 as "current KeySize".
  • Cryptography: HMAC fixed to use block length of 128 for algorithms with hashes larger than 256 bits.
  • Cryptography: Fixed certificate verification to better handle server certificate with missing common name (used to throw NullReferenceException).
  • Cryptography: Fixed handle leak in CertificateStore constructor.
  • Common: Enhanced workaround for Stream.Seek on .NET CF.
  • Common: FileLogWriter enhanced to log assembly version when opening log file.
  • Common: Added missing PublicKeyInfo() constructor.
  • Common: Added FileSet.ContainingDirectoriesIncluded option.
  • Common: Added workaround for instances of FileStream that return "[Unknown]" name.
  • Common: EncodingTools support IBM437 charset on all platforms.
  • Common: Added CertificateFindOptions.None.
  • Common: Added FileSystemItemCollection.UsePath property.
Released
July292013

2012 R3 #

(build 4700 from 2012-11-12)

Official support for Visual Studio 2012

All Rebex components now ship with full support for Microsoft Visual Studio 2012. Samples and tutorials were updated for a new project file format. Older Visual Studio and .NET Framework versions are still supported too.

Task-based asynchronous methods

The major change is the addition of new Task-based asynchronous methods to .NET 4.0/4.5 variant of our components. This brings our API up-to-date with the current trends and makes it possible to utilize the new await keyword available in .NET 4.5 and Visual Studio 2012. Finally, asynchronous programming became easy and seamless. Check out some of the updated samples to see this in action!

Events now using SynchronizationContext

Previously, events raised by asynchronous methods were running in a background thread, making them hard to use in GUI applications. Now, events are raised using the SynchronizationContext captured when the asynchronous method was started, which basically means the events will run on application's GUI thread, making it possible to update application's controls directly from the event code.

Detailed list of changes:

  • 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.
  • ZIP: Added FIPS 140-2 compliant mode in which only FIPS-approved modules are used.
  • ZIP: Support for setting file datetimes on .NET Compact Framework.
  • ZIP: Fixed Legacy.FileSet indexer to return added paths in unchanged form.
  • ZIP: Asynchronous methods support .NET 4.x-style task-based asynchronous pattern in addition to .NET 2/3.x-style event-based pattern.
  • ZIP: Added Rename value to ActionOnExistingFiles enum (used in Add/Extract methods).
  • ZIP: Added Zip.Options.RestoreDateTime property (enhances existing RestoreFileDates option).
  • Cryptography: Fixed a bug in TransformFinalBlock method of Rebex.Security.Cryptography ciphers that caused interoperability issues with CryptoStream.
  • Cryptography: Fixed PKCS#7 padding check in built-in ciphers.
  • Cryptography: Added EncodingTools class that adds support for all the charsets needed on all platforms.
  • Cryptography: Added auto-detection of a bug in unpatched .NET 3.5's AesCryptoServiceProvider object.
  • Cryptography: Implicit ObjectIdentifier(string) constructor added.
  • Cryptography: Fixed CryptoHelper.CreateAlgorithm to return CSP version of SHA-2 hash algorithms when available.
  • Cryptography: Fixed CertificateFinder property behavior to keep old certificates if no certificates are found by the new finder.
  • Cryptography: Server certificate verification routine now allows certificates with '*.domain.net' names to be used for 'domain.net' in addition to '*.domain.net'.
  • Cryptography: Fixed a bug in private key decryption routine which failed with keys encrypted with PKCS #12 key derivation algorithm.
  • Common: Fixed P/Invokes in NTLM/Kerberos code.
  • Common: AddRange method added to file item collections.
  • Common: FIPS 140-2 compliant mode enhancements.
  • Common: Fixed certificate validation issue on Windows XP and Windows Server 2003.
  • Common: Added Certificate.Thumbprint property.
  • Common: Fixed a bug in certificate chain building routine that caused it to ignore additional stores in some cases.
Released
November122012

2012 R2 #

(build 4546 from 2012-06-11)

High-level GZIP API

Although it was already possible to read and write GZIP files using existing Rebex.IO.Compression.Streams classes, they were not as straightforward to use as we would like. As an easy-to-use alternative, we added Rebex.IO.Compression.Gzip class with Compress and Decompress methods.

Detailed list of changes:

  • ZIP: High-level GZIP API added (Rebex.IO.Compression.Gzip class).
  • Cryptography: Fixed local/UTC time comparison in Certificate.IsTimeValid.
  • Cryptography: Added implicit conversion between Certificate object and X509Certificate/X509Certificate2 objects.
  • Cryptography: Enhanced compatibility with Mono on non-Windows platforms - Certificate validation now works!
  • Cryptography: Support for saving .PFX/.P12 files added to Certificate.Save method.
  • Cryptography: Added new overloads of Certificate.Associate that make it possible to permanently bind the private key to the certificate.
  • Cryptography: Added Certificate.FriendlyName property.
  • Cryptography: Fixed Certificate.SignHash method which used to fail on .NET 2.0 when an associated key was used for MD5SHA1 signature generation.
  • Cryptography: Fixed MD5Managed.HashSize property which used to return 0.
  • Cryptography: Certificate.HasPrivateKey code in .NET CF version changed to behave identically to .NET version.
  • Common: Added FileSet.Flatten option (makes it possible to ignore source directory structure and copy all files into single target directory).
  • Common: Enhanced error reporting of file-path-based methods.
  • Common: Added LocalItem and LocalItemCollection classes (used by FileSet.GetLocalItems method).
Released
June112012

2012 R1 #

(build 4444 from 2012-03-01)

Components DLLs have been renamed

We found out that the DLL naming scheme we decided to use back in 2003 was no longer sustainable and decided to change it. Instead of Rebex.Net.Ssh.dll, Rebex.Net.SecureSocket.dll, Rebex.Net.ProxySocket.dll and Rebex.Security.dll, we now have Rebex.Common.dll and Rebex.Networking.dll. Most of the other DLLs were renamed as well during the process (Rebex.Net.Ftp.dll became Rebex.Ftp.dll, for example). We are sorry for any inconvenience this may have caused, but an alternative solution - introduction of a new DLL for shared functionality - would not be hassle-free either. Fortunately, in order to upgrade to the new version, most customers will only need to remove references to the old DLLs and add references to the new ones because the API is still backward-compatible.

Detailed list of changes:

  • 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).
  • ZIP: Added multi-file support to GzipCompressionStream and GzipDecompressionStream.
  • ZIP: Better detection of the need to use Zip64 extension for long streams.
  • ZIP: Added ZipArchive.GetItemsAsync method.
  • ZIP: New values related to Add, Extract, Delete and GetItems methods added to ArchiveOperationStep enum.
  • ZIP: Default charset changed to IBM437 (used to be Encoding.Default).
  • ZIP: The Rebex.IO.Compression.FileSet class was moved to Rebex.IO.Compression.Legacy namespace. The Rebex.IO.FileSet class is intended to be used instead.
  • Cryptography: Faster Blowfish and Twofish algorithms.
  • Cryptography: SubjectPublicKeyInfo.Load method now supports binary keys.
  • Cryptography: Removed lots of CryptoApi dependencies from Certificate code.
  • Cryptography: 4096-bit DSA keys (used by some SSH servers) are no longer rejected.
  • Cryptography: Diffie-Hellman and DSA algorithms fall back to managed ModPow calculation on .NET CF with missing "Enhanced DSA and Diffie-Hellman" CSPs.
  • Cryptography: Added Certificate.Associate(PrivateKeyInfo) method.
  • Cryptography: Certificates associated with a private key using Associate method now support MD5SHA1 hash algorithm and suitable for TLS/SSL client certificate authentication.
  • Common: Fixed a bug in TraceLogWriter that caused an additional newline to be written at the end of each message.
  • Common: Added FileSystemItem and FileSystemItemCollection classes.
  • Common: Better readability in Verbose-level logs.
  • Common: Thread ID added to all log messages.
Released
March012012

1.0.4129.0 #

(build 4129 from 2011-04-21)

Detailed list of changes:

  • ZIP: Fixed a bug in the GzipDecompressionStream class causing an InvalidCastException to be thrown when accessing Gzip specific properties.
  • ZIP: Fixed a bug in the FileSet class causing an ArgumentException to be thrown when adding a root path (such as "C:\").
  • ZIP: Fixed a bug causing an ArgumentException to be thrown when extracting items specified by a mask from the root directory (such as "/*.txt").
  • ZIP: Fixed a bug causing a deadlock in the Add method on .NET CF.
Released
April212011

1.0.4086.0 #

(build 4086 from 2011-03-09)

Detailed list of changes:

  • ZIP: Faster decompression!
  • ZIP: Exceptions thrown by ZipArchive.ProblemDetected event no longer cause unhandled exception and terminate the application.
Released
March092011

1.0.4060.0 #

(build 4060 from 2011-02-11)

Detailed list of changes:

  • ZIP: Added an option (ZipOptions.SkipItemsWhichCannotExtract) to skip items we can't extract in ZipArchive.Extract method.
  • ZIP: GzipCompressionStream and GzipDecompressionStream objects added.
  • ZIP: .NET Compact Framework edition of Rebex ZIP now available.
  • ZIP: Fixed a bug in ZLIB decompression routines.
  • ZIP: Added ZipArchive.ForceManagedAes flag as a workaround to .NET's leaking AesCryptoServiceProvider.
  • ZIP: ZipArchive.Add method (in ThrowExceptionOnLinks mode) correctly detects the links in Windows 7 which were not detected previously.
  • ZIP: Zip64 is no longer used for data added from Stream by default due to compatibility issues (with Windows XP, for example). ZipArchive.Options.Zip64Mode property added to make the behavior configurable.
Released
February112011

1.0.3854.0 #

(build 3854 from 2010-07-20)

Detailed list of changes:

  • ZIP: Added a new overload for Extract, Add and Delete methods that accepts a list of files.
  • ZIP: Added ZipItem.Open() method that makes it possible to open a readable stream of a compressed file.
  • ZIP: Added a new Rebex.IO.Compression.Streams namespace with low-level compression/decompression classes (Deflate, Enhanced Deflate, ZLIB).
  • ZIP: Better error handling in AddFiles/ExtractFiles/ExtractAll methods.
  • ZIP: Fixed a bug in handling the Retry action if an error occured while retrieving hierarchy.
  • ZIP: Added support for password-based encryption using 256bit, 192bit, 128bit AES and ZIP 2.0.
  • ZIP: Added ShrinkProgress event to make it possible to display shrink progress.
  • ZIP: Asynchronous methods added to ZipArchive class: AddAsync, ExtractAsync, MoveAsync, DeleteAsync, SaveAsync.
  • ZIP: Added support for persisting and restoring last access and creation dates.
  • ZIP: Added a DeleteUnfinishedFileOnExtractError option to specify whether to delete or keep a file on extract error.
Released
July202010

1.0.3793.0 #

(build 3793 from 2010-05-20)

Detailed list of changes:

  • All: Packages for .NET 4.0 and Visual Studio 2010 now available.
  • ZIP: Initial release.
Released
May202010