<Type Name="RNGCryptoServiceProvider" FullName="System.Security.Cryptography.RNGCryptoServiceProvider">
  <TypeSignature Maintainer="auto" Language="C#" Value="public sealed class RNGCryptoServiceProvider : System.Security.Cryptography.RandomNumberGenerator" />
  <AssemblyInfo>
    <AssemblyName>mscorlib</AssemblyName>
    <AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00]</AssemblyPublicKey>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the &lt;link location="node:gtk-sharp/programming/threads"&gt;Gtk# Thread Programming&lt;/link&gt; for details.</ThreadSafetyStatement>
  <Base>
    <BaseTypeName>System.Security.Cryptography.RandomNumberGenerator</BaseTypeName>
  </Base>
  <Interfaces />
  <Docs>
    <summary>The Mono:: runtime pseudo-random number generator (RNG).</summary>
    <remarks>
      <para>
On Linux, and some UNIX derivate operating systems, the random numbers comes from /dev/random, or if not available, from /dev/urandom.
</para>
      <para>
On Windows operating systems the random numbers comes directly from CryptoAPI.
</para>
    </remarks>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public RNGCryptoServiceProvider ();" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters />
      <Docs>
        <summary>Create a new RNGCryptoServiceProvider instance. </summary>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public RNGCryptoServiceProvider (byte[] rgb);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="rgb" Type="System.Byte[]" />
      </Parameters>
      <Docs>
        <param name="rgb">Seeding data for the random number generator.</param>
        <summary>Create a new RNGCryptoServiceProvider instance using the array of bytes as a seed.</summary>
        <remarks>Currently the runtime doesn't support any PRNG that requires seeding - so this contructor will not really seed the PRNG with the supplied data.</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public RNGCryptoServiceProvider (System.Security.Cryptography.CspParameters cspParams);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="cspParams" Type="System.Security.Cryptography.CspParameters" />
      </Parameters>
      <Docs>
        <param name="cspParams">To be added: an object of type 'CspParameters'</param>
        <summary>Create a new RNGCryptoServiceProvider instance using the specified Cryptographic Service Provider (CSP).</summary>
        <remarks>Mono doesn't use the CspParameters informations, even on Windows, when creating an instance of this class using this constructor.</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public RNGCryptoServiceProvider (string str);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="str" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="str">Seeding data for the random number generator. </param>
        <summary>Create a new RNGCryptoServiceProvider instance using the specified string as a seed.</summary>
        <remarks>Currently the runtime doesn't support any PRNG that requires seeding - so this contructor will not really seed the PRNG with the supplied data.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Finalize">
      <MemberSignature Language="C#" Value="~RNGCryptoServiceProvider ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="GetBytes">
      <MemberSignature Language="C#" Value="public override void GetBytes (byte[] data);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="data" Type="System.Byte[]" />
      </Parameters>
      <Docs>
        <param name="data">The buffer to be filled with random bytes.</param>
        <summary>Fill the supplied buffer with random bytes.</summary>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="GetNonZeroBytes">
      <MemberSignature Language="C#" Value="public override void GetNonZeroBytes (byte[] data);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="data" Type="System.Byte[]" />
      </Parameters>
      <Docs>
        <param name="data">The buffer to be filled with random bytes.</param>
        <summary>Fill the supplied buffer with random bytes excluding zeros (0x00).</summary>
        <remarks>Some cryptographic functions requires random that do not contain zeros. However this restriction do not apply to most application code so this method shouldn't be used.</remarks>
      </Docs>
    </Member>
  </Members>
  <Attributes>
    <Attribute>
      <AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
    </Attribute>
  </Attributes>
</Type>
