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.