IMonoTlsProvider tlsProvider;
MSI.MonoTlsSettings tlsSettings;
- X509Certificate2 certificate;
+ X509Certificate certificate;
Hashtable registry; // Dictionary<HttpListenerContext,HttpListenerContext>
ArrayList ctx_queue; // List<HttpListenerContext> ctx_queue;
auth_schemes = AuthenticationSchemes.Anonymous;
}
- internal HttpListener (X509Certificate2 certificate, IMonoTlsProvider tlsProvider, MSI.MonoTlsSettings tlsSettings)
+ internal HttpListener (X509Certificate certificate, IMonoTlsProvider tlsProvider, MSI.MonoTlsSettings tlsSettings)
: this ()
{
this.certificate = certificate;
this.tlsSettings = tlsSettings;
}
- internal X509Certificate2 LoadCertificateAndKey (IPAddress addr, int port)
+ internal X509Certificate LoadCertificateAndKey (IPAddress addr, int port)
{
lock (registry) {
if (certificate != null)
string pvk_file = Path.Combine (path, String.Format ("{0}.pvk", port));
if (!File.Exists (pvk_file))
return null;
- certificate = new X509Certificate2 (cert_file);
- certificate.PrivateKey = PrivateKey.CreateFromFile (pvk_file).RSA;
+ var cert = new X509Certificate2 (cert_file);
+ cert.PrivateKey = PrivateKey.CreateFromFile (pvk_file).RSA;
+ certificate = cert;
return certificate;
} catch {
// ignore errors
if (tlsProvider == null)
tlsProvider = MonoTlsProviderFactory.GetProviderInternal ();
if (tlsSettings == null)
- tlsSettings = new MSI.MonoTlsSettings ();
+ tlsSettings = MSI.MonoTlsSettings.CopyDefaultSettings ();
if (tlsSettings.RemoteCertificateValidationCallback == null)
tlsSettings.RemoteCertificateValidationCallback = callback;
return tlsProvider.CreateSslStream (innerStream, ownsStream, tlsSettings);