<doc>
  <assembly>
    <name>Rebex.Networking</name>
  </assembly>
  <members>
    <member name="T:Rebex.Net.TransferType">
      <summary>
            Transfer type.
            </summary>
    </member>
    <member name="F:Rebex.Net.TransferType.Ascii">
      <summary>ASCII.</summary>
    </member>
    <member name="F:Rebex.Net.TransferType.Binary">
      <summary>Binary.</summary>
    </member>
    <member name="T:Rebex.Net.ListItemReceivedEventArgs">
      <summary>
            Provides data for the <see cref="E:Rebex.Net.IFtp.ListItemReceived">ListItemReceived</see> event.
            </summary>
    </member>
    <member name="P:Rebex.Net.ListItemReceivedEventArgs.UserState">
      <summary>
            Get user state object.
            </summary>
    </member>
    <member name="P:Rebex.Net.ListItemReceivedEventArgs.RawLine">
      <summary>
            Gets the raw data of the received item line.
            </summary>
      <value>The raw data of the received item line.</value>
    </member>
    <member name="P:Rebex.Net.ListItemReceivedEventArgs.Item">
      <summary>
            Gets the received <see cref="T:Rebex.IO.FileSystemItem" />.
            </summary>
      <value>The received <see cref="T:Rebex.IO.FileSystemItem" /> or <b>null</b> if not available.</value>
      <remarks>To remove this item from the list, set this property to null.</remarks>
    </member>
    <member name="M:Rebex.Net.ListItemReceivedEventArgs.Ignore">
      <summary>
            Ignores the current item, making it not appear in the list.
            </summary>
    </member>
    <member name="M:Rebex.Net.ListItemReceivedEventArgs.Abort">
      <summary>
            Aborts the process of received the file and directory listing.
            </summary>
      <remarks>Calling <see cref="M:Rebex.Net.ListItemReceivedEventArgs.Abort" /> will not ignore the last received item.
            You have to call <see cref="M:Rebex.Net.ListItemReceivedEventArgs.Ignore" /> prior to calling <see cref="M:Rebex.Net.ListItemReceivedEventArgs.Abort" />
            if you don't want to have the last received item in your list.</remarks>
    </member>
    <member name="P:Rebex.Net.ListItemReceivedEventArgs.Ignored">
      <summary>
            Gets a value indicating whether the item was ignored.
            </summary>
      <value>True if ignored, false otherwise.</value>
    </member>
    <member name="P:Rebex.Net.ListItemReceivedEventArgs.Aborted">
      <summary>
            Gets a value indicating whether the item was aborted.
            </summary>
      <value>True if aborted, false otherwise.</value>
    </member>
    <member name="M:Rebex.Net.ListItemReceivedEventArgs.#ctor(System.String,Rebex.IO.FileSystemItem)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.ListItemReceivedEventArgs" /> class with the specified raw data and item.
            </summary>
      <param name="rawLine">Raw data of the received item line.</param>
      <param name="item">Received <see cref="T:Rebex.IO.FileSystemItem" />.</param>
    </member>
    <member name="T:Rebex.Net.FileTransferMode">
      <summary>
            Distinguishes the file transfer protocol.
            </summary>
    </member>
    <member name="F:Rebex.Net.FileTransferMode.Ftp">
      <summary>
            Use FTP protocol.
            </summary>
    </member>
    <member name="F:Rebex.Net.FileTransferMode.FtpSslImplicit">
      <summary>
            Use FTP protocol with implicitly secured TLS/SSL connection.
            </summary>
    </member>
    <member name="F:Rebex.Net.FileTransferMode.FtpSslExplicit">
      <summary>
            Use FTP protocol with explicitly secured TLS/SSL connection.
            </summary>
    </member>
    <member name="F:Rebex.Net.FileTransferMode.Sftp">
      <summary>
            Use SFTP protocol.
            </summary>
    </member>
    <member name="T:Rebex.Net.IFtpSettings">
      <summary>
            An interface which defines common options for <see cref="T:Rebex.Net.IFtp" /> interface.
            </summary>
    </member>
    <member name="P:Rebex.Net.IFtpSettings.UseLargeBuffers">
      <summary>
            Use larger receive buffer for incoming and outgoing data.
            </summary>
    </member>
    <member name="P:Rebex.Net.IFtpSettings.MultiFileLinkMode">
      <summary>
            Gets or sets the processing mode of detected links in multi-file operations.
            </summary>
    </member>
    <member name="P:Rebex.Net.IFtpSettings.MultiFileMoveMode">
      <summary>
            Gets or sets the move behavior in multi-file transfers.
            </summary>
    </member>
    <member name="P:Rebex.Net.IFtpSettings.RestoreDateTime">
      <summary>
            Gets or sets a value that indicates which date/time is restored after successful transfer.
            </summary>
    </member>
    <member name="P:Rebex.Net.IFtpSettings.TimeComparisonGranularity">
      <summary>
            Gets or sets a value which specifies granularity for time comparisons.
            </summary>
    </member>
    <member name="P:Rebex.Net.IFtpSettings.RecheckItemExistence">
      <summary>
            In multi-file operations it forces checking, whether currently processing item still exists. 
            </summary>
    </member>
    <member name="P:Rebex.Net.IFtpSettings.DisableProgressPercentage">
      <summary>
            Disables progress percentage reporting.
            </summary>
    </member>
    <member name="P:Rebex.Net.IFtpSettings.RaiseEventsFromCurrentThread">
      <summary>
            Specifies whether to raise asynchronous events from the current working thread or 
            whether to raise them using a <see cref="T:System.Threading.SynchronizationContext" /> available when an asynchronous operation was started.
            </summary>
      <value>False (default) raise events using <see cref="T:System.Threading.SynchronizationContext" />; true to raise them directly from the current working thread.</value>
      <remarks>Events of synchronous methods are always raised from the current working thread.</remarks>
    </member>
    <member name="P:Rebex.Net.IFtpSettings.SkipDuplicateItems">
      <summary>
            Gets or sets a value that indicates whether to skip duplicate items in directory listings or whether to fail.
            </summary>
      <value>True to skip duplicate items; false to throw an exception.</value>
    </member>
    <member name="P:Rebex.Net.IFtpSettings.GetFileOpenRemoteFirst">
      <summary>
            Gets or sets a value that specifies whether to open the remote file first while downloading (before opening the local file).
            </summary>
    </member>
    <member name="P:Rebex.Net.IFtpSettings.EnableChecksumVerification">
      <summary>
            Gets or sets a value indicating whether to perform checksum verification after successful file transfer.
            Not available for methods with Stream arguments, the checksum is computed from file on disk.
            Use <see cref="P:Rebex.Net.IFtpSettings.PreferredChecksumAlgorithm" /> to specify the preferred checksum algorithm.
            </summary>
    </member>
    <member name="P:Rebex.Net.IFtpSettings.PreferredChecksumAlgorithm">
      <summary>
            Gets or sets the preferred checksum algorithm.
            Applies to multi-file transfers (with <see cref="F:Rebex.IO.ActionOnExistingFiles.OverwriteDifferentChecksum" />).
            and single-file transfers (when <see cref="P:Rebex.Net.IFtpSettings.EnableChecksumVerification" /> has been enabled).
            </summary>
    </member>
    <member name="T:Rebex.Net.IFtp">
      <summary>
            An interface which defines common functionality shared by FTP and SFTP protocols.
            </summary>
    </member>
    <member name="P:Rebex.Net.IFtp.Settings">
      <summary>
            Gets the options set used by this object.
            </summary>
      <value>An options object.</value>
    </member>
    <member name="P:Rebex.Net.IFtp.LogWriter">
      <summary>
            Gets or sets the logger used by this object.
            </summary>
      <value>Logger.</value>
    </member>
    <member name="P:Rebex.Net.IFtp.UserName">
      <summary>
            Gets the authenticated user name, if available.
            </summary>
      <value>User name, or null (Nothing in VB.NET).</value>
    </member>
    <member name="P:Rebex.Net.IFtp.ServerName">
      <summary>
            Gets the server name, if available.
            </summary>
      <value>Server name, or null (Nothing in VB.NET).</value>
    </member>
    <member name="P:Rebex.Net.IFtp.ServerPort">
      <summary>
            Gets the server port, if available.
            </summary>
      <value>server port, or 0.</value>
    </member>
    <member name="P:Rebex.Net.IFtp.Encoding">
      <summary>
            Gets or sets the <see cref="T:System.Text.Encoding">Encoding</see> to use to encode and decode command parameters and server responses.
            </summary>
      <value>The <see cref="T:System.Text.Encoding">Encoding</see> to use to encode and decode command parameters and server responses. Default is <see cref="T:System.Text.Encoding">Encoding.Default</see>.</value>
    </member>
    <member name="P:Rebex.Net.IFtp.IsConnected">
      <summary>
            Gets a value indicating whether the session is connected.
            </summary>
      <remarks>
        <p>
            This property returns the latest known state of the session. 
            When it returns false, the session was either never connected, or no longer connected. 
            When it returns true, the session was connected at the time of the last I/O operation.
            </p>
        <p>
          <b>Note:</b> There is no guarantee that the session is still connected even though
            <see cref="P:Rebex.Net.IFtp.IsConnected" /> returns true.
            </p>
      </remarks>
      <value>True if connected; false otherwise.</value>
    </member>
    <member name="P:Rebex.Net.IFtp.IsAuthenticated">
      <summary>
            Gets a value indicating whether the session is authenticated.
            </summary>
      <value>True if authenticated; false otherwise.</value>
    </member>
    <member name="P:Rebex.Net.IFtp.MaxDownloadSpeed">
      <summary>
            Gets or sets the maximum allowed download speed, in kilobytes. For unlimited speed, set this to zero.
            </summary>
      <value>Maximum allowed download speed.</value>
    </member>
    <member name="P:Rebex.Net.IFtp.MaxUploadSpeed">
      <summary>
            Gets or sets the maximum allowed upload speed, in kilobytes. For unlimited speed, set this to zero.
            </summary>
      <value>Maximum allowed upload speed.</value>
    </member>
    <member name="P:Rebex.Net.IFtp.Timeout">
      <summary>
            Gets or sets the length of time in milliseconds before the operation times out (specify -1 or 0 to indicate that the request does not time out).
            </summary>
      <value>
            The length of time, in milliseconds, until the operation times out,
            or the value -1 or 0 to indicate that the request does not time out.
            Default is 60000 (60 seconds).
            </value>
      <remarks>
        <p>
            The internal timeout counter is reset every time data is sent
            or received from to server. This also means that data transfers only
            time out after x milliseconds of inactivity, not after x milliseconds
            from the start of the transfer.
            </p>
        <p>
            The <see cref="P:Rebex.Net.IFtp.Timeout" /> property only affects synchronous methods. To time out asynchronous methods, use the <see cref="M:Rebex.Net.IFtp.Abort" /> method.
            </p>
        <p>
            Minimal value is 1000. Setting this to a value lower than 1000 will set it to 1000.
            </p>
      </remarks>
    </member>
    <member name="P:Rebex.Net.IFtp.TransferType">
      <summary>
            Gets or sets the data transfer type.
            </summary>
      <value>The file transfer type. Default is <see cref="F:Rebex.Net.TransferType.Binary" />.</value>
    </member>
    <member name="E:Rebex.Net.IFtp.ProblemDetected">
      <summary>
            Occurs when a problem is detected in <see cref="M:Rebex.Net.IFtp.Download(System.String,System.String)" />, <see cref="M:Rebex.Net.IFtp.Upload(System.String,System.String)" />, <see cref="M:Rebex.Net.IFtp.Delete(System.String,Rebex.IO.TraversalMode)" /> or <see cref="M:Rebex.Net.IFtp.GetItems(System.String)" /> methods, 
            making it possible for the handler to choose a desired reaction.
            </summary>
    </member>
    <member name="E:Rebex.Net.IFtp.Traversing">
      <summary>
            Occurs when a significant action occurs in <see cref="M:Rebex.Net.IFtp.Download(System.String,System.String)" />, <see cref="M:Rebex.Net.IFtp.Upload(System.String,System.String)" />, <see cref="M:Rebex.Net.IFtp.Delete(System.String,Rebex.IO.TraversalMode)" /> or <see cref="M:Rebex.Net.IFtp.GetItems(System.String)" /> methods.
            Notifies the client about traversing hierarchy structure.
            </summary>
    </member>
    <member name="E:Rebex.Net.IFtp.TransferProgressChanged">
      <summary>
            Occurs when a significant action occurs in <see cref="M:Rebex.Net.IFtp.Download(System.String,System.String)" />, <see cref="M:Rebex.Net.IFtp.Upload(System.String,System.String)" /> methods.
            Notifies the client about currently processing directory, currently transferring file and progress of the transfer.
            </summary>
    </member>
    <member name="E:Rebex.Net.IFtp.DeleteProgressChanged">
      <summary>
            Occurs when a significant action occurs in <see cref="M:Rebex.Net.IFtp.Delete(System.String,Rebex.IO.TraversalMode)" /> method.
            Notifies the client about currently processing directory, currently deleting file and progress of the delete.
            </summary>
    </member>
    <member name="E:Rebex.Net.IFtp.ListItemReceived">
      <summary>
            Occurs when a file and directory listing item is received by the <see cref="M:Rebex.Net.IFtp.GetList" />, <see cref="M:Rebex.Net.IFtp.GetRawList" />, <see cref="M:Rebex.Net.IFtp.GetNameList" /> or <see cref="M:Rebex.Net.IFtp.GetItems(System.String)" /> methods.
            Notifies the client about currently processed item.
            </summary>
    </member>
    <member name="M:Rebex.Net.IFtp.CheckConnectionState">
      <summary>
            Checks whether the session is still connected. Throws an exception on error.
            </summary>
    </member>
    <member name="M:Rebex.Net.IFtp.KeepAlive">
      <summary>
            Sends a command to the server to keep the connection alive.
            </summary>
    </member>
    <member name="M:Rebex.Net.IFtp.Login(System.String,System.String)">
      <summary>
            Authenticates the user to the server.
            </summary>
      <param name="userName">The username.</param>
      <param name="password">Password for the given username.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.Abort">
      <summary>
            Abort pending operations.
            </summary>
    </member>
    <member name="M:Rebex.Net.IFtp.Disconnect">
      <summary>
            Informs the server that the connection is about to close and
            terminates the connection.
            </summary>
    </member>
    <member name="M:Rebex.Net.IFtp.CreateDirectory(System.String)">
      <summary>
            Creates a directory on the server.
            </summary>
      <param name="remotePath">Pathname of the new remote directory.</param>
      <returns>A string containing the absolute path of the newly created remote directory.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.ChangeDirectory(System.String)">
      <summary>
            Changes the current working directory on the server.
            </summary>
      <param name="remotePath">Path of the directory to change to.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.RemoveDirectory(System.String)">
      <summary>
            Deletes an empty remote directory with the specified pathname.
            </summary>
      <param name="remotePath">Remote directory pathname.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.Rename(System.String,System.String)">
      <summary>
            Renames or moves a file or directory on the server.
            </summary>
      <param name="fromPath">The pathname of the remote file or directory to be renamed.</param>
      <param name="toPath">The pathname to rename the file or directory to.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.SetFileDateTime(System.String,System.DateTime)">
      <summary>
            Sets the modification date and time of the specified remote file.
            </summary>
      <param name="remotePath">The path of the remote file.</param>
      <param name="newDateTime">The date and time to set.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.DeleteFile(System.String)">
      <summary>
            Deletes a file on the server.
            </summary>
      <param name="remotePath">The path to the file to be deleted.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.Delete(System.String,Rebex.IO.TraversalMode)">
      <summary>
            Deletes specified files and/or directories on the server. Accepts wildcards.
            </summary>
      <param name="remotePath">The path of the remote file or directory.</param>
      <param name="traversalMode">Traversal mode. Specifies whether the whole hierarchy or files only are transferred.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.Delete(Rebex.IO.FileSet)">
      <summary>
            Deletes specified files and/or directories on the server.
            </summary>
      <param name="set">A filtering set which specifies remote files and directories to be deleted.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.DirectoryExists(System.String)">
      <summary>
            Detects whether the specified directory exists on the server.
            </summary>
      <param name="remotePath">The path of the remote directory to check.</param>
      <returns>True if the directory exists, false otherwise.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.FileExists(System.String)">
      <summary>
            Detects whether the specified file exists on the server.
            </summary>
      <param name="remotePath">The path of the remote file to check.</param>
      <returns>True if the file exists, false otherwise.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetCurrentDirectory">
      <summary>
            Gets the absolute path of the current working directory on the remote server.
            </summary>
      <returns>A string containing the absolute path of the current working remote directory.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetFileDateTime(System.String)">
      <summary>
            Retrieves the modification date and time of the specified remote file.
            </summary>
      <param name="remotePath">The path of the remote file. This cannot be a directory.</param>
      <returns>A <see cref="T:System.DateTime" /> value set to date and time that the specified file was modified.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetFileLength(System.String)">
      <summary>
            Retrieves the size of the specified remote file.
            </summary>
      <param name="remotePath">The path of the remote file. This cannot be a directory.</param>
      <returns>The size of the specified file in bytes.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetInfo(System.String,System.Boolean)">
      <summary>
            Retrieves a <see cref="T:Rebex.IO.FileSystemItem" /> containing the information about the specified remote file or directory.
            </summary>
      <param name="remotePath">The path of the remote file or directory.</param>
      <param name="failIfNotFound">Specifies whether to throw an exception if file not found.</param>
      <returns>Information about the remote file or directory.</returns>
      <remarks>Returns null if no file is found and failIfNotFound argument is set to false.</remarks>
    </member>
    <member name="M:Rebex.Net.IFtp.GetDownloadStream(System.String)">
      <summary>
            Returns a Stream for reading data from the remote file.
            </summary>
      <param name="remotePath">The path of the remote file.</param>
      <returns>A Stream for reading data from the remote file.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetDownloadStream(System.String,System.IO.SeekOrigin,System.Int64)">
      <summary>
            Returns a Stream for reading data from the remote file.
            </summary>
      <param name="remotePath">The path of the remote file.</param>
      <param name="origin">Position indicator that is used to obtain new position within the stream.</param>
      <param name="offset">A byte offset relative to the origin parameter.</param>
      <returns>A Stream for reading data from the remote file.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetUploadStream(System.String)">
      <summary>
            Returns a Stream for writing data to the remote file.
            The remote file is created if it doesn't exist, and truncated if it does.
            </summary>
      <param name="remotePath">The path of the remote file.</param>
      <returns>A Stream for writing data to the remote file.</returns>
      <remarks>
            Because the FTP protocol does not support processing multiple commands or transfers at the same time,
            the stream has to be closed before any other FTP operation can be used.
            </remarks>
    </member>
    <member name="M:Rebex.Net.IFtp.GetUploadStream(System.String,System.IO.SeekOrigin,System.Int64)">
      <summary>
            Returns a Stream for writing data to the remote file.
            </summary>
      <param name="remotePath">The path of the remote file.</param>
      <returns>A Stream for writing data to the remote file.</returns>
      <param name="origin">Position indicator that is used to obtain new position within the stream.</param>
      <param name="offset">A byte offset relative to the origin parameter.</param>
      <remarks>
            Because the FTP protocol does not support processing multiple commands or transfers at the same time,
            the stream has to be closed before any other FTP operation can be used.
            </remarks>
    </member>
    <member name="M:Rebex.Net.IFtp.GetFile(System.String,System.IO.Stream)">
      <summary>
            Downloads the remote file to the data stream.
            </summary>
      <param name="remotePath">The path of the remote file.</param>
      <param name="outputStream">The output stream.</param>
      <returns>Number of bytes transferred.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetFile(System.String,System.String)">
      <summary>
            Downloads the remote file to the local file, overriding it if it already exists.
            </summary>
      <param name="remotePath">The path of the remote file.</param>
      <param name="localPath">The path of the local file. This cannot be a directory.</param>
      <returns>Number of bytes transferred.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetFile(System.String,System.IO.Stream,System.Int64)">
      <summary>
            Downloads the specified part of the remote file to the data stream.
            </summary>
      <param name="remotePath">The path of the remote file.</param>
      <param name="outputStream">The output stream.</param>
      <param name="remoteOffset">The starting offset of the remote file.</param>
      <returns>Number of bytes transferred.</returns>
      <remarks>If the local file does not exist, it is created.</remarks>
    </member>
    <member name="M:Rebex.Net.IFtp.GetFile(System.String,System.String,System.Int64,System.Int64)">
      <summary>
            Downloads the specified part of the remote file to the specified offset of the local file.
            </summary>
      <param name="remotePath">The path of the remote file.</param>
      <param name="localPath">The path of the local file. This cannot be a directory.</param>
      <param name="remoteOffset">The starting offset of the remote file.</param>
      <param name="localOffset">The starting offset in the local file.</param>
      <returns>Number of bytes transferred.</returns>
      <remarks>If the local file does not exist, it is created.</remarks>
    </member>
    <member name="M:Rebex.Net.IFtp.PutFile(System.IO.Stream,System.String)">
      <summary>
            Uploads the content of the data stream to the file on the server, overriding it if it already exists.
            </summary>
      <param name="sourceStream">The source data stream.</param>
      <param name="remotePath">The path of the remote file. This cannot be a directory.</param>
      <returns>Number of bytes transferred.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.PutFile(System.String,System.String)">
      <summary>
            Uploads the content of the local file to the file on the server, overriding it if it already exists.
            </summary>
      <param name="localPath">The path of the local file.</param>
      <param name="remotePath">The path of the remote file. This cannot be a directory.</param>
      <returns>Number of bytes transferred.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.PutFile(System.IO.Stream,System.String,System.Int64,System.Int64)">
      <summary>
            Uploads the content of the data stream to the specified offset of the file on the server.
            </summary>
      <param name="sourceStream">The source data stream.</param>
      <param name="remotePath">The path of the remote file. This cannot be a directory.</param>
      <param name="remoteOffset">The starting offset of the remote file.</param>
      <param name="length">Number of bytes to transfer or -1 to transfer all data until an end is reached.</param>
      <returns>Number of bytes transferred.</returns>
      <remarks>If the remote file does not exist, it is created.</remarks>
    </member>
    <member name="M:Rebex.Net.IFtp.PutFile(System.String,System.String,System.Int64,System.Int64,System.Int64)">
      <summary>
            Uploads the specified part of the local file to the specified offset of the file on the server.
            </summary>
      <param name="localPath">The path of the local file.</param>
      <param name="remotePath">The path of the remote file. This cannot be a directory.</param>
      <param name="localOffset">The starting offset in the local file.</param>
      <param name="remoteOffset">The starting offset of the remote file.</param>
      <param name="length">Number of bytes to transfer or -1 to transfer all data until an end is reached.</param>
      <returns>Number of bytes transferred.</returns>
      <remarks>If the remote file does not exist, it is created.</remarks>
    </member>
    <member name="M:Rebex.Net.IFtp.Download(System.String,System.String)">
      <summary>
            Downloads the specified file or directory hierarchy from the server to the local directory. Accepts wildcards.
            </summary>
      <param name="remotePath">The path of the remote file or directory.</param>
      <param name="localDirectoryPath">The path of the local directory. This must be a directory.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.Download(System.String,System.String,Rebex.IO.TraversalMode)">
      <summary>
            Downloads the specified file or directory hierarchy from the server to the local directory. Accepts wildcards.
            </summary>
      <param name="remotePath">The path of the remote file or directory.</param>
      <param name="localDirectoryPath">The path of the local directory. This must be a directory.</param>
      <param name="traversalMode">Traversal mode. Specifies whether the whole hierarchy or files only are transferred.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.Download(System.String,System.String,Rebex.IO.TraversalMode,Rebex.IO.TransferMethod,Rebex.IO.ActionOnExistingFiles)">
      <summary>
            Downloads the specified file or directory hierarchy from the server to the local directory. Accepts wildcards.
            </summary>
      <param name="remotePath">The path of the remote file or directory.</param>
      <param name="localDirectoryPath">The path of the local directory. This must be a directory.</param>
      <param name="traversalMode">Traversal mode. Specifies whether the whole hierarchy or files only are transferred.</param>
      <param name="transferMethod">Specifies whether to copy or move source items.</param>
      <param name="existingFileMode">Specifies the default behavior for files that already exists at the server.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.Download(Rebex.IO.FileSet,System.String)">
      <summary>
            Downloads the specified files and/or directories from the server to the local directory.
            </summary>
      <param name="set">A filtering set which specifies remote files and directories to be downloaded.</param>
      <param name="localDirectoryPath">The path of the local directory. This must be a directory.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.Download(Rebex.IO.FileSet,System.String,Rebex.IO.TransferMethod,Rebex.IO.ActionOnExistingFiles)">
      <summary>
            Downloads the specified files and/or directories from the server to the local directory.
            </summary>
      <param name="set">A filtering set which specifies remote files and directories to be downloaded.</param>
      <param name="localDirectoryPath">The path of the local directory. This must be a directory.</param>
      <param name="transferMethod">Specifies whether to copy or move source items.</param>
      <param name="existingFileMode">Specifies the default behavior for files that already exists at the server.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.Upload(System.String,System.String)">
      <summary>
            Uploads the specified file or directory hierarchy to the directory on the server. Accepts wildcards.
            </summary>
      <param name="localPath">The path of the local file or directory.</param>
      <param name="remoteDirectoryPath">The path of the remote directory. This cannot be a file.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.Upload(System.String,System.String,Rebex.IO.TraversalMode)">
      <summary>
            Uploads the specified file or directory hierarchy to the directory on the server. Accepts wildcards.
            </summary>
      <param name="localPath">The path of the local file or directory.</param>
      <param name="remoteDirectoryPath">The path of the remote directory. This cannot be a file.</param>
      <param name="traversalMode">Traversal mode. Specifies whether the whole hierarchy or files only are transferred.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.Upload(System.String,System.String,Rebex.IO.TraversalMode,Rebex.IO.TransferMethod,Rebex.IO.ActionOnExistingFiles)">
      <summary>
            Uploads the specified file or directory hierarchy to the directory on the server. Accepts wildcards.
            </summary>
      <param name="localPath">The path of the local file or directory.</param>
      <param name="remoteDirectoryPath">The path of the remote directory. This cannot be a file.</param>
      <param name="traversalMode">Traversal mode. Specifies whether the whole hierarchy or files only are transferred.</param>
      <param name="transferMethod">Specifies whether to copy or move source items.</param>
      <param name="existingFileMode">Specifies the default behavior for files that already exists at the server.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.Upload(Rebex.IO.FileSet,System.String)">
      <summary>
            Uploads the specified local files and/or directories to the directory to the server.
            </summary>
      <param name="set">A filtering set which specifies remote files and directories to be uploaded.</param>
      <param name="remoteDirectoryPath">The path of the remote directory. This cannot be a file.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.Upload(Rebex.IO.FileSet,System.String,Rebex.IO.TransferMethod,Rebex.IO.ActionOnExistingFiles)">
      <summary>
            Uploads the specified local files and/or directories to the directory to the server.
            </summary>
      <param name="set">A filtering set which specifies remote files and directories to be uploaded.</param>
      <param name="remoteDirectoryPath">The path of the remote directory. This cannot be a file.</param>
      <param name="transferMethod">Specifies whether to copy or move source items.</param>
      <param name="existingFileMode">Specifies the default behavior for files that already exists at the server.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.GetList">
      <summary>
            Retrieves the list of files and directories in the current server directory.
            </summary>
      <returns>Collection of <see cref="T:Rebex.IO.FileSystemItem" /> values.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetList(System.String)">
      <summary>
            Retrieves the list of files and directories in the current server directory.
            </summary>
      <param name="arguments">Server and protocol-specific arguments. Usually a directory path.</param>
      <returns>Collection of <see cref="T:Rebex.IO.FileSystemItem" /> values.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetItems(System.String)">
      <summary>
            Retrieves the list of files and directories. Matching directories are searched recursively. 
            </summary>
      <param name="remotePath">The path (with or without a mask) to a remote file or directory.</param>
      <returns>Collection of <see cref="T:Rebex.IO.FileSystemItem" /> values.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetItems(System.String,Rebex.IO.TraversalMode)">
      <summary>
            Retrieves the list of files and directories.
            </summary>
      <param name="remotePath">The path (with or without a mask) to a remote file or directory.</param>
      <param name="traversalMode">Specifies how to traverse hierarchy of directories.</param>
      <returns>Collection of <see cref="T:Rebex.IO.FileSystemItem" /> values.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetItems(Rebex.IO.FileSet)">
      <summary>
            Retrieves the list of files and directories specified by the <paramref name="set" />.
            </summary>
      <param name="set">A filtering set which specifies remote files and directories to be retrieved.</param>
      <returns>Collection of <see cref="T:Rebex.IO.FileSystemItem" /> values.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetNameList">
      <summary>
            Retrieves the list of file and directory names in the current remote directory.
            </summary>
      <returns>An array of lines, with each line representing a single name.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetNameList(System.String)">
      <summary>
            Retrieves the list of file and directory names.
            </summary>
      <param name="arguments">Server and protocol-specific arguments. Usually a directory path.</param>
      <returns>An array of lines, with each line representing a single name.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetRawList">
      <summary>
            Retrieves the raw list of files and directories in the current remote directory using a raw text format.
            </summary>
      <returns>An array of lines, with each line representing a single item.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetRawList(System.String)">
      <summary>
            Retrieves the raw list of files and directories using a raw text format.
            </summary>
      <param name="arguments">Server and protocol-specific arguments. Usually a directory path.</param>
      <returns>An array of lines, with each line representing a single item.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetChecksum(System.String,Rebex.IO.ChecksumAlgorithm)">
      <summary>
            Returns the checksum of the specified file on the server.
            </summary>
      <param name="remotePath">Path of the remote file.</param>
      <param name="algorithm">Desired checksum algorithm (server must support it).</param>
      <returns>Checksum of the specified remote file.</returns>
      <remarks>
            To calculate checksums of local files, use one of <see cref="M:Rebex.IO.LocalItem.GetChecksum(System.String,Rebex.IO.ChecksumAlgorithm)" /> methods.
            </remarks>
    </member>
    <member name="M:Rebex.Net.IFtp.GetChecksum(System.String,Rebex.IO.ChecksumAlgorithm,System.Int64,System.Int64)">
      <summary>
            Returns the checksum of the specified file on the server.
            </summary>
      <param name="remotePath">Path of the remote file.</param>
      <param name="algorithm">Desired checksum algorithm (server must support it).</param>
      <param name="offset">The offset in remote file where reading will start.</param>
      <param name="count">The maximum number of bytes to read.</param>
      <returns>Checksum of the specified remote file.</returns>
      <remarks>
            To calculate checksums of local files, use one of <see cref="M:Rebex.IO.LocalItem.GetChecksum(System.String,Rebex.IO.ChecksumAlgorithm)" /> methods.
            </remarks>
    </member>
    <member name="M:Rebex.Net.IFtp.KeepAliveAsync(System.Object)">
      <summary>
            Sends a command to the server to keep the connection alive.
            </summary>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.LoginAsync(System.String,System.String,System.Object)">
      <summary>
            Authenticates the user to the server.
            </summary>
      <param name="userName">The username.</param>
      <param name="password">Password for the given username.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.DisconnectAsync(System.Object)">
      <summary>
            Informs the server that the connection is about to close and
            terminates the connection.
            </summary>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.CreateDirectoryAsync(System.String,System.Object)">
      <summary>
            Creates a directory on the server.
            </summary>
      <param name="remotePath">Pathname of the new remote directory.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>A string containing the absolute path of the newly created remote directory.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.ChangeDirectoryAsync(System.String,System.Object)">
      <summary>
            Changes the current working directory on the server.
            </summary>
      <param name="remotePath">Path of the directory to change to.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.RemoveDirectoryAsync(System.String,System.Object)">
      <summary>
            Deletes an empty remote directory with the specified pathname.
            </summary>
      <param name="remotePath">Remote directory pathname.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.RenameAsync(System.String,System.String,System.Object)">
      <summary>
            Renames a file or directory on the server.
            </summary>
      <param name="fromPath">The pathname of the remote file to be renamed.</param>
      <param name="toPath">The pathname to rename the file to.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.SetFileDateTimeAsync(System.String,System.DateTime,System.Object)">
      <summary>
            Sets the modification date and time of the specified remote file.
            </summary>
      <param name="remotePath">The path of the remote file.</param>
      <param name="newDateTime">The date and time to set.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.DeleteFileAsync(System.String,System.Object)">
      <summary>
            Deletes a file on the server.
            </summary>
      <param name="remotePath">The path to the file to be deleted.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.DeleteAsync(System.String,Rebex.IO.TraversalMode,System.Object)">
      <summary>
            Deletes specified files and/or directories on the server. Accepts wildcards.
            </summary>
      <param name="remotePath">The path of the remote file or directory.</param>
      <param name="traversalMode">Traversal mode. Specifies whether the whole hierarchy or files only are transferred.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.DeleteAsync(Rebex.IO.FileSet,System.Object)">
      <summary>
            Deletes specified files and/or directories on the server.
            </summary>
      <param name="set">A filtering set which specifies remote files and directories to be deleted.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.DirectoryExistsAsync(System.String,System.Object)">
      <summary>
            Detects whether the specified directory exists on the server.
            </summary>
      <param name="remotePath">The path of the remote directory to check.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>True if the directory exists, false otherwise.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.FileExistsAsync(System.String,System.Object)">
      <summary>
            Detects whether the specified file exists on the server.
            </summary>
      <param name="remotePath">The path of the remote file to check.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>True if the file exists, false otherwise.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetCurrentDirectoryAsync(System.Object)">
      <summary>
            Gets the absolute path of the current working directory on the remote server.
            </summary>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>A string containing the absolute path of the current working remote directory.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetFileDateTimeAsync(System.String,System.Object)">
      <summary>
            Retrieves the modification date and time of the specified remote file.
            </summary>
      <param name="remotePath">The path of the remote file. This cannot be a directory.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>A <see cref="T:System.DateTime" /> value set to date and time that the specified file was modified.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetFileLengthAsync(System.String,System.Object)">
      <summary>
            Retrieves the size of the specified remote file.
            </summary>
      <param name="remotePath">The path of the remote file. This cannot be a directory.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>The size of the specified file in bytes.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetInfoAsync(System.String,System.Boolean,System.Object)">
      <summary>
            Retrieves a <see cref="T:Rebex.IO.FileSystemItem" /> containing the information about the specified remote file or directory.
            </summary>
      <param name="remotePath">The path of the remote file or directory.</param>
      <param name="failIfNotFound">Specifies whether to throw an exception if file not found.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Information about the remote file or directory.</returns>
      <remarks>Returns null if no file is found and failIfNotFound argument is set to false.</remarks>
    </member>
    <member name="M:Rebex.Net.IFtp.GetDownloadStreamAsync(System.String,System.IO.SeekOrigin,System.Int64,System.Object)">
      <summary>
            Returns a Stream for reading data from the remote file.
            </summary>
      <param name="remotePath">The path of the remote file.</param>
      <param name="origin">Position indicator that is used to obtain new position within the stream.</param>
      <param name="offset">A byte offset relative to the origin parameter.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>A Stream for reading data from the remote file.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetUploadStreamAsync(System.String,System.IO.SeekOrigin,System.Int64,System.Object)">
      <summary>
            Returns a Stream for writing data to the remote file.
            </summary>
      <param name="remotePath">The path of the remote file.</param>
      <returns>A Stream for writing data to the remote file.</returns>
      <param name="origin">Position indicator that is used to obtain new position within the stream.</param>
      <param name="offset">A byte offset relative to the origin parameter.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <remarks>
            Because the FTP protocol does not support processing multiple commands or transfers at the same time,
            the stream has to be closed before any other FTP operation can be used.
            </remarks>
    </member>
    <member name="M:Rebex.Net.IFtp.GetFileAsync(System.String,System.IO.Stream,System.Object)">
      <summary>
            Downloads the specified emote file to the data stream.
            </summary>
      <param name="remotePath">The path of the remote file.</param>
      <param name="outputStream">The output stream.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Number of bytes transferred.</returns>
      <remarks>If the local file does not exist, it is created.</remarks>
    </member>
    <member name="M:Rebex.Net.IFtp.GetFileAsync(System.String,System.IO.Stream,System.Int64,System.Object)">
      <summary>
            Downloads the specified part of the remote file to the data stream.
            </summary>
      <param name="remotePath">The path of the remote file.</param>
      <param name="outputStream">The output stream.</param>
      <param name="remoteOffset">The starting offset of the remote file.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Number of bytes transferred.</returns>
      <remarks>If the local file does not exist, it is created.</remarks>
    </member>
    <member name="M:Rebex.Net.IFtp.GetFileAsync(System.String,System.String,System.Object)">
      <summary>
            Downloads the remote file to the specified local file.
            </summary>
      <param name="remotePath">The path of the remote file.</param>
      <param name="localPath">The path of the local file. This cannot be a directory.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Number of bytes transferred.</returns>
      <remarks>If the local file does not exist, it is created.</remarks>
    </member>
    <member name="M:Rebex.Net.IFtp.GetFileAsync(System.String,System.String,System.Int64,System.Int64,System.Object)">
      <summary>
            Downloads the specified part of the remote file to the specified offset of the local file.
            </summary>
      <param name="remotePath">The path of the remote file.</param>
      <param name="localPath">The path of the local file. This cannot be a directory.</param>
      <param name="remoteOffset">The starting offset of the remote file.</param>
      <param name="localOffset">The starting offset in the local file.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Number of bytes transferred.</returns>
      <remarks>If the local file does not exist, it is created.</remarks>
    </member>
    <member name="M:Rebex.Net.IFtp.PutFileAsync(System.IO.Stream,System.String,System.Object)">
      <summary>
            Uploads the content of the data stream to the specified offset of the file on the server.
            </summary>
      <param name="sourceStream">The source data stream.</param>
      <param name="remotePath">The path of the remote file. This cannot be a directory.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Number of bytes transferred.</returns>
      <remarks>If the remote file does not exist, it is created.</remarks>
    </member>
    <member name="M:Rebex.Net.IFtp.PutFileAsync(System.IO.Stream,System.String,System.Int64,System.Int64,System.Object)">
      <summary>
            Uploads the content of the data stream to the specified offset of the file on the server.
            </summary>
      <param name="sourceStream">The source data stream.</param>
      <param name="remotePath">The path of the remote file. This cannot be a directory.</param>
      <param name="remoteOffset">The starting offset of the remote file.</param>
      <param name="length">Number of bytes to transfer or -1 to transfer all data until an end is reached.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Number of bytes transferred.</returns>
      <remarks>If the remote file does not exist, it is created.</remarks>
    </member>
    <member name="M:Rebex.Net.IFtp.PutFileAsync(System.String,System.String,System.Object)">
      <summary>
            Uploads the specified part of the local file to the specified offset of the file on the server.
            </summary>
      <param name="localPath">The path of the local file.</param>
      <param name="remotePath">The path of the remote file. This cannot be a directory.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Number of bytes transferred.</returns>
      <remarks>If the remote file does not exist, it is created.</remarks>
    </member>
    <member name="M:Rebex.Net.IFtp.PutFileAsync(System.String,System.String,System.Int64,System.Int64,System.Int64,System.Object)">
      <summary>
            Uploads the specified part of the local file to the specified offset of the file on the server.
            </summary>
      <param name="localPath">The path of the local file.</param>
      <param name="remotePath">The path of the remote file. This cannot be a directory.</param>
      <param name="localOffset">The starting offset in the local file.</param>
      <param name="remoteOffset">The starting offset of the remote file.</param>
      <param name="length">Number of bytes to transfer or -1 to transfer all data until an end is reached.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Number of bytes transferred.</returns>
      <remarks>If the remote file does not exist, it is created.</remarks>
    </member>
    <member name="M:Rebex.Net.IFtp.DownloadAsync(System.String,System.String,Rebex.IO.TraversalMode,Rebex.IO.TransferMethod,Rebex.IO.ActionOnExistingFiles,System.Object)">
      <summary>
            Downloads the specified file or directory hierarchy from the server to the local directory. Accepts wildcards.
            </summary>
      <param name="remotePath">The path of the remote file or directory.</param>
      <param name="localDirectoryPath">The path of the local directory. This must be a directory.</param>
      <param name="traversalMode">Traversal mode. Specifies whether the whole hierarchy or files only are transferred.</param>
      <param name="transferMethod">Specifies whether to copy or move source items.</param>
      <param name="existingFileMode">Specifies the default behavior for files that already exists at the server.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.DownloadAsync(Rebex.IO.FileSet,System.String,Rebex.IO.TransferMethod,Rebex.IO.ActionOnExistingFiles,System.Object)">
      <summary>
            Downloads the specified files and/or directories from the server to the local directory.
            </summary>
      <param name="set">A filtering set which specifies remote files and directories to be downloaded.</param>
      <param name="localDirectoryPath">The path of the local directory. This must be a directory.</param>
      <param name="transferMethod">Specifies whether to copy or move source items.</param>
      <param name="existingFileMode">Specifies the default behavior for files that already exists at the server.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.UploadAsync(System.String,System.String,Rebex.IO.TraversalMode,Rebex.IO.TransferMethod,Rebex.IO.ActionOnExistingFiles,System.Object)">
      <summary>
            Uploads the specified file or directory hierarchy to the directory on the server. Accepts wildcards.
            </summary>
      <param name="localPath">The path of the local file or directory.</param>
      <param name="remoteDirectoryPath">The path of the remote directory. This cannot be a file.</param>
      <param name="traversalMode">Traversal mode. Specifies whether the whole hierarchy or files only are transferred.</param>
      <param name="transferMethod">Specifies whether to copy or move source items.</param>
      <param name="existingFileMode">Specifies the default behavior for files that already exists at the server.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.UploadAsync(Rebex.IO.FileSet,System.String,Rebex.IO.TransferMethod,Rebex.IO.ActionOnExistingFiles,System.Object)">
      <summary>
            Uploads the specified local files and/or directories to the directory to the server.
            </summary>
      <param name="set">A filtering set which specifies remote files and directories to be uploaded.</param>
      <param name="remoteDirectoryPath">The path of the remote directory. This cannot be a file.</param>
      <param name="transferMethod">Specifies whether to copy or move source items.</param>
      <param name="existingFileMode">Specifies the default behavior for files that already exists at the server.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
    </member>
    <member name="M:Rebex.Net.IFtp.GetItemsAsync(System.String,Rebex.IO.TraversalMode,System.Object)">
      <summary>
            Retrieves the list of files and directories.
            </summary>
      <param name="remotePath">The path (with or without a mask) to a remote file or directory.</param>
      <param name="traversalMode">Specifies how to traverse hierarchy of directories.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Collection of <see cref="T:Rebex.IO.FileSystemItem" /> values.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetItemsAsync(Rebex.IO.FileSet,System.Object)">
      <summary>
            Retrieves the list of files and directories specified by the <paramref name="set" />.
            </summary>
      <param name="set">A filtering set which specifies remote files and directories to be retrieved.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Collection of <see cref="T:Rebex.IO.FileSystemItem" /> values.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetListAsync(System.Object)">
      <summary>
            Retrieves the list of files and directories in the current server directory.
            </summary>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Collection of <see cref="T:Rebex.IO.FileSystemItem" /> values.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetNameListAsync(System.Object)">
      <summary>
            Retrieves the list of file and directory names.
            </summary>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>An array of lines, with each line representing a single name.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetRawListAsync(System.Object)">
      <summary>
            Retrieves the raw list of files and directories using a raw text format.
            </summary>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>An array of lines, with each line representing a single item.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetListAsync(System.String,System.Object)">
      <summary>
            Retrieves the list of files and directories in the current server directory.
            </summary>
      <param name="arguments">Server and protocol-specific arguments. Usually a directory path.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>Collection of <see cref="T:Rebex.IO.FileSystemItem" /> values.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetNameListAsync(System.String,System.Object)">
      <summary>
            Retrieves the list of file and directory names.
            </summary>
      <param name="arguments">Server and protocol-specific arguments. Usually a directory path.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>An array of lines, with each line representing a single name.</returns>
    </member>
    <member name="M:Rebex.Net.IFtp.GetRawListAsync(System.String,System.Object)">
      <summary>
            Retrieves the raw list of files and directories using a raw text format.
            </summary>
      <param name="arguments">Server and protocol-specific arguments. Usually a directory path.</param>
      <param name="state">An optional user-provided object that identifies this particular asynchronous operation.</param>
      <returns>An array of lines, with each line representing a single item.</returns>
    </member>
    <member name="T:Rebex.Net.GssApiProvider">
      <summary>
            Encapsulates GSSAPI provider information.
            </summary>
    </member>
    <member name="M:Rebex.Net.GssApiProvider.GetSspiProvider(System.String,System.String,System.String,System.String,System.String)">
      <summary>
            Gets an instance of SSPI-based GSSAPI-compatible authentication provider. Only works on Windows.
            </summary>
      <param name="mechanism">Requested SSPI mechanism ('NTLM', 'Kerberos' or 'Negotiate').</param>
      <param name="targetName">The target name. If it is set to null ('Nothing' in VB.NET), server hostname will be used instead.</param>
      <param name="userName">The user name. If it is set to null ('Nothing' in VB.NET), integrated authentication (single sign-on) will be used.</param>
      <param name="password">User's password. Can be set to null ('Nothing' in VB.NET) if integrated authentication (single sign-on) is to be used.</param>
      <param name="domain">User's domain. If it is set to null ('Nothing' in VB.NET), it will be determined from the user name. If not available, the default domain will be used.</param>
      <returns />
    </member>
    <member name="M:Rebex.Net.GssApiProvider.GetParameter(System.Int32)">
      <summary>
            This method is only intended to be used by Rebex components internally and should not be used by third-part code.
            </summary>
      <param name="index">Index.</param>
      <returns>Parameter.</returns>
    </member>
    <member name="T:Rebex.Net.ISocketFactory">
      <summary>
            Defines a method to create a an instance of the generalized <see cref="T:Rebex.Net.ISocket" /> interface.
            </summary>
    </member>
    <member name="M:Rebex.Net.ISocketFactory.CreateSocket">
      <summary>
            Creates an unconnected instance of the generalized <see cref="T:Rebex.Net.ISocket" /> interface.
            </summary>
      <returns>An instance of <see cref="T:Rebex.Net.ISocket" />.</returns>
    </member>
    <member name="T:Rebex.Net.SocketState">
      <summary>
            Defines all the possible states of an <see cref="T:Rebex.Net.ISocket" /> object.
            </summary>
    </member>
    <member name="F:Rebex.Net.SocketState.NotConnected">
      <summary>
            The <see cref="T:Rebex.Net.ISocket" /> was either never connected, or is no longer connected.
            </summary>
    </member>
    <member name="F:Rebex.Net.SocketState.Connected">
      <summary>
            The <see cref="T:Rebex.Net.ISocket" /> is connected or data is still available to be read.
            </summary>
    </member>
    <member name="T:Rebex.Net.SocketSelectMode">
      <summary>
            Defines the polling modes for the <see cref="M:Rebex.Net.ISocket.Poll(System.Int32,Rebex.Net.SocketSelectMode)" /> method.
            </summary>
    </member>
    <member name="F:Rebex.Net.SocketSelectMode.SelectRead">
      <summary>
            Read status mode.
            </summary>
    </member>
    <member name="T:Rebex.Net.ISocket">
      <summary>
            Defines a generalized socket API.
            </summary>
    </member>
    <member name="P:Rebex.Net.ISocket.Timeout">
      <summary>
            Gets or sets the length of time in milliseconds before the operation times out (specify -1 or 0 to indicate that the request does not time out which is default).
            </summary>
      <value>
            The length of time, in milliseconds, until the operation times out,
            or the value -1 or 0 to indicate that the request does not time out.
            Default is -1 (infinite).
            </value>
      <remarks>
        <p>
            The internal timeout counter is reset every time data is sent
            or received from to server.
            </p>
        <p>
            The <see cref="P:Rebex.Net.ISocket.Timeout" /> property only affects synchronous methods.
            </p>
      </remarks>
    </member>
    <member name="P:Rebex.Net.ISocket.Connected">
      <summary>
            Gets a value that indicates whether the <see cref="T:Rebex.Net.ISocket" /> is connected to a remote host as of the last Send or Receive operation. 
            </summary>
      <value>true if the <see cref="T:Rebex.Net.ISocket" /> is connected; otherwise, false.</value>
    </member>
    <member name="P:Rebex.Net.ISocket.LocalEndPoint">
      <summary>
            Gets the local endpoint.
            </summary>
      <value>The local endpoint that the <see cref="T:Rebex.Net.ISocket" /> is using for communications.</value>
      <remarks>
            The LocalEndPoint property contains the network connection information associated with the local network device.
            </remarks>
    </member>
    <member name="P:Rebex.Net.ISocket.RemoteEndPoint">
      <summary>
            Gets the remote endpoint.
            </summary>
      <value>The remote endpoint that the <see cref="T:Rebex.Net.ISocket" /> is using for communications.</value>
      <remarks>
            The RemoteEndPoint property gets the network connection information associated with
            either the remote host or the proxy server.
            RemoteEndPoint is set by the <see cref="T:Rebex.Net.ISocket" /> methods that establish a connection
            to a remote host.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ISocket.Poll(System.Int32,Rebex.Net.SocketSelectMode)">
      <summary>
            Determines the status of the socket.
            </summary>
      <param name="microSeconds">Time to wait for a response, in microseconds.</param>
      <param name="mode">Select mode.</param>
      <returns>True if data can be sent or read or if the connection was closed.</returns>
    </member>
    <member name="M:Rebex.Net.ISocket.Connect(System.Net.EndPoint)">
      <summary>
            Establishes a connection to a remote device.
            </summary>
      <param name="remoteEP">An <see cref="T:System.Net.IPEndPoint" /> that represents the remote device.</param>
      <remarks>
            The Connect method establishes a network connection to a device identified by the remoteEP
            parameter. Once the connection has been made, you can send data to the remote device with
            the Send method, or receive data from the remote device with the Receive method.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ISocket.Connect(System.String,System.Int32)">
      <summary>
            Establishes a connection to a remote device.
            </summary>
      <param name="serverName">The hostname (or IP address) of the remote device.</param>
      <param name="serverPort">The port number associated with the hostname.</param>
      <remarks>
            The Connect method establishes a network connection to a host identified by the serverName and serverPort
            parameters. Once the connection has been made, you can send data to the remote device with
            the Send method, or receive data from the remote device with the Receive method.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ISocket.Send(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags)">
      <summary>
            Sends the specified amount of data to the connected <see cref="T:Rebex.Net.ISocket" /> starting at the indicated location in the data and using the supplied flags.
            </summary>
      <param name="buffer">The data to be sent.</param>
      <param name="offset">The position in the data buffer to begin sending data.</param>
      <param name="count">The number of bytes to send.</param>
      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
      <returns>The number of bytes sent.</returns>
    </member>
    <member name="M:Rebex.Net.ISocket.Receive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags)">
      <summary>
            Receives the specified amount of data from the connected <see cref="T:Rebex.Net.ISocket" /> into a specific location of the receive buffer and using the supplied flags.
            </summary>
      <param name="buffer">The storage location for the received data.</param>
      <param name="offset">The position in the buffer at which to store the received data.</param>
      <param name="count">The number of bytes to receive.</param>
      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
      <returns>The number of bytes received.</returns>
    </member>
    <member name="M:Rebex.Net.ISocket.Shutdown(System.Net.Sockets.SocketShutdown)">
      <summary>
            Disables sends and receives on the <see cref="T:Rebex.Net.ISocket" />.
            </summary>
      <param name="how">The <see cref="T:System.Net.Sockets.SocketShutdown" /> value specifying the operation that will no longer be allowed.</param>
      <remarks>
            See the reference for <see cref="M:System.Net.Sockets.Socket.Shutdown(System.Net.Sockets.SocketShutdown)" /> for details.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ISocket.Close">
      <summary>
            Forces the <see cref="T:Rebex.Net.ISocket" /> connection to close.
            </summary>
      <remarks>
        <p>
            The application should call <see cref="M:Rebex.Net.ISocket.Shutdown(System.Net.Sockets.SocketShutdown)" /> before calling Close to ensure that
            all pending data is sent or received before the Socket is closed.
            </p>
      </remarks>
    </member>
    <member name="T:Rebex.Net.NetworkSession">
      <summary>
            A base class from which all Rebex session-based network protocol objects derive.
            </summary>
    </member>
    <member name="P:Rebex.Net.NetworkSession.DefaultLogWriter">
      <summary>
            Gets or sets a default log writer used by all new instances of <see cref="T:Rebex.Net.NetworkSession" /> object.
            </summary>
      <value>Default log writer.</value>
    </member>
    <member name="P:Rebex.Net.NetworkSession.IsConnected">
      <summary>
            Gets a value indicating whether the session is connected.
            </summary>
      <remarks>
        <p>
            This property returns the latest known state of the session. 
            When it returns false, the session was either never connected, or no longer connected. 
            When it returns true, the session was connected at the time of the last I/O operation.
            </p>
        <p>
          <b>Note:</b> There is no guarantee that the session is still connected even though
            <see cref="P:Rebex.Net.NetworkSession.IsConnected" /> returns true.
            </p>
      </remarks>
      <value>True if connected; false otherwise.</value>
    </member>
    <member name="P:Rebex.Net.NetworkSession.IsAuthenticated">
      <summary>
            Gets a value indicating whether the session is authenticated.
            </summary>
      <value>True if authenticated; false otherwise.</value>
    </member>
    <member name="P:Rebex.Net.NetworkSession.UserName">
      <summary>
            Gets the authenticated user name, if available.
            </summary>
      <value>User name, or null (Nothing in VB.NET).</value>
    </member>
    <member name="P:Rebex.Net.NetworkSession.ServerName">
      <summary>
            Gets the server name, if available.
            </summary>
      <value>Server name, or null (Nothing in VB.NET).</value>
    </member>
    <member name="P:Rebex.Net.NetworkSession.ServerPort">
      <summary>
            Gets the server port, if available.
            </summary>
      <value>Server port, or 0.</value>
    </member>
    <member name="P:Rebex.Net.NetworkSession.LogWriter">
      <summary>
            Gets or sets the <see cref="T:Rebex.ILogWriter">LogWriter</see> used by this object.
            </summary>
      <value>Log writer.</value>
    </member>
    <member name="P:Rebex.Net.NetworkSession.InstanceId">
      <summary>
            Gets instance ID (intended for logging purposes).
            </summary>
      <value>Instance ID.</value>
    </member>
    <member name="M:Rebex.Net.NetworkSession.GetHashCode">
      <summary>
            Gets hash code for this object.
            </summary>
      <returns>Hash code for this object.</returns>
    </member>
    <member name="M:Rebex.Net.NetworkSession.#ctor">
      <summary>
            Creates a new instance of <see cref="T:Rebex.Net.NetworkSession" /> object.
            </summary>
    </member>
    <member name="T:Rebex.Net.NetworkSessionExceptionStatus">
      <summary>
            Defines status codes for the <see cref="T:Rebex.Net.NetworkSessionException" /> class.
            </summary>
    </member>
    <member name="F:Rebex.Net.NetworkSessionExceptionStatus.UnclassifiableError">
      <summary>
            An unclassifiable error occurred. This is the default value for <see cref="P:Rebex.Net.NetworkSessionException.Status" />.
            </summary>
    </member>
    <member name="F:Rebex.Net.NetworkSessionExceptionStatus.OperationFailure">
      <summary> 
            The requested operation could not be completed. 
            </summary>
    </member>
    <member name="F:Rebex.Net.NetworkSessionExceptionStatus.ConnectFailure">
      <summary>
            The remote service point could not be contacted at the transport level.
            </summary>
    </member>
    <member name="F:Rebex.Net.NetworkSessionExceptionStatus.ConnectionClosed">
      <summary>
            The connection was prematurely closed.
            </summary>
    </member>
    <member name="F:Rebex.Net.NetworkSessionExceptionStatus.SocketError">
      <summary>
            The error at transport level occurred.
            </summary>
    </member>
    <member name="F:Rebex.Net.NetworkSessionExceptionStatus.NameResolutionFailure">
      <summary>
            The name resolver service could not resolve the host name.
            </summary>
    </member>
    <member name="F:Rebex.Net.NetworkSessionExceptionStatus.ProtocolError">
      <summary>
            The response received from the server was complete but indicated a protocol-level error. For example, a protocol error such as 'file not found' would use this status.
            </summary>
    </member>
    <member name="F:Rebex.Net.NetworkSessionExceptionStatus.OperationAborted">
      <summary>
            The operation was aborted by the client.
            </summary>
    </member>
    <member name="F:Rebex.Net.NetworkSessionExceptionStatus.ServerProtocolViolation">
      <summary>
            The server response was not a valid protocol response.
            </summary>
    </member>
    <member name="F:Rebex.Net.NetworkSessionExceptionStatus.Timeout">
      <summary>
            No response was received during the time-out period for a request.
            </summary>
    </member>
    <member name="F:Rebex.Net.NetworkSessionExceptionStatus.AsyncError">
      <summary>
            General exception in asynchronous call.
            </summary>
    </member>
    <member name="T:Rebex.Net.NetworkSessionException">
      <summary>
            The exception that is thrown when an error occurs while using a Rebex network component.
            </summary>
    </member>
    <member name="M:Rebex.Net.NetworkSessionException.#ctor(System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.NetworkSessionException" /> class with the specified error message.
            </summary>
      <param name="message">The message that describes the error.</param>
    </member>
    <member name="M:Rebex.Net.NetworkSessionException.#ctor(System.String,System.Exception)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.NetworkSessionException" /> class with the specified error message
            and a reference to the inner exception that is the cause of this exception.
            </summary>
      <param name="message">The message that describes the error.</param>
      <param name="innerException">The exception that is the cause of the current exception. If the <i>innerException</i> parameter is not a null reference, the current exception is raised in a <b>catch</b> block that handles the inner exception.</param>
    </member>
    <member name="P:Rebex.Net.NetworkSessionException.Status">
      <summary>
            Gets error status.
            </summary>
      <value>One of the <see cref="T:Rebex.Net.NetworkSessionExceptionStatus" /> values.</value>
    </member>
    <member name="P:Rebex.Net.NetworkSessionException.ProtocolCode">
      <summary>
            Gets the protocol error code, if available (usually when <see cref="P:Rebex.Net.NetworkSessionException.Status" /> is set to ProtocolError).
            </summary>
      <value>Protocol error code.</value>
    </member>
    <member name="P:Rebex.Net.NetworkSessionException.ProtocolMessage">
      <summary>
            Gets the protocol error message, if available (usually when <see cref="P:Rebex.Net.NetworkSessionException.Status" /> is set to ProtocolError).
            </summary>
      <value>Protocol error message.</value>
    </member>
    <member name="T:Rebex.Net.Proxy">
      <summary>
            Contains proxy settings for a socket connection.
            </summary>
    </member>
    <member name="M:Rebex.Net.Proxy.ToString">
      <summary>
            Returns a string representation of this proxy.
            </summary>
      <returns>String representation of this proxy.</returns>
    </member>
    <member name="M:Rebex.Net.Proxy.Clone">
      <summary>
            Creates a copy of the <see cref="T:Rebex.Net.Proxy" /> instance.
            </summary>
      <returns>A new <see cref="T:Rebex.Net.Proxy" /> instance.</returns>
    </member>
    <member name="M:Rebex.Net.Proxy.CreateClone">
      <summary>
            Creates the true type of the clone.
            </summary>
      <returns>If overridden in derived class, return the derived class instance.</returns>
    </member>
    <member name="P:Rebex.Net.Proxy.Host">
      <summary>
            Gets or sets the hostname of the proxy server.
            </summary>
      <value>The hostname of the proxy server.</value>
    </member>
    <member name="P:Rebex.Net.Proxy.Port">
      <summary>
            Gets or sets the port of the proxy server.
            </summary>
      <value>The port of the proxy server.</value>
    </member>
    <member name="P:Rebex.Net.Proxy.ProxyType">
      <summary>
            Gets or sets the type of the proxy server.
            </summary>
      <value>The type of the proxy server.</value>
    </member>
    <member name="P:Rebex.Net.Proxy.AuthenticationMethod">
      <summary>
            Gets or sets the authentication method to use for HTTP CONNECT proxy.
            NTLM authentication is only supported by some HTTP CONNECT proxies.
            </summary>
      <value>An authentication method.</value>
    </member>
    <member name="P:Rebex.Net.Proxy.HttpUserAgent">
      <summary>
            Gets or sets user agent to use for HTTP connect proxy.
            </summary>
      <value>User agent string.</value>
    </member>
    <member name="P:Rebex.Net.Proxy.Credentials">
      <summary>
            Gets or sets the credentials to submit to the proxy server for authentication.
            Password authentication is not supported by SOCKS4 and SOCKS4a.
            </summary>
      <value>An <see cref="T:System.Net.ICredentials" /> containing the credentials to submit to the proxy server for authentication.</value>
      <remarks>Only credentials of type <see cref="T:System.Net.NetworkCredential" /> are supported.</remarks>
    </member>
    <member name="P:Rebex.Net.Proxy.UserName">
      <summary>
            Gets or sets the username to submit to the proxy server for authentication.
            </summary>
      <value>A username to submit to the proxy server for authentication.</value>
    </member>
    <member name="P:Rebex.Net.Proxy.Password">
      <summary>
            Gets or sets the password to submit to the proxy server for authentication.
            Password authentication is not supported by SOCKS4 and SOCKS4a.
            </summary>
      <value>A password to submit to the proxy server for authentication.</value>
    </member>
    <member name="P:Rebex.Net.Proxy.Domain">
      <summary>
            Gets or sets the domain to submit to the proxy server for authentication.
            </summary>
      <value>A domain to submit to the proxy server for authentication.</value>
    </member>
    <member name="P:Rebex.Net.Proxy.LocalPortRange">
      <summary>
            Gets or sets the local TCP port range to which to bind the connections.
            </summary>
      <value>The port range.</value>
    </member>
    <member name="P:Rebex.Net.Proxy.LogWriter">
      <summary>
            Gets or sets the log writer used by this object.
            </summary>
      <value>Log writer.</value>
    </member>
    <member name="P:Rebex.Net.Proxy.SendBufferSize">
      <summary>
            Gets or sets local TCP socket send buffer size.
            </summary>
      <value>Send buffer size.</value>
    </member>
    <member name="P:Rebex.Net.Proxy.ReceiveBufferSize">
      <summary>
            Gets or sets local TCP socket receive buffer size.
            </summary>
      <value>Receive buffer size.</value>
    </member>
    <member name="M:Rebex.Net.Proxy.GetProxyAddress">
      <summary>
            Gets the proxy address.
            </summary>
      <returns>Returns the proxy address with the correct schema applied.</returns>
    </member>
    <member name="M:Rebex.Net.Proxy.GetProxyAddress(System.String,System.Int32,System.String)">
      <summary>
             Gets the proxy address.
            </summary>
      <param name="hostName">Host part of the address.</param>
      <param name="port">Port part of the address.</param>
      <param name="schema">Shema used in address.</param>
      <returns>Returns the proxy address with the correct schema applied.</returns>
    </member>
    <member name="M:Rebex.Net.Proxy.GetProxy(System.Uri)">
      <summary>
            Returns the proxied URI for a destination.
            </summary>
      <param name="destination">The <see cref="T:System.Uri" /> of the requested FTP server.</param>
      <returns>The <see cref="T:System.Uri" /> of the FTP server if the resource is on the bypass list; otherwise, the <see cref="T:System.Uri" /> of the proxy.</returns>
    </member>
    <member name="M:Rebex.Net.Proxy.IsBypassed(System.Uri)">
      <summary>
            Indicates whether to use the proxy server for the specified host.
            </summary>
      <param name="host">The <see cref="T:System.Uri" /> of the host to check for proxy use.</param>
      <returns>
        <b>true</b> if the proxy server should not be used for <i>host</i>; otherwise, <b>false</b>.</returns>
    </member>
    <member name="M:Rebex.Net.Proxy.IsBypassed(System.String,System.Int32)">
      <summary>
            Indicates whether to use the proxy server for the specified host.
            </summary>
      <param name="hostName">The host address to check for proxy use.</param>
      <param name="port">The port.</param>
      <returns>
        <b>true</b> if the proxy server should not be used for <i>host</i>; otherwise, <b>false</b>.</returns>
    </member>
    <member name="P:Rebex.Net.Proxy.BypassProxyOnLocal">
      <summary>
            Gets or sets a value indicating whether to bypass the proxy server for local addresses.
            </summary>
      <value>
        <b>true</b> to bypass the proxy server for local addresses; otherwise, <b>false</b>. The default value is <b>false</b>.</value>
    </member>
    <member name="P:Rebex.Net.Proxy.BypassArrayList">
      <summary>
            Gets a list of addresses that do not use the proxy server.
            </summary>
      <value>An <see cref="T:System.Collections.ArrayList" /> containing a list of regular expressions that describe URIs that will not use the proxy server when accessed.</value>
      <remarks>Not supported by Rebex FTP for .NET Compact Framework.</remarks>
    </member>
    <member name="P:Rebex.Net.Proxy.BypassList">
      <summary>
            Gets or sets an array of addresses that do not use the proxy server.
            </summary>
      <value>An array containing a list of regular expressions that describe URIs that will not use the proxy server when accessed.</value>
      <remarks>Not supported by Rebex FTP for .NET Compact Framework.</remarks>
    </member>
    <member name="P:Rebex.Net.Proxy.Encoding">
      <summary>
            Gets or sets the <see cref="T:System.Text.Encoding">Encoding</see> to use to encode and decode requests and responses.
            </summary>
      <value>The <see cref="T:System.Text.Encoding">Encoding</see> to use to encode and decode requests and responses. Default is <see cref="T:System.Text.Encoding">Encoding.Default</see>.</value>
    </member>
    <member name="P:Rebex.Net.Proxy.SendRetryTimeout">
      <summary>
            Specifies how long (in milliseconds) to continue try sending data before giving up on slow networks.
            Setting it to 0 or -1 means that the same value as <see cref="P:Rebex.Net.ProxySocket.Timeout" /> property will be used.
            </summary>
      <remarks>
            Minimal value is 1000. Setting this to a value lower than 1000 will set it to 1000.
            </remarks>
    </member>
    <member name="M:Rebex.Net.Proxy.#ctor">
      <summary>
            Initializes an empty instance of the <see cref="T:Rebex.Net.Proxy" /> class.
            </summary>
      <remarks>
            The default constructor initializes an empty instance of the <see cref="T:Rebex.Net.Proxy" />
            class with the <see cref="P:Rebex.Net.Proxy.ProxyType" /> property set to <see cref="P:Rebex.Net.Proxy.ProxyType">ProxyType.None</see>.
            </remarks>
    </member>
    <member name="M:Rebex.Net.Proxy.#ctor(Rebex.Net.ProxyType,System.String,System.Int32)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.Proxy" /> class.
            </summary>
      <param name="proxyType">The type of the proxy.</param>
      <param name="host">The hostname of the proxy server.</param>
      <param name="port">The port of the proxy server.</param>
    </member>
    <member name="T:Rebex.Net.ProxyAuthentication">
      <summary>
            HTTP CONNECT proxy server authentication method.
            </summary>
    </member>
    <member name="F:Rebex.Net.ProxyAuthentication.Basic">
      <summary>
            Basic authentication.
            </summary>
    </member>
    <member name="F:Rebex.Net.ProxyAuthentication.Ntlm">
      <summary>
            NTLM authentication. This can only be used for HTTP CONNECT proxies (see <see cref="T:Rebex.Net.ProxyType" /> enum and <see cref="P:Rebex.Net.Proxy.ProxyType" /> property.
            </summary>
    </member>
    <member name="F:Rebex.Net.ProxyAuthentication.Digest">
      <summary>
            Digest authentication. This can only be used for HTTP CONNECT proxies (see <see cref="T:Rebex.Net.ProxyType" /> enum and <see cref="P:Rebex.Net.Proxy.ProxyType" /> property.
            </summary>
    </member>
    <member name="T:Rebex.Net.ProxyType">
      <summary>
            Type of proxy to use to connect to the remote machine.
            </summary>
    </member>
    <member name="F:Rebex.Net.ProxyType.None">
      <summary>No proxy. Direct connection.</summary>
    </member>
    <member name="F:Rebex.Net.ProxyType.Socks4">
      <summary>Connection through Socks4 proxy. This is a legacy proxy protocol that does not support password authentication.</summary>
    </member>
    <member name="F:Rebex.Net.ProxyType.Socks4a">
      <summary>Connection through Socks4A proxy (capable of resolving domain names). This is a legacy proxy protocol that does not support password authentication.</summary>
    </member>
    <member name="F:Rebex.Net.ProxyType.Socks5">
      <summary>Connection through Socks5 proxy.</summary>
    </member>
    <member name="F:Rebex.Net.ProxyType.HttpConnect">
      <summary>Connection through HTTP proxy using the CONNECT method.</summary>
    </member>
    <member name="T:Rebex.Net.ProxySocketExceptionStatus">
      <summary>
            Defines status codes for the <see cref="T:Rebex.Net.ProxySocketException" /> class.
            </summary>
    </member>
    <member name="F:Rebex.Net.ProxySocketExceptionStatus.ConnectFailure">
      <summary>
            The remote service point could not be contacted at the transport level.
            </summary>
    </member>
    <member name="F:Rebex.Net.ProxySocketExceptionStatus.ConnectionClosed">
      <summary>
            The connection was prematurely closed
            </summary>
    </member>
    <member name="F:Rebex.Net.ProxySocketExceptionStatus.SocketError">
      <summary>
            The error at transport level occurred.
            </summary>
    </member>
    <member name="F:Rebex.Net.ProxySocketExceptionStatus.NameResolutionFailure">
      <summary>
            The name resolver service could not resolve the host name.
            </summary>
    </member>
    <member name="F:Rebex.Net.ProxySocketExceptionStatus.ProtocolError">
      <summary>
            The response received from the server was complete but indicated a protocol-level error. For example, an FTP protocol error such as 550 Access Denied would use this status.
            </summary>
    </member>
    <member name="F:Rebex.Net.ProxySocketExceptionStatus.ProxyNameResolutionFailure">
      <summary>
            The name resolver service could not resolve the proxy host name.
            </summary>
    </member>
    <member name="F:Rebex.Net.ProxySocketExceptionStatus.ReceiveFailure">
      <summary>
            A complete response was not received from the remote server.
            </summary>
    </member>
    <member name="F:Rebex.Net.ProxySocketExceptionStatus.UnclassifiableError">
      <summary>
            An unclassifiable error occurred. This is the default value for <see cref="P:Rebex.Net.ProxySocketException.Status" />.
            </summary>
    </member>
    <member name="F:Rebex.Net.ProxySocketExceptionStatus.ServerProtocolViolation">
      <summary>
            The server response was not a valid response.
            </summary>
    </member>
    <member name="F:Rebex.Net.ProxySocketExceptionStatus.AsyncError">
      <summary>
            General exception in asynchronous call.
            </summary>
    </member>
    <member name="F:Rebex.Net.ProxySocketExceptionStatus.NotConnected">
      <summary>
            The socket is not connected.
            </summary>
    </member>
    <member name="F:Rebex.Net.ProxySocketExceptionStatus.SendRetryTimeout">
      <summary>
            An incomplete block of data was sent and the operation timed out.
            </summary>
    </member>
    <member name="F:Rebex.Net.ProxySocketExceptionStatus.Timeout">
      <summary>
            Operation timed out.
            </summary>
    </member>
    <member name="T:Rebex.Net.ProxySocketException">
      <summary>
            The exception that is thrown when a proxy error or socket error occurs.
            </summary>
    </member>
    <member name="P:Rebex.Net.ProxySocketException.Status">
      <summary>
            Gets the status of the error.
            </summary>
      <value>One of the <see cref="T:Rebex.Net.ProxySocketExceptionStatus" /> values.</value>
    </member>
    <member name="P:Rebex.Net.ProxySocketException.ErrorCode">
      <summary>
            Gets the error code associated with this exception if the error status is <see cref="T:Rebex.Net.ProxySocketExceptionStatus">SocketError</see> or <see cref="T:Rebex.Net.ProxySocketExceptionStatus">ProtocolError</see>. Returns 0 otherwise.
            </summary>
      <value>An integer error code associated with this exception (or 0).</value>
    </member>
    <member name="M:Rebex.Net.ProxySocketException.#ctor(System.String,Rebex.Net.ProxySocketExceptionStatus)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.ProxySocketException" /> class with the specified error message and status.
            </summary>
      <param name="message">The message that describes the error.</param>
      <param name="status">One of the <see cref="T:Rebex.Net.ProxySocketExceptionStatus" /> values.</param>
    </member>
    <member name="M:Rebex.Net.ProxySocketException.#ctor(System.String,Rebex.Net.ProxySocketExceptionStatus,System.Exception)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.ProxySocketException" /> class with the specified error message, status,
            and a reference to the inner exception that is the cause of this exception.
            </summary>
      <param name="message">The message that describes the error.</param>
      <param name="status">One of the <see cref="T:Rebex.Net.ProxySocketExceptionStatus" /> values.</param>
      <param name="innerException">The exception that is the cause of the current exception. If the <i>innerException</i> parameter is not a null reference, the current exception is raised in a <b>catch</b> block that handles the inner exception.</param>
    </member>
    <member name="M:Rebex.Net.ProxySocketException.#ctor(System.Net.Sockets.SocketException)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.ProxySocketException" /> class with the reference to the socket exception that is the cause of this exception.
            </summary>
      <param name="e">The socket exception that is the cause of the current exception.</param>
    </member>
    <member name="M:Rebex.Net.ProxySocketException.GetSocketExceptionMessage(System.Net.Sockets.SocketException)">
      <summary>
            Returns an exception message for the supplied SocketException.
            </summary>
      <param name="error">Socket exception.</param>
      <returns>Exception message.</returns>
    </member>
    <member name="T:Rebex.Net.PortRange">
      <summary>
            Represents a TCP/IP port range.
            </summary>
    </member>
    <member name="F:Rebex.Net.PortRange.Any">
      <summary>
            Specifies a port range that makes the OS assign an available port number. 
            </summary>
    </member>
    <member name="M:Rebex.Net.PortRange.#ctor(System.Int32)">
      <summary>
            Creates a port range that includes a single port.
            </summary>
      <param name="port">Port</param>
    </member>
    <member name="M:Rebex.Net.PortRange.#ctor(System.Int32,System.Int32)">
      <summary>
            Creates a port range.
            </summary>
      <param name="portMin">Low bound of the range.</param>
      <param name="portMax">High bound of the range.</param>
    </member>
    <member name="M:Rebex.Net.PortRange.ToString">
      <summary>
            Returns the string representation of the port range.
            </summary>
      <returns>Port range.</returns>
    </member>
    <member name="T:Rebex.Net.ProxySocket">
      <summary>
            Implements the subset of the Berkeley sockets interface;
            adds the ability to connect through SOCKS4/SOCKS5 and HTTP proxies.
            </summary>
      <remarks>
        <p>
            This class is suitable for extending your client applications with the ability
            to connect through proxies.
            </p>
        <p>
            This class is limited to operations supported by proxies - it is not a
            replacement for the <see cref="T:System.Net.Sockets.Socket" />. This means
            it is perfect for writing clients, but useless for writing servers.
            </p>
        <p>
            Only connection-oriented protocols are supported at the moment
            </p>
      </remarks>
    </member>
    <member name="P:Rebex.Net.ProxySocket.LocalPortRange">
      <summary>
            Gets the local TCP port range to which to bind the connections.
            </summary>
      <value>The port range.</value>
    </member>
    <member name="P:Rebex.Net.ProxySocket.ProxyHost">
      <summary>
            Gets the hostname of the proxy server.
            </summary>
      <value>The hostname of the proxy server.</value>
    </member>
    <member name="P:Rebex.Net.ProxySocket.ProxyPort">
      <summary>
            Gets the port of the proxy server.
            </summary>
      <value>The port of the proxy server.</value>
    </member>
    <member name="P:Rebex.Net.ProxySocket.ProxyType">
      <summary>
            Gets the type of the proxy server.
            </summary>
      <value>The type of the proxy server.</value>
    </member>
    <member name="P:Rebex.Net.ProxySocket.AuthenticationMethod">
      <summary>
            Gets the authentication method to use for HTTP CONNECT proxy.
            NTLM authentication is only supported by some HTTP CONNECT proxies.
            </summary>
      <value>An authentication method.</value>
    </member>
    <member name="P:Rebex.Net.ProxySocket.UserName">
      <summary>
            Gets the username to submit to the proxy server for authentication.
            </summary>
      <value>A username to submit to the proxy server for authentication.</value>
    </member>
    <member name="P:Rebex.Net.ProxySocket.Password">
      <summary>
            Gets the username to submit to the proxy server for authentication.
            Password authentication is not supported by SOCKS4 and SOCKS4a.
            </summary>
      <value>A username to submit to the proxy server for authentication.</value>
    </member>
    <member name="P:Rebex.Net.ProxySocket.Domain">
      <summary>
            Gets the domain to submit to the proxy server for authentication.
            </summary>
      <value>A domain to submit to the proxy server for authentication.</value>
    </member>
    <member name="P:Rebex.Net.ProxySocket.SendBufferSize">
      <summary>
            Gets or sets send buffer size. Must be set before calling the <see cref="M:Rebex.Net.ProxySocket.Connect(System.String,System.Int32)" /> method.
            </summary>
      <value>Send buffer size.</value>
    </member>
    <member name="P:Rebex.Net.ProxySocket.ReceiveBufferSize">
      <summary>
            Gets or sets receive buffer size. Must be set before calling the <see cref="M:Rebex.Net.ProxySocket.Connect(System.String,System.Int32)" /> method.
            </summary>
      <value>Receive buffer size.</value>
    </member>
    <member name="P:Rebex.Net.ProxySocket.Timeout">
      <summary>
            Gets or sets the length of time in milliseconds before the operation times out 
            (specify -1 or 0 to indicate that the request does not time out which is default).
            </summary>
      <value>
            The length of time, in milliseconds, until the operation times out,
            or the value -1 or 0 to indicate that the request does not time out.
            Default is -1 (infinite).
            </value>
      <remarks>
        <p>
            The internal timeout counter is reset every time data is sent
            or received from to server.
            </p>
        <p>
            Minimal value is 500. Setting this to a value lower than 500 will set it to 500.
            </p>
      </remarks>
    </member>
    <member name="P:Rebex.Net.ProxySocket.Socket">
      <summary>
            Gets the internal <see cref="T:System.Net.Sockets.Socket" /> value.
            </summary>
      <value>The internal <see cref="T:System.Net.Sockets.Socket" /> value.</value>
    </member>
    <member name="P:Rebex.Net.ProxySocket.RemoteEndPoint">
      <summary>
            Gets the remote endpoint.
            </summary>
      <value>The remote endpoint that the <see cref="T:Rebex.Net.ProxySocket" /> is using for communications.</value>
      <remarks>
            The RemoteEndPoint property gets the network connection information associated with
            either the remote host or the proxy server.
            RemoteEndPoint is set by <see cref="T:Rebex.Net.ProxySocket" /> methods that establish a connection
            to a remote host.
            </remarks>
    </member>
    <member name="P:Rebex.Net.ProxySocket.LocalEndPoint">
      <summary>
            Gets the local endpoint.
            </summary>
      <value>The local endpoint that the <see cref="T:Rebex.Net.ProxySocket" /> is using for communications.</value>
      <remarks>
            The LocalEndPoint property contains the network connection information associated with the local network device.
            </remarks>
    </member>
    <member name="P:Rebex.Net.ProxySocket.Information">
      <summary>
            Gets socket information on the underlying socket object.
            </summary>
    </member>
    <member name="P:Rebex.Net.ProxySocket.Handle">
      <summary>
            Gets the operating system handle for the inner <see cref="T:System.Net.Sockets.Socket" />.
            </summary>
      <value>An <see cref="T:System.IntPtr" /> representing the operating system handle for the <see cref="T:System.Net.Sockets.Socket" />.</value>
    </member>
    <member name="P:Rebex.Net.ProxySocket.Available">
      <summary>
            Gets the amount of data that has been received from the network and is available to be read.
            </summary>
      <value>
            The number of bytes of data that has been received from the network and is available
            to be read, or 0 if no data is available.
            </value>
      <remarks>
            After the socket has been closed, this property will still indicate there is data to be read
            if there is 1 byte or more data in the receive buffer. If there is no more data to be read,
            a value of 0 will be returned.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.Poll(System.Int32,Rebex.Net.SocketSelectMode)">
      <summary>
            Determines the status of the socket.
            </summary>
      <param name="microSeconds">Time to wait for a response, in microseconds.</param>
      <param name="mode">Select mode.</param>
      <returns>True if data can be sent or read or if the connection was closed.</returns>
    </member>
    <member name="P:Rebex.Net.ProxySocket.Connected">
      <summary>
            Gets a value that indicates whether the <see cref="T:Rebex.Net.ProxySocket" /> is connected to a remote host as of the last Send or Receive operation. 
            </summary>
      <value>true if the <see cref="T:Rebex.Net.ProxySocket" /> is connected; otherwise, false.</value>
    </member>
    <member name="M:Rebex.Net.ProxySocket.GetConnectionState">
      <summary>
            Gets a value that indicates whether the <see cref="T:Rebex.Net.ProxySocket" /> is currently connected to a remote host.
            </summary>
      <value>true if the <see cref="T:Rebex.Net.ProxySocket" /> is connected; otherwise, false.</value>
      <remarks>
        <p>
            As long as there is still data available to be read from the socket, this method will indicate that
            the <see cref="T:Rebex.Net.ProxySocket" /> is connected, even though technically it might have already be considered
            disconnected based on one's point of view.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.#ctor">
      <summary>
            Initializes an empty instance of the <see cref="T:Rebex.Net.ProxySocket" /> class.
            </summary>
      <remarks>
            The default constructor initializes an instance of the <see cref="T:Rebex.Net.ProxySocket" />
            class with the <see cref="P:Rebex.Net.ProxySocket.ProxyType" /> property set to <see cref="P:Rebex.Net.ProxySocket.ProxyType">ProxyType.None</see>.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.#ctor(System.Net.Sockets.Socket)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.ProxySocket" /> class based on the specified socket.
            </summary>
      <param name="socket">Socket to base the <see cref="T:Rebex.Net.ProxySocket" /> instance on.</param>
    </member>
    <member name="M:Rebex.Net.ProxySocket.#ctor(Rebex.Net.Proxy)">
      <summary>
            Initializes a new instance of <see cref="T:Rebex.Net.ProxySocket" /> class with parameters provided in the supplied <see cref="T:Rebex.Net.Proxy" /> object.
            </summary>
      <param name="proxy">Contains parameters used to initialize this <see cref="T:Rebex.Net.ProxySocket" />.</param>
    </member>
    <member name="M:Rebex.Net.ProxySocket.Send(System.Byte[],System.Int32,System.Int32)">
      <summary>
            Sends the specified amount of data to a connected <see cref="T:Rebex.Net.ProxySocket" /> starting at the indicated location in the data and using the supplied flags.
            </summary>
      <param name="buffer">The data to be sent.</param>
      <param name="offset">The position in the data buffer to begin sending data.</param>
      <param name="count">The number of bytes to send.</param>
      <returns>The number of bytes sent.</returns>
      <remarks>
            Prior to sending data, the socket must be connected using either a call to <see cref="M:Rebex.Net.ProxySocket.Connect(System.Net.EndPoint)" /> method or a call to <see cref="M:Rebex.Net.ProxySocket.Listen(Rebex.Net.ISocket)" /> and <see cref="M:Rebex.Net.ProxySocket.Accept" /> methods.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.Send(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags)">
      <summary>
            Sends the specified amount of data to a connected <see cref="T:Rebex.Net.ProxySocket" /> starting at the indicated location in the data and using the supplied flags.
            </summary>
      <param name="buffer">The data to be sent.</param>
      <param name="offset">The position in the data buffer to begin sending data.</param>
      <param name="count">The number of bytes to send.</param>
      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
      <returns>The number of bytes sent.</returns>
      <remarks>
            Prior to sending data, the socket must be connected using either a call to <see cref="M:Rebex.Net.ProxySocket.Connect(System.Net.EndPoint)" /> method or a call to <see cref="M:Rebex.Net.ProxySocket.Listen(Rebex.Net.ISocket)" /> and <see cref="M:Rebex.Net.ProxySocket.Accept" /> methods.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.Receive(System.Byte[],System.Int32,System.Int32)">
      <summary>
            Receives the specified amount of data from a connected <see cref="T:Rebex.Net.ProxySocket" /> into a specific location of the receive buffer and using the supplied flags.
            </summary>
      <param name="buffer">The storage location for the received data.</param>
      <param name="offset">The position in the buffer at which to store the received data.</param>
      <param name="count">The number of bytes to receive.</param>
      <returns>The number of bytes received.</returns>
      <remarks>
            Prior to receiving data, the socket must be connected using either a call to <see cref="M:Rebex.Net.ProxySocket.Connect(System.Net.EndPoint)" /> method or a call to <see cref="M:Rebex.Net.ProxySocket.Listen(Rebex.Net.ISocket)" /> and <see cref="M:Rebex.Net.ProxySocket.Accept" /> methods.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.Receive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags)">
      <summary>
            Receives the specified amount of data from a connected <see cref="T:Rebex.Net.ProxySocket" /> into a specific location of the receive buffer and using the supplied flags.
            </summary>
      <param name="buffer">The storage location for the received data.</param>
      <param name="offset">The position in the buffer at which to store the received data.</param>
      <param name="count">The number of bytes to receive.</param>
      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
      <returns>The number of bytes received.</returns>
      <remarks>
            Prior to receiving data, the socket must be connected using either a call to <see cref="M:Rebex.Net.ProxySocket.Connect(System.Net.EndPoint)" /> method or a call to <see cref="M:Rebex.Net.ProxySocket.Listen(Rebex.Net.ISocket)" /> and <see cref="M:Rebex.Net.ProxySocket.Accept" /> methods.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.Send(System.Byte[])">
      <summary>
            Sends data to a connected <see cref="T:Rebex.Net.ProxySocket" />.
            </summary>
      <param name="buffer">The data to be sent.</param>
      <returns>The number of bytes sent.</returns>
      <remarks>
            Prior to sending data, the socket must be connected using either a call to <see cref="M:Rebex.Net.ProxySocket.Connect(System.Net.EndPoint)" /> method or a call to <see cref="M:Rebex.Net.ProxySocket.Listen(Rebex.Net.ISocket)" /> and <see cref="M:Rebex.Net.ProxySocket.Accept" /> methods.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.Send(System.Byte[],System.Net.Sockets.SocketFlags)">
      <summary>
            Sends data to a connected <see cref="T:Rebex.Net.ProxySocket" /> using the supplied flags.
            </summary>
      <param name="buffer">The data to be sent.</param>
      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
      <returns>The number of bytes sent.</returns>
      <remarks>
            Prior to sending data, the socket must be connected using either a call to <see cref="M:Rebex.Net.ProxySocket.Connect(System.Net.EndPoint)" /> method or a call to <see cref="M:Rebex.Net.ProxySocket.Listen(Rebex.Net.ISocket)" /> and <see cref="M:Rebex.Net.ProxySocket.Accept" /> methods.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.Send(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)">
      <summary>
            Sends the specified amount of data to a connected <see cref="T:Rebex.Net.ProxySocket" /> using the supplied flags.
            </summary>
      <param name="buffer">The data to be sent.</param>
      <param name="count">The number of bytes to send.</param>
      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
      <returns>The number of bytes sent.</returns>
      <remarks>
            Prior to sending data, the socket must be connected using either a call to <see cref="M:Rebex.Net.ProxySocket.Connect(System.Net.EndPoint)" /> method or a call to <see cref="M:Rebex.Net.ProxySocket.Listen(Rebex.Net.ISocket)" /> and <see cref="M:Rebex.Net.ProxySocket.Accept" /> methods.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.BeginSend(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)">
      <summary>
            Sends data asynchronously to a connected <see cref="T:Rebex.Net.ProxySocket" />.
            </summary>
      <param name="buffer">The data to be sent.</param>
      <param name="offset">The position in the data buffer to begin sending data.</param>
      <param name="count">The number of bytes to send.</param>
      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
      <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate.</param>
      <param name="state">An object containing state information for this request.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous send.
            </returns>
      <remarks>
        <p>
            Prior to sending data, the socket must be connected using either a call to <see cref="M:Rebex.Net.ProxySocket.Connect(System.Net.EndPoint)" /> method or a call to <see cref="M:Rebex.Net.ProxySocket.Listen(Rebex.Net.ISocket)" /> and <see cref="M:Rebex.Net.ProxySocket.Accept" /> methods.
            </p>
        <p>
            The BeginSend method starts asynchronously sending data through a ProxySocket.
            You should create a callback method that implements the AsyncCallback delegate.
            This callback method should use the EndSend method to complete the asynchronous operation.
            See the .NET Framework SDK Reference for more information on asynchronous methods.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.EndSend(System.IAsyncResult)">
      <summary>
            Ends a pending asynchronous send.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user-defined data.</param>
      <returns>The number of bytes sent.</returns>
      <remarks>
            The EndSend method completes a request to accept a connection that was started with the <see cref="M:Rebex.Net.ProxySocket.BeginSend(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)" /> method.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.Receive(System.Byte[])">
      <summary>
            Receives data from a connected <see cref="T:Rebex.Net.ProxySocket" />.
            </summary>
      <param name="buffer">The storage location for the received data.</param>
      <returns>The number of bytes received.</returns>
      <remarks>
            Prior to receiving data, the socket must be connected using either a call to <see cref="M:Rebex.Net.ProxySocket.Connect(System.Net.EndPoint)" /> method or a call to <see cref="M:Rebex.Net.ProxySocket.Listen(Rebex.Net.ISocket)" /> and <see cref="M:Rebex.Net.ProxySocket.Accept" /> methods.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.Receive(System.Byte[],System.Net.Sockets.SocketFlags)">
      <summary>
            Receives data from a connected <see cref="T:Rebex.Net.ProxySocket" /> using the supplied flags.
            </summary>
      <param name="buffer">The storage location for the received data.</param>
      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
      <returns>The number of bytes received.</returns>
      <remarks>
            Prior to receiving data, the socket must be connected using either a call to <see cref="M:Rebex.Net.ProxySocket.Connect(System.Net.EndPoint)" /> method or a call to <see cref="M:Rebex.Net.ProxySocket.Listen(Rebex.Net.ISocket)" /> and <see cref="M:Rebex.Net.ProxySocket.Accept" /> methods.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.Receive(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)">
      <summary>
            Receives the specified amount of data from a connected <see cref="T:Rebex.Net.ProxySocket" /> using the supplied flags.
            </summary>
      <param name="buffer">The storage location for the received data.</param>
      <param name="count">The number of bytes to receive.</param>
      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
      <returns>The number of bytes received.</returns>
      <remarks>
            Prior to receiving data, the socket must be connected using either a call to <see cref="M:Rebex.Net.ProxySocket.Connect(System.Net.EndPoint)" /> method or a call to <see cref="M:Rebex.Net.ProxySocket.Listen(Rebex.Net.ISocket)" /> and <see cref="M:Rebex.Net.ProxySocket.Accept" /> methods.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)">
      <summary>
            Begins to asynchronously receive data from a connected <see cref="T:Rebex.Net.ProxySocket" />.
            </summary>
      <param name="buffer">The storage location for the received data.</param>
      <param name="offset">The position in the buffer at which to store the received data.</param>
      <param name="count">The number of bytes to receive.</param>
      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
      <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate.</param>
      <param name="state">An object containing state information for this request.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous read.
            </returns>
      <remarks>
        <p>
            Prior to receiving data, the socket must be connected using either a call to <see cref="M:Rebex.Net.ProxySocket.Connect(System.Net.EndPoint)" /> method or a call to <see cref="M:Rebex.Net.ProxySocket.Listen(Rebex.Net.ISocket)" /> and <see cref="M:Rebex.Net.ProxySocket.Accept" /> methods.
            </p>
        <p>
            The BeginReceive method starts asynchronously reading data from a ProxySocket.
            You should create a callback method that implements the AsyncCallback delegate.
            This callback method should use the EndReceive method to complete the asynchronous operation.
            See the .NET Framework SDK Reference for more information on asynchronous methods.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.EndReceive(System.IAsyncResult)">
      <summary>
            Ends a pending asynchronous read.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user-defined data.</param>
      <returns>The number of bytes received.</returns>
      <remarks>
            The EndReceive method completes a request to accept a connection that was started with the <see cref="M:Rebex.Net.ProxySocket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)" /> method.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.IsValidHost(System.String)">
      <summary>
            Checks whether the host address is a valid hostname or IP address.
            </summary>
      <param name="host">Host name or IP address.</param>
      <returns>True if valid, false if otherwise.</returns>
    </member>
    <member name="M:Rebex.Net.ProxySocket.ToEndPoint(System.String,System.Int32)">
      <summary>
            Converts the host address and port into an IP endpoint. If the host address is not an IP address, returns null.
            </summary>
      <param name="host">Host name or IP address.</param>
      <param name="port">Host port.</param>
      <returns>IP endpoint.</returns>
    </member>
    <member name="M:Rebex.Net.ProxySocket.ToEndPoint(System.Net.IPHostEntry,System.Int32)">
      <summary>
            Chooses the most appropriate IP endpoint to use from the host entry.
            </summary>
      <param name="hostEntry">Host entry.</param>
      <param name="port">Port.</param>
      <returns>IP endpoint.</returns>
    </member>
    <member name="M:Rebex.Net.ProxySocket.Shutdown(System.Net.Sockets.SocketShutdown)">
      <summary>
            Disables sends and receives on the <see cref="T:Rebex.Net.ProxySocket" />.
            </summary>
      <param name="how">The <see cref="T:System.Net.Sockets.SocketShutdown" /> value specifying the operation that will no longer be allowed.</param>
    </member>
    <member name="M:Rebex.Net.ProxySocket.Connect(System.String,System.Int32)">
      <summary>
            Establishes a connection to a remote device.
            </summary>
      <param name="serverName">The hostname (or IP address) of the remote device.</param>
      <param name="serverPort">The port number associated with the hostname.</param>
      <remarks>
            The Connect method establishes a network connection to a host identified by the serverName and serverPort
            parameters. Once the connection has been made, you can send data to the remote device with
            the Send method, or receive data from the remote device with the Receive method.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.Bind(System.Net.Sockets.Socket)">
      <summary>
            Binds this <see cref="T:Rebex.Net.ProxySocket" /> instance to a connected <see cref="P:Rebex.Net.ProxySocket.Socket" />.
            </summary>
      <param name="socket" />
    </member>
    <member name="M:Rebex.Net.ProxySocket.Connect(System.Net.EndPoint)">
      <summary>
            Establishes a connection to a remote device.
            </summary>
      <param name="remoteEP">An <see cref="T:System.Net.IPEndPoint" /> or <see cref="T:System.Net.DnsEndPoint" /> that represents the remote device.</param>
      <remarks>
            The Connect method establishes a network connection to a device identified by the remoteEP
            parameter. Once the connection has been made, you can send data to the remote device with
            the Send method, or receive data from the remote device with the Receive method.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.Listen(Rebex.Net.ISocket)">
      <summary>
            Starts a request to listen for an incoming connection using the specified control socket as a base.
            </summary>
      <param name="controlSocket">The control socket to use as a base.</param>
      <returns>The endpoint to which a connection from a remote host can be made.</returns>
      <remarks>
        <p>
            This method differs from <see cref="M:System.Net.Sockets.Socket.Listen(System.Int32)" />:
            <ul><li>A control connection socket needs to be specified. This might be needed by a proxy server socket.</li><li>Only a single incoming connection is accepted.</li></ul>
            To accept an incoming connection, use the <see cref="M:Rebex.Net.ProxySocket.Accept" /> method.
            </p>
        <p>
          <b>Note:</b> When connected through a HTTP proxy server, this method will fail.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.Accept">
      <summary>
            Accepts an incoming connection.
            </summary>
      <returns>An instance of connected <see cref="T:Rebex.Net.ProxySocket" />.</returns>
      <remarks>
        <p>
            A call to Accept is only allowed after a call to <see cref="M:Rebex.Net.ProxySocket.Listen(Rebex.Net.ISocket)" /> method.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.Close">
      <summary>
            Forces the <see cref="T:Rebex.Net.ProxySocket" /> connection to close.
            </summary>
      <remarks>
        <p>
            The application should call <see cref="M:Rebex.Net.ProxySocket.Shutdown(System.Net.Sockets.SocketShutdown)" /> before calling Close to ensure that
            all pending data is sent or received before the Socket is closed.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.BeginConnect(System.String,System.Int32,System.AsyncCallback,System.Object)">
      <summary>
            Begins an asynchronous request for a connection to a network device.
            </summary>
      <param name="serverName">The hostname (or IP address) of the remote device.</param>
      <param name="serverPort">The port number associated with the hostname.</param>
      <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate.</param>
      <param name="state">An object containing state information for this request.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous connection.
            </returns>
      <remarks>
            The Connect method establishes a network connection to a host identified by the serverName and serverPort
            parameters. Once the connection has been made, you can send data to the remote device with
            the Send method, or receive data from the remote device with the Receive method.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.BeginConnect(System.Net.EndPoint,System.AsyncCallback,System.Object)">
      <summary>
            Begins an asynchronous request for a connection to a network device.
            </summary>
      <param name="remoteEP">An <see cref="T:System.Net.IPEndPoint" /> that represents the remote device.</param>
      <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate.</param>
      <param name="state">An object containing state information for this request.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous connection.
            </returns>
      <remarks>
            The Connect method establishes a network connection to a host identified by the remoteEP
            parameter. Once the connection has been made, you can send data to the remote device with
            the Send method, or receive data from the remote device with the Receive method.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.EndConnect(System.IAsyncResult)">
      <summary>
            Ends a pending asynchronous connection request.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user-defined data.</param>
      <remarks>
            The EndConnect method completes a request to accept a connection that was started with the <see cref="M:Rebex.Net.ProxySocket.BeginConnect(System.Net.EndPoint,System.AsyncCallback,System.Object)" /> method.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.BeginListen(Rebex.Net.ISocket,System.AsyncCallback,System.Object)">
      <summary>
            Starts an asynchronously request to listen for an incoming connection using the specified control socket as a base.
            </summary>
      <param name="controlSocket">The control socket to use as a base.</param>
      <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate.</param>
      <param name="state">An object containing state information for this request.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous request.
            </returns>
      <remarks>
        <p>
            This method differs from <see cref="M:System.Net.Sockets.Socket.Listen(System.Int32)" />:
            <ul><li>A control connection socket needs to be specified. This might be needed by a proxy server
            socket.</li><li>Only a single incoming connection is accepted.</li></ul>
            To accept an incoming connection, use the <see cref="M:Rebex.Net.ProxySocket.Accept" /> method.
            </p>
        <p>
          <b>Note:</b> When connected through a HTTP proxy server, this method will fail.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.EndListen(System.IAsyncResult)">
      <summary>
            Ends an asynchronous request to listen for an incoming connection.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <returns>The endpoint to which a connection from a remote host can be made.</returns>
      <remarks>
            The EndListen method completes a request to listen for a connection that was started with the <see cref="M:Rebex.Net.ProxySocket.Listen(Rebex.Net.ISocket)" /> method.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.BeginAccept(System.AsyncCallback,System.Object)">
      <summary>
            Begins an asynchronous request to accept an incoming connection.
            </summary>
      <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate.</param>
      <param name="state">An object containing state information for this request.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous request.
            </returns>
      <remarks>
        <p>
            A call to Accept is only allowed after a call to <see cref="M:Rebex.Net.ProxySocket.Listen(Rebex.Net.ISocket)" /> methods.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.EndAccept(System.IAsyncResult)">
      <summary>
            Ends an asynchronous request to accept an incoming connection.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <returns>An instance of connected <see cref="T:Rebex.Net.ProxySocket" />.</returns>
      <remarks>
            The EndAccept method completes a request to accept a connection that was started with the <see cref="M:Rebex.Net.ProxySocket.Accept" /> method.
            </remarks>
    </member>
    <member name="M:Rebex.Net.ProxySocket.Dispose">
      <summary>
            Disposes the object.
            </summary>
    </member>
    <member name="T:Rebex.Net.SocketInformation">
      <summary>
            Information about a socket.
            </summary>
    </member>
    <member name="P:Rebex.Net.SocketInformation.LocalEndPoint">
      <summary>
            Gets the local endpoint.
            </summary>
      <value>The local endpoint that the <see cref="T:Rebex.Net.ISocket" /> is using for communications.</value>
      <remarks>
            The LocalEndPoint property contains the network connection information associated with the local network device.
            </remarks>
    </member>
    <member name="P:Rebex.Net.SocketInformation.RemoteEndPoint">
      <summary>
            Gets the remote endpoint.
            </summary>
      <value>The remote endpoint that the <see cref="T:Rebex.Net.ISocket" /> is using for communications.</value>
      <remarks>
            The RemoteEndPoint property gets the network connection information associated with
            either the remote host or the proxy server.
            RemoteEndPoint is set by the <see cref="T:Rebex.Net.ISocket" /> methods that establish a connection
            to a remote host.
            </remarks>
    </member>
    <member name="M:Rebex.Net.SocketInformation.#ctor(Rebex.Net.ISocket)">
      <summary>
            Creates a new instance of <see cref="T:Rebex.Net.SocketInformation" /> that represents the specified socket's endpoints.
            </summary>
      <param name="socket">Instance of <see cref="T:Rebex.Net.ISocket" />.</param>
    </member>
    <member name="T:Rebex.Net.SshAuthenticationAgent">
      <summary>
            Represents the client side of the SSH authentication agent that implements SSH Agent Protocol (RFC https://datatracker.ietf.org/doc/html/draft-miller-ssh-agent-00).
            This class is abstract, but it is not expected that you derive from it. Instead, use static (shared in VB) properties to obtain already implemented clients for <see cref="P:Rebex.Net.SshAuthenticationAgent.OpenSshAgent" />, <see cref="P:Rebex.Net.SshAuthenticationAgent.Pageant" /> and <see cref="P:Rebex.Net.SshAuthenticationAgent.LegacyPageant" /> SSH authentication agent servers.
            The SSH agent server provides a private key for authentication of <see cref="T:Rebex.Net.Ssh" />, <see cref="T:Rebex.Net.FileTransferClient" />, <see cref="T:Rebex.Net.Sftp" /> and <see cref="T:Rebex.Net.Scp" /> clients to an SSH server.
            See remarks for details.
            </summary>
      <remarks>
        <ul>
          <li>
            <see cref="P:Rebex.Net.SshAuthenticationAgent.OpenSshAgent" /> is supported on Windows and Unix operating systems.
            <see cref="P:Rebex.Net.SshAuthenticationAgent.OpenSshAgent" /> communicates with server via named pipe on Windows and via domain socket on Unix.
            To programmatically determine if the agent is supported on the current platform and with the selected .NET/.NET Framework version, use the  <see cref="P:Rebex.Net.SshAuthenticationAgent.IsOpenSshAgentSupported" /> property.
            </li>
          <li>
            <see cref="P:Rebex.Net.SshAuthenticationAgent.Pageant" /> is supported on Windows only.
            <see cref="P:Rebex.Net.SshAuthenticationAgent.Pageant" /> communicates via named pipe.
            To programmatically determine if the agent is supported on the current platform and with the selected .NET/.NET Framework version, use the  <see cref="P:Rebex.Net.SshAuthenticationAgent.IsPageantSupported" /> property.
            </li>
          <li>
            <see cref="P:Rebex.Net.SshAuthenticationAgent.LegacyPageant" /> is supported on Windows only.
            <see cref="P:Rebex.Net.SshAuthenticationAgent.LegacyPageant" /> sends windows message to initiate communication with the server, after that client and server exchange messages via memory-mapped file.
            To programmatically determine if the agent is supported on the current platform and with the selected .NET/.NET Framework version, use the  <see cref="P:Rebex.Net.SshAuthenticationAgent.IsLegacyPageantSupported" /> property.
            </li>
        </ul>
      </remarks>
      <example>
        <code>
            //Create instance  of the Sftp class.
            using Sftp sftpClient = new();
            //Connect to SFTP server.
            sftpClient.Connect(sftpServerIp, sftServerPort);
            //Logon to the SFTP server and authenticates using the public key authentication.
            //sftpClient uses OpenSSH authentication agent that should contain one or more private keys for the user.
            sftpClient.Login(userName, SshAuthenticationAgent.OpenSshAgent);
            </code>
      </example>
      <seealso cref="M:Rebex.Net.Ssh.Login(System.String,Rebex.Net.SshAuthenticationAgent)" />
      <seealso cref="M:Rebex.Net.Scp.Login(System.String,Rebex.Net.SshAuthenticationAgent)" />
      <seealso cref="M:Rebex.Net.Sftp.Login(System.String,Rebex.Net.SshAuthenticationAgent)" />
      <seealso cref="M:Rebex.Net.FileTransferClient.Login(System.String,Rebex.Net.SshAuthenticationAgent)" />
      <seealso cref="T:Rebex.Net.SshAuthenticationAgentType" />
    </member>
    <member name="P:Rebex.Net.SshAuthenticationAgent.Type">
      <summary>
            Gets the type of the <see cref="T:Rebex.Net.SshAuthenticationAgent" /></summary>
    </member>
    <member name="P:Rebex.Net.SshAuthenticationAgent.OpenSshAgent">
      <summary>
            Gets the client for OpenSSH authentication agent server.
            </summary>
      <remarks>
        <see cref="P:Rebex.Net.SshAuthenticationAgent.OpenSshAgent" /> communicates with server via named pipe on Windows and
            via domain socket on Unix.
            </remarks>
      <exception cref="T:System.PlatformNotSupportedException">
            Client for OpenSSH authentication agent server is not supported on the current platform
            and/or with the selected .NET/.NET Framework version.
            </exception>
    </member>
    <member name="P:Rebex.Net.SshAuthenticationAgent.Pageant">
      <summary>
            Gets the client for Pageant SSH authentication agent server.
            </summary>
      <remarks>
        <see cref="P:Rebex.Net.SshAuthenticationAgent.Pageant" /> communicates via named pipe.
            </remarks>
      <exception cref="T:System.PlatformNotSupportedException">
            Client for Pageant SSH authentication agent server is not supported on the current platform
            and/or with the selected .NET/.NET Framework version.
            </exception>
    </member>
    <member name="P:Rebex.Net.SshAuthenticationAgent.LegacyPageant">
      <summary>
            Gets the client for legacy Pageant SSH authentication agent server.
            </summary>
      <remarks>
        <see cref="P:Rebex.Net.SshAuthenticationAgent.LegacyPageant" /> sends windows message to initiate communication with the server, after that client and server exchange messages via memory-mapped file.
            </remarks>
      <exception cref="T:System.PlatformNotSupportedException">
            Client for legacy Pageant SSH authentication agent server is not supported on the current platform
            and/or with the selected .NET/.NET Framework version.
            </exception>
    </member>
    <member name="P:Rebex.Net.SshAuthenticationAgent.IsOpenSshAgentSupported">
      <summary>
            Gets the value that indicates whether the client for OpenSSH authentication agent server is supported on the current platform
            and/or with the selected .NET/.NET Framework version.
            </summary>
      <returns>True if the the client for OpenSSH authentication agent server is supported; otherwise false.</returns>
    </member>
    <member name="P:Rebex.Net.SshAuthenticationAgent.IsPageantSupported">
      <summary>
            Gets the value that indicates whether the client for Pageant authentication agent server is supported on the current platform
            and/or with the selected .NET/.NET Framework version.
            </summary>
      <returns>True if the the client for Pageant authentication agent server is supported; otherwise false.</returns>
    </member>
    <member name="P:Rebex.Net.SshAuthenticationAgent.IsLegacyPageantSupported">
      <summary>
            Gets the value that indicates whether the client for legacy Pageant authentication agent server is supported on the current platform
            and/or with the selected .NET/.NET Framework version.
            </summary>
      <returns>True if the the client for legacy Pageant authentication agent server is supported; otherwise false.</returns>
    </member>
    <member name="T:Rebex.Net.SshAuthenticationAgentType">
      <summary>
            Specifies the type of <see cref="T:Rebex.Net.SshAuthenticationAgent" />.
            </summary>
      <seealso cref="P:Rebex.Net.SshAuthenticationAgent.Type" />
    </member>
    <member name="F:Rebex.Net.SshAuthenticationAgentType.Unknown">
      <summary>
            Unknown.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshAuthenticationAgentType.OpenSsh">
      <summary>
            OpenSSH authentication agent.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshAuthenticationAgentType.Pageant">
      <summary>
            Pageant authentication agent.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshAuthenticationAgentType.LegacyPageant">
      <summary>
            Legacy Pageant authentication agent.
            </summary>
    </member>
    <member name="T:Rebex.Net.SshChannel">
      <summary>
            Represents an SSH channel.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshChannel.Type">
      <summary>
            Gets the type of this channel.
            </summary>
      <value>Channel type.</value>
    </member>
    <member name="P:Rebex.Net.SshChannel.State">
      <summary>
            Gets the state of this channel.
            </summary>
      <value>Channel state.</value>
    </member>
    <member name="P:Rebex.Net.SshChannel.ExitStatus">
      <summary>
            Gets the channel exit status, if available. Otherwise, it returns null.
            </summary>
      <value>Channel exit status.</value>
    </member>
    <member name="P:Rebex.Net.SshChannel.ExtendedDataMode">
      <summary>
            Gets or sets the value indicating how to tread extended channel data.
            </summary>
      <value>Extended data mode.</value>
    </member>
    <member name="E:Rebex.Net.SshChannel.ExtendedDataReceived">
      <summary>
            Occurs when extended data is received from the server.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshChannel.TerminalWidth">
      <summary>
            Gets the terminal width.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshChannel.TerminalHeight">
      <summary>
            Gets the terminal height.
            </summary>
    </member>
    <member name="M:Rebex.Net.SshChannel.RequestPseudoTerminal(System.String,System.Int32,System.Int32)">
      <summary>
            Requests a pseudo-terminal.
            </summary>
      <param name="terminal">Terminal name, e.g. "vt100".</param>
      <param name="width">Number of columns.</param>
      <param name="height">Number of rows.</param>
    </member>
    <member name="M:Rebex.Net.SshChannel.PassEnvironmentVariable(System.String,System.String)">
      <summary>
            Passes an environment variable to the shell/command to be started later.
            </summary>
      <param name="name">Variable name.</param>
      <param name="value">Variable value.</param>
    </member>
    <member name="M:Rebex.Net.SshChannel.RequestPseudoTerminal">
      <summary>
            Requests an 80x25 vt100 pseudo-terminal.
            </summary>
    </member>
    <member name="M:Rebex.Net.SshChannel.SetTerminalSize(System.Int32,System.Int32)">
      <summary>
            Sets a new terminal size.
            </summary>
      <param name="width">Number of columns.</param>
      <param name="height">Number of rows.</param>
    </member>
    <member name="M:Rebex.Net.SshChannel.SendEof">
      <summary>
            Sends EOF (end-of-file) indicator to the server. No further data should be sent after this.
            </summary>
    </member>
    <member name="M:Rebex.Net.SshChannel.SendBreak(System.Int32)">
      <summary>
            Sends a break request to the server. This may or may not have any effect.
            </summary>
      <param name="breakLength">Break length, in milliseconds (if supported by the underlying channel).</param>
    </member>
    <member name="M:Rebex.Net.SshChannel.RequestShell">
      <summary>
            Requests a shell.
            </summary>
    </member>
    <member name="M:Rebex.Net.SshChannel.RequestExec(System.String)">
      <summary>
            Requests an execution of the specified command.
            </summary>
    </member>
    <member name="M:Rebex.Net.SshChannel.RequestSubsystem(System.String)">
      <summary>
            Requests a specified subsystem.
            </summary>
      <param name="subsystem">Subsystem name, such as "sftp".</param>
    </member>
    <member name="M:Rebex.Net.SshChannel.Shutdown">
      <summary>
            Closes the current channel and does not wait for closure confirmation.
            </summary>
    </member>
    <member name="M:Rebex.Net.SshChannel.Close">
      <summary>
            Closes the current channel.
            </summary>
    </member>
    <member name="M:Rebex.Net.SshChannel.ToSocket">
      <summary>
            Creates an ISocket representation of this channel.
            </summary>
      <returns>An ISocket.</returns>
    </member>
    <member name="P:Rebex.Net.SshChannel.Available">
      <summary>
            Gets the number of bytes available in the receive buffer.
            </summary>
      <returns>Number of bytes available.</returns>
      <remarks>Unlike the <see cref="M:Rebex.Net.SshChannel.GetAvailable" /> method, this property will not process any pending incoming packets.</remarks>
    </member>
    <member name="M:Rebex.Net.SshChannel.GetAvailable">
      <summary>
            Gets the number of bytes available in the receive buffer. 
            If no data is available, the method will process any pending incoming packets.
            </summary>
      <returns>Number of bytes available.</returns>
    </member>
    <member name="M:Rebex.Net.SshChannel.Poll(System.Int32,Rebex.Net.SocketSelectMode)">
      <summary>
            Determines the status of the socket.
            </summary>
      <param name="microSeconds">Time to wait for a response, in microseconds.</param>
      <param name="mode">Select mode.</param>
      <returns>True if data can be sent or read or if the connection was closed.</returns>
    </member>
    <member name="M:Rebex.Net.SshChannel.Receive(System.Byte[],System.Int32,System.Int32)">
      <summary>
            Receives data send by the server through this channel.
            </summary>
      <param name="buffer">The storage location for the received data.</param>
      <param name="offset">The offset to the array at which to place the received data.</param>
      <param name="count">Number of bytes to receive.</param>
      <returns>The number of bytes received.</returns>
    </member>
    <member name="M:Rebex.Net.SshChannel.Send(System.Byte[],System.Int32,System.Int32)">
      <summary>
            Sends data to the server through this channel.
            </summary>
      <param name="buffer">The storage location of the data to be sent.</param>
      <param name="offset">The offset to the array at which the data starts.</param>
      <param name="count">Number of bytes to send.</param>
      <returns>The number of bytes sent.</returns>
    </member>
    <member name="M:Rebex.Net.SshChannel.ToString">
      <summary>
            Returns a string representation of this channel.
            </summary>
      <returns>Local channel ID.</returns>
    </member>
    <member name="M:Rebex.Net.SshChannel.Dispose">
      <summary>
            Implementation of IDisposable.Dispose()
            </summary>
    </member>
    <member name="T:Rebex.Net.SshCipher">
      <summary>
            Represents an SSH cipher.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshCipher.OutgoingMacAlgorithm">
      <summary>
            Gets the active message authentication code (MAC) algorithm.
            </summary>
      <value>Active MAC algorithm.</value>
    </member>
    <member name="P:Rebex.Net.SshCipher.OutgoingMacCipherId">
      <summary>
            Gets cipher ID of the active outgoing message authentication code (MAC) algorithm.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshCipher.OutgoingEncryptionAlgorithm">
      <summary>
            Gets the active encryption algorithm.
            </summary>
      <value>Active encryption algorithm.</value>
    </member>
    <member name="P:Rebex.Net.SshCipher.OutgoingEncryptionMode">
      <summary>
            Gets the active encryption algorithm mode.
            </summary>
      <value>Active encryption algorithm mode.</value>
    </member>
    <member name="P:Rebex.Net.SshCipher.OutgoingEncryptionCipherId">
      <summary>
            Gets cipher ID of the active outgoing encryption algorithm.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshCipher.IncomingMacAlgorithm">
      <summary>
            Gets the active message authentication code (MAC) algorithm.
            </summary>
      <value>Active MAC algorithm.</value>
    </member>
    <member name="P:Rebex.Net.SshCipher.IncomingMacCipherId">
      <summary>
            Gets cipher ID of the active incoming message authentication code (MAC) algorithm.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshCipher.IncomingEncryptionAlgorithm">
      <summary>
            Gets the active encryption algorithm.
            </summary>
      <value>Active encryption algorithm.</value>
    </member>
    <member name="P:Rebex.Net.SshCipher.IncomingEncryptionMode">
      <summary>
            Gets the active encryption algorithm mode.
            </summary>
      <value>Active encryption algorithm mode.</value>
    </member>
    <member name="P:Rebex.Net.SshCipher.IncomingEncryptionCipherId">
      <summary>
            Gets cipher ID of the active incoming encryption algorithm.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshCipher.KeyExchangeAlgorithm">
      <summary>
            Gets the key exchange algorithm used during key negotiation.
            </summary>
      <value>Key exchange algorithm.</value>
    </member>
    <member name="P:Rebex.Net.SshCipher.KeyExchangeCipherId">
      <summary>
            Gets cipher ID of the key exchange algorithm used during key negotiation.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshCipher.HostKeyAlgorithm">
      <summary>
            Gets the host key algorithm used during key negotiation.
            </summary>
      <value>Host key algorithm.</value>
    </member>
    <member name="P:Rebex.Net.SshCipher.HostKeyCipherId">
      <summary>
            Gets cipher ID of the host key algorithm used during key negotiation.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshCipher.SignatureHashAlgorithm">
      <summary>
            Gets the hash algorithm used for host key signature.
            </summary>
      <value>Hash algorithm.</value>
    </member>
    <member name="P:Rebex.Net.SshCipher.OutgoingCompressionEnabled">
      <summary>
            Gets a value indicating whether outgoing compression is used.
            </summary>
      <value>True if outgoing compression is enabled; false otehrwise.</value>
    </member>
    <member name="P:Rebex.Net.SshCipher.IncomingCompressionEnabled">
      <summary>
            Gets a value indicating whether incoming compression is used.
            </summary>
      <value>True if incoming compression is enabled; false otherwise.</value>
    </member>
    <member name="P:Rebex.Net.SshCipher.StrictKeyExchange">
      <summary>
            Gets a value indicating whether strict key exchange is used.
            </summary>
      <value>True if strict key exchange is used; false otherwise.</value>
    </member>
    <member name="M:Rebex.Net.SshCipher.ToString">
      <summary>
            Returns a description of the cipher.
            </summary>
      <returns>Description of the cipher.</returns>
    </member>
    <member name="T:Rebex.Net.SshMessageEventArgs">
      <summary>
            Provides data for the <see cref="E:Rebex.Net.SshSession.BannerReceived">BannerReceived</see> event.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshMessageEventArgs.Message">
      <summary>
            Gets the message.
            </summary>
      <value>The message.</value>
    </member>
    <member name="M:Rebex.Net.SshMessageEventArgs.#ctor(System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.SshMessageEventArgs" /> class with the specified message.
            </summary>
      <param name="message">The message.</param>
    </member>
    <member name="T:Rebex.Net.SshFingerprintEventArgs">
      <summary>
            Provides data for the <see cref="E:Rebex.Net.SshSession.FingerprintCheck">FingerprintCheck</see> event.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshFingerprintEventArgs.Fingerprint">
      <summary>
            Gets the server's fingerprint.
            </summary>
      <value>The server's fingerprint.</value>
    </member>
    <member name="P:Rebex.Net.SshFingerprintEventArgs.ServerKey">
      <summary>
            Gets the server public key.
            </summary>
      <value>Server public key.</value>
    </member>
    <member name="P:Rebex.Net.SshFingerprintEventArgs.Accept">
      <summary>
            Gets or sets a value indicating whether to accept the fingerprint.
            </summary>
      <value>True to accept the fingerprint; false to reject it.</value>
    </member>
    <member name="M:Rebex.Net.SshFingerprintEventArgs.#ctor(Rebex.Net.SshFingerprint)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.SshFingerprintEventArgs" /> class with the specified fingerprint.
            </summary>
      <param name="fingerprint">The server's fingerprint.</param>
    </member>
    <member name="M:Rebex.Net.SshFingerprintEventArgs.#ctor(Rebex.Net.SshPublicKey)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.SshFingerprintEventArgs" /> class with the specified server key.
            </summary>
      <param name="serverKey">The server key.</param>
    </member>
    <member name="T:Rebex.Net.SshAuthenticationRequestEventArgs">
      <summary>
            Provides data for the <see cref="E:Rebex.Net.SshSession.AuthenticationRequest">AuthenticationRequest</see> event.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshAuthenticationRequestEventArgs.Name">
      <summary>
            Gets the SSH server name.
            </summary>
      <value>Server name.</value>
    </member>
    <member name="P:Rebex.Net.SshAuthenticationRequestEventArgs.Instructions">
      <summary>
            Gets instructions.
            </summary>
      <value>Instructions.</value>
    </member>
    <member name="P:Rebex.Net.SshAuthenticationRequestEventArgs.Cancel">
      <summary>
            Gets or sets a value indicating whether to cancel the authentication.
            </summary>
      <value>True to cancel the authentication; false to continue with the authentication (default).</value>
    </member>
    <member name="M:Rebex.Net.SshAuthenticationRequestEventArgs.Ignore">
      <summary>
            Ignore the authentication request. Equivalent to no event being initialized at all.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshAuthenticationRequestEventArgs.Items">
      <summary>
            Collection of prompts and answers for the authentication request.
            </summary>
    </member>
    <member name="T:Rebex.Net.SshExtendedDataReceivedEventArgs">
      <summary>
            Provides data for the <see cref="E:Rebex.Net.SshChannel.ExtendedDataReceived">ExtendedDataReceived</see> event.
            </summary>
    </member>
    <member name="M:Rebex.Net.SshExtendedDataReceivedEventArgs.GetData">
      <summary>
            Gets a copy of extended data.
            </summary>
      <returns>Extended data.</returns>
    </member>
    <member name="P:Rebex.Net.SshExtendedDataReceivedEventArgs.Length">
      <summary>
            Gets data length.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshExtendedDataReceivedEventArgs.TypeCode">
      <summary>
            Gets data type code.
            </summary>
      <value>Data type code.</value>
    </member>
    <member name="T:Rebex.Net.ForwardingRequestEventArgs">
      <summary>
            Provides data for the <see cref="E:Rebex.Net.SshSession.ForwardingRequest">ForwardingRequest</see> event.
            </summary>
    </member>
    <member name="P:Rebex.Net.ForwardingRequestEventArgs.Handle">
      <summary>
            Forwarding handle.
            </summary>
    </member>
    <member name="M:Rebex.Net.ForwardingRequestEventArgs.Accept">
      <summary>
            Accepts the request and returns the associated SSH channel.
            </summary>
    </member>
    <member name="M:Rebex.Net.ForwardingRequestEventArgs.Reject">
      <summary>
            Rejects the request.
            </summary>
    </member>
    <member name="T:Rebex.Net.SshException">
      <summary>
            The exception that is thrown when an SSH error occurs.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshException.Status">
      <summary>
            Gets the exception status.
            </summary>
      <value>One of the <see cref="T:Rebex.Net.SshExceptionStatus" /> values.</value>
    </member>
    <member name="M:Rebex.Net.SshException.GetServerInfo">
      <summary>
            Gets information about SSH negotiation.
            </summary>
      <returns>Information about SSH negotiation.</returns>
    </member>
    <member name="M:Rebex.Net.SshException.#ctor">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.SshException" /> class.
            </summary>
    </member>
    <member name="M:Rebex.Net.SshException.#ctor(System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.SshException" /> class with the specified error message.
            </summary>
      <param name="message">The message that describes the error.</param>
    </member>
    <member name="M:Rebex.Net.SshException.#ctor(System.String,System.Exception)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.SshException" /> class with the specified error message
            and a reference to the inner exception that is the cause of this exception.
            </summary>
      <param name="message">The message that describes the error.</param>
      <param name="inner">The exception that is the cause of the current exception.</param>
    </member>
    <member name="M:Rebex.Net.SshException.#ctor(System.String,System.Exception,Rebex.Net.SshExceptionStatus)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.SshException" /> class with the specified error message, status, 
            and a reference to the inner exception that is the cause of this exception.
            </summary>
      <param name="message">The message that describes the error.</param>
      <param name="inner">The exception that is the cause of the current exception.</param>
      <param name="status">One of the <see cref="T:Rebex.Net.SshExceptionStatus" /> values.</param>
    </member>
    <member name="T:Rebex.Net.SshFingerprint">
      <summary>
            Represents the server public key fingerprint.
            </summary>
    </member>
    <member name="M:Rebex.Net.SshFingerprint.Compute(System.Byte[])">
      <summary>
            Computes a fingerprint of the specified key.
            </summary>
      <param name="key">Key data.</param>
      <returns>Fingerprint.</returns>
    </member>
    <member name="M:Rebex.Net.SshFingerprint.FromBase64String(System.String)">
      <summary>
            Computes a fingerprint of the specified Base64-encoded key.
            </summary>
      <param name="encodedKey">Base64-encoded key data.</param>
      <returns>Fingerprint.</returns>
    </member>
    <member name="M:Rebex.Net.SshFingerprint.ToString">
      <summary>
            Returns a string representation of the fingerprint. SHA-256 hash is returned at the moment, but please be aware that this might change in future.
            Use <see cref="M:Rebex.Net.SshFingerprint.ToString(Rebex.Security.Certificates.SignatureHashAlgorithm,System.Boolean)" /> instead to ensure consistent behavior.
            </summary>
      <returns>A string representation of the fingerprint.</returns>
    </member>
    <member name="M:Rebex.Net.SshFingerprint.ToArray(Rebex.Security.Certificates.SignatureHashAlgorithm)">
      <summary>
            Returns the fingerprint produced using the specified algorithm as a byte array.
            </summary>
      <param name="algorithm">Algorithm to be used to compute the fingerprint.</param>
      <returns>Fingerprint as a byte array.</returns>
    </member>
    <member name="M:Rebex.Net.SshFingerprint.ToString(Rebex.Security.Certificates.SignatureHashAlgorithm)">
      <summary>
            Returns a string representation of the fingerprint produced using the specified algorithm.
            </summary>
      <param name="algorithm">Algorithm to be used to compute the fingerprint.</param>
      <returns>A string representation of the fingerprint.</returns>
    </member>
    <member name="M:Rebex.Net.SshFingerprint.ToString(Rebex.Security.Certificates.SignatureHashAlgorithm,System.Boolean)">
      <summary>
            Returns a string representation of the fingerprint produced using the specified algorithm.
            </summary>
      <param name="algorithm">Algorithm to be used to compute the fingerprint.</param>
      <param name="base64">True to use Base64 format; false to use legacy format.</param>
      <returns>A string representation of the fingerprint.</returns>
    </member>
    <member name="T:Rebex.Net.SshGssApiMechanisms">
      <summary>
            Defines supported GSSAPI mechanisms.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshGssApiMechanisms.Ntlm">
      <summary>
            NTLM. Only supported on Windows and on Mono.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshGssApiMechanisms.KerberosV5">
      <summary>
            Kerberos v5. Only supported on Windows platforms.
            </summary>
    </member>
    <member name="T:Rebex.Net.SshGssApiCredentials">
      <summary>
            Encapsulates GSSAPI credentials and preferred authentication mechanisms. Only supported on Windows and partially on Mono.
            </summary>
    </member>
    <member name="M:Rebex.Net.SshGssApiCredentials.Clone">
      <summary>
            Creates a copy of this <see cref="T:Rebex.Net.SshGssApiCredentials" /> instance.
            </summary>
      <returns>A copy of this <see cref="T:Rebex.Net.SshGssApiCredentials" /> instance.</returns>
    </member>
    <member name="P:Rebex.Net.SshGssApiCredentials.UserName">
      <summary>
            Gets the user name. If it is set to null ('Nothing' in VB.NET), integrated authentication (single sign-on) will be used.
            </summary>
      <value>User name.</value>
    </member>
    <member name="P:Rebex.Net.SshGssApiCredentials.Domain">
      <summary>
            Gets the user's domain. If it is set to null ('Nothing' in VB.NET), it will be determined from the user name. If not available, the default domain will be used.
            </summary>
      <value>Domain.</value>
    </member>
    <member name="P:Rebex.Net.SshGssApiCredentials.Password">
      <summary>
            Gets the user's password.
            </summary>
      <value>Password.</value>
    </member>
    <member name="P:Rebex.Net.SshGssApiCredentials.TargetName">
      <summary>
            Target name. This should contain the full SSH server's hostname.
            </summary>
      <value>Target name.</value>
    </member>
    <member name="P:Rebex.Net.SshGssApiCredentials.AccountName">
      <summary>
            Gets the user name to submit to the SSH server. Only specify this if you need to use a different name than <see cref="P:Rebex.Net.SshGssApiCredentials.UserName" />.
            </summary>
      <value>User name.</value>
    </member>
    <member name="P:Rebex.Net.SshGssApiCredentials.AllowDelegation">
      <summary>
            Indicates whether the authentication token supports delegation.
            This enables the server to use the context to authenticate to other servers as the client.
            </summary>
      <remarks>Only supported by Kerberos.</remarks>
    </member>
    <member name="M:Rebex.Net.SshGssApiCredentials.#ctor">
      <summary>
            Creates a new <see cref="T:Rebex.Net.SshGssApiCredentials" /> instance.
            </summary>
    </member>
    <member name="M:Rebex.Net.SshGssApiCredentials.#ctor(System.String,System.String,System.String)">
      <summary>
            Creates a new <see cref="T:Rebex.Net.SshGssApiCredentials" /> instance and initializes it with the specified credentials.
            </summary>
      <param name="userName">The user name. If it is set to null ('Nothing' in VB.NET), integrated authentication (single sign-on) will be used.</param>
      <param name="domain">User's domain. If it is set to null ('Nothing' in VB.NET), it will be determined from the user name. If not available, the default domain will be used.</param>
      <param name="password">User's password.</param>
    </member>
    <member name="M:Rebex.Net.SshGssApiCredentials.GetMechanisms">
      <summary>
            Gets a list of allowed GSSAPI authentication mechanism, in order of preference.
            </summary>
      <returns>List of GSSAPI authentication methods.</returns>
    </member>
    <member name="M:Rebex.Net.SshGssApiCredentials.SetMechanisms(Rebex.Net.SshGssApiMechanisms[])">
      <summary>
            Sets a list of allowed GSSAPI authentication mechanism, in order of preference.
            </summary>
      <param name="mechanisms">Allowed GSSAPI authentication mechanism in order of preference.</param>
      <remarks>Setting an empty list will cause the default settings to be used.</remarks>
    </member>
    <member name="T:Rebex.Net.SshChannelExitStatus">
      <summary>
            Channel exit status.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshChannelExitStatus.ExitCode">
      <summary>
            Gets the process exit code.
            </summary>
      <value>Process exit code.</value>
    </member>
    <member name="P:Rebex.Net.SshChannelExitStatus.SignalName">
      <summary>
            Gets the process signal name if available; or null.
            </summary>
      <value>Process signal name.</value>
    </member>
    <member name="P:Rebex.Net.SshChannelExitStatus.CoreDumped">
      <summary>
            Gets a value indicating whether the process failed with a core dump.
            </summary>
      <value>True if core-dumped; false otherwise.</value>
    </member>
    <member name="P:Rebex.Net.SshChannelExitStatus.ErrorMessage">
      <summary>
            Gets the process error message if available; or null.
            </summary>
      <value>Process error message.</value>
    </member>
    <member name="T:Rebex.Net.SshChannelExtendedDataMode">
      <summary>
            Specifies how to tread extended channel data.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshChannelExtendedDataMode.Discard">
      <summary>
            Discard extended data.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshChannelExtendedDataMode.TreatAsNormalData">
      <summary>
            Treat extended data as normal data.
            </summary>
    </member>
    <member name="T:Rebex.Net.SshPasswordChangeResult">
      <summary>
            Defines password change results.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshPasswordChangeResult.Success">
      <summary>
            Password has been changed and the user has been authenticated. It is not necessary to call the Authenticate method now.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshPasswordChangeResult.ChangedButNotAuthenticated">
      <summary>
            Password has been changed, but the user has not been authenticated. It is still necessary to call the Authenticate method.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshPasswordChangeResult.Failure">
      <summary>
            The password has not been changed. Either password changing was not supported, or the old password was bad.
            </summary>
    </member>
    <member name="T:Rebex.Net.SshMacAlgorithm">
      <summary>
            MAC algorithm.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshMacAlgorithm.None">
      <summary>
            No MAC algorithm.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshMacAlgorithm.MD5">
      <summary>
            MD5 algorithm.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshMacAlgorithm.SHA1">
      <summary>
            SHA-1 algorithm.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshMacAlgorithm.SHA256">
      <summary>
            SHA-256 algorithm.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshMacAlgorithm.SHA512">
      <summary>
            SHA-512 algorithm.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshMacAlgorithm.Any">
      <summary>
            Any algorithm.
            </summary>
    </member>
    <member name="T:Rebex.Net.SshEncryptionAlgorithm">
      <summary>
            Encryption algorithm.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshEncryptionAlgorithm.None">
      <summary>
            None.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshEncryptionAlgorithm.RC4">
      <summary>
            RC4.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshEncryptionAlgorithm.TripleDES">
      <summary>
            TripleDES.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshEncryptionAlgorithm.AES">
      <summary>
            AES.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshEncryptionAlgorithm.Blowfish">
      <summary>
            Blowfish.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshEncryptionAlgorithm.Twofish">
      <summary>
            Twofish.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshEncryptionAlgorithm.Chacha20Poly1305">
      <summary>
            ChaCha20/Poly1305.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshEncryptionAlgorithm.Any">
      <summary>
            Any algorithm.
            </summary>
    </member>
    <member name="T:Rebex.Net.SshEncryptionMode">
      <summary>
            Encryption mode.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshEncryptionMode.None">
      <summary>
            None.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshEncryptionMode.CBC">
      <summary>
            CBC mode.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshEncryptionMode.CTR">
      <summary>
            CTR mode.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshEncryptionMode.AEAD">
      <summary>
            AEAD mode.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshEncryptionMode.Any">
      <summary>
            Any mode.
            </summary>
    </member>
    <member name="T:Rebex.Net.SshAuthenticationMethod">
      <summary>
            Authentication method.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshAuthenticationMethod.None">
      <summary>
            None.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshAuthenticationMethod.Password">
      <summary>
            Authentication method "password".
            </summary>
    </member>
    <member name="F:Rebex.Net.SshAuthenticationMethod.KeyboardInteractive">
      <summary>
            Authentication method "keyboard-interactive".
            </summary>
    </member>
    <member name="F:Rebex.Net.SshAuthenticationMethod.PublicKey">
      <summary>
            Authentication method "publickey".
            </summary>
    </member>
    <member name="F:Rebex.Net.SshAuthenticationMethod.GssapiWithMic">
      <summary>
            Authentication method "gssapi-with-mic".
            </summary>
    </member>
    <member name="F:Rebex.Net.SshAuthenticationMethod.Any">
      <summary>
            Any method.
            </summary>
    </member>
    <member name="T:Rebex.Net.SshKeyExchangeAlgorithm">
      <summary>
            Key exchange algorithm.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshKeyExchangeAlgorithm.None">
      <summary>
            No algorithm
            </summary>
    </member>
    <member name="F:Rebex.Net.SshKeyExchangeAlgorithm.DiffieHellmanGroup1SHA1">
      <summary>
            Diffie-Hellman (Oakley Group 2) with SHA-1.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshKeyExchangeAlgorithm.DiffieHellmanGroup14SHA1">
      <summary>
            Diffie-Hellman (Oakley Group 14) with SHA-1.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshKeyExchangeAlgorithm.DiffieHellmanGroupExchangeSHA1">
      <summary>
            Diffie-Hellman (Group Exchange) with SHA-1.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshKeyExchangeAlgorithm.DiffieHellmanGroupExchangeSHA256">
      <summary>
            Diffie-Hellman (Group Exchange) with SHA-256.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshKeyExchangeAlgorithm.ECDiffieHellmanNistP256">
      <summary>
            Elliptic CurveDiffie-Hellman key exchange based on NIST P-256 curve (.NET &gt;=4.0 or through a plugin) with SHA-256.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshKeyExchangeAlgorithm.ECDiffieHellmanNistP384">
      <summary>
            Elliptic Curve Diffie-Hellman key exchange based on NIST P-384 curve (.NET &gt;=4.0 or through a plugin) with SHA-384.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshKeyExchangeAlgorithm.ECDiffieHellmanNistP521">
      <summary>
            Elliptic Curve Diffie-Hellman key exchange based on NIST P-521 curve (.NET &gt;=4.0 or through a plugin) with SHA-512.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshKeyExchangeAlgorithm.Curve25519">
      <summary>
            Elliptic Curve Diffie-Hellman key exchange based on Curve 25519 (only available through a plugin) with SHA-256.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshKeyExchangeAlgorithm.DiffieHellmanOakleyGroupSHA256">
      <summary>
            Diffie-Hellman (Oakley Group 14) with SHA-256.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshKeyExchangeAlgorithm.DiffieHellmanOakleyGroupSHA512">
      <summary>
            Diffie-Hellman (Oakley Group 15 or 16) with SHA-512.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshKeyExchangeAlgorithm.ECDiffieHellmanSecp256k1">
      <summary>
            Elliptic Curve Diffie-Hellman key exchange based on secp256k1 curve (only available on Windows) with SHA-256.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshKeyExchangeAlgorithm.Any">
      <summary>
            Any algorithm.
            </summary>
    </member>
    <member name="T:Rebex.Net.SshHostKeyAlgorithm">
      <summary>
            Host key algorithm.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshHostKeyAlgorithm.None">
      <summary>
            No algorithm
            </summary>
    </member>
    <member name="F:Rebex.Net.SshHostKeyAlgorithm.RSA">
      <summary>
            RSA.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshHostKeyAlgorithm.DSS">
      <summary>
            DSS.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshHostKeyAlgorithm.Certificate">
      <summary>
            X.509 certificate.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshHostKeyAlgorithm.ED25519">
      <summary>
            ED25519, Twisted Edwards Curve EdDSA algorithm (supported through a plugin).
            </summary>
    </member>
    <member name="F:Rebex.Net.SshHostKeyAlgorithm.ECDsaNistP256">
      <summary>
            Elliptic Curve Digital Signature Algorithm based on NIST P-256 curve (.NET &gt;=4.0 or through a plugin).
            </summary>
    </member>
    <member name="F:Rebex.Net.SshHostKeyAlgorithm.ECDsaNistP384">
      <summary>
            Elliptic Curve Digital Signature Algorithm based on NIST P-384 curve (.NET &gt;=4.0 or through a plugin).
            </summary>
    </member>
    <member name="F:Rebex.Net.SshHostKeyAlgorithm.ECDsaNistP521">
      <summary>
            Elliptic Curve Digital Signature Algorithm based on NIST P-521 curve (.NET &gt;=4.0 or through a plugin).
            </summary>
    </member>
    <member name="F:Rebex.Net.SshHostKeyAlgorithm.ECDsaSecp256k1">
      <summary>
            Elliptic Curve Digital Signature Algorithm based on secp256k1 curve (only available on Windows).
            </summary>
    </member>
    <member name="F:Rebex.Net.SshHostKeyAlgorithm.Any">
      <summary>
            Any algorithm.
            </summary>
    </member>
    <member name="T:Rebex.Net.SshOptions">
      <summary>
            SSH connection options.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshOptions.None">
      <summary>
            No options.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshOptions.DoNotSplitChannelPackets">
      <summary>
            Do not split channel data packets unless they are larger than maximum packet size.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshOptions.WaitForServerWelcomeMessage">
      <summary>
            Wait for server SSH protocol welcome message before sending the client one.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshOptions.TryPasswordFirst">
      <summary>
            When authenticating using both password and private key, try password authentication first (default is to try the private key first).
            </summary>
    </member>
    <member name="F:Rebex.Net.SshOptions.PostponeChannelClose">
      <summary>
            Postpone channel close requests (workaround for older versions of ssh.com and Cisco SSH servers).
            </summary>
      <remarks>Not supported on Windows store Apps platforms.</remarks>
    </member>
    <member name="F:Rebex.Net.SshOptions.EnableSignaturePadding">
      <summary>
            Enable padding of RSA signatures used during client key authentication.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshOptions.EnsureKeyAcceptable">
      <summary>
            Announce public key to the server before performing key authentication.
            </summary>
    </member>
    <member name="T:Rebex.Net.SshExceptionStatus">
      <summary>
            Defines status codes for the <see cref="T:Rebex.Net.SshException" /> class.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshExceptionStatus.UnclassifiableError">
      <summary>
            An unclassifiable error occurred. This is the default value for <see cref="P:Rebex.Net.SshException.Status" />.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshExceptionStatus.ConnectFailure">
      <summary>
            The remote service point could not be contacted at the transport level.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshExceptionStatus.ConnectionClosed">
      <summary>
            The connection was prematurely closed.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshExceptionStatus.ProtocolError">
      <summary>
            The response received from the server was complete but indicated a protocol-level error.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshExceptionStatus.UnexpectedMessage">
      <summary>
            The response received from the server was complete but unexpected.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshExceptionStatus.Timeout">
      <summary>
            No response was received during the time-out period for a request.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshExceptionStatus.OperationFailure">
      <summary>
            The requested operation could not be completed.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshExceptionStatus.PasswordChangeRequired">
      <summary>
            Password needs to be changed.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshExceptionStatus.SocketError">
      <summary>
            The error at transport level occurred.
            </summary>
    </member>
    <member name="T:Rebex.Net.SshState">
      <summary>
            SSH session state.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshState.None">
      <summary>
            Initial state.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshState.Connecting">
      <summary>
            Connecting.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshState.KeyExchange">
      <summary>
            Key exchange.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshState.Ready">
      <summary>
            Ready.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshState.Closed">
      <summary>
            Closed.
            </summary>
    </member>
    <member name="T:Rebex.Net.SshChannelType">
      <summary>
            SSH channel type.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshChannelType.Session">
      <summary>
            Session.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshChannelType.DirectTcpIp">
      <summary>
            Direct TCP/IP tunnel.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshChannelType.ForwardedTcpIp">
      <summary>
            Forwarder TCP/IP tunnel.
            </summary>
    </member>
    <member name="T:Rebex.Net.SshChannelState">
      <summary>
            SSH channel state.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshChannelState.None">
      <summary>
            None.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshChannelState.Connected">
      <summary>
            Connected.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshChannelState.Closed">
      <summary>
            Closed.
            </summary>
    </member>
    <member name="T:Rebex.Net.SshForwardingHandle">
      <summary>
            Represents a single TCP forwarding rule.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshForwardingHandle.Address">
      <summary>
            Gets the listening IP address.
            </summary>
      <value>Listening IP address.</value>
    </member>
    <member name="P:Rebex.Net.SshForwardingHandle.Port">
      <summary>
            Gets the listening port.
            </summary>
      <value>Listening port.</value>
    </member>
    <member name="P:Rebex.Net.SshForwardingHandle.Tag">
      <summary>
            Custom tag.
            </summary>
    </member>
    <member name="T:Rebex.Net.SshAuthenticationRequestItem">
      <summary>
            Represents one question/answer pair for the <see cref="E:Rebex.Net.SshSession.AuthenticationRequest">AuthenticationRequest</see> event.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshAuthenticationRequestItem.Prompt">
      <summary>
            Gets the authentication prompt (question).
            </summary>
      <value>Authentication prompt.</value>
    </member>
    <member name="P:Rebex.Net.SshAuthenticationRequestItem.Response">
      <summary>
            Gets or sets response to the prompt.
            </summary>
      <value>Response.</value>
    </member>
    <member name="P:Rebex.Net.SshAuthenticationRequestItem.IsSecret">
      <summary>
            Gets a value indicating whether the response is considered secret and should not be displayed.
            </summary>
      <value>True if secret (do not display); false if not secret (safe to display).</value>
    </member>
    <member name="T:Rebex.Net.SshAuthenticationRequestItemCollection">
      <summary>
            Collection of <see cref="T:Rebex.Net.SshAuthenticationRequestItem" /> objects.
            </summary>
    </member>
    <member name="T:Rebex.Net.SshParameters">
      <summary>
            Security parameters.
            </summary>
    </member>
    <member name="M:Rebex.Net.SshParameters.Clone">
      <summary>
            Returns a shallow copy of the current parameters.
            </summary>
      <returns>A shallow copy of current parameters.</returns>
    </member>
    <member name="P:Rebex.Net.SshParameters.MacAlgorithms">
      <summary>
            Get or sets the allowed message authentication code algorithms.
            </summary>
      <value>The group of allowed algorithms.</value>
    </member>
    <member name="M:Rebex.Net.SshParameters.GetMacAlgorithms">
      <summary>
            Gets a list of allowed MAC algorithms IDs and their order. See <see cref="M:Rebex.Net.SshParameters.SetMacAlgorithms(System.String[])" /> for more info.
            </summary>
      <returns>List of MAC algorithm IDs.</returns>
    </member>
    <member name="M:Rebex.Net.SshParameters.SetMacAlgorithms(System.String[])">
      <summary>
            Specifies a list of allowed MAC algorithms IDs and their order.
            Setting the list to null (Nothing in VB.NET) or an empty list specifies that the default list and order is to be used.
            When the list is set, <see cref="P:Rebex.Net.SshParameters.MacAlgorithms" /> still applies.
            See the remarks for a list of supported algorithm IDs.
            </summary>
      <param name="algorithmIds">List of MAC algorithm IDs.</param>
      <remarks>
            Currently, supported algorithms are:
            "hmac-sha2-256-etm@openssh.com", "hmac-sha2-256",
            "hmac-sha2-512-etm@openssh.com", "hmac-sha2-512",
            "hmac-sha1", "hmac-md5",
            "hmac-sha1-96", "hmac-md5-96".
            </remarks>
    </member>
    <member name="M:Rebex.Net.SshParameters.GetSupportedMacAlgorithms">
      <summary>
            Gets a list of supported MAC algorithms (in their default order). See <see cref="M:Rebex.Net.SshParameters.SetMacAlgorithms(System.String[])" /> for more info.
            </summary>
      <returns>List of MAC algorithm IDs.</returns>
    </member>
    <member name="P:Rebex.Net.SshParameters.EncryptionAlgorithms">
      <summary>
            Gets or sets the group of allowed encryption algorithms.
            </summary>
      <value>The group of allowed algorithms.</value>
    </member>
    <member name="M:Rebex.Net.SshParameters.GetEncryptionAlgorithms">
      <summary>
            Gets a list of allowed encryption algorithms IDs and their order. See <see cref="M:Rebex.Net.SshParameters.SetEncryptionAlgorithms(System.String[])" /> for more info.
            </summary>
      <returns>List of encryption algorithm IDs.</returns>
    </member>
    <member name="M:Rebex.Net.SshParameters.SetEncryptionAlgorithms(System.String[])">
      <summary>
            Specifies a list of allowed encryption algorithms IDs and their order.
            Setting the list to null (Nothing in VB.NET) or an empty list specifies that the default list and order is to be used.
            When the list is set, <see cref="P:Rebex.Net.SshParameters.EncryptionAlgorithms" /> and <see cref="P:Rebex.Net.SshParameters.EncryptionModes" /> still apply.
            See the remarks for a list of supported algorithm IDs.
            </summary>
      <param name="algorithmIds">List of encryption algorithm IDs.</param>
      <remarks>
            Currently, supported algorithms are:
            "aes256-gcm@openssh.com", "aes128-gcm@openssh.com",
            "aes256-ctr", "aes192-ctr", "aes128-ctr", "aes256-cbc",
            "aes192-cbc", "aes128-cbc", "3des-ctr", "3des-cbc",
            "twofish256-ctr", "twofish192-ctr", "twofish128-ctr",
            "twofish256-cbc", "twofish192-cbc", "twofish128-cbc",
            "twofish-cbc", "blowfish-ctr", "blowfish-cbc",
            "chacha20-poly1305@openssh.com",
            "arcfour256", "arcfour128", "arcfour".
            </remarks>
    </member>
    <member name="M:Rebex.Net.SshParameters.GetSupportedEncryptionAlgorithms">
      <summary>
            Gets a list of supported encryption algorithms (in their default order). See <see cref="M:Rebex.Net.SshParameters.SetEncryptionAlgorithms(System.String[])" /> for more info.
            </summary>
      <returns>List of key encryption algorithm IDs.</returns>
    </member>
    <member name="P:Rebex.Net.SshParameters.EncryptionModes">
      <summary>
            Gets or sets the group of allowed encryption modes.
            </summary>
      <value>The group of allowed modes.</value>
    </member>
    <member name="P:Rebex.Net.SshParameters.AuthenticationMethods">
      <summary>
            Gets or sets the group of allowed authentication methods.
            </summary>
      <value>The group of allowed authentication methods.</value>
    </member>
    <member name="P:Rebex.Net.SshParameters.KeyExchangeAlgorithms">
      <summary>
            Gets or sets the group of allowed key exchange algorithms.
            </summary>
      <value>The group of allowed algorithms.</value>
    </member>
    <member name="M:Rebex.Net.SshParameters.GetKeyExchangeAlgorithms">
      <summary>
            Gets a list of allowed key exchange algorithms IDs and their order. See <see cref="M:Rebex.Net.SshParameters.SetKeyExchangeAlgorithms(System.String[])" /> for more info.
            </summary>
      <returns>List of key exchange algorithm IDs.</returns>
    </member>
    <member name="M:Rebex.Net.SshParameters.SetKeyExchangeAlgorithms(System.String[])">
      <summary>
            Specifies a list of allowed key exchange algorithms IDs and their order.
            Setting the list to null (Nothing in VB.NET) or an empty list specifies that the default list and order is to be used.
            When the list is set, <see cref="P:Rebex.Net.SshParameters.KeyExchangeAlgorithms" /> still applies.
            See the remarks for a list of supported algorithm IDs.
            </summary>
      <param name="algorithmIds">List of key exchange algorithm IDs.</param>
      <remarks>
            Currently, supported algorithms are:
            "diffie-hellman-group1-sha1", "diffie-hellman-group14-sha1",
            "diffie-hellman-group-exchange-sha1", "diffie-hellman-group-exchange-sha256",
            "diffie-hellman-group14-sha256", "diffie-hellman-group15-sha512", "diffie-hellman-group16-sha512",
            "curve25519-sha256", "curve25519-sha256@libssh.org",
            "ecdh-sha2-nistp256", "ecdh-sha2-nistp384", "ecdh-sha2-nistp521".
            </remarks>
    </member>
    <member name="M:Rebex.Net.SshParameters.GetSupportedKeyExchangeAlgorithms">
      <summary>
            Gets a list of supported key exchange algorithms (in their default order). See <see cref="M:Rebex.Net.SshParameters.SetKeyExchangeAlgorithms(System.String[])" /> for more info.
            </summary>
      <returns>List of key exchange algorithm IDs.</returns>
    </member>
    <member name="P:Rebex.Net.SshParameters.HostKeyAlgorithms">
      <summary>
            Gets or sets the group of allowed host key (server key) algorithms.
            </summary>
      <value>The group of allowed algorithms.</value>
    </member>
    <member name="M:Rebex.Net.SshParameters.GetHostKeyAlgorithms">
      <summary>
            Gets a list of allowed host key algorithms IDs and their order. See <see cref="M:Rebex.Net.SshParameters.SetHostKeyAlgorithms(System.String[])" /> for more info.
            </summary>
      <returns>List of host key algorithm IDs.</returns>
    </member>
    <member name="M:Rebex.Net.SshParameters.SetHostKeyAlgorithms(System.String[])">
      <summary>
            Specifies a list of allowed host key algorithms IDs and their order.
            Setting the list to null (Nothing in VB.NET) or an empty list specifies that the default list and order is to be used.
            When the list is set, <see cref="P:Rebex.Net.SshParameters.HostKeyAlgorithms" /> still applies, but <see cref="P:Rebex.Net.SshParameters.PreferredHostKeyAlgorithm" /> does not.
            See the remarks for a list of supported algorithm IDs.
            </summary>
      <param name="algorithmIds">List of host key algorithm IDs.</param>
      <remarks>
            Currently, supported algorithms are:
            "ssh-dss", "ssh-rsa", "ssh-rsa-sha256@ssh.com",
            "rsa-sha2-256", "rsa-sha2-512",
            "x509v3-rsa2048-sha256", "x509v3-ecdsa-sha2-nistp256", "x509v3-ecdsa-sha2-nistp384", "x509v3-ecdsa-sha2-nistp521",
            "x509v3-sign-rsa-sha256@ssh.com", "x509v3-sign-rsa", "x509v3-sign-dss",
            "ecdsa-sha2-nistp256", "ecdsa-sha2-nistp384", "ecdsa-sha2-nistp521",
            "ssh-ed25519".
            </remarks>
    </member>
    <member name="P:Rebex.Net.SshParameters.PreferredHostKeyAlgorithm">
      <summary>
            Gets or sets the preferred host key (server key) algorithm.
            </summary>
      <value>Preferred host key algorithm. Only one value can be specified.</value>
    </member>
    <member name="M:Rebex.Net.SshParameters.GetSupportedHostKeyAlgorithms">
      <summary>
            Gets a list of supported host key algorithms (in their default order). See <see cref="M:Rebex.Net.SshParameters.SetHostKeyAlgorithms(System.String[])" /> for more info.
            </summary>
      <returns>List of host key algorithm IDs.</returns>
    </member>
    <member name="P:Rebex.Net.SshParameters.MinimumDiffieHellmanKeySize">
      <summary>
            Gets or sets the minimum allowed size (in bits) of the ephemeral Diffie-Hellman prime.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshParameters.MinimumRsaKeySize">
      <summary>
            Gets or sets the minimum allowed size of the RSA key.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshParameters.Compression">
      <summary>
            On clients, gets or sets a value indicating whether to prefer communication compression if supported by the server.<br />
            On servers, gets or sets a value indicating whether to enable or disable communication compression.
            </summary>
      <value>True to prefer or enable compression; False to not prefer or not enable compression (default).</value>
    </member>
    <member name="P:Rebex.Net.SshParameters.CompressionLevel">
      <summary>
            Gets or sets the compression level to be used if compression takes effect.<br />
            Possible values are 0-9, where 0 means no compression (fastest) and 9 means best compression (slowest). 
            5 (medium compression and speed) is a default value.<br />
            This only affects outgoing data.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshParameters.UseStrictKeyExchange">
      <summary>
            Gets or sets a value indicating whether to enable strict key exchange extension (compatible with OpenSSH 9.6).
            </summary>
    </member>
    <member name="P:Rebex.Net.SshParameters.UseLegacyGroupExchange">
      <summary>
            Gets or sets a value indicating whether to use legacy form of Diffie-Hellman group exchange instead of the standard form.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshParameters.MaximumPacketSize">
      <summary>
            Gets or sets maximum SSH packet size. Valid packet size range is 4096 to 131072.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshParameters.ChannelCloseTimeout">
      <summary>
        <para>
            Gets or sets the length of time in milliseconds before the operation times out when waiting for channel closure confirmation from the server.
            </para>
        <para>
            Minimal value is 1000. Attempt to set this to a value lower than 1000 will cause an exception to be thrown.
            </para>
        <para>
            If not specified, the timeout is either <see cref="P:Rebex.Net.SshSession.Timeout" /> or 10 seconds, whichever is greater.
            </para>
      </summary>
    </member>
    <member name="M:Rebex.Net.SshParameters.#ctor">
      <summary>
            Initializes a new instance of SshParameters with default parameters.
            </summary>
    </member>
    <member name="T:Rebex.Net.SshPrivateKeyFormat">
      <summary>
            Specifies private key file format.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshPrivateKeyFormat.Pkcs8">
      <summary>Base64-encoded PKCS #8 format.</summary>
    </member>
    <member name="F:Rebex.Net.SshPrivateKeyFormat.Putty">
      <summary>PuTTY PPKv2 format.</summary>
    </member>
    <member name="F:Rebex.Net.SshPrivateKeyFormat.OpenSsh">
      <summary>OpenSSH/OpenSSL SSLeay format.</summary>
    </member>
    <member name="F:Rebex.Net.SshPrivateKeyFormat.NewOpenSsh">
      <summary>New OpenSSH format with bcrypt key expansion (Base64-encoded keys with "BEGIN OPENSSH PRIVATE KEY" header).</summary>
    </member>
    <member name="F:Rebex.Net.SshPrivateKeyFormat.PPK3">
      <summary>PuTTY PPKv3 format.</summary>
    </member>
    <member name="T:Rebex.Net.SshPrivateKey">
      <summary>
            Represents SSH private key (RSA, DSA, EcDSA, EdDSA, certificate-based). Private key data also includes the public key.
            </summary>
    </member>
    <member name="M:Rebex.Net.SshPrivateKey.Generate">
      <summary>
            Generates an SSH private key using the RSA algorithm with a key size of 1024.
            </summary>
      <returns>SSH private key object.</returns>
    </member>
    <member name="M:Rebex.Net.SshPrivateKey.Generate(Rebex.Net.SshHostKeyAlgorithm)">
      <summary>
            Generates an SSH private key using the specified algorithm and a default key size.
            </summary>
      <param name="algorithm">Key algorithm.</param>
      <returns>SSH private key object.</returns>
    </member>
    <member name="M:Rebex.Net.SshPrivateKey.Generate(Rebex.Net.SshHostKeyAlgorithm,System.Int32)">
      <summary>
            Generates an SSH private key using the specified algorithm and key size.
            </summary>
      <param name="algorithm">Key algorithm.</param>
      <param name="keySize">Key size. Specify 0 to use default key size.</param>
      <returns>SSH private key object.</returns>
    </member>
    <member name="M:Rebex.Net.SshPrivateKey.CreateFrom(Rebex.Security.Cryptography.Pkcs.PrivateKeyInfo)">
      <summary>
            Creates an SSH private key from the specified private key info object.
            </summary>
      <returns>SSH private key object.</returns>
    </member>
    <member name="M:Rebex.Net.SshPrivateKey.CreateFrom(System.Security.Cryptography.RSAParameters)">
      <summary>
            Creates an SSH private key from the specified RSA parameters.
            </summary>
      <returns>SSH private key object.</returns>
    </member>
    <member name="M:Rebex.Net.SshPrivateKey.CreateFrom(System.Security.Cryptography.DSAParameters)">
      <summary>
            Creates an SSH private key from the specified DSA parameters.
            </summary>
      <returns>SSH private key object.</returns>
    </member>
    <member name="M:Rebex.Net.SshPrivateKey.#ctor(Rebex.Security.Certificates.Certificate)">
      <summary>
            Creates a certificate-based SSH key for use with SSH/SFTP servers that support X.509 certificate authentication.
            </summary>
      <param name="certificate">X.509 certificate.</param>
    </member>
    <member name="M:Rebex.Net.SshPrivateKey.#ctor(Rebex.Security.Certificates.CertificateChain)">
      <summary>
            Creates a certificate-based SSH key for use with SSH/SFTP client that support X.509 certificate authentication.
            </summary>
      <param name="chain">X.509 certificate chain.</param>
    </member>
    <member name="M:Rebex.Net.SshPrivateKey.#ctor(System.String,System.String)">
      <summary>
            Loads a private key in PKCS #8, PuTTY, OpenSSH or SSLeay-format from the specified path.
            </summary>
      <param name="path">A path to the private key.</param>
      <param name="password">Password used to encrypted the private key, or null if no password needed.</param>
    </member>
    <member name="M:Rebex.Net.SshPrivateKey.#ctor(System.IO.Stream,System.String)">
      <summary>
            Loads a private key in PKCS #8, PuTTY, OpenSSH or SSLeay-format from the specified stream.
            </summary>
      <param name="input">A stream from which to load the private key.</param>
      <param name="password">Password used to encrypted the private key, or null if no password needed.</param>
    </member>
    <member name="M:Rebex.Net.SshPrivateKey.#ctor(System.Byte[],System.String)">
      <summary>
            Loads a private key in PKCS #8, PuTTY, OpenSSH or SSLeay-format from the specified raw data.
            </summary>
      <param name="data">Raw private key data.</param>
      <param name="password">Password used to encrypted the private key, or null if no password needed.</param>
    </member>
    <member name="M:Rebex.Net.SshPrivateKey.#ctor(System.Security.Cryptography.AsymmetricAlgorithm)">
      <summary>
            Creates an SSH private key based on the specified <see cref="T:System.Security.Cryptography.AsymmetricAlgorithm" /> object,
            such as <see cref="T:System.Security.Cryptography.RSA" /> (all platforms), <see cref="T:System.Security.Cryptography.DSA" /> (all platforms) or <see cref="T:System.Security.Cryptography.ECDsa" /> (.NET 5 or higher).
            </summary>
      <param name="algorithm">A suitable <see cref="T:System.Security.Cryptography.AsymmetricAlgorithm" /> object.</param>
    </member>
    <member name="M:Rebex.Net.SshPrivateKey.#ctor(Rebex.Security.Cryptography.AsymmetricKeyAlgorithm)">
      <summary>
            Creates an SSH private key based on the specified <see cref="T:Rebex.Security.Cryptography.AsymmetricKeyAlgorithm" /> object.
            </summary>
      <param name="algorithm">An <see cref="T:Rebex.Security.Cryptography.AsymmetricKeyAlgorithm" /> object.</param>
    </member>
    <member name="M:Rebex.Net.SshPrivateKey.GetPrivateKeyInfo">
      <summary>
            Returns the private key info for this key.
            </summary>
      <returns>The private key info for this key.</returns>
    </member>
    <member name="M:Rebex.Net.SshPrivateKey.Save(System.IO.Stream,System.String,Rebex.Net.SshPrivateKeyFormat)">
      <summary>
            Saves the private key into the supplied stream in the specified format.
            </summary>
      <param name="output">A stream to which to save the private key.</param>
      <param name="password">Password to encrypted the private key, or null if no encryption desired.</param>
      <param name="format">Private key file format.</param>
    </member>
    <member name="M:Rebex.Net.SshPrivateKey.Save(System.String,System.String,Rebex.Net.SshPrivateKeyFormat)">
      <summary>
            Saves the private key into the supplied stream in the specified format.
            </summary>
      <param name="path">A path to stream to which to save the private key.</param>
      <param name="password">Password to encrypted the private key, or null if no encryption desired.</param>
      <param name="format">Private key file format.</param>
    </member>
    <member name="M:Rebex.Net.SshPrivateKey.GetPrivateKey">
      <summary>
            Gets the raw form of the private key.
            </summary>
      <returns>Array of bytes.</returns>
    </member>
    <member name="M:Rebex.Net.SshPrivateKey.GetDSAParameters">
      <summary>
            Gets the DSA parameters for a DSA key. May only be used for DSA private keys.
            </summary>
      <returns>DSA parameters.</returns>
    </member>
    <member name="M:Rebex.Net.SshPrivateKey.GetRSAParameters">
      <summary>
            Gets the RSA parameters for a RSA key. May only be used for RSA private keys.
            </summary>
      <returns>RSA parameters.</returns>
    </member>
    <member name="P:Rebex.Net.SshPrivateKey.Certificate">
      <summary>
            Gets a certificate of a certificate-based SSH key.
            </summary>
      <remarks>
            Returns an X.509 certificate, or null (Nothing in VB.NET) if the key is not certificate-based.
            </remarks>
    </member>
    <member name="T:Rebex.Net.SshPublicKey">
      <summary>
            Represents SSH public key (RSA, DSA, ECDSA, EdDSA or X.509 certificate).
            </summary>
    </member>
    <member name="M:Rebex.Net.SshPublicKey.#ctor(System.Byte[])">
      <summary>
            Loads a SSH2 public key from the specified raw data.
            </summary>
      <param name="data">Raw private key data.</param>
    </member>
    <member name="M:Rebex.Net.SshPublicKey.#ctor(System.String)">
      <summary>
            Loads an SSH2 public key from the specified file.
            </summary>
      <param name="path">A path to file with the public key.</param>
    </member>
    <member name="M:Rebex.Net.SshPublicKey.#ctor(System.IO.Stream)">
      <summary>
            Loads an SSH2 public key from the specified stream.
            </summary>
      <param name="input">A stream with the public key.</param>
    </member>
    <member name="M:Rebex.Net.SshPublicKey.#ctor(Rebex.Security.Certificates.Certificate)">
      <summary>
            Creates a certificate-based SSH key for use with SSH/SFTP client that support X.509 certificate authentication.
            </summary>
      <param name="certificate">X.509 certificate.</param>
    </member>
    <member name="M:Rebex.Net.SshPublicKey.#ctor(Rebex.Security.Certificates.CertificateChain)">
      <summary>
            Creates a certificate-based SSH key for use with SSH/SFTP client that support X.509 certificate authentication.
            </summary>
      <param name="chain">X.509 certificate chain.</param>
    </member>
    <member name="M:Rebex.Net.SshPublicKey.#ctor(Rebex.Security.Cryptography.Pkcs.PublicKeyInfo)">
      <summary>
            Creates an SSH public key based on the specified <see cref="T:Rebex.Security.Cryptography.Pkcs.PublicKeyInfo" /> object.
            </summary>
      <param name="publicKeyInfo">An <see cref="T:Rebex.Security.Cryptography.Pkcs.PublicKeyInfo" /> object.</param>
    </member>
    <member name="M:Rebex.Net.SshPublicKey.#ctor(System.Security.Cryptography.AsymmetricAlgorithm)">
      <summary>
            Creates an SSH public key based on the specified <see cref="T:System.Security.Cryptography.AsymmetricAlgorithm" /> object,
            such as <see cref="T:System.Security.Cryptography.RSA" /> (all platforms), <see cref="T:System.Security.Cryptography.DSA" /> (all platforms) or <see cref="T:System.Security.Cryptography.ECDsa" /> (.NET 5 or higher).
            </summary>
      <param name="algorithm">A suitable <see cref="T:System.Security.Cryptography.AsymmetricAlgorithm" /> object.</param>
    </member>
    <member name="M:Rebex.Net.SshPublicKey.#ctor(Rebex.Security.Cryptography.AsymmetricKeyAlgorithm)">
      <summary>
            Creates an SSH public key based on the specified asymmetric algorithm object.
            </summary>
      <param name="algorithm">An asymmetric algorithm object.</param>
    </member>
    <member name="P:Rebex.Net.SshPublicKey.KeyAlgorithm">
      <summary>
            Gets the key algorithm.
            </summary>
      <value>Key algorithm.</value>
    </member>
    <member name="P:Rebex.Net.SshPublicKey.KeyAlgorithmId">
      <summary>
            Gets the key algorithm ID
            </summary>
      <value>Key algorithm ID.</value>
    </member>
    <member name="P:Rebex.Net.SshPublicKey.KeySize">
      <summary>
            Gets the key size, in bits.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshPublicKey.Comment">
      <summary>
            Gets or sets the key comment. The comment is used while saving in some formats.
            </summary>
      <value>Key comment.</value>
    </member>
    <member name="P:Rebex.Net.SshPublicKey.Fingerprint">
      <summary>
            Gets the public key fingerprint.
            </summary>
      <value>Public key fingerprint.</value>
    </member>
    <member name="M:Rebex.Net.SshPublicKey.GetCertificate">
      <summary>
            Returns the underlying X509 certificate.
            </summary>
    </member>
    <member name="M:Rebex.Net.SshPublicKey.GetCertificateChain">
      <summary>
            Returns the underlying X509 certificate and its chain (for certificate-based keys).
            </summary>
    </member>
    <member name="M:Rebex.Net.SshPublicKey.GetDSAParameters">
      <summary>
            Gets the DSA parameters for a DSA key. May only be used for DSA public keys.
            </summary>
      <returns>DSA parameters.</returns>
    </member>
    <member name="M:Rebex.Net.SshPublicKey.GetRSAParameters">
      <summary>
            Gets the RSA parameters for a RSA key. May only be used for RSA public keys.
            </summary>
      <returns>RSA parameters.</returns>
    </member>
    <member name="M:Rebex.Net.SshPublicKey.GetPublicKeyInfo">
      <summary>
            Returns the public key info for this key.
            </summary>
      <returns>The public key info for this key.</returns>
    </member>
    <member name="M:Rebex.Net.SshPublicKey.SavePublicKey(System.String)">
      <summary>
            Saves the public key into the supplied stream in Base64-encoded SSH2 public key format.
            </summary>
      <param name="path">A path to a file to which to save the public key.</param>
    </member>
    <member name="M:Rebex.Net.SshPublicKey.SavePublicKey(System.String,Rebex.Net.SshPublicKeyFormat)">
      <summary>
            Saves the public key into the supplied stream in the specified format.
            </summary>
      <param name="path">A path to a file to which to save the public key.</param>
      <param name="format">Public key file format.</param>
    </member>
    <member name="M:Rebex.Net.SshPublicKey.SavePublicKey(System.IO.Stream)">
      <summary>
            Saves the public key into the supplied stream in Base64-encoded SSH2 public key format.
            </summary>
      <param name="output">A stream to which to save the public key.</param>
    </member>
    <member name="M:Rebex.Net.SshPublicKey.SavePublicKey(System.IO.Stream,Rebex.Net.SshPublicKeyFormat)">
      <summary>
            Saves the public key into the supplied stream in the specified format.
            </summary>
      <param name="output">A stream to which to save the public key.</param>
      <param name="format">Public key file format.</param>
    </member>
    <member name="M:Rebex.Net.SshPublicKey.GetPublicKey">
      <summary>
            Gets the public key in SSH format (or raw X.509 data of the leaf certificate).
            </summary>
      <returns>Array of bytes.</returns>
    </member>
    <member name="M:Rebex.Net.SshPublicKey.LoadPublicKeys(System.String)">
      <summary>
            Loads public keys in ~/.ssh/authorized_keys file format.
            </summary>
      <param name="path">Path to a file with ~/.ssh/authorized_keys file format.</param>
      <returns>List of SshPublicKey objects.</returns>
    </member>
    <member name="M:Rebex.Net.SshPublicKey.LoadPublicKeys(System.IO.Stream)">
      <summary>
            Loads public keys in ~/.ssh/authorized_keys file format.
            </summary>
      <param name="input">A stream with ~/.ssh/authorized_keys file format.</param>
      <returns>List of SshPublicKey objects.</returns>
    </member>
    <member name="M:Rebex.Net.SshPublicKey.Parse(System.String)">
      <summary>
            Parses a single SSH public key in ~/.ssh/authorized_keys format.
            </summary>
      <param name="key">SSH public key.</param>
      <returns>An instance of SshPublicKey.</returns>
    </member>
    <member name="M:Rebex.Net.SshPublicKey.Equals(System.Object)">
      <summary>
            Determines whether the specified object is the same key as the specified key.
            </summary>
      <param name="obj">Object to compare with the current key.</param>
      <returns>True if the objects are the same; false otherwise.</returns>
    </member>
    <member name="M:Rebex.Net.SshPublicKey.Equals(Rebex.Net.SshPublicKey)">
      <summary>
            Determines whether the specified key is the same key as the specified key.
            </summary>
      <param name="key">Key to compare with the current key.</param>
      <returns>True if the keys are the same; false otherwise.</returns>
    </member>
    <member name="M:Rebex.Net.SshPublicKey.GetHashCode">
      <summary>
            A hash function for this type.
            </summary>
      <returns>A hash code for the current key.</returns>
    </member>
    <member name="T:Rebex.Net.SshPublicKeyFormat">
      <summary>
            Specifies public key file format.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshPublicKeyFormat.Ssh2Base64">
      <summary>Base64-encoded SSH2 public key format.</summary>
    </member>
    <member name="F:Rebex.Net.SshPublicKeyFormat.Ssh2Raw">
      <summary>Raw SSH2 public key format.</summary>
    </member>
    <member name="F:Rebex.Net.SshPublicKeyFormat.Pkcs8">
      <summary>Base64-encoded PKCS #8 format.</summary>
    </member>
    <member name="F:Rebex.Net.SshPublicKeyFormat.Pkcs1">
      <summary>Base64-encoded PKCS #1 format.</summary>
    </member>
    <member name="T:Rebex.Net.SshServerInfo">
      <summary>
            Information about SSH negotiation.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshServerInfo.CompressionAlgorithmsClientToServer">
      <summary>
            Name-list of acceptable compression algorithms in order of preference.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshServerInfo.CompressionAlgorithmsServerToClient">
      <summary>
            Name-list of acceptable compression algorithms in order of preference.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshServerInfo.EncryptionAlgorithmsClientToServer">
      <summary>
            Name-list of acceptable symmetric encryption algorithms in order of preference.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshServerInfo.EncryptionAlgorithmsServerToClient">
      <summary>
            Name-list of acceptable symmetric encryption algorithms in order of preference.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshServerInfo.KeyExchangeAlgorithms">
      <summary>
            Name-list of the key exchange algorithms in order of preference.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshServerInfo.MacAlgorithmsClientToServer">
      <summary>
            Name-list of acceptable MAC algorithms in order of preference.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshServerInfo.MacAlgorithmsServerToClient">
      <summary>
            Name-list of acceptable MAC algorithms in order of preference.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshServerInfo.ServerHostKeyAlgorithms">
      <summary>
            Name-list of the algorithms supported for the server host key.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshServerInfo.SupportsExtensionNegotiation">
      <summary>
            Returns a value indicating whether SSH extension negotiation is supported by the server.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshServerInfo.SupportsStrictKeyExchange">
      <summary>
            Returns a value indicating whether strict key exchange is supported by the server.
            </summary>
    </member>
    <member name="T:Rebex.Net.SshSession">
      <summary>
            Represents a client-side SSH 2.0 session.
            </summary>
    </member>
    <member name="F:Rebex.Net.SshSession.DefaultPort">
      <summary>
            Default SSH port (22).
            </summary>
    </member>
    <member name="E:Rebex.Net.SshSession.BannerReceived">
      <summary>
            Occurs when a banner message is received from the server.
            </summary>
    </member>
    <member name="E:Rebex.Net.SshSession.FingerprintCheck">
      <summary>
            Occurs when a fingerprint is received from the server and needs to be validated.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshSession.HasFingerprintEventHandler">
      <summary>
            Gets a value indicating whether the <see cref="E:Rebex.Net.SshSession.FingerprintCheck" /> event is registered.
            </summary>
    </member>
    <member name="E:Rebex.Net.SshSession.ForwardingRequest">
      <summary>
            Occurs when an incoming tunnel request has arrived.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshSession.HasForwardingRequestEventHandler">
      <summary>
            Gets a value indicating whether the <see cref="E:Rebex.Net.SshSession.ForwardingRequest" /> event is registered.
            </summary>
    </member>
    <member name="E:Rebex.Net.SshSession.AuthenticationRequest">
      <summary>
            Occurs when an authentication request is received from the server that cannot be answered programmatically.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshSession.HasAuthenticationRequestEventHandler">
      <summary>
            Gets a value indicating whether the <see cref="E:Rebex.Net.SshSession.AuthenticationRequest" /> event is registered.
            </summary>
    </member>
    <member name="M:Rebex.Net.SshSession.OnBannerReceived(Rebex.Net.SshMessageEventArgs)">
      <summary>
            Raises the <see cref="E:Rebex.Net.SshSession.BannerReceived" /> event.
            </summary>
      <param name="e">A <see cref="T:Rebex.Net.SshMessageEventArgs" /> that contains the event data.</param>
    </member>
    <member name="M:Rebex.Net.SshSession.OnFingerprintCheck(Rebex.Net.SshFingerprintEventArgs)">
      <summary>
            Raises the <see cref="E:Rebex.Net.SshSession.FingerprintCheck" /> event.
            </summary>
      <param name="e">A <see cref="T:Rebex.Net.SshFingerprintEventArgs" /> that contains the event data.</param>
    </member>
    <member name="M:Rebex.Net.SshSession.OnAuthenticationRequest(Rebex.Net.SshAuthenticationRequestEventArgs)">
      <summary>
            Raises the <see cref="E:Rebex.Net.SshSession.AuthenticationRequest" /> event.
            </summary>
      <param name="e">A <see cref="T:Rebex.Net.SshAuthenticationRequestEventArgs" /> that contains the event data.</param>
    </member>
    <member name="P:Rebex.Net.SshSession.Timeout">
      <summary>
            Gets or sets the length of time before the operation times out (specify -1 or 0 to indicate that the request does not time out).
            </summary>
      <value>
            The length of time, in milliseconds, until the operation times out,
            or the value -1 or 0 to indicate that the request does not time out.
            Default is 60000 (60 seconds).
            </value>
      <remarks>
        <p>
            The internal timeout counter is reset every time data is sent
            or received from to server. This also means that data transfers only
            time out after x milliseconds of inactivity, not after x milliseconds
            from the start of the transfer.
            </p>
        <p>
            Minimal value is 1000. Setting this to a value lower than 1000 will set it to 1000.
            </p>
      </remarks>
    </member>
    <member name="P:Rebex.Net.SshSession.Socket">
      <summary>
            Gets the internal <see cref="T:Rebex.Net.ISocket" /> value.
            </summary>
      <value>The internal <see cref="T:Rebex.Net.ISocket" /> value.</value>
      <remarks>Use with care.</remarks>
    </member>
    <member name="P:Rebex.Net.SshSession.Encoding">
      <summary>
            Gets or sets the <see cref="T:System.Text.Encoding">Encoding</see> to use to encode and decode command parameters and server responses.
            </summary>
      <value>The <see cref="T:System.Text.Encoding">Encoding</see> to use to encode and decode command parameters and server responses. Default is <see cref="T:System.Text.Encoding">Encoding.UTF8</see>.</value>
    </member>
    <member name="P:Rebex.Net.SshSession.RemoteEndPoint">
      <summary>
            Gets the remote endpoint.
            </summary>
      <value>The remote endpoint that the <see cref="T:Rebex.Net.SshSession" /> is using for communications.</value>
      <remarks>
            The RemoteEndPoint property gets the network connection information associated with
            the remote host.
            RemoteEndPoint is set by <see cref="T:Rebex.Net.SshSession" /> methods that establish a connection
            to a remote host.
            </remarks>
    </member>
    <member name="P:Rebex.Net.SshSession.LocalEndPoint">
      <summary>
            Gets the local endpoint.
            </summary>
      <value>The local endpoint that the <see cref="T:Rebex.Net.SshSession" /> is using for communications.</value>
      <remarks>
            The LocalEndPoint property contains the network connection information associated with the local network device.
            </remarks>
    </member>
    <member name="P:Rebex.Net.SshSession.Information">
      <summary>
            Gets socket information on the underlying socket object.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshSession.IsConnected">
      <summary>
            Gets a value indicating whether the session is connected.
            </summary>
      <remarks>
        <p>
            This property returns the latest known state of the session. 
            When it returns false, the session was either never connected, or no longer connected. 
            When it returns true, the session was connected at the time of the last I/O operation.
            </p>
        <p>
          <b>Note:</b> There is no guarantee that the session  is still connected even though
            <see cref="P:Rebex.Net.SshSession.IsConnected" /> returns true.
            </p>
      </remarks>
      <value>True if connected; false otherwise.</value>
    </member>
    <member name="P:Rebex.Net.SshSession.IsAuthenticated">
      <summary>
            Gets a value indicating whether the session is authenticated.
            </summary>
      <value>True if authenticated; false otherwise.</value>
    </member>
    <member name="P:Rebex.Net.SshSession.Parameters">
      <summary>
            Gets or sets the security parameters of the current socket.
            </summary>
      <value>The security parameters of the current socket.</value>
    </member>
    <member name="P:Rebex.Net.SshSession.Options">
      <summary>
            Gets or sets SshSession options.
            </summary>
      <value>SshSession options.</value>
    </member>
    <member name="P:Rebex.Net.SshSession.Cipher">
      <summary>
            Gets the active cipher.
            </summary>
      <value>Active cipher.</value>
    </member>
    <member name="P:Rebex.Net.SshSession.Fingerprint">
      <summary>
            Gets the server public key fingerprint.
            </summary>
      <value>Server fingerprint.</value>
    </member>
    <member name="P:Rebex.Net.SshSession.ServerInfo">
      <summary>
            Gets information about SSH negotiation.
            </summary>
    </member>
    <member name="P:Rebex.Net.SshSession.ServerKey">
      <summary>
            Gets the server public key.
            </summary>
      <value>Server public key.</value>
    </member>
    <member name="P:Rebex.Net.SshSession.State">
      <summary>
            Gets the current session state.
            </summary>
      <value>Session state.</value>
    </member>
    <member name="P:Rebex.Net.SshSession.ServerIdentification">
      <summary>
            Gets the server's identification string it returns after connected.
            </summary>
      <value>Server's identification string.</value>
    </member>
    <member name="M:Rebex.Net.SshSession.#ctor">
      <summary>
            Initializes an instance of the <see cref="T:Rebex.Net.SshSession" /> class.
            </summary>
      <remarks>
            The default constructor initializes an instance of the <see cref="T:Rebex.Net.SshSession" />.
            </remarks>
    </member>
    <member name="M:Rebex.Net.SshSession.#ctor(System.Net.Sockets.Socket)">
      <summary>
            Initializes an instance of the <see cref="T:Rebex.Net.SshSession" /> class with the specified base socket.
            </summary>
      <param name="socket">Base socket.</param>
    </member>
    <member name="M:Rebex.Net.SshSession.#ctor(Rebex.Net.ISocket)">
      <summary>
            Initializes an instance of the <see cref="T:Rebex.Net.SshSession" /> class with the specified base socket.
            </summary>
      <param name="socket">Base socket.</param>
    </member>
    <member name="M:Rebex.Net.SshSession.Disconnect">
      <summary>
            Terminates the SSH session.
            </summary>
    </member>
    <member name="M:Rebex.Net.SshSession.Dispose">
      <summary>
            Disposes the <see cref="T:Rebex.Net.SshSession" /> object and the underlying socket object.
            </summary>
    </member>
    <member name="M:Rebex.Net.SshSession.Connect(System.String)">
      <summary>
            Establishes a connection to port 22 of an SSH server.
            </summary>
      <param name="serverName">The server address - either a hostname or a dotted string address.</param>
    </member>
    <member name="M:Rebex.Net.SshSession.Connect(System.String,System.Int32)">
      <summary>
            Establishes a connection to an SSH server.
            </summary>
      <param name="serverName">The server address - either a hostname or a dotted string address.</param>
      <param name="serverPort">The server port (e.g. 22).</param>
    </member>
    <member name="M:Rebex.Net.SshSession.Connect(System.Net.EndPoint)">
      <summary>
            Establishes a connection to an SSH server.
            </summary>
      <param name="remoteEP">An <see cref="T:System.Net.EndPoint" /> that represents the remote device.</param>
    </member>
    <member name="M:Rebex.Net.SshSession.Negotiate">
      <summary>
            Requests and/or performs a key exchange.
            </summary>
    </member>
    <member name="M:Rebex.Net.SshSession.ChangePassword(System.String,System.String,System.String)">
      <summary>
            Changes the specified user's password on the SSH server and authenticates.
            </summary>
      <param name="userName">Username.</param>
      <param name="oldPassword">Old password.</param>
      <param name="newPassword">New password.</param>
      <returns>Password change result.</returns>
    </member>
    <member name="M:Rebex.Net.SshSession.Authenticate(System.String)">
      <summary>
            Authenticates to the SSH server interactively.
            Uses <see cref="E:Rebex.Net.SshSession.AuthenticationRequest" /> to ask for credentials.
            </summary>
      <param name="userName">Username (optional).</param>
    </member>
    <member name="M:Rebex.Net.SshSession.Authenticate(System.String,Rebex.Net.SshPrivateKey)">
      <summary>
            Authenticates to the SSH server using a username and an RSA or DSA private key.
            </summary>
      <param name="userName">Username.</param>
      <param name="privateKey">RSA or DSA private key for key-based authentication.</param>
    </member>
    <member name="M:Rebex.Net.SshSession.Authenticate(System.String,Rebex.Net.SshAuthenticationAgent)">
      <summary>
            Authenticates to the SSH server using a username and a private key that is stored in <paramref name="sshAuthenticationAgent" />.
            </summary>
      <param name="userName">Username.</param>
      <param name="sshAuthenticationAgent">An instance of the <see cref="T:Rebex.Net.SshAuthenticationAgent" /> that holds a private key for key-based authentication.</param>
      <seealso cref="P:Rebex.Net.SshAuthenticationAgent.OpenSshAgent" />
      <seealso cref="P:Rebex.Net.SshAuthenticationAgent.Pageant" />
      <seealso cref="P:Rebex.Net.SshAuthenticationAgent.LegacyPageant" />
    </member>
    <member name="M:Rebex.Net.SshSession.Authenticate(System.String,System.String)">
      <summary>
            Authenticates to the SSH server using a username and password.
            </summary>
      <param name="userName">Username.</param>
      <param name="password">Password.</param>
    </member>
    <member name="M:Rebex.Net.SshSession.Authenticate(System.String,System.String,Rebex.Net.SshPrivateKey)">
      <summary>
            Authenticates to the SSH server using a username and an RSA or DSA private key and a password.
            </summary>
      <param name="userName">Username.</param>
      <param name="password">Password.</param>
      <param name="privateKey">RSA or DSA private key for key-based authentication.</param>
      <remarks>This method is supported by GlobalScape SFTP server.</remarks>
    </member>
    <member name="M:Rebex.Net.SshSession.Authenticate(System.String,System.String,Rebex.Net.SshAuthenticationAgent)">
      <summary>
             Authenticates to the SSH server using a username and an RSA or DSA private key and a password.
             </summary>
      <param name="userName">Username.</param>
      <param name="password">Password.</param>
      <param name="sshAuthenticationAgent">An instance of the <see cref="T:Rebex.Net.SshAuthenticationAgent" /> that holds a private key for key-based authentication.
            </param>
      <remarks>This method is supported by GlobalScape SFTP server.</remarks>
      <seealso cref="P:Rebex.Net.SshAuthenticationAgent.OpenSshAgent" />
      <seealso cref="P:Rebex.Net.SshAuthenticationAgent.Pageant" />
      <seealso cref="P:Rebex.Net.SshAuthenticationAgent.LegacyPageant" />
    </member>
    <member name="M:Rebex.Net.SshSession.Authenticate(Rebex.Net.SshGssApiCredentials)">
      <summary>
            Authenticates to the server using GSSAPI.
            Kerberos is only supported on Mono.
            NTLM is supported on Windows and partially on Mono.
            </summary>
      <param name="credentials">Credentials.</param>
    </member>
    <member name="M:Rebex.Net.SshSession.OpenChannel(Rebex.Net.SshChannelType,System.Int32)">
      <summary>
            Opens an SSH channel of the specified type.
            </summary>
      <param name="type">Channel type.</param>
      <param name="bufferSize">Buffer size.</param>
      <returns>SSH channel.</returns>
    </member>
    <member name="M:Rebex.Net.SshSession.OpenSession">
      <summary>
            Opens an SSH session channel.
            </summary>
      <returns>SSH channel.</returns>
    </member>
    <member name="M:Rebex.Net.SshSession.OpenTcpIpTunnel(System.Net.IPEndPoint)">
      <summary>
            Opens an outgoing TCP/IP tunnel to the specified remote endpoint.
            </summary>
      <param name="remoteEP">Remote endpoint.</param>
      <returns>SSH channel.</returns>
    </member>
    <member name="M:Rebex.Net.SshSession.OpenTcpIpTunnel(System.String,System.Int32)">
      <summary>
            Opens an outgoing TCP/IP tunnel to the specified remote endpoint.
            </summary>
      <param name="hostname">Hostname.</param>
      <param name="port">Port.</param>
      <returns>SSH channel.</returns>
    </member>
    <member name="M:Rebex.Net.SshSession.KeepAlive">
      <summary>
            Sends an SSH_MSG_IGNORE packet to the server.
            </summary>
    </member>
    <member name="M:Rebex.Net.SshSession.StartTcpIpForward(System.String,System.Int32)">
      <summary>
            Starts incoming TCP/IP tunnel on the specified IP address and port at the SSH server.
            </summary>
      <param name="address">Remote IP address to bind to. Most SSH installations only allow 127.0.0.1.</param>
      <param name="port">Remote port to bind to. Set this to 0 to get a random port automatically.</param>
      <returns>A forwarding handle.</returns>
    </member>
    <member name="M:Rebex.Net.SshSession.StopTcpIpForward(Rebex.Net.SshForwardingHandle)">
      <summary>
            Stops an incoming TCP/IP tunnel.
            </summary>
      <param name="handle">Incoming tunnel handle returned by <see cref="M:Rebex.Net.SshSession.StartTcpIpForward(System.String,System.Int32)" />.</param>
      <returns>A forwarding handle.</returns>
    </member>
    <member name="M:Rebex.Net.SshSession.AcceptTcpIpForward(Rebex.Net.SshForwardingHandle,System.Int32)">
      <summary>
            Accepts a forwarded incoming connection.
            </summary>
      <param name="handle">Incoming tunnel handle returned by <see cref="M:Rebex.Net.SshSession.StartTcpIpForward(System.String,System.Int32)" />.</param>
      <param name="timeout">
            Specifies an amount of time (in milliseconds) to wait for incoming connections. Use -1 to specify an infinite time and 1 to just return
            as soon as the current queue status is checked, or a higher value to wait for the specified amount of time.
            </param>
      <returns>SSH channel.</returns>
    </member>
    <member name="M:Rebex.Net.SshSession.AcceptTcpIpForward(Rebex.Net.SshForwardingHandle)">
      <summary>
            Accepts a forwarded incoming connection. If there is no incoming connection in the queue, waits indefinitely.
            </summary>
      <param name="handle">Incoming tunnel handle returned by <see cref="M:Rebex.Net.SshSession.StartTcpIpForward(System.String,System.Int32)" />.</param>
      <returns>SSH channel.</returns>
    </member>
    <member name="M:Rebex.Net.SshSession.ToSocketFactory">
      <summary>
            Gets a socket factory that creates socket tunneled through this SSH session.
            </summary>
      <returns>A socket factory.</returns>
    </member>
    <member name="T:Rebex.Net.SslMode">
      <summary>
            Specifies TLS/SSL security mode.
            </summary>
    </member>
    <member name="F:Rebex.Net.SslMode.None">
      <summary>
            Unsecured connection. No TLS/SSL.
            </summary>
    </member>
    <member name="F:Rebex.Net.SslMode.Implicit">
      <summary>
            Implicitly secured TLS/SSL connection.
            </summary>
    </member>
    <member name="F:Rebex.Net.SslMode.Explicit">
      <summary>
            Explicitly secured TLS/SSL connection.
            </summary>
    </member>
    <member name="T:Rebex.Net.SslRenegotiationMode">
      <summary>
            Specifies TLS/SSL renegotiation mode for TLS 1.2 or lower.
            </summary>
    </member>
    <member name="F:Rebex.Net.SslRenegotiationMode.Disabled">
      <summary>
            Server-initiated renegotiation is disabled.
            </summary>
    </member>
    <member name="F:Rebex.Net.SslRenegotiationMode.Enabled">
      <summary>
            Server-initiated renegotiation is enabled. Both secure and legacy modes are allowed.
            </summary>
    </member>
    <member name="F:Rebex.Net.SslRenegotiationMode.SecureOnly">
      <summary>
            Server-initiated renegotiation is enabled as long as the server supports and uses Renegotiation Indication Extension (RFC 5746).
            </summary>
    </member>
    <member name="T:Rebex.Net.SslSettings">
      <summary>
            Specifies various client-side TLS/SSL settings.
            </summary>
    </member>
    <member name="M:Rebex.Net.SslSettings.ToParameters">
      <summary>
            Gets an instance of <see cref="T:Rebex.Net.TlsParameters" /> corresponding to these settings.
            </summary>
      <returns>TLS/SSL parameters.</returns>
    </member>
    <member name="M:Rebex.Net.SslSettings.#ctor">
      <summary>
            Creates an instance of SslSettings.
            </summary>
    </member>
    <member name="P:Rebex.Net.SslSettings.SslAcceptAllCertificates">
      <summary>
            Specifies whether to accept all server certificates by default. This is strongly discouraged in production environment.
            </summary>
    </member>
    <member name="P:Rebex.Net.SslSettings.SslAllowedVersions">
      <summary>
            Gets or sets allowed TLS/SSL versions.
            </summary>
    </member>
    <member name="P:Rebex.Net.SslSettings.SslServerName">
      <summary>
            Gets or sets TLS/SSL server's common name.
            </summary>
    </member>
    <member name="M:Rebex.Net.SslSettings.GetPreferredSuites">
      <summary>
            Gets collection of TLS cipher suites that are used (in given order) in preference to the remaining suites
            specified by <see cref="P:Rebex.Net.SslSettings.SslAllowedSuites" />.
            Only applies to TLS 1.2 or earlier. For TLS 1.3, use <see cref="M:Rebex.Net.SslSettings.GetSymmetricCipherSuites" /> method.
            </summary>
      <return>May be empty.</return>
    </member>
    <member name="M:Rebex.Net.SslSettings.SetPreferredSuites(Rebex.Net.TlsCipherSuite[])">
      <summary>
            Sets TLS cipher suites to be used in preference to the remaining suites
            specified by <see cref="P:Rebex.Net.SslSettings.SslAllowedSuites" />.
            Only applies to TLS 1.2 or earlier. For TLS 1.3, use <see cref="M:Rebex.Net.SslSettings.SetSymmetricCipherSuites(Rebex.Net.TlsSymmetricCipherSuite[])" /> method.
            </summary>
      <param name="suites">Preferred cipher suites, in order of preference.</param>
    </member>
    <member name="P:Rebex.Net.SslSettings.SslAllowedSuites">
      <summary>
            Gets or sets the group of allowed TLS/SSL cipher suites.
            </summary>
    </member>
    <member name="M:Rebex.Net.SslSettings.SetSymmetricCipherSuites(Rebex.Net.TlsSymmetricCipherSuite[])">
      <summary>
            Specifies a list of allowed symmetric cipher suites for TLS 1.3 and their order.
            For TLS 1.2 and lower, use <see cref="P:Rebex.Net.SslSettings.SslAllowedSuites" /> property instead.
            </summary>
    </member>
    <member name="M:Rebex.Net.SslSettings.GetSymmetricCipherSuites">
      <summary>
            Gets an enumeration of allowed symmetric cipher suites for TLS 1.3 and their order.
            See <see cref="M:Rebex.Net.SslSettings.SetSymmetricCipherSuites(Rebex.Net.TlsSymmetricCipherSuite[])" /> for more info.
            </summary>
      <returns>List of encryption algorithm IDs.</returns>
    </member>
    <member name="M:Rebex.Net.SslSettings.SetNamedGroups(Rebex.Net.TlsNamedGroup[])">
      <summary>
            Sets allowed named groups, in order of preference, for TLS 1.3.
            </summary>
      <param name="namedGroups">Allowed named groups.</param>
      <exception cref="T:System.ArgumentNullException">The <paramref name="namedGroups" /> is null.</exception>
      <exception cref="T:System.ArgumentException">
            The <paramref name="namedGroups" /> array contains null (Nothing in VB) item or
            the <paramref name="namedGroups" /> array has duplicates.
            </exception>
      <seealso cref="T:Rebex.Net.TlsNamedGroup" />
    </member>
    <member name="M:Rebex.Net.SslSettings.GetNamedGroups">
      <summary>
            Returns an enumerator that yields allowed named groups, in order of preference, for TLS 1.3.
            </summary>
      <returns>An enumerator that yields allowed named groups, in order of preference, for TLS 1.3.</returns>
      <seealso cref="T:Rebex.Net.TlsNamedGroup" />
    </member>
    <member name="M:Rebex.Net.SslSettings.SetPskKeyExchangeModes(Rebex.Net.TlsPskKeyExchangeMode[])">
      <summary>
            Sets allowed pre-shared key exchange modes for TLS 1.3.
            </summary>
      <param name="pskKeyExchangeModes">Allowed pre-shared key exchange modes.</param>
      <exception cref="T:System.ArgumentNullException">The <paramref name="pskKeyExchangeModes" /> is null.</exception>
      <exception cref="T:System.ArgumentException">
            The <paramref name="pskKeyExchangeModes" /> array contains null (Nothing in VB) item or
            the <paramref name="pskKeyExchangeModes" /> array has duplicates.
            </exception>
      <seealso cref="T:Rebex.Net.TlsPskKeyExchangeMode" />
      <remarks>
        <p>This setting is applied only to the 'client' side of the TLS connection.</p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.SslSettings.GetPskKeyExchangeModes">
      <summary>
            Returns an enumerator that yields allowed pre-shared key exchange modes for TLS 1.3.
            </summary>
      <returns>An enumerator that yields allowed pre-shared key exchange modes for TLS 1.3.</returns>
      <seealso cref="T:Rebex.Net.TlsPskKeyExchangeMode" />
    </member>
    <member name="M:Rebex.Net.SslSettings.SetSignatureSchemes(Rebex.Net.TlsSignatureScheme[])">
      <summary>
            Sets allowed signature schemes in order of preference.
            </summary>
      <param name="signatureSchemes">Allowed named groups.</param>
      <exception cref="T:System.ArgumentNullException">The <paramref name="signatureSchemes" /> is null.</exception>
      <exception cref="T:System.ArgumentException">
            The <paramref name="signatureSchemes" /> array contains null (Nothing in VB) item or
            the <paramref name="signatureSchemes" /> array has duplicates.
            </exception>
      <seealso cref="T:Rebex.Net.TlsSignatureScheme" />
    </member>
    <member name="M:Rebex.Net.SslSettings.GetSignatureSchemes">
      <summary>
            Returns an enumerator that yields allowed signature schemes in order of preference.
            </summary>
    </member>
    <member name="P:Rebex.Net.SslSettings.SslAllowedCurves">
      <summary>
            Gets or sets the group of allowed elliptic curves (for ECDHE cipher suites).
            </summary>
    </member>
    <member name="P:Rebex.Net.SslSettings.SslAllowVulnerableSuites">
      <summary>
            Gets or sets a value indicating whether vulnerable ciphers
            might be enabled using <see cref="P:Rebex.Net.SslSettings.SslAllowedSuites" /> property.
            </summary>
    </member>
    <member name="P:Rebex.Net.SslSettings.SslDoNotInsertEmptyFragment">
      <summary>
            Do not send empty record after successful handshake with CBC ciphers.
            </summary>
      <remarks>For compatibility with broken implementations. Enabling this makes CBC ciphers vulnerable to exploits.</remarks>
    </member>
    <member name="P:Rebex.Net.SslSettings.SslRenegotiationExtensionEnabled">
      <summary>
            Enables or disables renegotiation indication extension.
            This option is deprecated, please use <see cref="P:Rebex.Net.SslSettings.SslRenegotiationMode" /> instead.
            </summary>
    </member>
    <member name="P:Rebex.Net.SslSettings.SslRenegotiationMode">
      <summary>
            Sets allowed renegotiation mode.
            </summary>
    </member>
    <member name="P:Rebex.Net.SslSettings.SslExtendedMasterSecretEnabled">
      <summary>
            Enables or disables extended master secret extension.
            </summary>
    </member>
    <member name="P:Rebex.Net.SslSettings.SslServerNameIndicationEnabled">
      <summary>
            Enables and disables server name indication.
            </summary>
    </member>
    <member name="P:Rebex.Net.SslSettings.SslServerCertificateVerifier">
      <summary>
            Gets or sets TLS/SSL server certificate verifier.
            </summary>
    </member>
    <member name="P:Rebex.Net.SslSettings.SslClientCertificateRequestHandler">
      <summary>
            Gets or sets TLS/SSL client certificate request handler.
            </summary>
    </member>
    <member name="P:Rebex.Net.SslSettings.SslMinimumDiffieHellmanKeySize">
      <summary>
            Gets or sets the minimum allowed size (in bits) of the ephemeral Diffie-Hellman prime.
            Valid values are from 512 to 16384, inclusive.
            </summary>
      <remarks>
            To prevent Logjam attack on Diffie-Hellman key exchange, set this to 2048.
            </remarks>
    </member>
    <member name="P:Rebex.Net.SslSettings.SslSession">
      <summary>
            Gets or sets a TLS/SSL session to resume.
            </summary>
    </member>
    <member name="P:Rebex.Net.SslSettings.SslServerCertificateValidationOptions">
      <summary>
            Gets or sets validation options to use when validating a server certificate using the default certificate validator.
            This value is passed as <see cref="P:Rebex.Net.SslCertificateValidationEventArgs.Options" /> as well.
            </summary>
    </member>
    <member name="P:Rebex.Net.SslSettings.SslStrictKeyUsageValidation">
      <summary>
            Gets or sets a key usage check mode for server certificate.
            </summary>
      <remarks>
        <table>
          <tr>
            <td>Relaxed (default):</td>
            <td>Check 'Extended Key Usage' extension (2.5.29.37). If not present, check 'Key Usage' extension (2.5.29.15).</td>
          </tr>
          <tr>
            <td>Strict:</td>
            <td>If present, check both 'Extended Key Usage' extension (2.5.29.37) and 'Key Usage' extension (2.5.29.15).</td>
          </tr>
        </table>
        <table>
          <tr>
            <td>Extended Key Usage check:</td>
            <td>If present, usage must contain ServerAuthentication or AnyPurpouse.</td>
          </tr>
          <tr>
            <td>Key Usage check:</td>
            <td>If present, usage must contain KeyAgreement or KeyEncipherment or DigitalSignature.</td>
          </tr>
        </table>
      </remarks>
    </member>
    <member name="P:Rebex.Net.SslSettings.SslChannelBindingEnabled">
      <summary>
            Enables or disables secure channel binding. Only supported on Windows.
            </summary>
    </member>
    <member name="P:Rebex.Net.SslSettings.SslEnableSilentClosure">
      <summary>
            Enables or disables the requirement for the other side of the connection to send closure alert (close_notify messages).
            This is in violation of the RFC and potentially opens the communication to truncation attack,
            but unfortunately it's needed when communicating with some broken TLS servers.
            When set to null, a behavior suitable for the application protocol is used, depending o whether the protocol is self-terminated.
            Only applies to TLS 1.2 or lower.
            </summary>
    </member>
    <member name="P:Rebex.Net.SslSettings.UseDefaultDomain">
      <summary>
            Specifies whether to use default domain or NULL domain for SSPI if domain not specified.
            </summary>
    </member>
    <member name="T:Rebex.Net.SslCertificateValidationEventArgs">
      <summary>
            Provides data for custom server certificate check events.
            </summary>
    </member>
    <member name="P:Rebex.Net.SslCertificateValidationEventArgs.Socket">
      <summary>
            Gets the socket that needs certificate verification.
            </summary>
    </member>
    <member name="P:Rebex.Net.SslCertificateValidationEventArgs.ServerName">
      <summary>
            Gets the common name of the server.
            </summary>
    </member>
    <member name="P:Rebex.Net.SslCertificateValidationEventArgs.CertificateChain">
      <summary>
            Gets the whole certificate chain to be validated.
            </summary>
    </member>
    <member name="P:Rebex.Net.SslCertificateValidationEventArgs.Certificate">
      <summary>
            Gets the server certificate to be validated.
            </summary>
    </member>
    <member name="P:Rebex.Net.SslCertificateValidationEventArgs.Options">
      <summary>
            Gets custom-specified validation options (set using <see cref="P:Rebex.Net.SslSettings.SslServerCertificateValidationOptions" /> property).
            </summary>
    </member>
    <member name="P:Rebex.Net.SslCertificateValidationEventArgs.Result">
      <summary>
            Gets validation result.
            </summary>
    </member>
    <member name="M:Rebex.Net.SslCertificateValidationEventArgs.Accept">
      <summary>
            Accepts the certificate.
            </summary>
    </member>
    <member name="M:Rebex.Net.SslCertificateValidationEventArgs.Reject">
      <summary>
            Rejects the certificate.
            </summary>
    </member>
    <member name="M:Rebex.Net.SslCertificateValidationEventArgs.Reject(Rebex.Net.TlsCertificateAcceptance)">
      <summary>
            Rejects the certificate.
            </summary>
      <param name="reason">Rejection reason.</param>
    </member>
    <member name="M:Rebex.Net.SslCertificateValidationEventArgs.Reject(Rebex.Security.Certificates.ValidationStatus)">
      <summary>
            Rejects the certificate.
            </summary>
      <param name="status">Validation status.</param>
    </member>
    <member name="M:Rebex.Net.SslCertificateValidationEventArgs.#ctor(Rebex.Net.TlsSocket,System.String,Rebex.Security.Certificates.CertificateChain)">
      <summary>
            Creates an instance of <see cref="T:Rebex.Net.SslCertificateValidationEventArgs" /> object.
            </summary>
      <param name="socket">The socket that needs the certificate verification.</param>
      <param name="serverName">Common name of the server.</param>
      <param name="certificateChain">Certificate chain to be validated.</param>
    </member>
    <member name="T:Rebex.Net.ICertificateVerifier">
      <summary>
            Defines an interface for a certificate verifiers used to verify TLS/SSL server certificates.
            The <see cref="T:Rebex.Net.CertificateVerifier" /> class provides several common verifiers.
            </summary>
    </member>
    <member name="M:Rebex.Net.ICertificateVerifier.Verify(Rebex.Net.TlsSocket,System.String,Rebex.Security.Certificates.CertificateChain)">
      <summary>
            Validates a certificate.
            </summary>
      <param name="socket">The socket that needs the certificate verification.</param>
      <param name="commonName">Common name of the server.</param>
      <param name="certificateChain">Certificate chain to be validated.</param>
      <returns>True to accept the chain, False to reject.</returns>
    </member>
    <member name="T:Rebex.Net.ICertificateRequestHandler">
      <summary>
            Defines an interface for a certificate request handlers used to select a client certificate to be used to authenticate to a TLS/SSL server.
            The <see cref="T:Rebex.Net.CertificateRequestHandler" /> class provides several common verifiers.
            </summary>
    </member>
    <member name="M:Rebex.Net.ICertificateRequestHandler.Request(Rebex.Net.TlsSocket,Rebex.Security.Certificates.DistinguishedName[])">
      <summary>
            Called by an instance of <see cref="T:Rebex.Net.TlsSocket" /> when the TLS/SSL server requests client certificate authentication.
            </summary>
      <param name="socket">The socket that needs the certificate verification.</param>
      <param name="issuers">A list of acceptable certificate issuers.</param>
      <returns>Certificate chain representing the client certificate, or <code>null</code> if the client does not wish to (or cannot) authenticate using a certificate.</returns>
    </member>
    <member name="T:Rebex.Net.CertificateVerifier">
      <summary>
            Provides a set of common verifiers.
            </summary>
    </member>
    <member name="F:Rebex.Net.CertificateVerifier.AcceptAll">
      <summary>
            A verifier that accepts all certificates - no verification is done.
            </summary>
      <remarks>This is very insecure. Only use this during debugging.</remarks>
    </member>
    <member name="F:Rebex.Net.CertificateVerifier.Default">
      <summary>
            Default verifier. Recommended.
            </summary>
      <remarks>Uses current certificate engine to validate the certificate chain.</remarks>
    </member>
    <member name="T:Rebex.Net.CertificateRequestHandler">
      <summary>
            Provides a set of common certificate request handlers.
            </summary>
    </member>
    <member name="F:Rebex.Net.CertificateRequestHandler.NoCertificate">
      <summary>
            A certificate request handler that selects no certificate.
            </summary>
      <remarks>Use this if you don't want to authenticate using the client certificate.</remarks>
    </member>
    <member name="F:Rebex.Net.CertificateRequestHandler.StoreSearch">
      <summary>
            Intelligent certificate request handler. Recommended for non-GUI applications.
            </summary>
      <remarks>Uses the SSPI provider to select a first suitable certificate found in user's certificate store.</remarks>
    </member>
    <member name="M:Rebex.Net.CertificateRequestHandler.CreateRequestHandler(Rebex.Security.Certificates.CertificateChain)">
      <summary>
            A certificate request handler that returns the certificate specified by the supplied chain.
            </summary>
      <param name="certificateChain">Certificate chain with an associated private key.</param>
      <returns>A new instance of ICertificateRequestHandler.</returns>
    </member>
    <member name="M:Rebex.Net.CertificateRequestHandler.CreateRequestHandler(Rebex.Security.Certificates.Certificate,Rebex.Security.Certificates.CertificateChainEngine)">
      <summary>
            A certificate request handler that returns the specified certificate.
            </summary>
      <param name="certificate">Certificate with an associated private key.</param>
      <param name="engine">Certificate chain engine to use to build a certificate chain.</param>
      <returns>A new instance of ICertificateRequestHandler.</returns>
    </member>
    <member name="M:Rebex.Net.CertificateRequestHandler.CreateRequestHandler(Rebex.Security.Certificates.Certificate)">
      <summary>
            A certificate request handler that returns the specified certificate.
            </summary>
      <param name="certificate">Certificate with an associated private key.</param>
      <returns>A new instance of ICertificateRequestHandler.</returns>
    </member>
    <member name="T:Rebex.Net.TlsCertificateChainMode">
      <summary>
            Specifies which certificates from the supplied certificate chain to send to the other side.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsCertificateChainMode.WithoutRoot">
      <summary>
            All certificates except the root certificate (default).
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsCertificateChainMode.LeafOnly">
      <summary>
            Only leaf certificate.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsCertificateChainMode.SuppliedChain">
      <summary>
            All certificates in the supplied chain.
            </summary>
    </member>
    <member name="T:Rebex.Net.TlsCipher">
      <summary>
            Represents a TLS/SSL cipher.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsCipher.CipherAlgorithm">
      <summary>
            Gets the active cipher algorithm.
            </summary>
      <value>Active cipher algorithm.</value>
    </member>
    <member name="P:Rebex.Net.TlsCipher.CipherMode">
      <summary>
            Gets the active cipher mode.
            </summary>
      <value>Active cipher mode.</value>
    </member>
    <member name="P:Rebex.Net.TlsCipher.MacAlgorithm">
      <summary>
            Gets the active message authentication code (MAC) algorithm.
            </summary>
      <value>Active MAC algorithm.</value>
    </member>
    <member name="P:Rebex.Net.TlsCipher.Cbc">
      <summary>
            Gets the value indicating whether the cipher is a block cipher in CBC mode.
            </summary>
      <value>true if block cipher, false if stream cipher.</value>
    </member>
    <member name="P:Rebex.Net.TlsCipher.KeyMaterialSize">
      <summary>
            Gets the size of key material.
            </summary>
      <value>Size of key material.</value>
    </member>
    <member name="P:Rebex.Net.TlsCipher.KeySize">
      <summary>
            Gets the key size.
            </summary>
      <value>Key size.</value>
    </member>
    <member name="P:Rebex.Net.TlsCipher.EffectiveKeySize">
      <summary>
            Gets the effective key size.
            </summary>
      <value>Effective key size.</value>
    </member>
    <member name="P:Rebex.Net.TlsCipher.BlockSize">
      <summary>
            Gets the cipher's block size.
            </summary>
      <value>Block size.</value>
    </member>
    <member name="P:Rebex.Net.TlsCipher.MacSize">
      <summary>
            Gets the MAC algorithm block size.
            </summary>
      <value>MAC algorithm block size.</value>
    </member>
    <member name="P:Rebex.Net.TlsCipher.Exportable">
      <summary>
            Gets the value indicating whether the cipher is exportable.
            </summary>
      <value>true if exportable, false if not exportable.</value>
    </member>
    <member name="P:Rebex.Net.TlsCipher.Protocol">
      <summary>
            Gets the active protocol version.
            </summary>
      <value>The active protocol version.</value>
    </member>
    <member name="P:Rebex.Net.TlsCipher.KeyExchangeAlgorithm">
      <summary>
            Gets the selected key exchange algorithm.
            </summary>
      <value>Selected key exchange algorithm.</value>
    </member>
    <member name="P:Rebex.Net.TlsCipher.Suite">
      <summary>
            Returns the cipher suite ID.
            </summary>
      <value>Cipher suite ID.</value>
    </member>
    <member name="M:Rebex.Net.TlsCipher.ToString">
      <summary>
            Returns a description of the cipher.
            </summary>
      <returns>Description of the cipher.</returns>
    </member>
    <member name="T:Rebex.Net.TlsException">
      <summary>
            The exception that is thrown when a TLS/SSL error occurs.
            </summary>
    </member>
    <member name="M:Rebex.Net.TlsException.#ctor(System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.TlsException" /> class with the specified error message.
            </summary>
      <param name="message">The message that describes the error.</param>
    </member>
    <member name="M:Rebex.Net.TlsException.#ctor(System.String,System.Exception)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.TlsException" /> class with the specified error message
            and a reference to the inner exception that is the cause of this exception.
            </summary>
      <param name="message">The message that describes the error.</param>
      <param name="inner">The exception that is the cause of the current exception.</param>
    </member>
    <member name="T:Rebex.Net.TlsNamedGroup">
      <summary>
            Represents TLS 1.3 named group. Named groups are used for key exchange in TLS handshake.
            Allowed named groups can be set using the <see cref="M:Rebex.Net.TlsParameters.SetNamedGroups(Rebex.Net.TlsNamedGroup[])" /> method.
            </summary>
      <remarks>
            Named groups are sent during the TLS handshake in the 'supported_groups' extension,
            and they are also used in the 'key_share' extension.
            <p>
            See <a href="https://datatracker.ietf.org/doc/html/rfc8446#section-4.2.7">section 4.2.7 of RFC 8446</a> for details.
            </p></remarks>
      <seealso cref="M:Rebex.Net.TlsParameters.SetNamedGroups(Rebex.Net.TlsNamedGroup[])" />
      <seealso cref="M:Rebex.Net.TlsParameters.GetNamedGroups" />
      <see cref="P:Rebex.Net.TlsSocket.Parameters" />
    </member>
    <member name="M:Rebex.Net.TlsNamedGroup.#ctor(System.String,System.Boolean)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.TlsNamedGroup" />.
            </summary>
      <param name="name">Named group name.</param>
      <param name="generateKeyShareInClientHello">
            Set the <paramref name="generateKeyShareInClientHello" /> to true to generate
            and send the key share for this instance of the <see cref="T:Rebex.Net.TlsNamedGroup" /> in the ClientHello 'key_share' extension.
            <p>
            Setting the <paramref name="generateKeyShareInClientHello" /> to false may cause additional network round trips between TLS parties.
            </p><p>
            The default value is true.
            </p><p>
            The value of the <paramref name="generateKeyShareInClientHello" />  has no effect on the 'server' side of the TLS connection.
            </p></param>
      <remarks>Predefined named groups are exposed in static (shared in VB) properties declared on this class. See for example <see cref="P:Rebex.Net.TlsNamedGroup.Secp256r1" /> property.</remarks>
      <exception cref="T:System.ArgumentException">The <paramref name="name" /> is invalid.</exception>
    </member>
    <member name="P:Rebex.Net.TlsNamedGroup.IsAvailable">
      <summary>
            Gets the indication whether the named group, which this instance of the <see cref="T:Rebex.Net.TlsNamedGroup" /> represents, is available on the current platform.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsNamedGroup.Name">
      <summary>
            Get the name of the named group.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsNamedGroup.GenerateKeyShareInClientHello">
      <summary>
            Gets the indication whether the <see cref="T:Rebex.Net.TlsSocket" /> generates
            and sends the key share for this instance of the <see cref="T:Rebex.Net.TlsNamedGroup" />
            in the ClientHello 'key_share' extension.
            </summary>
      <seealso cref="M:Rebex.Net.TlsNamedGroup.#ctor(System.String,System.Boolean)" />
    </member>
    <member name="P:Rebex.Net.TlsNamedGroup.Secp256r1">
      <summary>
            Gets the elliptic curve (ECDHE) secp256r1 (NIST P-256) named group.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsNamedGroup.Secp384r1">
      <summary>
            Gets the elliptic curve (ECDHE) secp384r1 (NIST P-384) named group.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsNamedGroup.Secp521r1">
      <summary>
            Gets the elliptic curve (ECDHE) secp521r1 (NIST P-521) named group.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsNamedGroup.X25519">
      <summary>
            Gets the elliptic curve (ECDHE) X25519 (Curve 25519) named group.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsNamedGroup.Ffdhe2048">
      <summary>
            Gets the finite field Diffie-Hellman (DHE) ffdhe2048 named group.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsNamedGroup.Ffdhe3072">
      <summary>
            Gets the finite field Diffie-Hellman (DHE) ffdhe3072 named group.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsNamedGroup.Ffdhe4096">
      <summary>
            Gets the finite field Diffie-Hellman (DHE) fdhe4096 named group.
            </summary>
    </member>
    <member name="M:Rebex.Net.TlsNamedGroup.Equals(Rebex.Net.TlsNamedGroup)">
      <summary>
            Determines whether the specified <paramref name="other" /> is equal to this object.
            </summary>
      <param name="other">The <see cref="T:Rebex.Net.TlsNamedGroup" /> to compare with this object.</param>
      <returns>
        <c>true</c> if the specified <paramref name="other" /> is equal to this object; otherwise, <c>false</c>.
            </returns>
    </member>
    <member name="M:Rebex.Net.TlsNamedGroup.Equals(System.Object)">
      <summary>
            Determines whether the specified <paramref name="obj" /> is equal to this object.
            </summary>
      <param name="obj">The <see cref="T:System.Object" /> to compare with this object.</param>
      <returns>
        <c>true</c> if the specified <paramref name="obj" /> is equal to this object; otherwise, <c>false</c>.
            </returns>
    </member>
    <member name="M:Rebex.Net.TlsNamedGroup.GetHashCode">
      <summary>
            Gets a hash code of this object.
            </summary>
      <returns>
            A hash code of this object.
            </returns>
    </member>
    <member name="M:Rebex.Net.TlsNamedGroup.ToString">
      <summary>
            Returns a string representation of the current <see cref="T:Rebex.Net.TlsNamedGroup" />.
            </summary>
      <returns>A string representation of this instance.</returns>
    </member>
    <member name="T:Rebex.Net.TlsParameters">
      <summary>
            Security parameters.
            </summary>
    </member>
    <member name="M:Rebex.Net.TlsParameters.Clone">
      <summary>
            Returns a shallow copy of the current parameters.
            </summary>
      <returns>A shallow copy of current parameters.</returns>
    </member>
    <member name="P:Rebex.Net.TlsParameters.Version">
      <summary>
            Gets or sets the allowed protocol versions.
            </summary>
      <value>Allowed protocol versions.</value>
    </member>
    <member name="P:Rebex.Net.TlsParameters.AllowDeprecatedVersions">
      <summary>
            Gets or sets a value indicating whether deprecated versions of TLS/SSL protocol
            might be enabled using the <see cref="P:Rebex.Net.TlsParameters.Version" /> property.
            Currently deprecated versions: SSL 3.0.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsParameters.Entity">
      <summary>
            Gets or sets the entity of a socket.
            </summary>
      <value>Connection entity.</value>
    </member>
    <member name="P:Rebex.Net.TlsParameters.Options">
      <summary>
            Gets or sets the connection options.
            </summary>
      <value>Connection options.</value>
    </member>
    <member name="P:Rebex.Net.TlsParameters.AllowVulnerableSuites">
      <summary>
            Gets or sets a value indicating whether vulnerable ciphers
            might be enabled using <see cref="P:Rebex.Net.TlsParameters.AllowedSuites" /> property.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsParameters.AllowedSuites">
      <summary>
            Gets or sets the group of allowed cipher suites.
            </summary>
      <value>The group of allowed cipher suites.</value>
    </member>
    <member name="P:Rebex.Net.TlsParameters.AllowedCurves">
      <summary>
            Gets or sets the group of allowed elliptic curves (for ECDHE cipher suites).
            </summary>
      <value>The group of allowed elliptic curves.</value>
    </member>
    <member name="M:Rebex.Net.TlsParameters.SetSymmetricCipherSuites(Rebex.Net.TlsSymmetricCipherSuite[])">
      <summary>
            Specifies a list of allowed symmetric cipher suites for TLS 1.3 and their order.
            For TLS 1.2 and lower, use <see cref="P:Rebex.Net.TlsParameters.AllowedSuites" /> property instead.
            </summary>
    </member>
    <member name="M:Rebex.Net.TlsParameters.GetSymmetricCipherSuites">
      <summary>
            Gets an enumeration of allowed symmetric cipher suites for TLS 1.3 and their order.
            See <see cref="M:Rebex.Net.TlsParameters.SetSymmetricCipherSuites(Rebex.Net.TlsSymmetricCipherSuite[])" /> for more info.
            </summary>
      <returns>List of encryption algorithm IDs.</returns>
    </member>
    <member name="M:Rebex.Net.TlsParameters.GetPskKeyExchangeModes">
      <summary>
            Returns an enumerator that yields allowed pre-shared key exchange modes for TLS 1.3.
            </summary>
      <returns>An enumerator that yields allowed pre-shared key exchange modes for TLS 1.3.</returns>
      <seealso cref="T:Rebex.Net.TlsPskKeyExchangeMode" />
    </member>
    <member name="M:Rebex.Net.TlsParameters.SetPskKeyExchangeModes(Rebex.Net.TlsPskKeyExchangeMode[])">
      <summary>
            Sets allowed pre-shared key exchange modes for TLS 1.3.
            </summary>
      <param name="pskKeyExchangeModes">Allowed pre-shared key exchange modes.</param>
      <exception cref="T:System.ArgumentNullException">The <paramref name="pskKeyExchangeModes" /> is null.</exception>
      <exception cref="T:System.ArgumentException">
            The <paramref name="pskKeyExchangeModes" /> array contains null (Nothing in VB) item or
            the <paramref name="pskKeyExchangeModes" /> array has duplicates.
            </exception>
      <seealso cref="T:Rebex.Net.TlsPskKeyExchangeMode" />
      <remarks>
        <p>This setting is applied only to the 'client' side of the TLS connection.</p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.TlsParameters.GetNamedGroups">
      <summary>
            Returns an enumerator that yields allowed named groups, in order of preference, for TLS 1.3.
            </summary>
      <returns>An enumerator that yields allowed named groups, in order of preference, for TLS 1.3.</returns>
      <seealso cref="T:Rebex.Net.TlsNamedGroup" />
    </member>
    <member name="M:Rebex.Net.TlsParameters.SetNamedGroups(Rebex.Net.TlsNamedGroup[])">
      <summary>
            Sets allowed named groups, in order of preference, for TLS 1.3.
            </summary>
      <param name="namedGroups">Allowed named groups.</param>
      <exception cref="T:System.ArgumentNullException">The <paramref name="namedGroups" /> is null.</exception>
      <exception cref="T:System.ArgumentException">
            The <paramref name="namedGroups" /> array contains null (Nothing in VB) item or
            the <paramref name="namedGroups" /> array has duplicates.
            </exception>
      <seealso cref="T:Rebex.Net.TlsNamedGroup" />
    </member>
    <member name="M:Rebex.Net.TlsParameters.GetSignatureSchemes">
      <summary>
            Returns an enumerator that yields allowed signature schemes in order of preference.
            </summary>
    </member>
    <member name="M:Rebex.Net.TlsParameters.SetSignatureSchemes(Rebex.Net.TlsSignatureScheme[])">
      <summary>
            Sets allowed signature schemes in order of preference.
            </summary>
      <param name="signatureSchemes">Allowed named groups.</param>
      <exception cref="T:System.ArgumentNullException">The <paramref name="signatureSchemes" /> is null.</exception>
      <exception cref="T:System.ArgumentException">
            The <paramref name="signatureSchemes" /> array contains null (Nothing in VB) item or
            the <paramref name="signatureSchemes" /> array has duplicates.
            </exception>
      <seealso cref="T:Rebex.Net.TlsSignatureScheme" />
    </member>
    <member name="M:Rebex.Net.TlsParameters.GetPreferredSuites">
      <summary>
            Gets collection of cipher suites that are used (in given order) in preference to the remaining suites. Only applies to TLS 1.2 or lower. 
            </summary>
      <return>May be empty but never null.</return>
    </member>
    <member name="M:Rebex.Net.TlsParameters.SetPreferredSuites(Rebex.Net.TlsCipherSuite[])">
      <summary>
            Sets cipher suites to be used in preference to the remaining suites. Only applies to TLS 1.2 or lower.
            </summary>
      <param name="suites">Preferred cipher suites, in order of preference.</param>
    </member>
    <member name="P:Rebex.Net.TlsParameters.CommonName">
      <summary>
            Gets or sets the common name of the server (client side only).
            </summary>
      <value>The common name of the server.</value>
    </member>
    <member name="P:Rebex.Net.TlsParameters.CertificateVerifier">
      <summary>
            Gets or sets the certificate verifier. 
            </summary>
      <value>The certificate verifier.</value>
      <remarks>Verifier is used for verifying the server's or client's certificate.</remarks>
    </member>
    <member name="P:Rebex.Net.TlsParameters.Certificate">
      <summary>
            Gets or sets the certificate to be used (server side only).
            </summary>
      <value>The certificate to be used.</value>
      <remarks>
        <p>
            This is only used to set the server certificate.
            </p>
        <p>
            For client sockets, use <see cref="P:Rebex.Net.TlsParameters.CertificateRequestHandler" /> to handle certificate requests.
            </p>
        <p>
            This certificate will be used to sign data, so it must have a private key associated.
            </p>
      </remarks>
    </member>
    <member name="P:Rebex.Net.TlsParameters.CertificateRequestHandler">
      <summary>
            Gets or sets the client certificate request handler. 
            </summary>
      <value>The client certificate request handler.</value>
      <remarks>
        <p>
            This is only used by client sockets.
            </p>
        <p>
            When a server requests a client to send a certificate,
            this will be used to select the appropriate client certificate.
            </p>
        <p>
            Default value is <see cref="F:Rebex.Net.CertificateRequestHandler.NoCertificate" />.
            You might want to use <see cref="F:Rebex.Net.CertificateRequestHandler.StoreSearch" /> if
            client authentication is needed.
            </p>
      </remarks>
    </member>
    <member name="P:Rebex.Net.TlsParameters.Session">
      <summary>
            Gets or sets the session to resume (client side only).
            </summary>
      <value>The session to resume.</value>
    </member>
    <member name="P:Rebex.Net.TlsParameters.AcceptableAuthorities">
      <summary>
            Gets or sets the list of acceptable certificate authorities (server side only).
            </summary>
      <value>The list of acceptable certificate authorities.</value>
      <remarks>
            This is only used by server sockets.
            </remarks>
    </member>
    <member name="P:Rebex.Net.TlsParameters.CertificatePolicy">
      <summary>
            Gets or sets the certificate policy for server sockets.
            </summary>
      <value>The certificate policy.</value>
      <remarks>
            This is only used by server sockets.
            </remarks>
    </member>
    <member name="P:Rebex.Net.TlsParameters.EphemeralDiffieHellmanParameters">
      <summary>
            Gets or sets the ephemeral Diffie-Hellman parameters for
            DHE key exchange on server sockets.
            </summary>
      <value>The ephemeral Diffie-Hellman parameters.</value>
      <remarks>
        <p>
            This is only used by server sockets.
            </p>
        <p>
            Only P and G parameters are used.
            </p>
      </remarks>
    </member>
    <member name="P:Rebex.Net.TlsParameters.MinimumDiffieHellmanKeySize">
      <summary>
            Gets or sets the minimum allowed size (in bits) of the ephemeral Diffie-Hellman prime.
            Valid values are from 512 to 16384, inclusive (client side only).
            </summary>
      <remarks>
            This is only used by client sockets.
            </remarks>
    </member>
    <member name="P:Rebex.Net.TlsParameters.TemporaryRSAParameters">
      <summary>
            Gets or sets the temporary RSA key parameters for RSA_EXPORT
            key exchange on server sockets with certificates with key length &gt;512.
            </summary>
      <value>The ephemeral Hellman-Diffie parameters.</value>
      <remarks>
        <p>
            This is only used by server sockets.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.TlsParameters.SetApplicationLayerProtocols(System.String[])">
      <summary>
            Sets supported application protocols for the Application-Layer Protocol Negotiation (ALPN) extension in the ClientHello message.
            <para>
            Default value is an empty string array - an Application-Layer Protocol Negotiation extension is NOT send in the ClientHello message.
            </para></summary>
    </member>
    <member name="M:Rebex.Net.TlsParameters.GetApplicationLayerProtocols">
      <summary>
            Gets supported application protocols for the Application-Layer Protocol Negotiation (ALPN) extension in the ClientHello message.
            <para>
            Default value is an empty string array - an Application-Layer Protocol Negotiation extension is NOT send in the ClientHello message.
            </para></summary>
    </member>
    <member name="M:Rebex.Net.TlsParameters.#ctor">
      <summary>
            Initializes a new instance of TlsParameters with default parameters.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsParameters.CertificateChainMode">
      <summary>
            Specifies how to send supplied certificate chains to the other side.
            </summary>
    </member>
    <member name="T:Rebex.Net.TlsPskKeyExchangeMode">
      <summary>
            Represents TLS 1.3 pre-shared key exchange modes.
            Pre-shared key exchange modes can be set using the <see cref="M:Rebex.Net.TlsParameters.SetPskKeyExchangeModes(Rebex.Net.TlsPskKeyExchangeMode[])" /> method.
            </summary>
      <remarks>
        <p>
            Pre-shared key exchange modes are sent during the TLS handshake in the 'psk_key_exchange_modes' extension.
            </p>
        <p>
            See of <a href="https://datatracker.ietf.org/doc/html/rfc8446#section-4.2.9">section 4.2.9 of RFC 8446</a> for details.
            </p>
      </remarks>
      <seealso cref="M:Rebex.Net.TlsParameters.SetPskKeyExchangeModes(Rebex.Net.TlsPskKeyExchangeMode[])" />
      <seealso cref="M:Rebex.Net.TlsParameters.GetPskKeyExchangeModes" />
      <seealso cref="P:Rebex.Net.TlsSocket.Parameters" />
    </member>
    <member name="M:Rebex.Net.TlsPskKeyExchangeMode.#ctor(System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Net.TlsPskKeyExchangeMode" />.
            </summary>
      <param name="name">Pre-shared key exchange mode name.</param>
      <remarks>
            Predefined key exchange modes are exposed in static (shared in VB) properties declared on this class.
            See <see cref="P:Rebex.Net.TlsPskKeyExchangeMode.Psk_dhe_ke" /> and <see cref="P:Rebex.Net.TlsPskKeyExchangeMode.Psk_ke" /> properties.
            </remarks>
      <exception cref="T:System.ArgumentException">The <paramref name="name" /> is invalid.</exception>
    </member>
    <member name="P:Rebex.Net.TlsPskKeyExchangeMode.Name">
      <summary>
            Gets a pre-shared key exchange mode name.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsPskKeyExchangeMode.Psk_ke">
      <summary>
            Gets the instance of <see cref="P:Rebex.Net.TlsPskKeyExchangeMode.PskKeyExchangeMode" /> that represents PSK-only key establishment.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsPskKeyExchangeMode.Psk_dhe_ke">
      <summary>
            Gets the instance of <see cref="P:Rebex.Net.TlsPskKeyExchangeMode.PskKeyExchangeMode" /> that represents PSK with (EC)DHE key establishment.
            </summary>
    </member>
    <member name="M:Rebex.Net.TlsPskKeyExchangeMode.Equals(Rebex.Net.TlsPskKeyExchangeMode)">
      <summary>
            Determines whether the specified <paramref name="other" /> is equal to this object.
            </summary>
      <param name="other">The <see cref="T:Rebex.Net.TlsPskKeyExchangeMode" /> to compare with this object.</param>
      <returns>
        <c>true</c> if the specified <paramref name="other" /> is equal to this object; otherwise, <c>false</c>.
            </returns>
    </member>
    <member name="M:Rebex.Net.TlsPskKeyExchangeMode.Equals(System.Object)">
      <summary>
            Determines whether the specified <paramref name="obj" /> is equal to this object.
            </summary>
      <param name="obj">The <see cref="T:System.Object" /> to compare with this object.</param>
      <returns>
        <c>true</c> if the specified <paramref name="obj" /> is equal to this object; otherwise, <c>false</c>.
            </returns>
    </member>
    <member name="M:Rebex.Net.TlsPskKeyExchangeMode.GetHashCode">
      <summary>
            Gets a hash code of this object.
            </summary>
      <returns>
            A hash code of this object.
            </returns>
    </member>
    <member name="M:Rebex.Net.TlsPskKeyExchangeMode.ToString">
      <summary>
            Returns a string representation of the current <see cref="T:Rebex.Net.TlsPskKeyExchangeMode" />.
            </summary>
      <returns>A string representation of this instance.</returns>
    </member>
    <member name="T:Rebex.Net.TlsSession">
      <summary>
            Represents a cached TLS/SSL session.
            </summary>
    </member>
    <member name="M:Rebex.Net.TlsSession.ToString">
      <summary>
            Returns a string representation of the current <see cref="T:Rebex.Net.TlsSession" />.
            </summary>
      <returns>A string representation of this instance.</returns>
    </member>
    <member name="T:Rebex.Net.TlsSignatureScheme">
      <summary>
            Uniformly represents TLS 1.3 'signature scheme' and TLS 1.2 'signature algorithm'.
            Signature schemes can be set using the <see cref="M:Rebex.Net.TlsParameters.SetSignatureSchemes(Rebex.Net.TlsSignatureScheme[])" /> method.
            </summary>
      <remarks>
        <p>
            Signature schemes are sent during the TLS handshake in the 'signature_algorithms' extension.
            </p>
        <p>
            See <a href="https://datatracker.ietf.org/doc/html/rfc8446#section-4.2.3">section 4.2.3 of RFC 8446</a> for details (TLS 1.3).
            </p>
        <p>
            See <a href="https://datatracker.ietf.org/doc/html/rfc5246#section-7.4.1.4.1">section 7.4.1.4.1 of RFC 5246</a> for details (TLS 1.2).
            </p>
      </remarks>
      <seealso cref="M:Rebex.Net.TlsParameters.SetSignatureSchemes(Rebex.Net.TlsSignatureScheme[])" />
      <seealso cref="M:Rebex.Net.TlsParameters.GetSignatureSchemes" />
      <seealso cref="P:Rebex.Net.TlsSocket.Parameters" />
    </member>
    <member name="M:Rebex.Net.TlsSignatureScheme.#ctor(System.String)">
      <summary>
            Initializes a new instance of the <see cref="P:Rebex.Net.TlsSignatureScheme.Tls12SignatureScheme" />.
            </summary>
      <param name="name">Signature scheme name.</param>
      <remarks>
            Predefined signature schemes are exposed in static (shared in VB) properties declared on this class.
            </remarks>
      <exception cref="T:System.ArgumentException">The <paramref name="name" /> is invalid.</exception>
    </member>
    <member name="P:Rebex.Net.TlsSignatureScheme.Name">
      <summary>
            Gets a signature scheme name.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsSignatureScheme.IsAvailableInTLS13">
      <summary>
            Gets the indication whether the signature scheme, which this instance of the <see cref="T:Rebex.Net.TlsSignatureScheme" /> represents, is available in TLS 1.3 and on the current platform.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsSignatureScheme.IsAvailableInTLS12">
      <summary>
            Gets the indication whether the signature scheme, which this instance of the <see cref="T:Rebex.Net.TlsSignatureScheme" /> represents, is available in TLS 1.2 and on the current platform.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsSignatureScheme.Rsa_pkcs1_sha256">
      <summary>
            Gets the RSASSA-PKCS1-v1_5 signature algorithm with the SHA-256 hash algorithm.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsSignatureScheme.Rsa_pkcs1_sha384">
      <summary>
            Gets the RSASSA-PKCS1-v1_5 signature algorithm with the SHA-384 hash algorithm.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsSignatureScheme.Rsa_pkcs1_sha512">
      <summary>
            Gets the RSASSA-PKCS1-v1_5 signature algorithm with the SHA-512 hash algorithm.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsSignatureScheme.Ecdsa_secp256r1_sha256">
      <summary>
            Gets the ECDSA signature algorithm with the secp256r1 (NIST P-256) elliptic curve and the SHA-256 hash algorithm.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsSignatureScheme.Ecdsa_secp384r1_sha384">
      <summary>
            Gets the ECDSA signature algorithm with the secp384r1 (NIST P-384) elliptic curve and the SHA-384 hash algorithm.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsSignatureScheme.Ecdsa_secp521r1_sha512">
      <summary>
            Gets the ECDSA signature algorithm with the secp521r1 (NIST P-521) elliptic curve and the SHA-512 hash algorithm.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsSignatureScheme.Rsa_pss_rsae_sha256">
      <summary>
            Gets the RSASSA-PSS signature algorithm with the mask generation function 1 and the SHA-256 hash algorithm.
            If the public key is carried in an X.509 certificate, it must use the rsaEncryption OID.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsSignatureScheme.Rsa_pss_rsae_sha384">
      <summary>
            Gets the RSASSA-PSS signature algorithm with the mask generation function 1 and the SHA-384 hash algorithm.
            If the public key is carried in an X.509 certificate, it must use the rsaEncryption OID.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsSignatureScheme.Rsa_pss_rsae_sha512">
      <summary>
            Gets the RSASSA-PSS signature algorithm with the mask generation function 1 and the SHA-512 hash algorithm.
            If the public key is carried in an X.509 certificate, it must use the rsaEncryption OID.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsSignatureScheme.Ed25519">
      <summary>
            Gets the EdDSA signature algorithm with X25519.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsSignatureScheme.Rsa_pkcs1_sha1">
      <summary>
            Legacy signature algorithm.
            Gets the RSASSA-PKCS1-v1_5 signature algorithm with the SHA-1 hash algorithm.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsSignatureScheme.Ecdsa_sha1">
      <summary>
            Legacy signature algorithm.
            Gets the ECDSA signature algorithm with the SHA-1 hash algorithm.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsSignatureScheme.Dsa_sha1">
      <summary>
            Legacy signature algorithm.
            Gets the DSA signature algorithm with the SHA-1 hash algorithm.
            </summary>
    </member>
    <member name="M:Rebex.Net.TlsSignatureScheme.Equals(Rebex.Net.TlsSignatureScheme)">
      <summary>
            Determines whether the specified <paramref name="other" /> is equal to this object.
            </summary>
      <param name="other">The <see cref="T:Rebex.Net.TlsSignatureScheme" /> to compare with this object.</param>
      <returns>
        <c>true</c> if the specified <paramref name="other" /> is equal to this object; otherwise, <c>false</c>.
            </returns>
    </member>
    <member name="M:Rebex.Net.TlsSignatureScheme.Equals(System.Object)">
      <summary>
            Determines whether the specified <paramref name="obj" /> is equal to this object.
            </summary>
      <param name="obj">The <see cref="T:System.Object" /> to compare with this object.</param>
      <returns>
        <c>true</c> if the specified <paramref name="obj" /> is equal to this object; otherwise, <c>false</c>.
            </returns>
    </member>
    <member name="M:Rebex.Net.TlsSignatureScheme.GetHashCode">
      <summary>
            Gets a hash code of this object.
            </summary>
      <returns>
            A hash code of this object.
            </returns>
    </member>
    <member name="M:Rebex.Net.TlsSignatureScheme.ToString">
      <summary>
            Returns a string representation of the current <see cref="T:Rebex.Net.TlsSignatureScheme" />.
            </summary>
      <returns>A string representation of this instance.</returns>
    </member>
    <member name="T:Rebex.Net.TlsSocket">
      <summary>
            Represents a TLS/SSL-enabled TCP socket.
            </summary>
      <remarks>
        <p>
            This class is suitable for securing your socket communication using 
            TLS 1.2, TLS 1.1 and TLS 1.0 protocols. SSL 3.0 is still supported as well, but should not be used.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.TlsSocket.#ctor(Rebex.Net.ISocket)">
      <summary>
            Initializes an instance of the <see cref="T:Rebex.Net.TlsSocket" /> class with the specified base socket.
            </summary>
      <param name="socket">Base socket.</param>
      <remarks>Use this if you need to upgrade an existing socket to use TLS/SSL.</remarks>
    </member>
    <member name="P:Rebex.Net.TlsSocket.Context">
      <summary>
            Gets or sets a custom context object associated with this <see cref="T:Rebex.Net.TlsSocket" />.
            </summary>
    </member>
    <member name="M:Rebex.Net.TlsSocket.GetConnectionState">
      <summary>
            Gets a value that indicates whether the <see cref="T:Rebex.Net.SocketState" /> is currently connected to a remote host.
            </summary>
      <value>true if the <see cref="T:Rebex.Net.SocketState" /> is connected; otherwise, false.</value>
      <remarks>
        <p>
            As long as there is still data available to be read from the socket, this method will indicate that
            the <see cref="T:Rebex.Net.SocketState" /> is connected, even though technically it might have already be considered
            disconnected based on one's point of view. 
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.TlsSocket.Poll(System.Int32,Rebex.Net.SocketSelectMode)">
      <summary>
            Determines the status of the socket.
            </summary>
      <param name="microSeconds">Time to wait for a response, in microseconds.</param>
      <param name="mode">Select mode.</param>
      <returns>True if data can be sent or read or if the connection was closed.</returns>
    </member>
    <member name="M:Rebex.Net.TlsSocket.Send(System.Byte[])">
      <summary>
            Sends data to a connected <see cref="T:Rebex.Net.TlsSocket" />.
            </summary>
      <param name="buffer">The data to be sent.</param>
      <returns>The number of bytes sent.</returns>
    </member>
    <member name="M:Rebex.Net.TlsSocket.Send(System.Byte[],System.Net.Sockets.SocketFlags)">
      <summary>
            Sends data to a connected <see cref="T:Rebex.Net.TlsSocket" /> using the supplied flags.
            </summary>
      <param name="buffer">The data to be sent.</param>
      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
      <returns>The number of bytes sent.</returns>
    </member>
    <member name="M:Rebex.Net.TlsSocket.Send(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)">
      <summary>
            Sends the specified amount of data to a connected <see cref="T:Rebex.Net.TlsSocket" /> using the supplied flags.
            </summary>
      <param name="buffer">The data to be sent.</param>
      <param name="size">The number of bytes to send.</param>
      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
      <returns>The number of bytes sent.</returns>
    </member>
    <member name="M:Rebex.Net.TlsSocket.Send(System.Byte[],System.Int32,System.Int32)">
      <summary>
            Sends the specified amount of data to a connected <see cref="T:Rebex.Net.TlsSocket" /> starting at the indicated location in the data and using the supplied flags.|
            </summary>
      <param name="buffer">The data to be sent.</param>
      <param name="offset">The position in the data buffer to begin sending data.</param>
      <param name="size">The number of bytes to send.</param>
      <returns>The number of bytes sent.</returns>
    </member>
    <member name="M:Rebex.Net.TlsSocket.Send(System.ArraySegment{System.Byte})">
      <summary>
            Sends data to a connected <see cref="T:Rebex.Net.TlsSocket" />.
            </summary>
      <param name="buffer">The data to be sent.</param>
      <returns>The number of bytes sent.</returns>
    </member>
    <member name="M:Rebex.Net.TlsSocket.Receive(System.Byte[])">
      <summary>
            Receives data from a connected <see cref="T:Rebex.Net.TlsSocket" />.
            </summary>
      <param name="buffer">The storage location for the received data.</param>
      <returns>The number of bytes received.</returns>
    </member>
    <member name="M:Rebex.Net.TlsSocket.Receive(System.Byte[],System.Net.Sockets.SocketFlags)">
      <summary>
            Receives data from a connected <see cref="T:Rebex.Net.TlsSocket" /> using the supplied flags.
            </summary>
      <param name="buffer">The storage location for the received data.</param>
      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
      <returns>The number of bytes received.</returns>
    </member>
    <member name="M:Rebex.Net.TlsSocket.Receive(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)">
      <summary>
            Receives the specified amount of data from a connected <see cref="T:Rebex.Net.TlsSocket" /> using the supplied flags.
            </summary>
      <param name="buffer">The storage location for the received data.</param>
      <param name="size">The number of bytes to receive.</param>
      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
      <returns>The number of bytes received.</returns>
    </member>
    <member name="M:Rebex.Net.TlsSocket.Receive(System.Byte[],System.Int32,System.Int32)">
      <summary>
            Receives the specified amount of data from a connected <see cref="T:Rebex.Net.TlsSocket" /> into a specific location of the receive buffer and using the supplied flags.
            </summary>
      <param name="buffer">The storage location for the received data.</param>
      <param name="offset">The position in the buffer at which to store the received data.</param>
      <param name="size">The number of bytes to receive.</param>
      <returns>The number of bytes received.</returns>
    </member>
    <member name="M:Rebex.Net.TlsSocket.Receive(System.ArraySegment{System.Byte})">
      <summary>
            Receives data from a connected <see cref="T:Rebex.Net.TlsSocket" />.
            </summary>
      <param name="buffer">The storage location for the received data.</param>
      <returns>The number of bytes received.</returns>
    </member>
    <member name="M:Rebex.Net.TlsSocket.Negotiate">
      <summary>
            Negotiates TLS/SSL cipher.
            </summary>
    </member>
    <member name="M:Rebex.Net.TlsSocket.Renegotiate">
      <summary>
            Renegotiates TLS/SSL cipher (if allowed by the other side). Only supported by TLS 1.2 or earlier.
            </summary>
    </member>
    <member name="M:Rebex.Net.TlsSocket.Unprotect">
      <summary>
            Reverts back to an unencrypted socket. Usage of this method is strongly discouraged.
            </summary>
    </member>
    <member name="M:Rebex.Net.TlsSocket.Connect(System.Net.EndPoint)">
      <summary>
            Establishes a connection to a remote device.
            </summary>
      <param name="remoteEP">An <see cref="T:System.Net.EndPoint" /> that represents the remote device.</param>
      <remarks>
            The Connect method establishes a network connection to a device identified by the remoteEP
            parameter. Once the connection has been made, you can send data to the remote device with
            the Send method, or receive data from the remote device with the Receive method.
            </remarks>
    </member>
    <member name="M:Rebex.Net.TlsSocket.Connect(System.String,System.Int32)">
      <summary>
            Establishes a connection to a remote device.
            </summary>
      <param name="serverName">The hostname (or IP address) of the remote device.</param>
      <param name="serverPort">The port number associated with the hostname.</param>
      <remarks>
            The Connect method establishes a network connection to a host identified by the serverName and serverPort
            parameters. Once the connection has been made, you can send data to the remote device with
            the Send method, or receive data from the remote device with the Receive method.
            </remarks>
    </member>
    <member name="M:Rebex.Net.TlsSocket.Send(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags)">
      <summary>
            Sends the specified amount of data to a connected <see cref="T:Rebex.Net.TlsSocket" /> starting at the indicated location in the data and using the supplied flags.
            </summary>
      <param name="buffer">The data to be sent.</param>
      <param name="offset">The position in the data buffer to begin sending data.</param>
      <param name="size">The number of bytes to send.</param>
      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
      <returns>The number of bytes sent.</returns>
    </member>
    <member name="M:Rebex.Net.TlsSocket.Receive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags)">
      <summary>
            Receives the specified amount of data from a connected <see cref="T:Rebex.Net.TlsSocket" /> into a specific location of the receive buffer and using the supplied flags.
            </summary>
      <param name="buffer">The storage location for the received data.</param>
      <param name="offset">The position in the buffer at which to store the received data.</param>
      <param name="size">The number of bytes to receive.</param>
      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
      <returns>The number of bytes received.</returns>
    </member>
    <member name="M:Rebex.Net.TlsSocket.Shutdown(System.Net.Sockets.SocketShutdown)">
      <summary>
            Disables sends and receives on a <see cref="T:Rebex.Net.TlsSocket" />.
            </summary>
      <param name="how">The <see cref="T:System.Net.Sockets.SocketShutdown" /> value specifying the operation that will no longer be allowed.</param>
    </member>
    <member name="M:Rebex.Net.TlsSocket.Close">
      <summary>
            Forces a <see cref="T:Rebex.Net.TlsSocket" /> connection to close.
            </summary>
      <remarks>
        <p>
            The application should call <see cref="M:Rebex.Net.TlsSocket.Shutdown(System.Net.Sockets.SocketShutdown)" /> before calling Close to ensure that
            all pending data is sent or received before the Socket is closed.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.TlsSocket.Dispose">
      <summary>
            Disposes the object.
            </summary>
    </member>
    <member name="M:Rebex.Net.TlsSocket.Dispose(System.Boolean)">
      <summary>
            Releases the unmanaged resources used by the <see cref="T:Rebex.Net.TlsSocket" /> and optionally releases the managed resources.
            </summary>
      <param name="disposing">
        <b>true</b> to release both managed and unmanaged resources; <b>false</b> to release only unmanaged resources.</param>
    </member>
    <member name="M:Rebex.Net.TlsSocket.DisposeAsync(System.Boolean)">
      <summary>
            Asynchronously releases the unmanaged resources used by the <see cref="T:Rebex.Net.TlsSocket" /> and optionally releases the managed resources.
            </summary>
      <param name="disposing">
        <b>true</b> to release both managed and unmanaged resources; <b>false</b> to release only unmanaged resources.</param>
    </member>
    <member name="P:Rebex.Net.TlsSocket.Socket">
      <summary>
            Gets the internal <see cref="T:System.Net.Sockets.Socket" /> value (only for sockets based on Socket or ProxySocket, otherwise null is returned).
            </summary>
      <value>The internal <see cref="T:System.Net.Sockets.Socket" /> value.</value>
      <remarks>Use with care.</remarks>
    </member>
    <member name="P:Rebex.Net.TlsSocket.Timeout">
      <summary>
            Gets or sets the length of time, in milliseconds, until the operation times out,
            or the value -1 or 0 to indicate that the operation does not time out.
            </summary>
      <remarks>
        <p>
              Default is -1 (infinite).
            </p>
        <p>
              The internal timeout counter is reset every time data is sent or received over the connection.
            </p>
        <p>
              Apart from -1 and 0 values, the minimal value is 1000.
              Setting this property to a value in the range 1..999 will set it to 1000.
            </p>
      </remarks>
    </member>
    <member name="P:Rebex.Net.TlsSocket.RemoteEndPoint">
      <summary>
            Gets the remote endpoint.
            </summary>
      <value>The remote endpoint that the <see cref="T:Rebex.Net.TlsSocket" /> is using for communications.</value>
      <remarks>
            The RemoteEndPoint property gets the network connection information associated with
            either the remote host or the proxy server.
            RemoteEndPoint is set by <see cref="T:Rebex.Net.TlsSocket" /> methods that establish a connection
            to a remote host.
            </remarks>
    </member>
    <member name="P:Rebex.Net.TlsSocket.LocalEndPoint">
      <summary>
            Gets the local endpoint.
            </summary>
      <value>The local endpoint that the <see cref="T:Rebex.Net.TlsSocket" /> is using for communications.</value>
      <remarks>
            The LocalEndPoint property contains the network connection information associated with the local network device.
            </remarks>
    </member>
    <member name="P:Rebex.Net.TlsSocket.Information">
      <summary>
            Gets socket information on the underlying socket object.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsSocket.Connected">
      <summary>
            Gets a value indicating whether a <see cref="T:Rebex.Net.TlsSocket" /> is connected to a remote resource.
            </summary>
      <value>true if the <see cref="T:Rebex.Net.TlsSocket" /> is connected to a remote resource; otherwise, false.</value>
      <remarks>
        <p>
            Gets the connection state of the <see cref="T:Rebex.Net.TlsSocket" />. This property will return
            the latest known state of the SecureSocket. When it returns false, the socket was either never
            connected, or no longer connected.
            </p>
        <p>
          <b>Note:</b> There is no guarantee that the session is still connected even though
            Connected returns true.
            </p>
      </remarks>
    </member>
    <member name="P:Rebex.Net.TlsSocket.Session">
      <summary>
            Gets the connection session
            </summary>
      <value>The connection session.</value>
    </member>
    <member name="P:Rebex.Net.TlsSocket.Cipher">
      <summary>
            Gets the active cipher.
            </summary>
      <value>Active cipher.</value>
    </member>
    <member name="P:Rebex.Net.TlsSocket.ApplicationProtocol">
      <summary>
            Gets the negotiated application protocol;
            or null reference if no protocol was negotiated.
            </summary>
      <remarks>
            Provided by the Application-Layer Protocol Negotiation (ALPN) extension.
            </remarks>
    </member>
    <member name="P:Rebex.Net.TlsSocket.ServerCertificate">
      <summary>
            Gets the server's certificate chain.
            </summary>
      <value>The server's certificate chain.</value>
      <remarks>The first certificate in the chain is the server's certificate.</remarks>
    </member>
    <member name="P:Rebex.Net.TlsSocket.ClientCertificate">
      <summary>
            Gets the client's certificate chain.
            </summary>
      <value>The client's certificate chain.</value>
      <remarks>The first certificate in the chain is the client's certificate.</remarks>
    </member>
    <member name="P:Rebex.Net.TlsSocket.IsSecure">
      <summary>
            Gets the current security state of the connection.
            </summary>
      <value>True if all data (sent or received) is being encrypted.</value>
      <remarks>
            Use <see cref="M:Rebex.Net.TlsSocket.Negotiate" /> method to secure the connection.
            </remarks>
    </member>
    <member name="P:Rebex.Net.TlsSocket.Entity">
      <summary>
            Gets the entity.
            </summary>
      <value>Entity.</value>
      <remarks>Entity is Client for client sockets and Server for server sockets.</remarks>
    </member>
    <member name="P:Rebex.Net.TlsSocket.CompressionMethod">
      <summary>
            Gets the active data compression method.
            </summary>
      <value>Active data compression method.</value>
      <remarks>No data compression is currently supported.</remarks>
    </member>
    <member name="P:Rebex.Net.TlsSocket.Parameters">
      <summary>
            Gets or sets the security parameters of the current socket.
            </summary>
      <value>The security parameters of the current socket.</value>
    </member>
    <member name="P:Rebex.Net.TlsSocket.LogWriter">
      <summary>
            Gets or sets the logger used by this object.
            </summary>
      <value>Logger.</value>
    </member>
    <member name="P:Rebex.Net.TlsSocket.Factory">
      <summary>
            Gets the instance of <see cref="T:Rebex.Net.ISocketFactory" /> that created this <see cref="T:Rebex.Net.ISocket" />.
            </summary>
      <value>An instance of <see cref="T:Rebex.Net.ISocketFactory" />.</value>
    </member>
    <member name="M:Rebex.Net.TlsSocket.#ctor">
      <summary>
            Initializes an instance of the <see cref="T:Rebex.Net.TlsSocket" /> class.
            </summary>
      <remarks>
             The default constructor initializes an instance of the <see cref="T:Rebex.Net.TlsSocket" />.
            </remarks>
    </member>
    <member name="M:Rebex.Net.TlsSocket.#ctor(System.Net.Sockets.Socket)">
      <summary>
            Initializes an instance of the <see cref="T:Rebex.Net.TlsSocket" /> class with the specified base socket.
            </summary>
      <param name="socket">Base socket.</param>
      <remarks>Use this if you need to upgrade an existing socket to use TLS/SSL.</remarks>
    </member>
    <member name="P:Rebex.Net.TlsSocket.Available">
      <summary>
            Gets the amount of data that has been received from the network and is available to be read.
            </summary>
      <value>
            The number of bytes of data that has been received from the network and is available
            to be read, or 0 if no data is available.
            </value>
      <remarks>
            After the socket has been closed, this property will still indicate there is data to be read
            if there is 1 byte or more data in the receive buffer. If there is no more data to be read,
            a value of 0 will be returned.
            </remarks>
    </member>
    <member name="M:Rebex.Net.TlsSocket.ToString">
      <summary>
            Returns a string representation of the current <see cref="T:Rebex.Net.TlsSocket" />.
            </summary>
      <returns>A string representation of this instance.</returns>
    </member>
    <member name="M:Rebex.Net.TlsSocket.GetHashCode">
      <summary>
            Gets a hash code of this object.
            </summary>
      <returns>
            A hash code of this object.
            </returns>
    </member>
    <member name="M:Rebex.Net.TlsSocket.DisposeAsync">
      <summary>
            Asynchronously releases resources used by the <see cref="T:Rebex.Net.TlsSocket" />.
            </summary>
      <returns>A task that represents the dispose operation.</returns>
    </member>
    <member name="M:Rebex.Net.TlsSocket.CloseAsync">
      <summary>
            Asynchronously releases resources used by the <see cref="T:Rebex.Net.TlsSocket" />.
            </summary>
      <returns>A task that represents the close operation.</returns>
    </member>
    <member name="M:Rebex.Net.TlsSocket.BeginConnect(System.Net.EndPoint,System.AsyncCallback,System.Object)">
      <summary>
            Begins an asynchronous request for a connection to a network device.
            </summary>
      <param name="remoteEP">An <see cref="T:System.Net.EndPoint" /> that represents the remote device.</param>
      <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate.</param>
      <param name="state">An object containing state information for this request.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous connection.
            </returns>
      <remarks>
            The Connect method establishes a network connection to a host identified by the remoteEP
            parameter. Once the connection has been made, you can send data to the remote device with
            the Send method, or receive data from the remote device with the Receive method.
            </remarks>
    </member>
    <member name="M:Rebex.Net.TlsSocket.BeginConnect(System.String,System.Int32,System.AsyncCallback,System.Object)">
      <summary>
            Begins an asynchronous request for a connection to a network device.
            </summary>
      <param name="serverName">The hostname (or IP address) of the remote device.</param>
      <param name="serverPort">The port number associated with the hostname.</param>
      <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate.</param>
      <param name="state">An object containing state information for this request.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous connection.
            </returns>
      <remarks>
            The Connect method establishes a network connection to a host identified by the serverName and serverPort
            parameters. Once the connection has been made, you can send data to the remote device with
            the Send method, or receive data from the remote device with the Receive method.
            </remarks>
    </member>
    <member name="M:Rebex.Net.TlsSocket.EndConnect(System.IAsyncResult)">
      <summary>
            Ends a pending asynchronous connection request.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user-defined data.</param>
      <remarks>
            The EndConnect method completes a request to accept a connection that was started with the <see cref="M:Rebex.Net.TlsSocket.BeginConnect(System.Net.EndPoint,System.AsyncCallback,System.Object)" /> method.
            </remarks>
    </member>
    <member name="M:Rebex.Net.TlsSocket.BeginSend(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)">
      <summary>
            Sends data asynchronously to a connected <see cref="T:Rebex.Net.ISocket" />.
            </summary>
      <param name="buffer">The data to be sent.</param>
      <param name="offset">The position in the data buffer to begin sending data.</param>
      <param name="size">The number of bytes to send.</param>
      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
      <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate.</param>
      <param name="state">An object containing state information for this request.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous send.
            </returns>
      <remarks>
        <p>
            Prior to sending data, the socket must be connected using either a call to <see cref="M:Rebex.Net.TlsSocket.Connect(System.Net.EndPoint)" /> method or a call to <see cref="M:Rebex.Net.TlsSocket.Listen(Rebex.Net.ISocket)" /> and <see cref="M:Rebex.Net.TlsSocket.Accept" /> methods.
            </p>
        <p>
            The BeginSend method starts asynchronously sending data through the ISocket.
            You should create a callback method that implements the AsyncCallback delegate.
            This callback method should use the EndSend method to complete the asynchronous operation.
            See the .NET Framework SDK Reference for more information on asynchronous methods.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.Net.TlsSocket.EndSend(System.IAsyncResult)">
      <summary>
            Ends a pending asynchronous send.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user-defined data.</param>
      <returns>The number of bytes sent.</returns>
      <remarks>
            The EndSend method completes a request to accept a connection that was started with the <see cref="M:Rebex.Net.TlsSocket.BeginSend(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)" /> method.
            </remarks>
    </member>
    <member name="M:Rebex.Net.TlsSocket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)">
      <summary>
            Ends a pending asynchronous read.
            </summary>
      <param name="buffer">The storage location for the received data.</param>
      <param name="offset">The position in the buffer at which to store the received data.</param>
      <param name="size">The number of bytes to receive.</param>
      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
      <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate.</param>
      <param name="state">An object containing state information for this request.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous send.
            </returns>
      <remarks>
            The EndReceive method completes a request to accept a connection that was started with the <see cref="M:Rebex.Net.TlsSocket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)" /> method.
            </remarks>
    </member>
    <member name="M:Rebex.Net.TlsSocket.EndReceive(System.IAsyncResult)">
      <summary>
            Ends a pending asynchronous read.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user-defined data.</param>
      <returns>The number of bytes received.</returns>
      <remarks>
            The EndReceive method completes a request to accept a connection that was started with the <see cref="M:Rebex.Net.TlsSocket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)" /> method.
            </remarks>
    </member>
    <member name="M:Rebex.Net.TlsSocket.BeginNegotiate(System.AsyncCallback,System.Object)">
      <summary>
            Negotiates TLS/SSL cipher.
            </summary>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Net.TlsSocket.EndNegotiate(System.IAsyncResult)">
      <summary>
            Ends a pending asynchronous negotiation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user-defined data.</param>
      <remarks>
            The <see cref="M:Rebex.Net.TlsSocket.EndNegotiate(System.IAsyncResult)" /> method completes a request to negotiate a TLS/SSL cipher.
            started with <see cref="M:Rebex.Net.TlsSocket.BeginNegotiate(System.AsyncCallback,System.Object)" /> method.
            </remarks>
    </member>
    <member name="M:Rebex.Net.TlsSocket.NegotiateAsync">
      <summary>
            Negotiates TLS/SSL cipher.
            </summary>
      <returns>A <see cref="T:System.Threading.Tasks.Task" /> that represents the asynchronous operation.</returns>
    </member>
    <member name="M:Rebex.Net.TlsSocket.ShutdownAsync">
      <summary>
            Disables sends on a <see cref="T:Rebex.Net.TlsSocket" />.
            </summary>
      <returns>A <see cref="T:System.Threading.Tasks.Task" /> that represents the asynchronous operation.</returns>
    </member>
    <member name="M:Rebex.Net.TlsSocket.ReceiveAsync(System.ArraySegment{System.Byte})">
      <summary>
            Receives data from a connected <see cref="T:Rebex.Net.TlsSocket" />.
            </summary>
      <param name="buffer">The storage location for the received data.</param>
      <returns>A <see cref="T:System.Threading.Tasks.Task`1" /> that represents the asynchronous operation. Result of the <see cref="T:System.Threading.Tasks.Task" /> is the number of bytes received.</returns>
    </member>
    <member name="M:Rebex.Net.TlsSocket.SendAsync(System.ArraySegment{System.Byte})">
      <summary>
            Sends data to a connected <see cref="T:Rebex.Net.TlsSocket" />.
            </summary>
      <param name="buffer">The data to be sent.</param>
      <returns>A <see cref="T:System.Threading.Tasks.Task`1" /> that represents the asynchronous operation. Result of the <see cref="T:System.Threading.Tasks.Task" /> is the number of bytes sent.</returns>
    </member>
    <member name="M:Rebex.Net.TlsSocket.GetChannelBinding(Rebex.Security.Authentication.ChannelBindingType)">
      <summary>
            Gets an instance of the <see cref="T:Rebex.Security.Authentication.ChannelBinding" /> that matches the <paramref name="bindingType" />.
            When the requested <see cref="T:Rebex.Security.Authentication.ChannelBinding" /> is not available, then it returns an empty instance of the <see cref="T:Rebex.Security.Authentication.ChannelBinding" />.
            </summary>
      <param name="bindingType">Channel binding type.</param>
      <returns>An instance of the <see cref="T:Rebex.Security.Authentication.ChannelBinding" /> that matches the <paramref name="bindingType" />,
            or an empty <see cref="T:Rebex.Security.Authentication.ChannelBinding" /> when the requested <see cref="T:Rebex.Security.Authentication.ChannelBinding" /> is not available.</returns>
      <remarks>
        <see cref="T:Rebex.Security.Authentication.ChannelBinding" /> instances are available after successful negotiation.
            <p>
            An instance of the <see cref="T:Rebex.Net.TlsSocket" /> that negotiated TLS 1.2 offers <see cref="T:Rebex.Security.Authentication.ChannelBinding" /> for the following channel binding types:
            </p><ul><li><see cref="F:Rebex.Security.Authentication.ChannelBindingType.TlsUnique" /></li><li><see cref="F:Rebex.Security.Authentication.ChannelBindingType.TlsServerEndPoint" /></li></ul><p>
            An instance of the <see cref="T:Rebex.Net.TlsSocket" /> that negotiated TLS 1.3 offers <see cref="T:Rebex.Security.Authentication.ChannelBinding" /> for the following channel binding types:
            <ul><li><see cref="F:Rebex.Security.Authentication.ChannelBindingType.TlsServerEndPoint" /></li></ul></p></remarks>
      <seealso cref="T:Rebex.Security.Authentication.ChannelBinding" />
      <seealso cref="P:Rebex.Security.Authentication.SspiAuthentication.SecureChannelBinding" />
    </member>
    <member name="M:Rebex.Net.TlsSocket.HasChannelBinding(Rebex.Security.Authentication.ChannelBindingType)">
      <summary>
            Gets an indication whether a provider has a <see cref="T:Rebex.Security.Authentication.ChannelBinding" /> that matches the <paramref name="bindingType" />.
            If the method returns <c>true</c>, it means that the next call of the <see cref="M:Rebex.Net.TlsSocket.GetChannelBinding(Rebex.Security.Authentication.ChannelBindingType)" /> method returns
            valid (non-empty) instance of the <see cref="T:Rebex.Security.Authentication.ChannelBinding" /> that matches <paramref name="bindingType" />.
            </summary>
      <param name="bindingType">Channel binding type.</param>
      <returns>
        <c>true</c> if a provider has a <see cref="T:Rebex.Security.Authentication.ChannelBinding" /> that matches the <paramref name="bindingType" />; otherwise, <c>false</c>.</returns>
      <seealso cref="T:Rebex.Security.Authentication.ChannelBinding" />
      <seealso cref="P:Rebex.Security.Authentication.SspiAuthentication.SecureChannelBinding" />
    </member>
    <member name="T:Rebex.Net.TlsSymmetricCipherSuite">
      <summary>
            Specifies the set of desired symmetric cipher suites for TLS 1.3 and higher.
            For TLS 1.2 and lower use <see cref="T:Rebex.Net.TlsCipherSuite" /> instead.
            </summary>
    </member>
    <member name="M:Rebex.Net.TlsSymmetricCipherSuite.#ctor(System.String)">
      <summary>
            Creates an instance of <see cref="T:Rebex.Net.TlsSymmetricCipherSuite" /> representing the specified TLS 1.3 cipher suite.
            </summary>
      <param name="name">Cipher suite name.</param>
    </member>
    <member name="P:Rebex.Net.TlsSymmetricCipherSuite.Name">
      <summary>
            Gets a string representations of TLS 1.3 cipher suite.
            </summary>
    </member>
    <member name="M:Rebex.Net.TlsSymmetricCipherSuite.GetHashCode">
      <summary>
            Gets a hash code of this object.
            </summary>
      <returns>
            A hash code of this object.
            </returns>
    </member>
    <member name="M:Rebex.Net.TlsSymmetricCipherSuite.ToString">
      <summary>
            Returns a string representation of the current <see cref="T:Rebex.Net.TlsSymmetricCipherSuite" />.
            </summary>
      <returns>A string representation of this instance.</returns>
    </member>
    <member name="M:Rebex.Net.TlsSymmetricCipherSuite.CompareTo(System.Object)">
      <summary>
            Compares this instance to a specified object and returns an indication of their relative values.
            </summary>
      <param name="obj">An object to compare, or null.</param>
      <returns>A 32-bit signed integer that indicates the relative order of the objects being compared. See <see cref="M:System.IComparable.CompareTo(System.Object)" /> for details.</returns>
    </member>
    <member name="M:Rebex.Net.TlsSymmetricCipherSuite.Equals(Rebex.Net.TlsSymmetricCipherSuite)">
      <summary>
            Determines whether the specified <paramref name="other" /> is equal to this object.
            </summary>
      <param name="other">The <see cref="T:Rebex.Net.TlsSymmetricCipherSuite" /> to compare with this object.</param>
      <returns>
        <c>true</c> if the specified <paramref name="other" /> is equal to this object; otherwise, <c>false</c>.
            </returns>
    </member>
    <member name="M:Rebex.Net.TlsSymmetricCipherSuite.Equals(System.Object)">
      <summary>
            Determines whether the specified <paramref name="obj" /> is equal to this object.
            </summary>
      <param name="obj">The <see cref="T:System.Object" /> to compare with this object.</param>
      <returns>
        <c>true</c> if the specified <paramref name="obj" /> is equal to this object; otherwise, <c>false</c>.
            </returns>
    </member>
    <member name="M:Rebex.Net.TlsSymmetricCipherSuite.op_Equality(Rebex.Net.TlsSymmetricCipherSuite,Rebex.Net.TlsSymmetricCipherSuite)">
      <summary>
            Determines whether two specified <see cref="T:Rebex.Net.TlsSymmetricCipherSuite" />  have the same value.
            </summary>
      <param name="left">The first <see cref="T:Rebex.Net.TlsSymmetricCipherSuite" /> to compare, or null.</param>
      <param name="right">The second <see cref="T:Rebex.Net.TlsSymmetricCipherSuite" /> to compare, or null.</param>
      <returns>true if the value of left is the same as the value of right, otherwise false.</returns>
    </member>
    <member name="M:Rebex.Net.TlsSymmetricCipherSuite.op_Inequality(Rebex.Net.TlsSymmetricCipherSuite,Rebex.Net.TlsSymmetricCipherSuite)">
      <summary>
            Determines whether two specified <see cref="T:Rebex.Net.TlsSymmetricCipherSuite" /> have different values.
            </summary>
      <param name="left">The first <see cref="T:Rebex.Net.TlsSymmetricCipherSuite" /> to compare, or null.</param>
      <param name="right">The second <see cref="T:Rebex.Net.TlsSymmetricCipherSuite" /> to compare, or null.</param>
      <returns>true if the value of left is different from the value of right, otherwise false.</returns>
    </member>
    <member name="P:Rebex.Net.TlsSymmetricCipherSuite.TLS_AES_128_GCM_SHA256">
      <summary>
            128-bit AES/GCM AEAD cipher with SHA-256 hash.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsSymmetricCipherSuite.TLS_AES_256_GCM_SHA384">
      <summary>
            256-bit AES/GCM AEAD cipher with SHA-384 hash.
            </summary>
    </member>
    <member name="P:Rebex.Net.TlsSymmetricCipherSuite.TLS_CHACHA20_POLY1305_SHA256">
      <summary>
            ChaCha20/Poly1305 AEAD cipher and with SHA-256 hash.
            </summary>
    </member>
    <member name="T:Rebex.Net.TlsProtocol">
      <summary>
            TLS/SSL protocol version.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsProtocol.None">
      <summary>
            No SSL/TLS used.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsProtocol.SSL30">
      <summary>
            SSL 3.0 protocol. Deprecated.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsProtocol.TLS10">
      <summary>
            TLS 1.0 protocol.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsProtocol.TLS11">
      <summary>
            TLS 1.1 protocol.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsProtocol.TLS12">
      <summary>
            TLS 1.2 protocol.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsProtocol.TLS13">
      <summary>
            TLS 1.3 protocol.
            </summary>
    </member>
    <member name="T:Rebex.Net.TlsVersion">
      <summary>
            TLS/SSL protocol version flags.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsVersion.None">
      <summary>
            None.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsVersion.SSL30">
      <summary>
            SSL 3.0 protocol. According to RFC 7568, SSL 3.0 is comprehensively broken and MUST NOT be used.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsVersion.TLS10">
      <summary>
            TLS 1.0 protocol.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsVersion.TLS11">
      <summary>
            TLS 1.1 protocol.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsVersion.TLS12">
      <summary>
            TLS 1.2 protocol.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsVersion.TLS13">
      <summary>
            TLS 1.3 protocol.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsVersion.Any">
      <summary>
            Use TLS 1.0, 1.1 or 1.2.
            </summary>
    </member>
    <member name="T:Rebex.Net.TlsConnectionEnd">
      <summary>
            Connection end.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsConnectionEnd.None">
      <summary>
            None.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsConnectionEnd.Server">
      <summary>
            Server socket.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsConnectionEnd.Client">
      <summary>
            Client socket.
            </summary>
    </member>
    <member name="T:Rebex.Net.TlsBulkCipherAlgorithm">
      <summary>
            Bulk cipher algorithm.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsBulkCipherAlgorithm.None">
      <summary>
            None.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsBulkCipherAlgorithm.RC4">
      <summary>
            RC4.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsBulkCipherAlgorithm.RC2">
      <summary>
            RC2.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsBulkCipherAlgorithm.DES">
      <summary>
            DES.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsBulkCipherAlgorithm.TripleDES">
      <summary>
            TripleDES.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsBulkCipherAlgorithm.AES">
      <summary>
            AES.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsBulkCipherAlgorithm.Twofish">
      <summary>
            Twofish (deprecated).
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsBulkCipherAlgorithm.Chacha20Poly1305">
      <summary>
            ChaCha20-Poly1305.
            </summary>
    </member>
    <member name="T:Rebex.Net.TlsBulkCipherMode">
      <summary>
            Bulk cipher algorithm mode.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsBulkCipherMode.None">
      <summary>
            None.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsBulkCipherMode.CBC">
      <summary>
            CBC mode.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsBulkCipherMode.Stream">
      <summary>
            Stream mode.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsBulkCipherMode.AEAD">
      <summary>
            AEAD mode.
            </summary>
    </member>
    <member name="T:Rebex.Net.TlsMacAlgorithm">
      <summary>
            Specifies the MAC algorithm in use.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsMacAlgorithm.None">
      <summary>
            No MAC algorithm in use.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsMacAlgorithm.MD5">
      <summary>
            MD5 algorithm.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsMacAlgorithm.SHA1">
      <summary>
            SHA-1 algorithm.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsMacAlgorithm.SHA256">
      <summary>
            SHA-256 algorithm.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsMacAlgorithm.SHA384">
      <summary>
            SHA-384 algorithm.
            </summary>
    </member>
    <member name="T:Rebex.Net.TlsCompressionMethod">
      <summary>
            Specifies the compression method.
            </summary>
      <remarks>
            Currently, no compression is supported.
            </remarks>
    </member>
    <member name="F:Rebex.Net.TlsCompressionMethod.None">
      <summary>
            No compression.
            </summary>
    </member>
    <member name="T:Rebex.Net.TlsKeyExchangeAlgorithm">
      <summary>
            Specifies the key exchange algorithm.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsKeyExchangeAlgorithm.None">
      <summary>
            No key exchange.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsKeyExchangeAlgorithm.RSA">
      <summary>
            RSA signature, RSA encryption.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsKeyExchangeAlgorithm.DHE_RSA">
      <summary>
            RSA signature, ephemeral Diffie-Hellman.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsKeyExchangeAlgorithm.DHE_DSS">
      <summary>
            DSS signature, ephemeral Diffie-Hellman.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsKeyExchangeAlgorithm.DH_anon">
      <summary>
            Anonymous Diffie-Hellman.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsKeyExchangeAlgorithm.ECDHE_RSA">
      <summary>
            RSA signature, ephemeral Elliptic Curve Diffie-Hellman.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsKeyExchangeAlgorithm.ECDHE_ECDSA">
      <summary>
            ECDSA signature, ephemeral Elliptic Curve Diffie-Hellman.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsKeyExchangeAlgorithm.ECDHE">
      <summary>
            Ephemeral Elliptic Curve Diffie-Hellman.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsKeyExchangeAlgorithm.DHE">
      <summary>
             Diffie-Hellman.
            </summary>
    </member>
    <member name="T:Rebex.Net.TlsCipherSuite">
      <summary>
            Specifies the set of desired cipher suites for TLS 1.2 and lower.
            For TLS 1.3 and higher use <see cref="T:Rebex.Net.TlsSymmetricCipherSuite" /> instead.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.None">
      <summary>
            No cipher suite.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.RSA_EXPORT_WITH_RC4_40_MD5">
      <summary>
            Exportable 40bit RC4 with MD5 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered vulnerable. Usage is strongly discouraged.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.RSA_WITH_RC4_128_MD5">
      <summary>
            128bit RC4 with MD5 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered vulnerable. Usage is strongly discouraged.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.RSA_WITH_RC4_128_SHA">
      <summary>
            128bit RC4 with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered vulnerable. Usage is strongly discouraged.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.RSA_EXPORT_WITH_RC2_CBC_40_MD5">
      <summary>
            Exportable 40bit RC2 in CBC mode with MD5 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered vulnerable. Usage is strongly discouraged.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.RSA_EXPORT_WITH_DES40_CBC_SHA">
      <summary>
            Exportable 40bit DES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered vulnerable. Usage is strongly discouraged.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.RSA_WITH_DES_CBC_SHA">
      <summary>
            56bit DES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered vulnerable. Usage is strongly discouraged.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.RSA_WITH_3DES_EDE_CBC_SHA">
      <summary>
            TripleDES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered weak.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.RSA_EXPORT1024_WITH_DES_CBC_SHA">
      <summary>
            Exportable 56bit DES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered vulnerable. Usage is strongly discouraged.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.RSA_EXPORT1024_WITH_RC4_56_SHA">
      <summary>
            Exportable 56bit RC4 mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered vulnerable. Usage is strongly discouraged.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.RSA_WITH_AES_128_CBC_SHA">
      <summary>
            128bit AES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered weak.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.RSA_WITH_AES_256_CBC_SHA">
      <summary>
            256bit AES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered weak.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DHE_DSS_EXPORT_WITH_DES40_CBC_SHA">
      <summary>
            Exportable 40bit DES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered vulnerable. Usage is strongly discouraged.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DHE_DSS_WITH_DES_CBC_SHA">
      <summary>
            56bit DES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered vulnerable. Usage is strongly discouraged.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DHE_DSS_WITH_3DES_EDE_CBC_SHA">
      <summary>
            TripleDES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered weak.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DHE_DSS_WITH_AES_128_CBC_SHA">
      <summary>
            128bit AES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered weak.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DHE_DSS_WITH_AES_256_CBC_SHA">
      <summary>
            256bit AES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered weak.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA">
      <summary>
            Exportable 56bit DES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered vulnerable. Usage is strongly discouraged.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DHE_DSS_EXPORT1024_WITH_RC4_56_SHA">
      <summary>
            Exportable 40bit RC4 with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered vulnerable. Usage is strongly discouraged.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DHE_DSS_WITH_RC4_128_SHA">
      <summary>
            128bit RC4 with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered vulnerable. Usage is strongly discouraged.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DHE_RSA_EXPORT_WITH_DES40_CBC_SHA">
      <summary>
            Exportable 40bit DES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered vulnerable. Usage is strongly discouraged.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DHE_RSA_WITH_DES_CBC_SHA">
      <summary>
            56bit DES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered vulnerable. Usage is strongly discouraged.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DHE_RSA_WITH_3DES_EDE_CBC_SHA">
      <summary>
            TripleDES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered weak.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DHE_RSA_WITH_AES_128_CBC_SHA">
      <summary>
            128bit AES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered weak.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DHE_RSA_WITH_AES_256_CBC_SHA">
      <summary>
            256bit AES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.RSA_WITH_AES_128_CBC_SHA256">
      <summary>
            256bit AES in CBC mode with SHA-256 hash and message authentication code.
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.RSA_WITH_AES_256_CBC_SHA256">
      <summary>
            128bit AES in CBC mode with SHA-256 hash and message authentication code.
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DHE_DSS_WITH_AES_128_CBC_SHA256">
      <summary>
            128bit AES in CBC mode with SHA-256 hash and message authentication code.
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DHE_RSA_WITH_AES_128_CBC_SHA256">
      <summary>
            128bit AES in CBC mode with SHA-256 hash and message authentication code.
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DHE_DSS_WITH_AES_256_CBC_SHA256">
      <summary>
            256bit AES in CBC mode with SHA-256 hash and message authentication code.
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DHE_RSA_WITH_AES_256_CBC_SHA256">
      <summary>
            256bit AES in CBC mode with SHA-256 hash and message authentication code.
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.ECDHE_RSA_WITH_AES_128_CBC_SHA">
      <summary>
            128bit AES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered weak.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.ECDHE_RSA_WITH_AES_256_CBC_SHA">
      <summary>
            256bit AES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered weak.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.ECDHE_RSA_WITH_AES_128_CBC_SHA256">
      <summary>
            128bit AES in CBC mode with SHA-256 hash and message authentication code.
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.ECDHE_RSA_WITH_AES_256_CBC_SHA384">
      <summary>
            256bit AES in CBC mode with SHA-384 hash and message authentication code.
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.ECDHE_RSA_WITH_3DES_EDE_CBC_SHA">
      <summary>
            TripleDES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered weak.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.ECDHE_RSA_WITH_RC4_128_SHA">
      <summary>
            128bit RC4 with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered vulnerable. Usage is strongly discouraged.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.ECDHE_ECDSA_WITH_AES_128_CBC_SHA">
      <summary>
            128bit AES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered weak.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.ECDHE_ECDSA_WITH_AES_256_CBC_SHA">
      <summary>
            256bit AES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered weak.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.ECDHE_ECDSA_WITH_AES_128_CBC_SHA256">
      <summary>
            128bit AES in CBC mode with SHA-256 hash and message authentication code.
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.ECDHE_ECDSA_WITH_AES_256_CBC_SHA384">
      <summary>
            256bit AES in CBC mode with SHA-384 hash and message authentication code.
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA">
      <summary>
            TripleDES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered weak.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.ECDHE_ECDSA_WITH_RC4_128_SHA">
      <summary>
            128bit RC4 with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered vulnerable. Usage is strongly discouraged.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.RSA_WITH_AES_128_GCM_SHA256">
      <summary>
            128bit AES in GCM mode with SHA-256 hash and authenticated encryption (AEAD).
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.RSA_WITH_AES_256_GCM_SHA384">
      <summary>
            256bit AES in GCM mode with SHA-384 hash and authenticated encryption (AEAD).
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DHE_RSA_WITH_AES_128_GCM_SHA256">
      <summary>
            128bit AES in GCM mode with SHA-256 hash and authenticated encryption (AEAD).
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DHE_RSA_WITH_AES_256_GCM_SHA384">
      <summary>
            256bit AES in GCM mode with SHA-384 hash and authenticated encryption (AEAD).
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DHE_DSS_WITH_AES_128_GCM_SHA256">
      <summary>
            128bit AES in GCM mode with SHA-256 hash and authenticated encryption (AEAD).
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DHE_DSS_WITH_AES_256_GCM_SHA384">
      <summary>
            256bit AES in GCM mode with SHA-384 hash and authenticated encryption (AEAD).
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.ECDHE_ECDSA_WITH_AES_128_GCM_SHA256">
      <summary>
            128bit AES in GCM mode with SHA-256 hash and authenticated encryption (AEAD).
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.ECDHE_ECDSA_WITH_AES_256_GCM_SHA384">
      <summary>
            256bit AES in GCM mode with SHA-384 hash and authenticated encryption (AEAD).
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.ECDHE_RSA_WITH_AES_128_GCM_SHA256">
      <summary>
            128bit AES in GCM mode with SHA-256 hash and authenticated encryption (AEAD).
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.ECDHE_RSA_WITH_AES_256_GCM_SHA384">
      <summary>
            256bit AES in GCM mode with SHA-384 hash and authenticated encryption (AEAD).
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256">
      <summary>
            ChaCha20-Poly1305 with SHA-256 hash and authenticated encryption (AEAD).
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256">
      <summary>
            ChaCha20-Poly1305 with SHA-256 hash and authenticated encryption (AEAD).
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DHE_RSA_WITH_CHACHA20_POLY1305_SHA256">
      <summary>
            ChaCha20-Poly1305 with SHA-256 hash and authenticated encryption (AEAD).
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DH_anon_WITH_RC4_128_MD5">
      <summary>
            Anonymous 128bit RC4 with MD5 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered vulnerable. Usage is strongly discouraged.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DH_anon_WITH_3DES_EDE_CBC_SHA">
      <summary>
            Anonymous TripleDES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered weak.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DH_anon_WITH_DES_CBC_SHA">
      <summary>
            Anonymous DES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
            /// <remarks>This cipher is considered vulnerable. Usage is strongly discouraged.</remarks></member>
    <member name="F:Rebex.Net.TlsCipherSuite.DH_anon_WITH_AES_256_CBC_SHA256">
      <summary>
            Anonymous 256bit AES in CBC mode with SHA256 hash and message authentication code.
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DH_anon_WITH_AES_128_CBC_SHA256">
      <summary>
            Anonymous 128bit AES in CBC mode with SHA256 hash and message authentication code.
            </summary>
      <remarks>This cipher is currently considered secure.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DH_anon_WITH_AES_128_CBC_SHA">
      <summary>
            Anonymous 128bit AES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered weak.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.DH_anon_WITH_AES_256_CBC_SHA">
      <summary>
            Anonymous 256bit AES in CBC mode with SHA-1 hash and message authentication code.
            </summary>
      <remarks>This cipher is considered weak.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.Common">
      <summary>
            Most commonly used ciphers as of 2023.
            </summary>
      <remarks>
        <code>ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256</code>
        <br />
        <code>ECDHE_ECDSA_WITH_AES_256_GCM_SHA384</code>
        <br />
        <code>ECDHE_ECDSA_WITH_AES_128_GCM_SHA256</code>
        <br />
        <code>ECDHE_ECDSA_WITH_AES_256_CBC_SHA</code>
        <br />
        <code>ECDHE_ECDSA_WITH_AES_128_CBC_SHA</code>
        <br />
        <code>ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256</code>
        <br />
        <code>ECDHE_RSA_WITH_AES_256_GCM_SHA384</code>
        <br />
        <code>ECDHE_RSA_WITH_AES_128_GCM_SHA256</code>
        <br />
        <code>ECDHE_RSA_WITH_AES_256_CBC_SHA</code>
        <br />
        <code>ECDHE_RSA_WITH_AES_128_CBC_SHA</code>
        <br />
        <code>RSA_WITH_AES_256_GCM_SHA384</code>
        <br />
        <code>RSA_WITH_AES_128_GCM_SHA256</code>
        <br />
        <code>RSA_WITH_AES_256_CBC_SHA</code>
        <br />
        <code>RSA_WITH_AES_128_CBC_SHA</code>
        <br />
      </remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.Fast">
      <summary>
            Specifies all ciphers that are currently considered secure and that are reasonably fast on legacy hardware.
            </summary>
      <remarks>
        <code>ECDHE_ECDSA_WITH_AES_128_CBC_SHA256</code>
        <br />
        <code>ECDHE_ECDSA_WITH_AES_256_CBC_SHA384</code>
        <br />
        <code>ECDHE_RSA_WITH_AES_128_CBC_SHA256</code>
        <br />
        <code>ECDHE_RSA_WITH_AES_256_CBC_SHA384</code>
        <br />
        <code>RSA_WITH_AES_128_CBC_SHA256</code>
        <br />
        <code>RSA_WITH_AES_256_CBC_SHA256</code>
        <br />
        <code>RSA_WITH_AES_128_GCM_SHA256</code>
        <br />
        <code>RSA_WITH_AES_256_GCM_SHA384</code>
        <br />
        <code>ECDHE_ECDSA_WITH_AES_128_GCM_SHA256</code>
        <br />
        <code>ECDHE_ECDSA_WITH_AES_256_GCM_SHA384</code>
        <br />
        <code>ECDHE_RSA_WITH_AES_128_GCM_SHA256</code>
        <br />
        <code>ECDHE_RSA_WITH_AES_256_GCM_SHA384</code>
        <br />
      </remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.Secure">
      <summary>
            Specifies all ciphers that are currently considered secure.
            </summary>
      <remarks>
        <code>ECDHE_ECDSA_WITH_AES_128_CBC_SHA256</code>
        <br />
        <code>ECDHE_ECDSA_WITH_AES_256_CBC_SHA384</code>
        <br />
        <code>ECDHE_RSA_WITH_AES_128_CBC_SHA256</code>
        <br />
        <code>ECDHE_RSA_WITH_AES_256_CBC_SHA384</code>
        <br />
        <code>RSA_WITH_AES_128_CBC_SHA256</code>
        <br />
        <code>RSA_WITH_AES_256_CBC_SHA256</code>
        <br />
        <code>DHE_RSA_WITH_AES_128_CBC_SHA256</code>
        <br />
        <code>DHE_RSA_WITH_AES_256_CBC_SHA256</code>
        <br />
        <code>RSA_WITH_AES_128_GCM_SHA256</code>
        <br />
        <code>RSA_WITH_AES_256_GCM_SHA384</code>
        <br />
        <code>DHE_RSA_WITH_AES_128_GCM_SHA256</code>
        <br />
        <code>DHE_RSA_WITH_AES_256_GCM_SHA384</code>
        <br />
        <code>ECDHE_ECDSA_WITH_AES_128_GCM_SHA256</code>
        <br />
        <code>ECDHE_ECDSA_WITH_AES_256_GCM_SHA384</code>
        <br />
        <code>ECDHE_RSA_WITH_AES_128_GCM_SHA256</code>
        <br />
        <code>ECDHE_RSA_WITH_AES_256_GCM_SHA384</code>
        <br />
        <code>ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256</code>
        <br />
        <code>ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256</code>
        <br />
        <code>DHE_RSA_WITH_CHACHA20_POLY1305_SHA256</code>
        <br />
      </remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.Weak">
      <summary>
            Specifies all ciphers that are considered weak.
            </summary>
      <remarks>
        <code>ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA</code>
        <br />
        <code>ECDHE_ECDSA_WITH_AES_128_CBC_SHA</code>
        <br />
        <code>ECDHE_ECDSA_WITH_AES_256_CBC_SHA</code>
        <br />
        <code>ECDHE_RSA_WITH_3DES_EDE_CBC_SHA</code>
        <br />
        <code>ECDHE_RSA_WITH_AES_128_CBC_SHA</code>
        <br />
        <code>ECDHE_RSA_WITH_AES_256_CBC_SHA</code>
        <br />
        <code>RSA_WITH_3DES_EDE_CBC_SHA</code>
        <br />
        <code>RSA_WITH_AES_128_CBC_SHA</code>
        <br />
        <code>RSA_WITH_AES_256_CBC_SHA</code>
        <br />
        <code>DHE_DSS_WITH_3DES_EDE_CBC_SHA</code>
        <br />
        <code>DHE_DSS_WITH_AES_128_CBC_SHA</code>
        <br />
        <code>DHE_DSS_WITH_AES_256_CBC_SHA</code>
        <br />
        <code>DHE_RSA_WITH_3DES_EDE_CBC_SHA</code>
        <br />
        <code>DHE_RSA_WITH_AES_128_CBC_SHA</code>
        <br />
        <code>DHE_RSA_WITH_AES_256_CBC_SHA</code>
        <br />
        <code>DHE_DSS_WITH_AES_128_CBC_SHA256</code>
        <br />
        <code>DHE_DSS_WITH_AES_256_CBC_SHA256</code>
        <br />
        <code>DHE_DSS_WITH_AES_128_GCM_SHA256</code>
        <br />
        <code>DHE_DSS_WITH_AES_256_GCM_SHA384</code>
        <br />
      </remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.Vulnerable">
      <summary>
            Specifies all ciphers that are currently considered vulnerable.
            </summary>
      <remarks>
        <code>RSA_EXPORT_WITH_RC4_40_MD5</code>
        <br />
        <code>RSA_WITH_RC4_128_MD5</code>
        <br />
        <code>RSA_WITH_RC4_128_SHA</code>
        <br />
        <code>RSA_EXPORT_WITH_RC2_CBC_40_MD5</code>
        <br />
        <code>RSA_EXPORT_WITH_DES40_CBC_SHA</code>
        <br />
        <code>RSA_WITH_DES_CBC_SHA</code>
        <br />
        <code>RSA_EXPORT1024_WITH_DES_CBC_SHA</code>
        <br />
        <code>RSA_EXPORT1024_WITH_RC4_56_SHA</code>
        <br />
        <code>DHE_DSS_EXPORT_WITH_DES40_CBC_SHA</code>
        <br />
        <code>DHE_DSS_WITH_DES_CBC_SHA</code>
        <br />
        <code>DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA</code>
        <br />
        <code>DHE_DSS_EXPORT1024_WITH_RC4_56_SHA</code>
        <br />
        <code>DHE_DSS_WITH_RC4_128_SHA</code>
        <br />
        <code>DHE_RSA_EXPORT_WITH_DES40_CBC_SHA</code>
        <br />
        <code>DHE_RSA_WITH_DES_CBC_SHA</code>
        <br />
        <code>ECDHE_RSA_WITH_RC4_128_SHA</code>
        <br />
        <code>ECDHE_ECDSA_WITH_RC4_128_SHA</code>
        <br />
      </remarks>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.Anonymous">
      <summary>
            Specifies anonymous ciphers.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsCipherSuite.All">
      <summary>
            Specifies all ciphers, including the weak ciphers, excluding anonymous ciphers.
            </summary>
    </member>
    <member name="T:Rebex.Net.TlsEllipticCurve">
      <summary>
            Specifies the set of desired elliptic curves.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsEllipticCurve.None">
      <summary>
            No curve.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsEllipticCurve.NistP256">
      <summary>
            NIST P-256 curve.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsEllipticCurve.NistP384">
      <summary>
            NIST P-384 curve.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsEllipticCurve.NistP521">
      <summary>
            NIST P-521 curve.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsEllipticCurve.BrainpoolP256R1">
      <summary>
            Brainpool P-256 R1 curve.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsEllipticCurve.BrainpoolP384R1">
      <summary>
            Brainpool P-384 R1 curve.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsEllipticCurve.BrainpoolP512R1">
      <summary>
            Brainpool P-512 R1 curve.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsEllipticCurve.Curve25519">
      <summary>
            Curve 25519.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsEllipticCurve.All">
      <summary>
            Specifies all curves.
            </summary>
    </member>
    <member name="T:Rebex.Net.TlsCertificatePolicy">
      <summary>
            Specifies the certificate policy for the server sockets.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsCertificatePolicy.NoClientCertificate">
      <summary>
            Don't request a client certificate.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsCertificatePolicy.AllowClientCertificate">
      <summary>
            Request a client certificate, but do not fail if none is provided.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsCertificatePolicy.RequireClientCertificate">
      <summary>
            Request a client certificate and fail if none is provided.
            </summary>
    </member>
    <member name="T:Rebex.Net.TlsCertificateAcceptance">
      <summary>
            Specifies certificate acceptance values.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsCertificateAcceptance.Accept">
      <summary>
            A certificate is to be accepted.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsCertificateAcceptance.CommonNameMismatch">
      <summary>
            The certificate common name does not match the server's name.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsCertificateAcceptance.RevocationCheckFailed">
      <summary>
            Unable to perform revocation check of the server certificate.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsCertificateAcceptance.UnsupportedSignatureAlgorithm">
      <summary>
            The certificate chain contains a certificate with unsupported signature hash algorithm (usually SHA-2).
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsCertificateAcceptance.InvalidKeyUsage">
      <summary>
            The certificate key usage does not allow the certificate to be used as server certificate.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsCertificateAcceptance.UnknownServerName">
      <summary>
            The target host name is unknown, which means that certificate's common name could not be verified.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsCertificateAcceptance.Bad">
      <summary>
            A certificate is corrupt, contains signatures that do not verify correctly, etc.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsCertificateAcceptance.Unsupported">
      <summary>
            A certificate is of an unsupported type.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsCertificateAcceptance.Revoked">
      <summary>
            A certificate was revoked by its signer.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsCertificateAcceptance.Expired">
      <summary>
            A certificate has expired or is not currently valid.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsCertificateAcceptance.UnknownAuthority">
      <summary>
            A CA certificate could not be found or untrusted CA.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsCertificateAcceptance.Other">
      <summary>
            Some other issue arose in processing the certificate, rendering it unacceptable.
            </summary>
    </member>
    <member name="T:Rebex.Net.TlsOptions">
      <summary>
            Specifies secure connection options.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsOptions.None">
      <summary>
            No options.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsOptions.DoNotCacheSessions">
      <summary>
            Do not cache any sessions.
            </summary>
      <remarks>Mostly useful for debugging purposes.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsOptions.StayConnected">
      <summary>
            This option is no longer supported.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsOptions.DoNotInsertEmptyFragment">
      <summary>
            Do not send empty record after successful handshake with CBC ciphers.
            </summary>
      <remarks>For compatibility with broken implementations.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsOptions.SkipRollbackDetection">
      <summary>
            Ignore the client version in premaster secret. This only affects server sockets.
            </summary>
      <remarks>For compatibility with broken client implementations.</remarks>
    </member>
    <member name="F:Rebex.Net.TlsOptions.SilentUnprotect">
      <summary>
            Forces the <see cref="M:Rebex.Net.TlsSocket.Unprotect" /> method to do immediate unprotect without exchange
            of CloseNotify alert messages. This is in violation of the RFC, but some broken servers need it,
            unfortunately.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsOptions.Reserved">
      <summary>
            This option is currently unused.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsOptions.AllowCloseWhileNegotiating">
      <summary>
            Causes an exception not to be thrown when a socket is closed by the server during negotiation.
            Instead, the negotiation will appear as successful, followed by an immediate socket closure.
            </summary>
      <remarks>
            This is needed by Serv-U FTP server that behaves like this when downloading an empty file
            or directory listing. Even though this behavior is almost certainly bad and could pose
            a potential security threat, we have to enable this option for this server to be able to work
            with it.
            </remarks>
    </member>
    <member name="F:Rebex.Net.TlsOptions.SilentClose">
      <summary>
            Forces the <see cref="M:Rebex.Net.TlsSocket.Close" /> method to do immediate close without sending the closure alert
            (close_notify messages). This is in violation of the RFC, but some broken servers (IIS with TLS 1.1)
            need it, unfortunately.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsOptions.DisableRenegotiationExtension">
      <summary>
            Disables Renegotiation Indication Extension (RFC 5746).
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsOptions.DisableServerNameIndication">
      <summary>
            Disables Server Name Indication Extension (RFC 6066).
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsOptions.DisableExtendedMasterSecret">
      <summary>
            Disables Extended Master Secret Extension (RFC 7627).
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsOptions.DisableRenegotiation">
      <summary>
            Disables all TLS renegotiation attempts by the other side.
            Please note that to enable client-initiated renegotiation at the server side, the <see cref="F:Rebex.Net.TlsOptions.AllowClientRenegotiation" /> option must be enabled.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsOptions.RequireSecureRenegotiation">
      <summary>
            Disables TLS renegotiation attempts by the other side unless it supports Renegotiation Indication Extension (RFC 5746).
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsOptions.AllowSilentClose">
      <summary>
            Disables the requirement for the other side of the connection to send closure alert (close_notify messages).
            This is in violation of the RFC and potentially opens the communication to truncation attack,
            but unfortunately it's needed when communicating with some broken TLS servers.
            Only applies to TLS 1.2 or lower.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsOptions.AllowClientRenegotiation">
      <summary>
            Allows server-side TLS sockets to accept TLS renegotiation initiated by the client.
            Does not apply to client-side TLS sockets (use <see cref="F:Rebex.Net.TlsOptions.DisableRenegotiation" /> to control that behavior instead).
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsOptions.EnableWrongSchannelPaddingWorkaround">
      <summary>
            Enables workaround for old versions of MS Schannel with DHE padding bug.
            See http://web.archive.org/web/20171129124603/https://connect.microsoft.com/IE/feedback/details/1253526/tls-serverkeyexchange-with-1024-dhe-may-encode-dh-y-as-127-bytes-breaking-internet-explorer-11 for details.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsOptions.UseLegacyRenegotiationExtensionSignaling">
      <summary>
            Use signaling mechanism via Signaling Cipher Suite Value (SCSV) to indicate support for Renegotiation Indication Extension (RFC 5746).
            Only applies to client-side TLS. Only applies to TLS 1.2 or earlier.
            </summary>
    </member>
    <member name="F:Rebex.Net.TlsOptions.DisableClientHelloPadding">
      <summary>
            Disables ClientHello padding.
            </summary>
    </member>
    <member name="M:Rebex.Net.SshAuthenticationAgent.#ctor">
      <summary>Creates an instance of <see cref="T:Rebex.Net.SshAuthenticationAgent" /> class.</summary>
    </member>
  </members>
</doc>