TlsStream Class
Namespace: Rebex.Net
Assembly: Rebex.Tls.dll (version 7.0.9119)
Represents a TLS-enabled TCP stream.
Syntax
public class TlsStream : Stream, IAsyncDisposable, IDisposable
  Inherited Members
Remarks
This class is suitable for securing your socket communication using TLS 1.3, TLS 1.2, TLS 1.1 and TLS 1.0 protocols.
Constructors
| Name | Description | 
|---|---|
| TlsStream(Stream) | Initializes the TlsStream instance. The TlsStream becomes the owner of the supplied stream.  | 
      
| TlsStream(Socket) | Initializes the TlsStream instance. The TlsStream becomes the owner of the supplied socket.  | 
      
Properties
| Name | Description | 
|---|---|
| ApplicationProtocol | Gets the negotiated application protocol (via ALPN extension).  | 
      
| CanRead | Gets a value indicating whether the stream is readable.  | 
      
| CanSeek | Returns   | 
      
| CanTimeout | Gets a value indicating whether the stream can time out.  | 
      
| CanWrite | Gets a value indicating whether the stream is writable.  | 
      
| Cipher | Gets the negotiated TLS cipher.  | 
      
| IsAuthenticated | Gets a value indicating whether TLS security on this TlsStream was successfully negotiated.  | 
      
| IsServer | Gets a value indicating whether the local side of the TLS connection is the server side.  | 
      
| Length | Not supported. Throws NotSupportedException.  | 
      
| LocalCertificate | Gets the certificate chain used to authenticate the remote endpoint.  | 
      
| LogWriter | Gets or sets the log writer used by this object.  | 
      
| Parameters | Gets or sets the security parameters of the current TlsStream.  | 
      
| Position | Not supported. Throws NotSupportedException.  | 
      
| ReadTimeout | Gets or sets the length of time, in milliseconds, until the read operation times out, or the value -1 or 0 to indicate that the operation does not time out.  | 
      
| RemoteCertificate | Gets the certificate chain used to authenticate the remote endpoint.  | 
      
| WriteTimeout | Gets or sets the length of time, in milliseconds, until the write operation times out, or the value -1 or 0 to indicate that the operation does not time out.  | 
      
Methods
| Name | Description | 
|---|---|
| AuthenticateAsClient(TlsClientSettings) | Performs TLS negotiation. This TlsStream will behave as a TLS client.
To configure security parameters not available in   | 
      
| AuthenticateAsClient(String) | Performs TLS negotiation. This TlsStream will behave as a TLS client. To configure security parameters use the Parameters property.  | 
      
| AuthenticateAsClientAsync(TlsClientSettings) | Performs TLS negotiation. This TlsStream will behave as a TLS client. To configure security parameters use the Parameters property.  | 
      
| AuthenticateAsClientAsync(TlsClientSettings, CancellationToken) | Performs TLS negotiation. This TlsStream will behave as a TLS client. To configure security parameters use the Parameters property.  | 
      
| AuthenticateAsClientAsync(String) | Performs TLS negotiation. This TlsStream will behave as a TLS client. To configure security parameters use the Parameters property.  | 
      
| AuthenticateAsServer(TlsServerSettings) | Performs TLS negotiation. This TlsStream will behave as a TLS server. To configure security parameters use the Parameters property.  | 
      
| AuthenticateAsServer(CertificateChain) | Performs TLS negotiation. This TlsStream will behave as a TLS server. To configure security parameters use the Parameters property.  | 
      
| AuthenticateAsServerAsync(TlsServerSettings) | Performs TLS negotiation. This TlsStream will behave as a TLS server. To configure security parameters use the Parameters property.  | 
      
| AuthenticateAsServerAsync(TlsServerSettings, CancellationToken) | Performs TLS negotiation. This TlsStream will behave as a TLS server. To configure security parameters use the Parameters property.  | 
      
| AuthenticateAsServerAsync(CertificateChain) | Performs TLS negotiation. This TlsStream will behave as a TLS server. To configure security parameters use the Parameters property.  | 
      
| BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) | Asynchronously reads data from this TlsStream.  | 
      
| BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) | Asynchronously writes data into this TlsStream.  | 
      
| CloseAsync() | Asynchronously releases resources used by the TlsStream.  | 
      
| Dispose(Boolean) | Releases resources used by this stream.  | 
      
| DisposeAsync() | Asynchronously releases resources used by this stream.  | 
      
| EndRead(IAsyncResult) | Ends a pending asynchronous read request.  | 
      
| EndWrite(IAsyncResult) | Ends a pending asynchronous write request.  | 
      
| Flush() | Causes any buffered data to be written. Has no effect on TlsStream.  | 
      
| FlushAsync(CancellationToken) | Causes any buffered data to be written. Has no effect on TlsStream.  | 
      
| GetChannelBinding(ChannelBindingType) | Gets an instance of the ChannelBinding that matches the   | 
      
| GetHashCode() | Gets a hash code of this object.  | 
      
| HasChannelBinding(ChannelBindingType) | Gets an indication whether a provider has a ChannelBinding that matches the   | 
      
| Read(Byte[], Int32, Int32) | Reads data from this TlsStream.  | 
      
| ReadAsync(Byte[], Int32, Int32, CancellationToken) | Asynchronously reads data from this TlsStream.  | 
      
| Seek(Int64, SeekOrigin) | Not supported. Throws NotSupportedException.  | 
      
| SetLength(Int64) | Not supported. Throws NotSupportedException.  | 
      
| Shutdown() | Disables sends on this TlsStream.  | 
      
| ShutdownAsync() | Disables sends on this TlsStream.  | 
      
| ToString() | Returns a string representation of this object.  | 
      
| Write(Byte[], Int32, Int32) | Writes data into this TlsStream.  | 
      
| WriteAsync(Byte[], Int32, Int32, CancellationToken) | Asynchronously writes data into this TlsStream.  | 
      
Events
| Name | Description | 
|---|---|
| ClientHelloReceived | Occurs when a TLS ClientHello has been received (useful for TLS servers only).  | 
      
| ValidatingCertificate | Occurs when a certificate provided by the remote end needs to be validated.  |