<?xml version="1.0" encoding="utf-8"?>
<doc>
  <assembly>
    <name>System.Security.Cryptography.ProtectedData</name>
  </assembly>
  <members>
    <member name="T:System.Security.Cryptography.DataProtectionScope">
      <summary>Specifies the scope of the data protection to be applied by the <see cref="M:System.Security.Cryptography.ProtectedData.Protect(System.Byte[],System.Byte[],System.Security.Cryptography.DataProtectionScope)" /> method.</summary>
    </member>
    <member name="F:System.Security.Cryptography.DataProtectionScope.CurrentUser">
      <summary>The protected data is associated with the current user. Only threads running under the current user context can unprotect the data.</summary>
    </member>
    <member name="F:System.Security.Cryptography.DataProtectionScope.LocalMachine">
      <summary>The protected data is associated with the machine context. Any process running on the computer can unprotect data. This enumeration value is usually used in server-specific applications that run on a server where untrusted users are not allowed access.</summary>
    </member>
    <member name="T:System.Security.Cryptography.ProtectedData">
      <summary>Provides methods for encrypting and decrypting data. This class cannot be inherited.</summary>
    </member>
    <member name="M:System.Security.Cryptography.ProtectedData.Protect(System.Byte[],System.Byte[],System.Security.Cryptography.DataProtectionScope)">
      <summary>Encrypts the data in a specified byte array and returns a byte array that contains the encrypted data.</summary>
      <param name="userData">A byte array that contains data to encrypt.</param>
      <param name="optionalEntropy">An optional additional byte array used to increase the complexity of the encryption, or <see langword="null" /> for no additional complexity.</param>
      <param name="scope">One of the enumeration values that specifies the scope of encryption.</param>
      <exception cref="T:System.ArgumentNullException">The <paramref name="userData" /> parameter is <see langword="null" />.</exception>
      <exception cref="T:System.Security.Cryptography.CryptographicException">The encryption failed.</exception>
      <exception cref="T:System.NotSupportedException">The operating system does not support this method.</exception>
      <exception cref="T:System.OutOfMemoryException">The system ran out of memory while encrypting the data.</exception>
      <exception cref="T:System.PlatformNotSupportedException">.NET Core and .NET 5+ only: Calls to the <c>Protect</c> method are supported on Windows operating systems only.</exception>
      <returns>A byte array representing the encrypted data.</returns>
    </member>
    <member name="M:System.Security.Cryptography.ProtectedData.Protect(System.ReadOnlySpan{System.Byte},System.Security.Cryptography.DataProtectionScope,System.ReadOnlySpan{System.Byte})">
      <summary>Encrypts the data in a specified byte span and returns a byte array that contains the encrypted data.</summary>
      <param name="userData">A buffer that contains the data to encrypt.</param>
      <param name="scope">One of the enumeration values that specifies the scope of encryption.</param>
      <param name="optionalEntropy">
        <para>An optional additional byte span used to increase the complexity of the encryption, or empty for no additional complexity.</para>
      </param>
      <exception cref="T:System.Security.Cryptography.CryptographicException">The encryption failed.</exception>
      <exception cref="T:System.NotSupportedException">The operating system does not support this method.</exception>
      <exception cref="T:System.OutOfMemoryException">The system ran out of memory while encrypting the data.</exception>
      <exception cref="T:System.PlatformNotSupportedException">The operating system is not Windows.</exception>
      <returns>A byte array representing the encrypted data.</returns>
    </member>
    <member name="M:System.Security.Cryptography.ProtectedData.Protect(System.ReadOnlySpan{System.Byte},System.Security.Cryptography.DataProtectionScope,System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
      <summary>Encrypts the data in a specified buffer and writes the encrypted data to a destination buffer.</summary>
      <param name="userData">A buffer that contains data to encrypt.</param>
      <param name="scope">One of the enumeration values that specifies the scope of encryption.</param>
      <param name="destination">The buffer to receive the encrypted data.</param>
      <param name="optionalEntropy">
        <para>An optional additional buffer used to increase the complexity of the encryption, or empty for no additional complexity.</para>
      </param>
      <exception cref="T:System.ArgumentException">The buffer in <paramref name="destination" /> is too small to hold the encrypted data.</exception>
      <exception cref="T:System.Security.Cryptography.CryptographicException">The encryption failed.</exception>
      <exception cref="T:System.NotSupportedException">The operating system does not support this method.</exception>
      <exception cref="T:System.OutOfMemoryException">The system ran out of memory while encrypting the data.</exception>
      <exception cref="T:System.PlatformNotSupportedException">The operating system is not Windows.</exception>
      <returns>The total number of bytes written to <paramref name="destination" /></returns>
    </member>
    <member name="M:System.Security.Cryptography.ProtectedData.TryProtect(System.ReadOnlySpan{System.Byte},System.Security.Cryptography.DataProtectionScope,System.Span{System.Byte},System.Int32@,System.ReadOnlySpan{System.Byte})">
      <summary>Encrypts the data in a specified buffer and writes the encrypted data to a destination buffer.</summary>
      <param name="userData">A buffer that contains data to encrypt.</param>
      <param name="scope">One of the enumeration values that specifies the scope of encryption.</param>
      <param name="destination">The buffer to receive the encrypted data.</param>
      <param name="bytesWritten">
        <para>When this method returns, contains the number of bytes written to <paramref name="destination" />.</para>
      </param>
      <param name="optionalEntropy">
        <para>An optional additional buffer used to increase the complexity of the encryption, or empty for no additional complexity.</para>
      </param>
      <exception cref="T:System.ArgumentException">The buffer in <paramref name="destination" /> is too small to hold the encrypted data.</exception>
      <exception cref="T:System.Security.Cryptography.CryptographicException">The encryption failed.</exception>
      <exception cref="T:System.NotSupportedException">The operating system does not support this method.</exception>
      <exception cref="T:System.OutOfMemoryException">The system ran out of memory while encrypting the data.</exception>
      <exception cref="T:System.PlatformNotSupportedException">The operating system is not Windows.</exception>
      <returns>
        <para>
          <see langword="true" /> if <paramref name="destination" /> was large enough to receive the decrypted data; otherwise, <see langword="false" />.</para>
      </returns>
    </member>
    <member name="M:System.Security.Cryptography.ProtectedData.TryUnprotect(System.ReadOnlySpan{System.Byte},System.Security.Cryptography.DataProtectionScope,System.Span{System.Byte},System.Int32@,System.ReadOnlySpan{System.Byte})">
      <summary>Decrypts the data in a specified buffer and writes the decrypted data to a destination buffer.</summary>
      <param name="encryptedData">A buffer that contains data to decrypt.</param>
      <param name="scope">One of the enumeration values that specifies the scope of encryption.</param>
      <param name="destination">The buffer to receive the decrypted data.</param>
      <param name="bytesWritten">
        <para>When this method returns, contains the number of bytes written to <paramref name="destination" />.</para>
      </param>
      <param name="optionalEntropy">
        <para>An optional additional buffer used to increase the complexity of the encryption, or empty for no additional complexity.</para>
      </param>
      <exception cref="T:System.ArgumentException">The buffer in <paramref name="destination" /> is too small to hold the decrypted data.</exception>
      <exception cref="T:System.Security.Cryptography.CryptographicException">The encryption failed.</exception>
      <exception cref="T:System.NotSupportedException">The operating system does not support this method.</exception>
      <exception cref="T:System.OutOfMemoryException">The system ran out of memory while encrypting the data.</exception>
      <exception cref="T:System.PlatformNotSupportedException">The operating system is not Windows.</exception>
      <returns>
        <para>
          <see langword="true" /> if <paramref name="destination" /> was large enough to receive the decrypted data; otherwise, <see langword="false" />.</para>
      </returns>
    </member>
    <member name="M:System.Security.Cryptography.ProtectedData.Unprotect(System.Byte[],System.Byte[],System.Security.Cryptography.DataProtectionScope)">
      <summary>Decrypts the data in a specified byte array and returns a byte array that contains the decrypted data.</summary>
      <param name="encryptedData">A byte array containing data encrypted using the <see cref="M:System.Security.Cryptography.ProtectedData.Protect(System.Byte[],System.Byte[],System.Security.Cryptography.DataProtectionScope)" /> method.</param>
      <param name="optionalEntropy">An optional additional byte array that was used to encrypt the data, or <see langword="null" /> if the additional byte array was not used.</param>
      <param name="scope">One of the enumeration values that specifies the scope of data protection that was used to encrypt the data.</param>
      <exception cref="T:System.ArgumentNullException">The <paramref name="encryptedData" /> parameter is <see langword="null" />.</exception>
      <exception cref="T:System.Security.Cryptography.CryptographicException">The decryption failed.</exception>
      <exception cref="T:System.NotSupportedException">The operating system does not support this method.</exception>
      <exception cref="T:System.OutOfMemoryException">Out of memory.</exception>
      <exception cref="T:System.PlatformNotSupportedException">.NET Core and .NET 5+ only: Calls to the <c>Unprotect</c> method are supported on Windows operating systems only.</exception>
      <returns>A byte array representing the decrypted data.</returns>
    </member>
    <member name="M:System.Security.Cryptography.ProtectedData.Unprotect(System.ReadOnlySpan{System.Byte},System.Security.Cryptography.DataProtectionScope,System.ReadOnlySpan{System.Byte})">
      <summary>Decrypts the data in a specified byte array and returns a byte array that contains the decrypted data.</summary>
      <param name="encryptedData">A buffer that contains data to decrypt.</param>
      <param name="scope">One of the enumeration values that specifies the scope of encryption.</param>
      <param name="optionalEntropy">
        <para>An optional additional buffer used to increase the complexity of the encryption, or empty for no additional complexity.</para>
      </param>
      <exception cref="T:System.Security.Cryptography.CryptographicException">The encryption failed.</exception>
      <exception cref="T:System.NotSupportedException">The operating system does not support this method.</exception>
      <exception cref="T:System.OutOfMemoryException">The system ran out of memory while decrypting the data.</exception>
      <exception cref="T:System.PlatformNotSupportedException">The operating system is not Windows.</exception>
      <returns>A byte array representing the encrypted data.</returns>
    </member>
    <member name="M:System.Security.Cryptography.ProtectedData.Unprotect(System.ReadOnlySpan{System.Byte},System.Security.Cryptography.DataProtectionScope,System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
      <summary>Decrypts the data in a specified buffer and writes the decrypted data to a destination buffer.</summary>
      <param name="encryptedData">A buffer that contains data to decrypt.</param>
      <param name="scope">One of the enumeration values that specifies the scope of encryption.</param>
      <param name="destination">The buffer to receive the decrypted data.</param>
      <param name="optionalEntropy">
        <para>An optional additional buffer used to increase the complexity of the encryption, or empty for no additional complexity.</para>
      </param>
      <exception cref="T:System.ArgumentException">The buffer in <paramref name="destination" /> is too small to hold the decrypted data.</exception>
      <exception cref="T:System.Security.Cryptography.CryptographicException">The encryption failed.</exception>
      <exception cref="T:System.NotSupportedException">The operating system does not support this method.</exception>
      <exception cref="T:System.OutOfMemoryException">The system ran out of memory while encrypting the data.</exception>
      <exception cref="T:System.PlatformNotSupportedException">The operating system is not Windows.</exception>
      <returns>The total number of bytes written to <paramref name="destination" /></returns>
    </member>
  </members>
</doc>