void EnsureSSLStreamAvailable(HttpWebRequest request) { tlsProvider = request.TlsProvider; if (tlsProvider != null) { return; } tlsProvider = MonoTlsProviderFactory.GetProviderInternal(); }
internal bool ChangeToSSLSocket(ref Stream stream) { #if SECURITY_DEP var provider = MonoTlsProviderFactory.GetProviderInternal(); var settings = MSI.MonoTlsSettings.CopyDefaultSettings(); settings.UseServicePointManagerCallback = true; var sslStream = provider.CreateSslStream(stream, true, settings); sslStream.AuthenticateAsClient(requestUri.Host, null, SslProtocols.Default, false); stream = sslStream.AuthenticatedStream; return(true); #else throw new NotImplementedException(); #endif }
internal IMonoSslStream CreateSslStream(Stream innerStream, bool ownsStream, MSI.MonoRemoteCertificateValidationCallback callback) { lock (registry) { if (tlsProvider == null) { tlsProvider = MonoTlsProviderFactory.GetProviderInternal(); } if (tlsSettings == null) { tlsSettings = MSI.MonoTlsSettings.CopyDefaultSettings(); } if (tlsSettings.RemoteCertificateValidationCallback == null) { tlsSettings.RemoteCertificateValidationCallback = callback; } return(tlsProvider.CreateSslStream(innerStream, ownsStream, tlsSettings)); } }