Rebex MSG

Outlook MSG file format library for .NET

Download 30-day free trial Buy from $199
More .NET libraries

Release notes for Rebex MSG for .NET

Released
November122024

7.0.9083 #

(build 9083 from 2024-11-12)

Support for .NET 9!

This release adds a new set of binaries targeting .NET 9. It supports all .NET 9 platforms:

  • Windows (x64, x86, ARM64)
  • Linux (x64, ARM32, ARM64)
  • Android (x64, ARM32, ARM64)
  • macOS (ARM64, x64)
  • iOS/iPadOS/tvOS (ARM64)

R6.17 available as well

For customers who have not yet upgraded to version 7 of Rebex libraries, we published the R6.17 update with important fixes and enhancements. Version R6.x will be supported until November 2025.

Detailed list of changes:

  • All: Added binaries targeting ,NET 9 on all supported platforms.
  • Cryptography: Added workaround for EnvelopedData with unpadded RSA EncryptedKey.
  • Cryptography: Added workaround for parsing CMS ASN.1 with redundant zeros at the end.
  • Cryptography: Fixed common name validation logic in NativeCertificateEngine and EnhancedCertificateEngine when used stand-alone by custom code.
Released
October082024

7.0.9048 #

(build 9048 from 2024-10-08)

Maintenance release

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

Detailed list of changes:

  • Cryptography: Added ValidationOptions.​DisableCertificateDownloads option (only supported on .NET 5 and higher).
  • Cryptography: Fixed detection of support for ECDH with brainpool curves on iOS.
  • Cryptography: Fixed padding issues in AsymmetricKeyAlgorithm.​GetKeyMaterialDeriver (did not affect Rebex libraries).
  • Cryptography: Fixed wrong RSA public key format when saving private keys in new OpenSSH format.
  • Cryptography: Improved handling of wrong (negative) serial numbers in X.509 certificates.
Released
June252024

7.0.8943 #

(build 8943 from 2024-06-25)

Maintenance release

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

R6.16 available as well

For customers who have not yet upgraded to version 7 of Rebex libraries, we published the R6.16 update with important fixes and enhancements. Version R6.x will be supported until November 2025.

Detailed list of changes:

  • Mail: Added support for Sensitivity header when converting between EML and MSG.
  • Cryptography: Added support for issuing certificates signed with Ed25519.
  • Cryptography: Fixed calculation of subject key identifier in certificate issuer API.
  • Cryptography: Fixed rare wrong final calculation of Poly1305 hash when temporary storage for remaining data is bigger than input block size.
  • Cryptography: Using AES/GCM instead of AES/CBC for new OpenSSH key format encryption.
Released
April082024

7.0.8865 #

(build 8865 from 2024-04-08)

Maintenance release

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

Detailed list of changes:

  • Mail: Added LinkedResource(fileName, name, mediaType) constructor and SetContentFromFile method.
  • Mail: Fixed filename assignment in LinkedResource constructor and SetContent/SetContentFromFile methods.
  • Cryptography: Added support for loading private keys in new OpenSSH key format encrypted using AES/GCM or ChaCha20/Poly1305.
Released
February192024

7.0.8816 #

(build 8816 from 2024-02-19)

Maintenance release

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

R6.15 available as well

For customers who have not yet upgraded to version 7 of Rebex libraries, we published the R6.15 update with important fixes and enhancements. Version R6.x will be supported until November 2025.

Detailed list of changes:

  • Mail: Fixed parsing of file names of UUEncoded attachments to properly handle whitespaces and other strange characters.
  • MIME: Added a workaround for broken messages with unescaped slash in a MIME parameter.
  • Cryptography: Added low-level API for loading/saving PrivateKeyInfo with byte[] passwords.
  • Cryptography: Added ObjectIdentifier.Encode method.
  • Cryptography: Added support for loading PKCS #8 private keys with legacy RC4 algorithm.
  • Cryptography: Added UseDer property to SignedData and EnvelopedData classes.
  • Cryptography: PrivateKeyInfo.Save now uses SHA-2 instead of SHA-1 in PKCS #8 format with PBKDF2 derivation.
  • Cryptography: Reduced memory footprint of CNG API interop layer.
Released
December202023

7.0.8755 #

(build 8755 from 2023-12-20)

Improved Native AOT compatibility

This update improves compatibility with .NET 8's Native AOT deployment model, which makes it possible to compile applications to native code ahead-of-time (AOT). Most common features should already work in Native AOT mode.

