UNRELEASED: Mono 4.6.0 Release Notes

These notes are for a current or upcoming PREVIEW RELEASE and might not reflect the final release.

Coverage

The release notes cover the changes from:

End: Start:

Preview Releases

Highlights

In Depth

POTENTIALLY - TLS

We have added a new implementation of TLS that supports TLS up to version 1.2 (the old version only supported up to 1.0). This is a completely new implementation, and given that it is new, we do not currently default to it, but we hope to switch to it in the future.

We have an implementation switcher on both the SslStream and HttpListener classes. The default implementation of SslStream for now continues to be the old Mono TLS implementation, the one that supports SSL and up to TLS 1.0. But it is now possible to switch the implementation to either our new managed implementation or any implementation built on top of something else.

You can control this with the MONO_TLS_PROVIDER environment variable. The possible settings are as follows:

  • default - let Mono choose the best implementation available for the platform, currently this is hardcoded to the old implementation, but we will change this once we complete the audit of our TLS stack, and we might change this on a per-platform basis to use SslStream implementations that use some native library.

  • oldtls - Mono’s historical implementation, it only goes up to TLS 1.0.

  • newtls - Mono’s new managed implementation, it supports TLS 1.0 up to 1.2

  • Any full typename - You can specify a fully qualified .NET Type, this can be used to test alternative implementations without changing Mono’s runtime: MONO_TLS_PROVIDER="Mono.Security.Providers.NewTls.NewTlsProvider, Mono.Security.Providers.NewTls, Version=4.0.0.0, Culture=neutral, PublicKeyToken=84e3aee7225169c2

For custom implementations, the type should subclass the Mono.Security.Interface.MonoTlsProvider interface from the Mono.Security assembly and have a public parameterless constructor.

Bug Fixes

Contributors