*/
class LegacyTlsProvider : MSI.MonoTlsProvider
{
- static readonly Guid id = new Guid ("809e77d5-56cc-4da8-b9f0-45e65ba9cceb");
-
public override Guid ID {
- get { return id; }
+ get { return MonoTlsProviderFactory.LegacyId; }
}
public override string Name {
get { return false; }
}
- internal override bool SupportsTlsContext {
+ internal override bool SupportsCleanShutdown {
get { return false; }
}
Stream innerStream, bool leaveInnerStreamOpen,
MSI.MonoTlsSettings settings = null)
{
- var impl = new Private.LegacySslStream (innerStream, leaveInnerStreamOpen, this, settings);
- return new Private.MonoSslStreamImpl (impl);
+ return SslStream.CreateMonoSslStream (innerStream, leaveInnerStreamOpen, this, settings);
}
- internal override MSI.IMonoTlsContext CreateTlsContext (
- string hostname, bool serverMode, MSI.TlsProtocols protocolFlags,
- X509Certificate serverCertificate, X509CertificateCollection clientCertificates,
- bool remoteCertRequired, MSI.MonoEncryptionPolicy encryptionPolicy,
+ internal override MSI.IMonoSslStream CreateSslStreamInternal (
+ SslStream sslStream, Stream innerStream, bool leaveInnerStreamOpen,
MSI.MonoTlsSettings settings)
{
- throw new NotSupportedException ();
+ return new Private.LegacySslStream (innerStream, leaveInnerStreamOpen, sslStream, this, settings);
+ }
+
+ internal override bool ValidateCertificate (
+ MSI.ICertificateValidator2 validator, string targetHost, bool serverMode,
+ X509CertificateCollection certificates, bool wantsChain, ref X509Chain chain,
+ ref MSI.MonoSslPolicyErrors errors, ref int status11)
+ {
+ if (wantsChain)
+ chain = SystemCertificateValidator.CreateX509Chain (certificates);
+ var xerrors = (SslPolicyErrors)errors;
+ var result = SystemCertificateValidator.Evaluate (validator.Settings, targetHost, certificates, chain, ref xerrors, ref status11);
+ errors = (MSI.MonoSslPolicyErrors)xerrors;
+ return result;
}
}
}