Detailed list of changes:

  • All: Improved compatibility with Native AOT in .NET 8.
  • Common: Optimized memory usage of miscellaneous methods.
Released
November152023

7.0.8720 #

(build 8720 from 2023-11-15)

Support for .NET 8!

This release adds a new set of binaries targeting .NET 8. It supports all .NET 8 platforms:

  • Windows (x64, x86, ARM64)
  • Linux (x64, ARM32, ARM64)
  • macOS (x64)
  • Android
  • iOS/tvOS

Detailed list of changes:

  • All: Added a new set of binaries targeting .NET 8.0.
  • Mail: Added new MailMessage.CreateReply(...) overload with common ReplyAll behavior.
  • Cryptography: Fixed behavior of certificate issuer API when no CRLs have been specified.
Released
September132023

7.0.8657 #

(build 8657 from 2023-09-13)

Maintenance release

This is a maintenance release that fixes minor issues.

Detailed list of changes:

  • MIME: Fixed ParsingHeader event which was called too late for Content-Type header.
Released
June292023

7.0.8581 #

(build 8581 from 2023-06-29)

First 7.0.* release!

This is the first release of 7.0.* series. It no longer uses the 'Rx.y' naming scheme, which was somewhat confusing.

The R6.x series will be supported until November 2025 and will receive fixes and security updates.

Detailed list of changes:

  • Mail: Added MailSettings.​DoNotCloseStreamAfterLoad option.
  • Mail: Relaxed MSG property stream length check.
  • Cryptography: Added API for CRL distribution endpoints with multiple CRL entries.
  • Cryptography: Added Certificate.Bind methods.
  • Cryptography: Added CertificateStoreName.WebHosting enum value.
  • Cryptography: Added CertificateStoreOpenFlags and corresponding CertificateStore constructors.
  • Cryptography: AesGcm and ChaChaPoly1305 classes moved from Rebex.Common assembly to Rebex.Security.
  • Cryptography: Certificate.Extensions collection is now read-only.
  • Cryptography: Deprecated EncryptValue/DecryptValue methods in RSAManaged class.
  • Cryptography: Fixed visibility of CertificateException legacy serialization constructor.
  • Cryptography: Improved loading of Y-less legacy DSA keys in FIPS-only mode on .NET 6/7 in Windows.
  • Common: Optimized internal Task.Run methods on old platforms.
  • Common: Optimized internal WhenAll/WhenAny Task combinators on old platforms.
Released
June282023

R6.14 #

(version 6.0.8580 from 2023-06-28)

Maintenance release

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

What next for R6.x?

Version R6.x of Rebex libraries will be supported until November 2025 and will receive fixes and security updates. See R6.x release history for more information.

Detailed list of changes:

  • All: Fixed problems in finalizer logic.
  • Cryptography: Fixed support for ECDSA private key formats with optional public key.
Released
June062023

R6.13 #

(version 6.0.8558 from 2023-06-06)

Maintenance release

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

Detailed list of changes:

  • Cryptography: Fixed lifecycle of AsymmetricKeyAlgorithm based on RSA CSP.
  • Cryptography: Improved support for SignatureHashAlgorithm.MD5SHA1 in .NET 5 and higher in FIPS-only mode.
Released
April182023

R6.12 #

(version 6.0.8509 from 2023-04-18)

Maintenance release

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

Detailed list of changes:

  • Common: Fixed rare race condition in scheduled action infrastructure.
Released
January312023

R6.11 #

(version 6.0.8432 from 2023-01-31)

Maintenance release

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

Detailed list of changes:

  • MIME: Fixed possible NullReferenceException in a parser for wrong MIME parameter encodings.
  • Cryptography: Fixed CRL retrieval for certificate with multiple CRL distribution endpoints.
  • Common: Fixed potential premature release of an unmanaged buffer in SSPI interop code.
  • Common: Improved compatibility with Windows 2000.
Released
December022022

R6.10 #

(version 6.0.8372 from 2022-12-02)

Maintenance release

This is a maintenance release that brings several enhancements and resolves some issues.

Detailed list of changes:

  • MIME: Improved X.509 certificate chain resolving for PFX-based certifictes in S/MIME.
  • Cryptography: Added workaround for broken X25519 implementation in early versions of Windows 10 (version 1507 and 1511).
  • Common: Fixed Windows Extended Protection in 64-bit Windows applications.
Released
November082022

R6.9 #

(version 6.0.8348 from 2022-11-08)

Support for .NET 7!

