protected MobileTlsContext(MobileAuthenticatedStream parent, MonoSslAuthenticationOptions options)
        {
            Parent           = parent;
            Options          = options;
            IsServer         = options.ServerMode;
            EnabledProtocols = options.EnabledSslProtocols;

            if (options.ServerMode)
            {
                LocalServerCertificate  = options.ServerCertificate;
                AskForClientCertificate = options.ClientCertificateRequired;
            }
            else
            {
                ClientCertificates = options.ClientCertificates;
                TargetHost         = options.TargetHost;
                ServerName         = options.TargetHost;
                if (!string.IsNullOrEmpty(ServerName))
                {
                    var pos = ServerName.IndexOf(':');
                    if (pos > 0)
                    {
                        ServerName = ServerName.Substring(0, pos);
                    }
                }
            }

            certificateValidator = (ICertificateValidator2)ChainValidationHelper.GetInternalValidator(
                parent.SslStream, parent.Provider, parent.Settings);
        }
Exemple #2
0
 internal static object GetInternalValidator(object provider, object settings)
 {
                 #if SECURITY_DEP
     return(ChainValidationHelper.GetInternalValidator((MSI.MonoTlsProvider)provider, (MSI.MonoTlsSettings)settings));
                 #else
     throw new NotSupportedException();
                 #endif
 }