Beispiel #1
0
		public override MSI.IMonoSslStream CreateSslStream (
			Stream innerStream, bool leaveInnerStreamOpen,
			MSI.MonoTlsSettings settings = null)
		{
			var sslStream = CreateSslStreamImpl (innerStream, leaveInnerStreamOpen, settings);
			return new MonoSslStreamImpl (sslStream);
		}
Beispiel #2
0
		public override MSI.IMonoSslStream CreateSslStream (
			Stream innerStream, bool leaveInnerStreamOpen,
			MSI.MonoTlsSettings settings = null)
		{
			var impl = new Private.LegacySslStream (innerStream, leaveInnerStreamOpen, this, settings);
			return new Private.MonoSslStreamImpl (impl);
		}
Beispiel #3
0
		internal HttpListener (X509Certificate2 certificate, IMonoTlsProvider tlsProvider, MSI.MonoTlsSettings tlsSettings)
			: this ()
		{
			this.certificate = certificate;
			this.tlsProvider = tlsProvider;
			this.tlsSettings = tlsSettings;
		}
		public MobileAuthenticatedStream (Stream innerStream, bool leaveInnerStreamOpen,
		                                  MSI.MonoTlsSettings settings, MSI.MonoTlsProvider provider)
			: base (innerStream, leaveInnerStreamOpen)
		{
			Settings = settings;
			Provider = provider;

			readBuffer = new BufferOffsetSize2 (16834);
			writeBuffer = new BufferOffsetSize2 (16384);
		}
		public IMonoSslStream CreateSslStream (
			Stream innerStream, bool leaveInnerStreamOpen,
			MSI.MonoTlsSettings settings)
		{
			var sslStream = provider.CreateSslStream (innerStream, leaveInnerStreamOpen, settings);
			var monoSslStreamImpl = sslStream as MonoSslStreamImpl;
			if (monoSslStreamImpl != null)
				return monoSslStreamImpl.Impl;
			return new MonoSslStreamWrapper (sslStream);
		}
Beispiel #6
0
		MSI.IMonoTlsContext IMonoTlsProvider.CreateTlsContext (
			string hostname, bool serverMode, MSI.TlsProtocols protocolFlags,
			X509Certificate serverCertificate, X509CertificateCollection clientCertificates,
			bool remoteCertRequired, bool checkCertName, bool checkCertRevocationStatus,
			MSI.MonoEncryptionPolicy encryptionPolicy, MSI.MonoTlsSettings settings)
		{
			return CreateTlsContextImpl (
				hostname, serverMode, protocolFlags,
				serverCertificate, clientCertificates,
				remoteCertRequired, encryptionPolicy, settings);
		}
Beispiel #7
0
		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;
		}
		internal static HttpListener CreateHttpListener (X509Certificate certificate, MSI.MonoTlsProvider provider, MSI.MonoTlsSettings settings)
		{
			lock (locker) {
				var internalProvider = provider != null ? new Private.MonoTlsProviderWrapper (provider) : null;
				return new HttpListener (certificate, internalProvider, settings);
			}
		}
		internal static HttpWebRequest CreateHttpsRequest (Uri requestUri, MSI.MonoTlsProvider provider, MSI.MonoTlsSettings settings)
		{
			lock (locker) {
				var internalProvider = provider != null ? new Private.MonoTlsProviderWrapper (provider) : null;
				return new HttpWebRequest (requestUri, internalProvider, settings);
			}
		}
		internal static void InstallProvider (MSI.MonoTlsProvider provider)
		{
			lock (locker) {
				currentProvider = new Private.MonoTlsProviderWrapper (provider);
			}
		}
Beispiel #11
0
		internal override MSI.IMonoTlsContext CreateTlsContext (
			string hostname, bool serverMode, MSI.TlsProtocols protocolFlags,
			X509Certificate serverCertificate, X509CertificateCollection clientCertificates,
			bool remoteCertRequired, MSI.MonoEncryptionPolicy encryptionPolicy,
			MSI.MonoTlsSettings settings)
		{
			return CreateTlsContextImpl (
				hostname, serverMode, (MSI.TlsProtocols)protocolFlags,
				serverCertificate, clientCertificates,
				remoteCertRequired, (MSI.MonoEncryptionPolicy)encryptionPolicy,
				settings);
		}
Beispiel #12
0
		protected abstract MSI.IMonoTlsContext CreateTlsContextImpl (
			string hostname, bool serverMode, MSI.TlsProtocols protocolFlags,
			X509Certificate serverCertificate, X509CertificateCollection clientCertificates,
			bool remoteCertRequired, MSI.MonoEncryptionPolicy encryptionPolicy,
			MSI.MonoTlsSettings settings);
Beispiel #13
0
		internal static LocalCertificateSelectionCallback MonoToPublic (MSI.MonoLocalCertificateSelectionCallback callback)
		{
			if (callback == null)
				return null;

			return (s, t, lc, rc, ai) => callback (t, lc, rc, ai);
		}
Beispiel #14
0
		protected abstract IMonoSslStream CreateSslStreamImpl (
			Stream innerStream, bool leaveInnerStreamOpen,
			MSI.MonoTlsSettings settings);
		public MonoTlsProviderWrapper (MSI.MonoTlsProvider provider)
		{
			this.provider = provider;
		}
Beispiel #16
0
		internal IMonoSslStream CreateSslStream (Stream innerStream, bool ownsStream, MSI.MonoRemoteCertificateValidationCallback callback)
		{
			lock (registry) {
				if (tlsProvider == null)
					tlsProvider = MonoTlsProviderFactory.GetProviderInternal ();
				if (tlsSettings == null)
					tlsSettings = new MSI.MonoTlsSettings ();
				if (tlsSettings.RemoteCertificateValidationCallback == null)
					tlsSettings.RemoteCertificateValidationCallback = callback;
				return tlsProvider.CreateSslStream (innerStream, ownsStream, tlsSettings);
			}
		}
		public MonoSslStreamWrapper (MSI.IMonoSslStream impl)
		{
			this.impl = impl;
		}
Beispiel #18
0
		internal static LocalCertSelectionCallback MonoToInternal (MSI.MonoLocalCertificateSelectionCallback callback)
		{
			if (callback == null)
				return null;

			return (t, lc, rc, ai) => callback (t, (XX509CertificateCollection)(object)lc, rc, ai);
		}
Beispiel #19
0
		internal static RemoteCertValidationCallback MonoToInternal (MSI.MonoRemoteCertificateValidationCallback callback)
		{
			if (callback == null)
				return null;

			return (h, c, ch, e) => callback (h, c, (XX509Chain)(object)ch, (MSI.MonoSslPolicyErrors)e);
		}
Beispiel #20
0
		IMonoSslStream IMonoTlsProvider.CreateSslStream (
			Stream innerStream, bool leaveInnerStreamOpen,
			MSI.MonoTlsSettings settings)
		{
			return CreateSslStreamImpl (innerStream, leaveInnerStreamOpen, settings);
		}
Beispiel #21
0
		internal static RemoteCertificateValidationCallback MonoToPublic (MSI.MonoRemoteCertificateValidationCallback callback)
		{
			if (callback == null)
				return null;

			return (t, c, ch, e) => callback (null, c, ch, (MSI.MonoSslPolicyErrors)e);
		}