This release adds a new set of binaries targeting .NET 7. It supports all .NET 7 platforms:

  • Windows (x64, x86, ARM64)
  • Linux (x64, ARM32, ARM64)
  • macOS (x64)
  • Android
  • iOS/tvOS

Detailed list of changes:

  • All: Added a new set of binaries targeting .NET 7.
  • Cryptography: Fixed SHA-2 support on pre-SP3 versions of Windows XP.
Released
October252022

R6.8 #

(version 6.0.8334 from 2022-10-25)

Maintenance release

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

Detailed list of changes:

  • Cryptography: Added SSE2 implementation of ChaCha20 for .NET 5.0 or higher.
Released
October052022

R6.7 #

(version 6.0.8314 from 2022-10-05)

Fixed code signing (broken by DigiCert)

From September 14th to September 22nd, 2022, DigiCert's timestamping authority mistakenly issued a TSA certificate with a validity period of only one year. Unfortunately, this mistake means that code-signed Rebex assemblies from R6.6 release will no longer pass validation after February 28th, 2024.

Therefore, Rebex customers should upgrade from R6.6 as soon as possible to take advantage of the new TSA certificate's full 11-year validity period.

Detailed list of changes:

  • All: This release is properly code-signed again. TSA certificate validity was too short in R6.6 due to DigiCert's mistake.
  • MIME: Added workaround for yet another form of wrong Content-Disposition parameter encoding.
  • Cryptography: Added Rebex.Common.Validator assembly.
Released
September162022

R6.6 #

(version 6.0.8295 from 2022-09-16)

Maintenance release

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

Detailed list of changes:

  • Cryptography: Added GetPrivateKeyAlgorithm/​GetPublicKeyAlgorithm methods to Certificate class.
Released
July152022

R6.5 #

(version 6.0.8232 from 2022-07-15)

Maintenance release

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

Detailed list of changes:

  • Common: Improved internal asynchronous infrastructure for old platforms.
Released
May252022

R6.4 #

(version 6.0.8181 from 2022-05-25)

Support for .NET 6.0 on Android and iOS

Support for mobile platforms in .NET 6.0 has finally arrived, slightly masquaraded as .NET MAUI. Rebex libraries now support these new platforms as well.

Detailed list of changes:

  • All: Added support for .NET 6.0 on Android.
  • All: Added support for .NET 6.0 on iOS.
  • MIME: Date header parser made more benevolent.
  • MIME: Fixed UnparsableHeader event which was not called for unparsable Date headers when ProcessAllHeaders was enabled.
  • Cryptography: Added support for NTLM plugin for non-Windows platforms.
  • Cryptography: Added workaround for buggy RSACryptoServiceProvider in .NET 6.0 on Android.
  • Cryptography: Enhanced workarounds for slightly misbehaved certificate validator in .NET 6.0 on Android.
  • Cryptography: Fixed compatibility with ECDiffieHellman on .NET 7 Preview.
  • Cryptography: Fixed exporting of DSA keys on Windows XP SP3.
  • Cryptography: Optimized ChaCha20Poly1305 internals.
  • Cryptography: Optimized internal AEAD interfaces.
  • Cryptography: Working around RSA private key access issue in .NET 6.0 on Android.
  • Common: Improved inner exception rethrow logic on .NET Framework 3.5/4.0.
  • Common: Optimized internal data buffer methods.
Released
March282022

R6.3 #

(version 6.0.8123 from 2022-03-28)

Maintenance release

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

Detailed list of changes:

  • Mail: Added workaround for TNEF attachments with empty ContentId.
  • Cryptography: Improved Poly1305 internals.
  • Cryptography: Slightly optimized encrypt/decrypt operations in symmetric branch of the CNG/BCrypt interop layer.
  • Cryptography: Small optimization in ARM (Advanced NEON SIMD) implementation of ChaCha20.
  • Common: Fixed rare premature finalization of a buffer in SSPI interop that might lead to an AccessViolationException.
  • Common: Improved internal asynchronous infrastructure.
Released
January242022

R6.2 #

(version 6.0.8060 from 2022-01-24)

Maintenance release

This is a maintenance release that resolves an issue in a shared library.

Detailed list of changes:

  • Cryptography: Fixed releasing of CNG handles in AES/GCM interop (issue only present in R6.1 on Windows).
Released
January082022

R6.1 #

(version 6.0.8044 from 2022-01-08)

Maintenance release

This is a maintenance release that brings several enhancements and resolves some issues.

