Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Baulig <martin.baulig@xamarin.com>2015-11-26 02:45:31 +0300
committerMartin Baulig <martin.baulig@xamarin.com>2015-11-26 02:46:50 +0300
commitc7ee4160d2e2af88055c711250432d595f1880c4 (patch)
tree86374f2eafce96b4c189eb996b24abab09d5c684 /mcs/class/Mono.Security/Mono.Security.Interface/IMonoSslStream.cs
parentd4828b42f0f777049abdba402a7a591fd24bcdac (diff)
[Mono.Security]: Actually rename MonoSslStream.cs into IMonoSslStream.cs.
(cherry picked from commit 6609e2719437fe2bc20546908053fb4c4f7f80d2)
Diffstat (limited to 'mcs/class/Mono.Security/Mono.Security.Interface/IMonoSslStream.cs')
-rw-r--r--mcs/class/Mono.Security/Mono.Security.Interface/IMonoSslStream.cs188
1 files changed, 188 insertions, 0 deletions
diff --git a/mcs/class/Mono.Security/Mono.Security.Interface/IMonoSslStream.cs b/mcs/class/Mono.Security/Mono.Security.Interface/IMonoSslStream.cs
new file mode 100644
index 00000000000..ae7a9297d12
--- /dev/null
+++ b/mcs/class/Mono.Security/Mono.Security.Interface/IMonoSslStream.cs
@@ -0,0 +1,188 @@
+//
+// IMonoSslStream.cs
+//
+// Author:
+// Martin Baulig <martin.baulig@xamarin.com>
+//
+// Copyright (c) 2015 Xamarin, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using System.IO;
+using System.Net;
+using System.Net.Security;
+using System.Threading.Tasks;
+using SSA = System.Security.Authentication;
+using System.Security.Cryptography.X509Certificates;
+using System.Security.Principal;
+using System.Security.Cryptography;
+using Mono.Net.Security;
+
+namespace Mono.Security.Interface
+{
+ public interface IMonoSslStream : IDisposable
+ {
+ void AuthenticateAsClient (string targetHost);
+
+ void AuthenticateAsClient (string targetHost, X509CertificateCollection clientCertificates, SSA.SslProtocols enabledSslProtocols, bool checkCertificateRevocation);
+
+ IAsyncResult BeginAuthenticateAsClient (string targetHost, AsyncCallback asyncCallback, object asyncState);
+
+ IAsyncResult BeginAuthenticateAsClient (string targetHost, X509CertificateCollection clientCertificates, SSA.SslProtocols enabledSslProtocols, bool checkCertificateRevocation, AsyncCallback asyncCallback, object asyncState);
+
+ void EndAuthenticateAsClient (IAsyncResult asyncResult);
+
+ void AuthenticateAsServer (X509Certificate serverCertificate);
+
+ void AuthenticateAsServer (X509Certificate serverCertificate, bool clientCertificateRequired, SSA.SslProtocols enabledSslProtocols, bool checkCertificateRevocation);
+
+ IAsyncResult BeginAuthenticateAsServer (X509Certificate serverCertificate, AsyncCallback asyncCallback, object asyncState);
+
+ IAsyncResult BeginAuthenticateAsServer (X509Certificate serverCertificate, bool clientCertificateRequired, SSA.SslProtocols enabledSslProtocols, bool checkCertificateRevocation, AsyncCallback asyncCallback, object asyncState);
+
+ void EndAuthenticateAsServer (IAsyncResult asyncResult);
+
+ Task AuthenticateAsClientAsync (string targetHost);
+
+ Task AuthenticateAsClientAsync (string targetHost, X509CertificateCollection clientCertificates, SSA.SslProtocols enabledSslProtocols, bool checkCertificateRevocation);
+
+ Task AuthenticateAsServerAsync (X509Certificate serverCertificate);
+
+ Task AuthenticateAsServerAsync (X509Certificate serverCertificate, bool clientCertificateRequired, SSA.SslProtocols enabledSslProtocols, bool checkCertificateRevocation);
+
+ void Flush ();
+
+ int Read (byte[] buffer, int offset, int count);
+
+ void Write (byte[] buffer);
+
+ void Write (byte[] buffer, int offset, int count);
+
+ IAsyncResult BeginRead (byte[] buffer, int offset, int count, AsyncCallback asyncCallback, object asyncState);
+
+ int EndRead (IAsyncResult asyncResult);
+
+ IAsyncResult BeginWrite (byte[] buffer, int offset, int count, AsyncCallback asyncCallback, object asyncState);
+
+ void EndWrite (IAsyncResult asyncResult);
+
+ TransportContext TransportContext {
+ get;
+ }
+
+ bool IsAuthenticated {
+ get;
+ }
+
+ bool IsMutuallyAuthenticated {
+ get;
+ }
+
+ bool IsEncrypted {
+ get;
+ }
+
+ bool IsSigned {
+ get;
+ }
+
+ bool IsServer {
+ get;
+ }
+
+ SSA.CipherAlgorithmType CipherAlgorithm {
+ get;
+ }
+
+ int CipherStrength {
+ get;
+ }
+
+ SSA.HashAlgorithmType HashAlgorithm {
+ get;
+ }
+
+ int HashStrength {
+ get;
+ }
+
+ SSA.ExchangeAlgorithmType KeyExchangeAlgorithm {
+ get;
+ }
+
+ int KeyExchangeStrength {
+ get;
+ }
+
+ bool CanRead {
+ get;
+ }
+
+ bool CanTimeout {
+ get;
+ }
+
+ bool CanWrite {
+ get;
+ }
+
+ long Length {
+ get;
+ }
+
+ long Position {
+ get;
+ }
+
+ void SetLength (long value);
+
+ AuthenticatedStream AuthenticatedStream {
+ get;
+ }
+
+ int ReadTimeout {
+ get; set;
+ }
+
+ int WriteTimeout {
+ get; set;
+ }
+
+ bool CheckCertRevocationStatus {
+ get;
+ }
+
+ X509Certificate InternalLocalCertificate {
+ get;
+ }
+
+ X509Certificate LocalCertificate {
+ get;
+ }
+
+ X509Certificate RemoteCertificate {
+ get;
+ }
+
+ SSA.SslProtocols SslProtocol {
+ get;
+ }
+ }
+}
+