e3b9fa85933912d704580bbb9374cf43d822c188
[mono.git] / mcs / class / System / Mono.AppleTls / AppleTlsStream.cs
1 #if SECURITY_DEP && MONO_FEATURE_APPLETLS
2 //
3 // AppleTlsStream.cs
4 //
5 // Author:
6 //       Martin Baulig <martin.baulig@xamarin.com>
7 //
8 // Copyright (c) 2016 Xamarin, Inc.
9 //
10
11 #if MONO_SECURITY_ALIAS
12 extern alias MonoSecurity;
13 #endif
14
15 using System;
16 using System.IO;
17 using System.Threading;
18 using System.Threading.Tasks;
19 using System.Net.Security;
20 using System.Security.Authentication;
21 using System.Security.Cryptography.X509Certificates;
22
23 using MNS = Mono.Net.Security;
24 #if MONO_SECURITY_ALIAS
25 using MonoSecurity::Mono.Security.Interface;
26 #else
27 using Mono.Security.Interface;
28 #endif
29
30 namespace Mono.AppleTls
31 {
32         class AppleTlsStream : MNS.MobileAuthenticatedStream
33         {
34                 public AppleTlsStream (Stream innerStream, bool leaveInnerStreamOpen, SslStream owner,
35                                        MonoTlsSettings settings, MonoTlsProvider provider)
36                         : base (innerStream, leaveInnerStreamOpen, owner, settings, provider)
37                 {
38                 }
39
40                 protected override MNS.MobileTlsContext CreateContext (
41                         MNS.MobileAuthenticatedStream parent, bool serverMode, string targetHost,
42                         SslProtocols enabledProtocols, X509Certificate serverCertificate,
43                         X509CertificateCollection clientCertificates, bool askForClientCert)
44                 {
45                         return new AppleTlsContext (
46                                 parent, serverMode, targetHost,
47                                 enabledProtocols, serverCertificate,
48                                 clientCertificates, askForClientCert);
49                 }
50         }
51 }
52 #endif