Detailed list of changes:

  • All: Fixed compatibility of Rebex binaries for .NET Framework 4.0 with ASP.NET 4.5 or higher.
  • Mail: Added UseDefaultCharsetForHeaders option to MailSettings and MimeOptions.
  • Cryptography: Caching of CNG algorithm provider handles.
  • Cryptography: Fixed Certificate.​GetSignatureHashAlgorithm() for certificates signed by Ed25519 authorities.
  • Cryptography: Fixed unmanaged resource leak in CertificateStore.
  • Cryptography: Optimized symmetric branch of Windows CNG (BCrypt) interop layer.
Released
November252021

R6.0 #

(version 6.0.8000 from 2021-11-25)

Support for .NET 6.0!

This release adds a new set of binaries targeting .NET 6.0. It supports all .NET 6.0 platforms:

  • Windows (x64, x86, ARM64)
  • Linux (x64, ARM32, ARM64)
  • macOS (x64)

Please note that support for Android and iOS/tvOS in .NET 6.0 is still in preview mode. We will fully support these platforms as soon as the corresponding .NET 6.0 update is published.

Support for Visual Studio 2022

All Rebex libraries are now fully supported in Microsoft Visual Studio 2022.

Detailed list of changes:

  • All: Added a new set of binaries targeting .NET 6.0.
  • All: Removed several obsolete and deprecated APIs.
  • All: Removed support for legacy ISerializable interface from binaries for .NET Standard.
  • MIME: Changed default charset for MIME text entities to UTF-8.
Released
November242021

R5.7 #

(version 5.0.7999 from 2021-11-24)

Support for .NET 6.0 and Windows 11

Windows 11 is now a supported platform.

Rebex assemblies targeting .NET Standard 2.1 now support .NET 6.0.

Detailed list of changes:

  • All: Added support for .NET 6.0 on Windows, Linux and macOS.
  • All: Added support for Windows 11.
  • MIME: Improved ID check in MessageId constructor.
  • Cryptography: Added more values to X.509 RevocationReason enum.
  • Cryptography: Added support for private keys in PuTTY PPK3 format (uses Argon2 key derivation function).
  • Cryptography: Added workaround for Google's CRLs with non-constructed explicit ASN.1 nodes.
Released
October262021

R5.6 #

(version 5.0.7970 from 2021-10-26)

Support for .NET 6.0 RC2

Rebex assemblies targeting .NET Standard 2.1 have been fully tested on .NET 6.0 RC2 and are suitable to be used in production on Microsoft's latest .NET platform ahead of the official release.

Maintenance release

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

Detailed list of changes:

  • All: Added support for .NET 6.0 RC2.
  • Cryptography: Fixed handling of RSAParameters without DP/DQ in AsymmetricKeyAlgorithm and PrivateKeyInfo.
  • Cryptography: Fixed loading of encrypted keys with empty passwords in new OpenSSH format.
  • Cryptography: Small optimization in AVX2 implementation of ChaCha20.
Released
August172021

R5.5 #

(version 5.0.7900 from 2021-08-17)

New binaries for .NET Core 3.1

We added a new set of binaries targeting .NET Core 3.1. We have already been supporting that platform since 2019 via .NET Standard 2.1. However, the new set of binaries utilizes .NET Core's hardware intrinsics API and features our fast ChaCha20/Poly1305 implementation that has been previously only available on .NET 5.0.

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

Detailed list of changes:

  • All: Added 'netcoreapp3.1' binaries.
  • All: Fixed compatibility with UWP and .NET Native compiler.
Released
August052021

R5.4 #

(version 5.0.7888 from 2021-08-05)

New library: Rebex MSG

Rebex MSG is .NET library for reading, processing and writing Microsoft Outlook .MSG e-mail message files. Unlike existing MIME classes from Rebex.Mail namespace, MsgMessage and related classes work directly with MSG file format.

The new library is available as a standalone package or as a part of Rebex Total Pack.

Detailed list of changes:

  • Mail: Improved MSG reader to read 'subject' from PidTagConversationTopic MAPI property when needed.
  • Cryptography: Fixed Certificate.FriendlyName setter in .NET 5.0 on non-Windows platforms.
Released
March272020

2019 R3.4 #

(version 5.0.7392 from 2020-03-27)

Detailed list of changes:

  • Common: Enhanced error message when a Diffie-Hellman key that is too large is encountered.
Released
October292019

2019 R3.3 #

(version 5.0.7242 from 2019-10-29)

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.