<doc>
  <assembly>
    <name>Rebex.Security</name>
  </assembly>
  <members>
    <member name="T:Rebex.Security.FileEncryptionAlgorithm">
      <summary>
            Specifies algorithm used to encrypt or decrypt.
            </summary>
    </member>
    <member name="F:Rebex.Security.FileEncryptionAlgorithm.AesXts">
      <summary>
            AES in XTS mode.
            </summary>
    </member>
    <member name="F:Rebex.Security.FileEncryptionAlgorithm.AesCbc">
      <summary>
            AES in CBC mode.
            </summary>
    </member>
    <member name="F:Rebex.Security.FileEncryptionAlgorithm.TripleDesCbc">
      <summary>
            TripleDes in CBC mode.
            </summary>
    </member>
    <member name="F:Rebex.Security.FileEncryptionAlgorithm.TwofishCbc">
      <summary>
            Twofish in CBC mode.
            </summary>
    </member>
    <member name="T:Rebex.Security.KeyDerivationAlgorithm">
      <summary>
            Specifies key derivation algorithm from password.
            </summary>
    </member>
    <member name="F:Rebex.Security.KeyDerivationAlgorithm.Rfc2898">
      <summary>
            Use RFC 2898 implementation of key derivation from password.
            </summary>
    </member>
    <member name="T:Rebex.Security.FileEncryption">
      <summary>
            Provides high level API for encrypting and decrypting files and streams.
            </summary>
    </member>
    <member name="M:Rebex.Security.FileEncryption.#ctor">
      <summary>
            Creates a new instance of <see cref="T:Rebex.Security.FileEncryption" /> object.
            </summary>
    </member>
    <member name="M:Rebex.Security.FileEncryption.Decrypt(System.String,System.String)">
      <summary>
            Decrypts a source file into a target file.
            </summary>
      <param name="sourceFile">The file to decrypt.</param>
      <param name="targetFile">The name of the decrypted file. This cannot be a directory.</param>
    </member>
    <member name="M:Rebex.Security.FileEncryption.Decrypt(System.IO.Stream,System.IO.Stream)">
      <summary>
            Decrypts data from a source stream into a target stream.
            </summary>
      <param name="sourceStream">Readable stream with encrypted data.</param>
      <param name="targetStream">Writable stream that will receive the decrypted data.</param>
    </member>
    <member name="M:Rebex.Security.FileEncryption.Encrypt(System.String,System.String)">
      <summary>
            Encrypts a source file into a target file.
            </summary>
      <param name="sourceFile">The file to encrypt.</param>
      <param name="targetFile">The name of the encrypted file. This cannot be a directory.</param>
    </member>
    <member name="M:Rebex.Security.FileEncryption.Encrypt(System.IO.Stream,System.IO.Stream)">
      <summary>
            Encrypts data from a source stream into a target stream.
            </summary>
      <param name="sourceStream">Readable stream with input data.</param>
      <param name="targetStream">Writable stream that will receive the encrypted data.</param>
    </member>
    <member name="P:Rebex.Security.FileEncryption.OverwriteExistingFile">
      <summary>
            Get or sets a value indicating whether to overwrite existing target files.
            </summary>
    </member>
    <member name="P:Rebex.Security.FileEncryption.EncryptionAlgorithm">
      <summary>
            Gets or sets the encryption algorithm used for encryption and decryption.
            </summary>
    </member>
    <member name="P:Rebex.Security.FileEncryption.EncryptionKeySize">
      <summary>
            Gets or sets the encryption key size (null indicates default key size).
            </summary>
    </member>
    <member name="P:Rebex.Security.FileEncryption.XtsBlockSize">
      <summary>
            Gets or sets XTS algorithm block size in bytes. Must be multiple of 16. Default value is 65536, maximum number is 1048576.
            This is only used for <see cref="F:Rebex.Security.FileEncryptionAlgorithm.AesXts" />.
            Use smaller buffer if you read very small parts of a stream from different places, or use larger buffer if you do sequential reads of large blocks. 
            Setting this value might negatively impact the performance.
            </summary>
    </member>
    <member name="M:Rebex.Security.FileEncryption.SetPassword(System.Byte[])">
      <summary>
            Sets password for encryption and decryption.
            </summary>
      <param name="password">Password for encryption and decryption.</param>
    </member>
    <member name="M:Rebex.Security.FileEncryption.SetPassword(System.String)">
      <summary>
            Sets password for encryption and decryption.
            </summary>
      <param name="password">Password for encryption and decryption.</param>
    </member>
    <member name="M:Rebex.Security.FileEncryption.SetPassword(System.Byte[],Rebex.Security.KeyDerivationAlgorithm)">
      <summary>
            Sets password for encryption and decryption.
            </summary>
      <param name="password">Password for encryption and decryption.</param>
      <param name="algorithm">Key derivation algorithm.</param>
    </member>
    <member name="M:Rebex.Security.FileEncryption.SetPassword(System.String,Rebex.Security.KeyDerivationAlgorithm)">
      <summary>
            Sets password for encryption and decryption.
            </summary>
      <param name="password">Password for encryption and decryption.</param>
      <param name="algorithm">Key derivation algorithm.</param>
    </member>
    <member name="M:Rebex.Security.FileEncryption.BeginDecrypt(System.String,System.String,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous Decrypt operation.
            Decrypts a source file into a target file.
            </summary>
      <param name="sourceFile">The file to decrypt.</param>
      <param name="targetFile">The name of the decrypted file. This cannot be a directory.</param>
      <remarks>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Security.FileEncryption.BeginDecrypt(System.IO.Stream,System.IO.Stream,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous Decrypt operation.
            Decrypts data from a source stream into a target stream.
            </summary>
      <param name="sourceStream">Readable stream with encrypted data.</param>
      <param name="targetStream">Writable stream that will receive the decrypted data.</param>
      <remarks>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Security.FileEncryption.EndDecrypt(System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginDecrypt operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <remarks>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
    </member>
    <member name="M:Rebex.Security.FileEncryption.BeginEncrypt(System.String,System.String,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous Encrypt operation.
            Encrypts a source file into a target file.
            </summary>
      <param name="sourceFile">The file to encrypt.</param>
      <param name="targetFile">The name of the encrypted file. This cannot be a directory.</param>
      <remarks>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Security.FileEncryption.BeginEncrypt(System.IO.Stream,System.IO.Stream,System.AsyncCallback,System.Object)">
      <summary>
            Begins asynchronous Encrypt operation.
            Encrypts data from a source stream into a target stream.
            </summary>
      <param name="sourceStream">Readable stream with input data.</param>
      <param name="targetStream">Writable stream that will receive the encrypted data.</param>
      <remarks>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
      <param name="callback">An optional asynchronous callback to be called when the operation is complete.</param>
      <param name="state">A user-provided object that identifies this particular asynchronous operation.</param>
      <returns>
            An <see cref="T:System.IAsyncResult" /> that references the asynchronous operation.
            </returns>
    </member>
    <member name="M:Rebex.Security.FileEncryption.EndEncrypt(System.IAsyncResult)">
      <summary>
            Ends an asynchronous BeginEncrypt operation.
            </summary>
      <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
      <remarks>
        <p>In builds for .NET 4.0 and higher, this method is available as an extension method. Add 'using Rebex.Legacy' (C#) or 'Import Rebex.Legacy' (VB.NET) to your code in order to use it.</p>
      </remarks>
    </member>
    <member name="T:Rebex.Security.Cryptography.Xts">
      <summary>
            Represents XTS-AES, a standard algorithm for protection of stored data defined by IEEE P1619.
            </summary>
      <remarks>
            This is low level API. For higher level API see <see cref="T:Rebex.Security.XtsStream" />.
            </remarks>
    </member>
    <member name="P:Rebex.Security.Cryptography.Xts.BlockSize">
      <summary>
            Gets the block size in bytes.
            </summary>
    </member>
    <member name="M:Rebex.Security.Cryptography.Xts.#ctor(System.Byte[],System.Byte[])">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Security.Cryptography.Xts" /> class.
            </summary>
      <param name="encryptionKey" />
      <param name="tweakingKey" />
    </member>
    <member name="M:Rebex.Security.Cryptography.Xts.EncryptSector(System.Byte[],System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32)">
      <summary>
            Encrypts the specified region of the input byte array and copies the result to the specified region of the output byte array.
            </summary>
      <param name="tweak">The tweak value (check <see cref="P:Rebex.Security.Cryptography.Xts.BlockSize" /> for required length).</param>
      <param name="inputBuffer">The input for which to compute the transform.</param>
      <param name="inputOffset">The offset into the input byte array from which to begin using data.</param>
      <param name="inputCount">The number of bytes in the input byte array to use as data.</param>
      <param name="outputBuffer">The output to which to write the transform.</param>
      <param name="outputOffset">The offset into the output byte array from which to begin writing data.</param>
    </member>
    <member name="M:Rebex.Security.Cryptography.Xts.DecryptSector(System.Byte[],System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32)">
      <summary>
            Decrypts the specified region of the input byte array and copies the result to the specified region of the output byte array.
            </summary>
      <param name="tweak">The tweak value (check <see cref="P:Rebex.Security.Cryptography.Xts.BlockSize" /> for required length).</param>
      <param name="inputBuffer">The input for which to compute the transform.</param>
      <param name="inputOffset">The offset into the input byte array from which to begin using data.</param>
      <param name="inputCount">The number of bytes in the input byte array to use as data.</param>
      <param name="outputBuffer">The output to which to write the transform.</param>
      <param name="outputOffset">The offset into the output byte array from which to begin writing data.</param>
    </member>
    <member name="M:Rebex.Security.Cryptography.Xts.Dispose">
      <summary>
            Releases all resources used by the <see cref="T:Rebex.Security.Cryptography.Xts" /> object.
            </summary>
    </member>
    <member name="T:Rebex.Security.XtsSettings">
      <summary>
            XTS settings.
            </summary>
    </member>
    <member name="M:Rebex.Security.XtsSettings.#ctor">
      <summary>
            Creates a new instance of <see cref="T:Rebex.Security.XtsSettings" />.
            </summary>
    </member>
    <member name="P:Rebex.Security.XtsSettings.BlockSize">
      <summary>
            The XTS algorithm block size in bytes. Must be multiple of 16. Default value is 65536, maximum number is 1048576.
            Use smaller buffer if you read very small parts of a stream from different places, or use larger buffer if you do sequential reads of large blocks. 
            Setting this value might negatively impact the performance.
            </summary>
    </member>
    <member name="P:Rebex.Security.XtsSettings.KeySize">
      <summary>
            Length of AES keys (derived from the password using PBKDF2 defined by RFC 2898).
            </summary>
    </member>
    <member name="P:Rebex.Security.XtsSettings.Iterations">
      <summary>
            Number of iterations for key derivation (derived from the password using PBKDF2 defined by RFC 2898).
            </summary>
    </member>
    <member name="T:Rebex.Security.XtsStream">
      <summary>
            Implements XTS-AES, a standard algorithm for protection of stored data defined by IEEE P1619.
            </summary>
    </member>
    <member name="F:Rebex.Security.XtsStream.DefaultBlockSize">
      <summary>
            Default block size (64 KB).
            </summary>
    </member>
    <member name="P:Rebex.Security.XtsStream.BlockSize">
      <summary>
            Gets a size of one XTS block in bytes
            </summary>
    </member>
    <member name="P:Rebex.Security.XtsStream.CanRead">
      <summary>
            Gets a value indicating whether the current stream supports reading.
            </summary>
      <returns>true if the stream supports reading; otherwise, false.</returns>
      <exception cref="T:System.ObjectDisposedException">
            Methods were called after the stream was closed.
            </exception>
    </member>
    <member name="P:Rebex.Security.XtsStream.CanSeek">
      <summary>
            Gets a value indicating whether the current stream supports seeking.
            </summary>
      <returns>true if the stream supports seeking; otherwise, false.</returns>
      <exception cref="T:System.ObjectDisposedException">
            Methods were called after the stream was closed.
            </exception>
    </member>
    <member name="P:Rebex.Security.XtsStream.CanWrite">
      <summary>
            Gets a value indicating whether the current stream supports writing.
            </summary>
      <returns>true if the stream supports writing; otherwise, false.</returns>
      <exception cref="T:System.ObjectDisposedException">
            Methods were called after the stream was closed.
            </exception>
    </member>
    <member name="P:Rebex.Security.XtsStream.Length">
      <summary>
            Gets the length in bytes of the stream.
            </summary>
      <returns>
            A long value representing the length of the stream in bytes.
            </returns>
      <exception cref="T:System.NotSupportedException">
            A class derived from Stream does not support seeking.
            </exception>
      <exception cref="T:System.ObjectDisposedException">
            Methods were called after the stream was closed.
            </exception>
    </member>
    <member name="P:Rebex.Security.XtsStream.Position">
      <summary>
            Gets or sets the position within the current stream.
            </summary>
      <returns>
            The current position within the stream.
            </returns>
      <exception cref="T:System.IO.IOException">
            An I/O error occurs.
            </exception>
      <exception cref="T:System.NotSupportedException">
            The stream does not support seeking.
            </exception>
      <exception cref="T:System.ObjectDisposedException">
            Methods were called after the stream was closed.
            </exception>
      <exception cref="T:System.InvalidOperationException">
            Position is set to a negative number or is greater than the stream length. If you need to increase stream length, use the SetLength method first.
            </exception>
    </member>
    <member name="M:Rebex.Security.XtsStream.#ctor(System.String,System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Security.XtsStream" /> class.
            </summary>
      <param name="filePath">The base stream that contains or will contain encrypted data in the Rebex XTS format.</param>
      <param name="password">The password that is used to generate the encryption key.</param>
      <exception cref="T:System.NotSupportedException">
        <paramref name="filePath" /> is not readable or seekable.
            </exception>
      <exception cref="T:System.ArgumentNullException">
        <paramref name="filePath" /> or <paramref name="password" /> is null.
            </exception>
    </member>
    <member name="M:Rebex.Security.XtsStream.#ctor(System.String,System.Byte[])">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Security.XtsStream" /> class.
            </summary>
      <param name="filePath">The base stream that contains or will contain encrypted data in the Rebex XTS format.</param>
      <param name="password">The password that is used to generate the encryption key.</param>
      <exception cref="T:System.NotSupportedException">
        <paramref name="filePath" /> is not readable or seekable.
            </exception>
      <exception cref="T:System.ArgumentNullException">
        <paramref name="filePath" /> or <paramref name="password" /> is null.
            </exception>
    </member>
    <member name="M:Rebex.Security.XtsStream.#ctor(System.String,System.String,Rebex.Security.XtsSettings)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Security.XtsStream" /> class.
            </summary>
      <param name="filePath">The base stream that contains or will contain encrypted data in the Rebex XTS format.</param>
      <param name="password">The password that is used to generate the encryption key.</param>
            /// <param name="settings">XTS settings.</param><exception cref="T:System.NotSupportedException"><paramref name="filePath" /> is not readable or seekable.
            </exception><exception cref="T:System.ArgumentNullException"><paramref name="filePath" /> or <paramref name="password" /> is null.
            </exception></member>
    <member name="M:Rebex.Security.XtsStream.#ctor(System.String,System.Byte[],Rebex.Security.XtsSettings)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Security.XtsStream" /> class.
            </summary>
      <param name="filePath">The base stream that contains or will contain encrypted data in the Rebex XTS format.</param>
      <param name="password">The password that is used to generate the encryption key.</param>
            /// <param name="settings">XTS settings.</param><exception cref="T:System.NotSupportedException"><paramref name="filePath" /> is not readable or seekable.
            </exception><exception cref="T:System.ArgumentNullException"><paramref name="filePath" /> or <paramref name="password" /> is null.
            </exception></member>
    <member name="M:Rebex.Security.XtsStream.#ctor(System.String,Rebex.Security.Cryptography.AsymmetricKeyAlgorithm,Rebex.Security.XtsSettings)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Security.XtsStream" /> class.
            </summary>
      <param name="filePath">The base stream that contains or will contain encrypted data in the Rebex XTS format.</param>
      <param name="key">The public key used to encrypt a randomly-generated password.</param>
            /// <param name="settings">XTS settings.</param><exception cref="T:System.NotSupportedException"><paramref name="filePath" /> is not readable or seekable.
            </exception><exception cref="T:System.ArgumentNullException"><paramref name="filePath" /> is null.
            </exception></member>
    <member name="M:Rebex.Security.XtsStream.#ctor(System.IO.Stream,System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Security.XtsStream" /> class.
            </summary>
      <param name="baseStream">The base stream that contains or will contain encrypted data in the Rebex XTS format.</param>
      <param name="password">The password that is used to generate the encryption key.</param>
      <exception cref="T:System.NotSupportedException">
        <paramref name="baseStream" /> is not readable or seekable.
            </exception>
      <exception cref="T:System.ArgumentNullException">
        <paramref name="baseStream" /> or <paramref name="password" /> is null.
            </exception>
    </member>
    <member name="M:Rebex.Security.XtsStream.#ctor(System.IO.Stream,System.Byte[])">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Security.XtsStream" /> class.
            </summary>
      <param name="baseStream">The base stream that contains or will contain encrypted data in the Rebex XTS format.</param>
      <param name="password">The password that is used to generate the encryption key.</param>
      <exception cref="T:System.NotSupportedException">
        <paramref name="baseStream" /> is not readable or seekable.
            </exception>
      <exception cref="T:System.ArgumentNullException">
        <paramref name="baseStream" /> or <paramref name="password" /> is null.
            </exception>
    </member>
    <member name="M:Rebex.Security.XtsStream.#ctor(System.IO.Stream,System.String,Rebex.Security.XtsSettings)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Security.XtsStream" /> class.
            </summary>
      <param name="baseStream">The base stream that contains or will contain encrypted data in the Rebex XTS format.</param>
      <param name="password">The password that is used to generate the encryption key.</param>
      <param name="settings">XTS settings.</param>
      <exception cref="T:System.NotSupportedException">
        <paramref name="baseStream" /> is not readable or seekable.
            </exception>
      <exception cref="T:System.ArgumentNullException">
        <paramref name="baseStream" /> or <paramref name="password" /> is null.
            </exception>
    </member>
    <member name="M:Rebex.Security.XtsStream.#ctor(System.IO.Stream,System.Byte[],Rebex.Security.XtsSettings)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Security.XtsStream" /> class.
            </summary>
      <param name="baseStream">The base stream that contains or will contain encrypted data in the Rebex XTS format.</param>
      <param name="password">The password that is used to generate the encryption key.</param>
      <param name="settings">XTS settings.</param>
      <exception cref="T:System.NotSupportedException">
        <paramref name="baseStream" /> is not readable or seekable.
            </exception>
      <exception cref="T:System.ArgumentNullException">
        <paramref name="baseStream" /> or <paramref name="password" /> is null.
            </exception>
    </member>
    <member name="M:Rebex.Security.XtsStream.#ctor(System.IO.Stream,Rebex.Security.Cryptography.Pkcs.PublicKeyInfo,Rebex.Security.XtsSettings)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Security.XtsStream" /> class.
            </summary>
      <param name="baseStream">The base stream that contains or will contain encrypted data in the Rebex XTS format.</param>
      <param name="key">The public key used to encrypt a randomly-generated password.</param>
      <param name="settings">XTS settings.</param>
      <exception cref="T:System.NotSupportedException">
        <paramref name="baseStream" /> is not readable or seekable.
            </exception>
      <exception cref="T:System.ArgumentNullException">
        <paramref name="baseStream" /> or <paramref name="key" /> is null.
            </exception>
    </member>
    <member name="M:Rebex.Security.XtsStream.#ctor(System.IO.Stream,Rebex.Security.Cryptography.Pkcs.PrivateKeyInfo,Rebex.Security.XtsSettings)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Security.XtsStream" /> class.
            </summary>
      <param name="baseStream">The base stream that contains or will contain encrypted data in the Rebex XTS format.</param>
      <param name="key">The private key used to encrypt or decrypt a randomly-generated password.</param>
      <param name="settings">XTS settings.</param>
      <exception cref="T:System.NotSupportedException">
        <paramref name="baseStream" /> is not readable or seekable.
            </exception>
      <exception cref="T:System.ArgumentNullException">
        <paramref name="baseStream" /> or <paramref name="key" /> is null.
            </exception>
    </member>
    <member name="M:Rebex.Security.XtsStream.#ctor(System.IO.Stream,Rebex.Security.Cryptography.AsymmetricKeyAlgorithm,Rebex.Security.XtsSettings)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Security.XtsStream" /> class.
            </summary>
      <param name="baseStream">The base stream that contains or will contain encrypted data in the Rebex XTS format.</param>
      <param name="key">The public or private key used to encrypt or decrypt a randomly-generated password.</param>
      <param name="settings">XTS settings.</param>
      <exception cref="T:System.NotSupportedException">
        <paramref name="baseStream" /> is not readable or seekable.
            </exception>
      <exception cref="T:System.ArgumentNullException">
        <paramref name="baseStream" /> or <paramref name="key" /> is null.
            </exception>
    </member>
    <member name="M:Rebex.Security.XtsStream.#ctor(System.IO.Stream,System.String,System.Int32)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Security.XtsStream" /> class.
            </summary>
      <param name="baseStream">The base stream that contains or will contain encrypted data in the Rebex XTS format.</param>
      <param name="password">The password that is used to generate the encryption key.</param>
      <param name="blockSize">The XTS algorithm block size in bytes. Must be multiple of 16. Default value is 65536. 
            Use smaller buffer if you read very small parts of a stream from different places, or use larger buffer if you do sequential reads of large blocks. 
            Setting this value might negatively impact the performance.</param>
      <exception cref="T:System.NotSupportedException">
        <paramref name="baseStream" /> is not readable or seekable.
            </exception>
      <exception cref="T:System.ArgumentNullException">
        <paramref name="baseStream" /> or <paramref name="password" /> is null.
            </exception>
      <exception cref="T:System.ArgumentException">
        <paramref name="blockSize" /> is negative, zero or not multiple of 16.
            </exception>
    </member>
    <member name="M:Rebex.Security.XtsStream.#ctor(System.IO.Stream,System.Byte[],System.Int32)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Security.XtsStream" /> class.
            </summary>
      <param name="baseStream">The base stream that contains or will contain encrypted data in the Rebex XTS format.</param>
      <param name="password">The password that is used to generate the encryption key.</param>
      <param name="blockSize">The XTS algorithm block size in bytes. Must be multiple of 16. Default value is 65536, maximum number is 1048576.
            Use smaller buffer if you read very small parts of a stream from different places, or use larger buffer if you do sequential reads of large blocks. 
            Setting this value might negatively impact the performance.</param>
      <exception cref="T:System.NotSupportedException">
        <paramref name="baseStream" /> is not readable or seekable.
            </exception>
      <exception cref="T:System.ArgumentNullException">
        <paramref name="baseStream" /> or <paramref name="password" /> is null.
            </exception>
      <exception cref="T:System.ArgumentException">
        <paramref name="blockSize" /> is negative, zero or not multiple of 16.
            </exception>
    </member>
    <member name="M:Rebex.Security.XtsStream.#ctor(System.IO.Stream,Rebex.Security.Cryptography.Pkcs.PublicKeyInfo,System.Int32)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Security.XtsStream" /> class.
            </summary>
      <param name="baseStream">The base stream that contains or will contain encrypted data in the Rebex XTS format.</param>
      <param name="key">The public key used to encrypt a randomly-generated password.</param>
      <param name="blockSize">The XTS algorithm block size in bytes. Must be multiple of 16. Default value is 65536, maximum number is 1048576.
            Use smaller buffer if you read very small parts of a stream from different places, or use larger buffer if you do sequential reads of large blocks. 
            Setting this value might negatively impact the performance.</param>
      <exception cref="T:System.NotSupportedException">
        <paramref name="baseStream" /> is not readable or seekable.
            </exception>
      <exception cref="T:System.ArgumentNullException">
        <paramref name="baseStream" /> or <paramref name="key" /> is null.
            </exception>
      <exception cref="T:System.ArgumentException">
        <paramref name="blockSize" /> is negative, zero or not multiple of 16.
            </exception>
    </member>
    <member name="M:Rebex.Security.XtsStream.#ctor(System.IO.Stream,Rebex.Security.Cryptography.Pkcs.PrivateKeyInfo,System.Int32)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Security.XtsStream" /> class.
            </summary>
      <param name="baseStream">The base stream that contains or will contain encrypted data in the Rebex XTS format.</param>
      <param name="key">The private key used to encrypt or decrypt a randomly-generated password.</param>
      <param name="blockSize">The XTS algorithm block size in bytes. Must be multiple of 16. Default value is 65536, maximum number is 1048576.
            Use smaller buffer if you read very small parts of a stream from different places, or use larger buffer if you do sequential reads of large blocks. 
            Setting this value might negatively impact the performance.</param>
      <exception cref="T:System.NotSupportedException">
        <paramref name="baseStream" /> is not readable or seekable.
            </exception>
      <exception cref="T:System.ArgumentNullException">
        <paramref name="baseStream" /> or <paramref name="key" /> is null.
            </exception>
      <exception cref="T:System.ArgumentException">
        <paramref name="blockSize" /> is negative, zero or not multiple of 16.
            </exception>
    </member>
    <member name="M:Rebex.Security.XtsStream.#ctor(System.IO.Stream,Rebex.Security.Cryptography.AsymmetricKeyAlgorithm,System.Int32)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.Security.XtsStream" /> class.
            </summary>
      <param name="baseStream">The base stream that contains or will contain encrypted data in the Rebex XTS format.</param>
      <param name="key">The public or private key used to encrypt or decrypt a randomly-generated password.</param>
      <param name="blockSize">The XTS algorithm block size in bytes. Must be multiple of 16. Default value is 65536, maximum number is 1048576.
            Use smaller buffer if you read very small parts of a stream from different places, or use larger buffer if you do sequential reads of large blocks. 
            Setting this value might negatively impact the performance.</param>
      <exception cref="T:System.NotSupportedException">
        <paramref name="baseStream" /> is not readable or seekable.
            </exception>
      <exception cref="T:System.ArgumentNullException">
        <paramref name="baseStream" /> or <paramref name="key" /> is null.
            </exception>
      <exception cref="T:System.ArgumentException">
        <paramref name="blockSize" /> is negative, zero or not multiple of 16.
            </exception>
    </member>
    <member name="M:Rebex.Security.XtsStream.Flush">
      <summary>
            Clears all buffers for this stream and causes any buffered data to be written to the underlying device.
            </summary>
      <exception cref="T:System.IO.IOException">
            An I/O error occurs.
            </exception>
      <exception cref="T:System.ObjectDisposedException">
            Methods were called after the stream was closed.
            </exception>
    </member>
    <member name="M:Rebex.Security.XtsStream.Read(System.Byte[],System.Int32,System.Int32)">
      <summary>
            Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.
            </summary>
      <param name="buffer">An array of bytes. When this method returns, the buffer contains the specified byte array with the values between <paramref name="offset" /> and (<paramref name="offset" /> + <paramref name="count" /> - 1) replaced by the bytes read from the current source.</param>
      <param name="offset">The zero-based byte offset in <paramref name="buffer" /> at which to begin storing the data read from the current stream.</param>
      <param name="count">The maximum number of bytes to be read from the current stream.</param>
      <returns>
            The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached.
            </returns>
      <exception cref="T:System.ArgumentException">
            The sum of <paramref name="offset" /> and <paramref name="count" /> is larger than the buffer length.
            </exception>
      <exception cref="T:System.ArgumentNullException">
        <paramref name="buffer" /> is null.
            </exception>
      <exception cref="T:System.ArgumentOutOfRangeException">
        <paramref name="offset" /> or <paramref name="count" /> is negative.
            </exception>
      <exception cref="T:System.IO.IOException">
            An I/O error occurs.
            </exception>
      <exception cref="T:System.NotSupportedException">
            The stream does not support reading.
            </exception>
      <exception cref="T:System.ObjectDisposedException">
            Methods were called after the stream was closed.
            </exception>
    </member>
    <member name="M:Rebex.Security.XtsStream.Seek(System.Int64,System.IO.SeekOrigin)">
      <summary>
            Sets the position within the current stream.
            </summary>
      <param name="offset">A byte offset relative to the <paramref name="origin" /> parameter.</param>
      <param name="origin">A value of type <see cref="T:System.IO.SeekOrigin" /> indicating the reference point used to obtain the new position.</param>
      <returns>
            The new position within the current stream.
            </returns>
      <exception cref="T:System.IO.IOException">
            An I/O error occurs.
            </exception>
      <exception cref="T:System.ObjectDisposedException">
            Methods were called after the stream was closed.
            </exception>
      <exception cref="T:System.InvalidOperationException">
            Position is set to a negative number or is greater than the stream length. If you need to increase stream length, use the SetLength method first.
            </exception>
    </member>
    <member name="M:Rebex.Security.XtsStream.SetLength(System.Int64)">
      <summary>
            Sets the length of the current stream.
            </summary>
      <param name="value">The desired length of the current stream in bytes.</param>
      <exception cref="T:System.IO.IOException">
            An I/O error occurs.
            </exception>
      <exception cref="T:System.NotSupportedException">
            The stream does not support both writing and seeking, such as if the stream is constructed from a pipe or console output.
            </exception>
      <exception cref="T:System.ObjectDisposedException">
            Methods were called after the stream was closed.
            </exception>
    </member>
    <member name="M:Rebex.Security.XtsStream.Write(System.Byte[],System.Int32,System.Int32)">
      <summary>
            Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.
            </summary>
      <param name="buffer">An array of bytes. This method copies <paramref name="count" /> bytes from <paramref name="buffer" /> to the current stream.</param>
      <param name="offset">The zero-based byte offset in <paramref name="buffer" /> at which to begin copying bytes to the current stream.</param>
      <param name="count">The number of bytes to be written to the current stream.</param>
      <exception cref="T:System.ArgumentException">
            The sum of <paramref name="offset" /> and <paramref name="count" /> is greater than the buffer length.
            </exception>
      <exception cref="T:System.ArgumentNullException">
        <paramref name="buffer" /> is null.
            </exception>
      <exception cref="T:System.ArgumentOutOfRangeException">
        <paramref name="offset" /> or <paramref name="count" /> is negative.
            </exception>
      <exception cref="T:System.IO.IOException">
            An I/O error occurs.
            </exception>
      <exception cref="T:System.NotSupportedException">
            The stream does not support writing.
            </exception>
      <exception cref="T:System.ObjectDisposedException">
            Methods were called after the stream was closed.
            </exception>
    </member>
    <member name="M:Rebex.Security.XtsStream.Dispose(System.Boolean)">
      <summary>
            Releases the unmanaged resources used by the <see cref="T:System.IO.Stream" /> and optionally releases the managed resources.
            </summary>
      <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
    </member>
  </members>
</doc>