﻿<?xml version="1.0" encoding="utf-8"?><Type Name="RSACryptoServiceProvider" FullName="System.Security.Cryptography.RSACryptoServiceProvider"><TypeSignature Maintainer="auto" Language="C#" Value="public sealed class RSACryptoServiceProvider : System.Security.Cryptography.RSA, System.Security.Cryptography.ICspAsymmetricAlgorithm" /><TypeSignature Language="ILAsm" Value=".class public auto ansi sealed beforefieldinit RSACryptoServiceProvider extends System.Security.Cryptography.RSA implements class System.Security.Cryptography.ICspAsymmetricAlgorithm" /><AssemblyInfo><AssemblyName>mscorlib</AssemblyName><AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00]</AssemblyPublicKey><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.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.RSA</BaseTypeName></Base><Interfaces><Interface><InterfaceName>System.Security.Cryptography.ICspAsymmetricAlgorithm</InterfaceName></Interface></Interfaces><Attributes><Attribute><AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName></Attribute></Attributes><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This is the default implementation of <see cref="T:System.Security.Cryptography.RSA" />.</para><para>The <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> supports key sizes from 384 bits to 16384 bits in increments of 8 bits if you have the Microsoft Enhanced Cryptographic Provider installed.  It supports key sizes from 384 bits to 512 bits in increments of 8 bits if you have the Microsoft Base Cryptographic Provider installed.</para><para>Valid key sizes are dependent on the cryptographic service provider (CSP) that is used by the <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> instance. Windows CSPs enable keys sizes of 384 to 16384 bits for Windows versions prior to win81, and key sizes of 512 to 16384 bits for win81. For more information, see <see cref="http://msdn.microsoft.com/library/aa379941(v=vs.85).aspx">CryptGenKey</see> function in the Windows documentation.</para><format type="text/html"><h2>Interoperation with the Microsoft Cryptographic API (CAPI)</h2></format><para>Unlike the RSA implementation in unmanaged CAPI, the <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> class reverses the order of an encrypted array of bytes after encryption and before decryption.  By default, data encrypted by the <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> class cannot be decrypted by the CAPI CryptDecrypt function and data encrypted by the CAPI CryptEncrypt method cannot be decrypted by the <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> class.</para><para>If you do not compensate for the reverse ordering when interoperating between APIs, the <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> class throws a <see cref="T:System.Security.Cryptography.CryptographicException" />.</para><para>To interoperate with CAPI, you must manually reverse the order of encrypted bytes before the encrypted data interoperates with another API.  You can easily reverse the order of a managed byte array by calling the <see cref="M:System.Array.Reverse(System.Array)" /> method. </para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Performs asymmetric encryption and decryption using the implementation of the <see cref="T:System.Security.Cryptography.RSA" /> algorithm provided by the cryptographic service provider (CSP). This class cannot be inherited.</para></summary></Docs><Members><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public RSACryptoServiceProvider ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue /><Parameters /><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>If no default key is found, a new key is created.</para><para>This constructor creates an <see cref="F:System.Security.Cryptography.KeyNumber.Exchange" /> key pair suitable to encrypt session keys so that they can be safely stored and exchanged with other users.  The generated key corresponds to a key generated using the <paramref name="AT_KEYEXCHANGE" /> value used in the unmanaged Microsoft Cryptographic API (CAPI).</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Initializes a new instance of the <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> class using the default key.</para></summary></Docs></Member><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public RSACryptoServiceProvider (int dwKeySize);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(int32 dwKeySize) cil managed" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue /><Parameters><Parameter Name="dwKeySize" Type="System.Int32" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>If no default key is found, a new key is created.</para><para>This constructor creates an <see cref="F:System.Security.Cryptography.KeyNumber.Exchange" /> key pair suitable to encrypt session keys so that they can be safely stored and exchanged with other users.  The generated key corresponds to a key generated using the <paramref name="AT_KEYEXCHANGE" /> value used in the unmanaged Microsoft Cryptographic API (CAPI).</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Initializes a new instance of the <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> class with the specified key size.</para></summary><param name="dwKeySize"><attribution license="cc4" from="Microsoft" modified="false" />The size of the key to use in bits. </param></Docs></Member><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public RSACryptoServiceProvider (System.Security.Cryptography.CspParameters parameters);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.Security.Cryptography.CspParameters parameters) cil managed" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue /><Parameters><Parameter Name="parameters" Type="System.Security.Cryptography.CspParameters" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This constructor creates or reuses a key container specified using the <see cref="F:System.Security.Cryptography.CspParameters.KeyContainerName" /> field of the <paramref name="parameters" /> parameter. </para><para>By default, this constructor creates an <see cref="F:System.Security.Cryptography.KeyNumber.Exchange" /> key pair suitable to encrypt session keys so that they can be safely stored and exchanged with other users.  The generated key corresponds to a key generated using the <paramref name="AT_KEYEXCHANGE" /> value used in the unmanaged Microsoft Cryptographic API (CAPI).  </para><para>You can create a <see cref="F:System.Security.Cryptography.KeyNumber.Signature" /> key pair suitable for authenticating (digitally signed) messages or files by setting the <see cref="F:System.Security.Cryptography.CspParameters.KeyNumber" /> field of the <paramref name="parameters" /> parameter to the <see cref="F:System.Security.Cryptography.KeyNumber.Signature" /> value. This type of key corresponds to the <paramref name="AT_SIGNATURE" /> value used in CAPI.</para><para>If you create an <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> object with the <see cref="F:System.Security.Cryptography.KeyNumber.Exchange" /> value specified and then create another <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> object with the <see cref="F:System.Security.Cryptography.KeyNumber.Signature" /> value specified, both keys will be placed in a single container if both objects specify the same key container name.</para><para>To create a key that is compatible with stong-name signing using the <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> class, you must create a <see cref="F:System.Security.Cryptography.KeyNumber.Signature" /> key pair.    </para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Initializes a new instance of the <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> class with the specified parameters.</para></summary><param name="parameters"><attribution license="cc4" from="Microsoft" modified="false" />The parameters to be passed to the cryptographic service provider (CSP). </param></Docs></Member><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public RSACryptoServiceProvider (int dwKeySize, System.Security.Cryptography.CspParameters parameters);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(int32 dwKeySize, class System.Security.Cryptography.CspParameters parameters) cil managed" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue /><Parameters><Parameter Name="dwKeySize" Type="System.Int32" /><Parameter Name="parameters" Type="System.Security.Cryptography.CspParameters" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This constructor creates or reuses a key container specified using the <see cref="F:System.Security.Cryptography.CspParameters.KeyContainerName" /> field of the <paramref name="parameters" /> parameter. </para><para>By default, this constructor creates an <see cref="F:System.Security.Cryptography.KeyNumber.Exchange" /> key pair suitable to encrypt session keys so that they can be safely stored and exchanged with other users.  The generated key corresponds to a key generated using the <paramref name="AT_KEYEXCHANGE" /> value used in the unmanaged Microsoft Cryptographic API (CAPI).  </para><para>You can create a <see cref="F:System.Security.Cryptography.KeyNumber.Signature" /> key pair suitable for authenticating (digitally signed) messages or files by setting the <see cref="F:System.Security.Cryptography.CspParameters.KeyNumber" /> field of the <paramref name="parameters" /> parameter to the <see cref="F:System.Security.Cryptography.KeyNumber.Signature" /> value. This type of key corresponds to the <paramref name="AT_SIGNATURE" /> value used in CAPI.</para><para>If you create an <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> object with the <see cref="F:System.Security.Cryptography.KeyNumber.Exchange" /> value specified and then create another <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> object with the <see cref="F:System.Security.Cryptography.KeyNumber.Signature" /> value specified, both keys will be placed in a single container if both objects specify the same key container name.</para><para>To create a key that is compatible with stong-name signing using the <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> class, you must create a <see cref="F:System.Security.Cryptography.KeyNumber.Signature" /> key pair.    </para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Initializes a new instance of the <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> class with the specified key size and parameters.</para></summary><param name="dwKeySize"><attribution license="cc4" from="Microsoft" modified="false" />The size of the key to use in bits. </param><param name="parameters"><attribution license="cc4" from="Microsoft" modified="false" />The parameters to be passed to the cryptographic service provider (CSP). </param></Docs></Member><Member MemberName="CspKeyContainerInfo"><MemberSignature Language="C#" Value="public System.Security.Cryptography.CspKeyContainerInfo CspKeyContainerInfo { get; }" /><MemberSignature Language="ILAsm" Value=".property instance class System.Security.Cryptography.CspKeyContainerInfo CspKeyContainerInfo" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.Runtime.InteropServices.ComVisible(false)</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Security.Cryptography.CspKeyContainerInfo</ReturnType></ReturnValue><Docs><value>To be added.</value><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>Use the <see cref="P:System.Security.Cryptography.RSACryptoServiceProvider.CspKeyContainerInfo" /> property to retrieve additional information about a cryptographic key pair.  The returned <see cref="T:System.Security.Cryptography.CspKeyContainerInfo" /> object describes whether the key is exportable, and specifies the key container name, information about the provider, and other information.    </para><para>In cases where a random key is generated, a key container will not be created until you call a method that uses the key.  Some properties of the <see cref="T:System.Security.Cryptography.CspKeyContainerInfo" /> object returned by the <see cref="P:System.Security.Cryptography.DSACryptoServiceProvider.CspKeyContainerInfo" /> property will throw a <see cref="T:System.Security.Cryptography.CryptographicException" /> if a key container has not been created.  To make sure that a key container has been created, call a method such as <see cref="M:System.Security.Cryptography.RSACryptoServiceProvider.Encrypt(System.Byte[],System.Boolean)" />, <see cref="M:System.Security.Cryptography.RSACryptoServiceProvider.Decrypt(System.Byte[],System.Boolean)" />, <see cref="Overload:System.Security.Cryptography.RSACryptoServiceProvider.SignData" />, <see cref="M:System.Security.Cryptography.DSACryptoServiceProvider.SignHash(System.Byte[],System.String)" />, and so on, before you call the <see cref="P:System.Security.Cryptography.DSACryptoServiceProvider.CspKeyContainerInfo" /> property.  </para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets a <see cref="T:System.Security.Cryptography.CspKeyContainerInfo" /> object that describes additional information about a cryptographic key pair. </para></summary></Docs></Member><Member MemberName="Decrypt"><MemberSignature Language="C#" Value="public byte[] Decrypt (byte[] rgb, bool fOAEP);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance unsigned int8[] Decrypt(unsigned int8[] rgb, bool fOAEP) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Byte[]</ReturnType></ReturnValue><Parameters><Parameter Name="rgb" Type="System.Byte[]" /><Parameter Name="fOAEP" Type="System.Boolean" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>Use <see cref="M:System.Security.Cryptography.RSACryptoServiceProvider.Encrypt(System.Byte[],System.Boolean)" /> to encrypt data for decryption with this method.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Decrypts data with the <see cref="T:System.Security.Cryptography.RSA" /> algorithm.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>The decrypted data, which is the original plain text before encryption.</para></returns><param name="rgb"><attribution license="cc4" from="Microsoft" modified="false" />The data to be decrypted. </param><param name="fOAEP"><attribution license="cc4" from="Microsoft" modified="false" />true to perform direct <see cref="T:System.Security.Cryptography.RSA" /> decryption using OAEP padding (only available on a computer running Microsoft Windows XP or later); otherwise, false to use PKCS#1 v1.5 padding. </param></Docs></Member><Member MemberName="DecryptValue"><MemberSignature Language="C#" Value="public override byte[] DecryptValue (byte[] rgb);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance unsigned int8[] DecryptValue(unsigned int8[] rgb) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Byte[]</ReturnType></ReturnValue><Parameters><Parameter Name="rgb" Type="System.Byte[]" /></Parameters><Docs><remarks><para>Note: This method is implemented in Mono but isn't supported in the Microsoft .NET framework. There are good reason for this:</para><list type="bullet"><item><term>Mono requires the method to implement the RSA Formatter and Deformatter classes.</term></item><item><term>Microsoft's CryptoAPI doesn't support direct RSA encryption/decryption.</term></item><item><term>You shouldn't be using them anyway!!! as this isn't the way to encrypt using RSA. You need to apply padding before encrypting (and remove it when decrypting). Not doing so is both dangerous (non secure) and very slow.</term></item></list></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>This method is not supported in the current version.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>The decrypted data, which is the original plain text before encryption.</para></returns><param name="rgb"><attribution license="cc4" from="Microsoft" modified="false" />The data to be decrypted. </param></Docs></Member><Member MemberName="Dispose"><MemberSignature Language="C#" Value="protected override void Dispose (bool disposing);" /><MemberSignature Language="ILAsm" Value=".method familyhidebysig virtual instance void Dispose(bool disposing) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="disposing" Type="System.Boolean" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This method is called by the public Dispose() method and the Finalize method. Dispose() invokes the protected Dispose(Boolean) method with the disposing parameter set to true. Finalize invokes Dispose with disposing set to false.</para><para>When the <paramref name="disposing" /> parameter is true, this method releases all resources held by any managed objects that this <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> references. This method invokes the Dispose() method of each referenced object.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Releases the unmanaged resources used by the <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> and optionally releases the managed resources.</para></summary><param name="disposing"><attribution license="cc4" from="Microsoft" modified="false" />true to release both managed and unmanaged resources; false to release only unmanaged resources. </param></Docs></Member><Member MemberName="Encrypt"><MemberSignature Language="C#" Value="public byte[] Encrypt (byte[] rgb, bool fOAEP);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance unsigned int8[] Encrypt(unsigned int8[] rgb, bool fOAEP) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Byte[]</ReturnType></ReturnValue><Parameters><Parameter Name="rgb" Type="System.Byte[]" /><Parameter Name="fOAEP" Type="System.Boolean" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The following table describes the padding supported by different versions of Microsoft Windows and the maximum length of <paramref name="rgb" /> allowed by the different combinations of operating systems and padding.</para><list type="table"><listheader><item><term><para>Padding </para></term><description><para>Operating System Supported </para></description><description><para>Maximum Length of rgb Parameter </para></description></item></listheader><item><term><para>OAEP padding (PKCS#1 v2) </para></term><description><para>Microsoft Windows XP or later. </para></description><description><para>Modulus size -2 -2*hLen, where hLen is the size of the hash. </para></description></item><item><term><para>Direct Encryption (PKCS#1 v1.5) </para></term><description><para>Microsoft Windows 2000 or later with the high encryption pack installed. </para></description><description><para>Modulus size - 11. (11 bytes is the minimum padding possible.) </para></description></item><item><term><para>Direct Encryption and OAEP padding not supported </para></term><description><para>Microsoft Windows 98, Microsoft Windows Millennium, or Windows 2000 or later without the high encryption pack installed. </para></description><description><para>The maximum size allowed for a symmetric key. </para></description></item></list><para>Use <see cref="M:System.Security.Cryptography.RSACryptoServiceProvider.Decrypt(System.Byte[],System.Boolean)" /> to decrypt the results of this method.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Encrypts data with the <see cref="T:System.Security.Cryptography.RSA" /> algorithm.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>The encrypted data.</para></returns><param name="rgb"><attribution license="cc4" from="Microsoft" modified="false" />The data to be encrypted. </param><param name="fOAEP"><attribution license="cc4" from="Microsoft" modified="false" />true to perform direct <see cref="T:System.Security.Cryptography.RSA" /> encryption using OAEP padding (only available on a computer running Microsoft Windows XP or later); otherwise, false to use PKCS#1 v1.5 padding. </param></Docs></Member><Member MemberName="EncryptValue"><MemberSignature Language="C#" Value="public override byte[] EncryptValue (byte[] rgb);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance unsigned int8[] EncryptValue(unsigned int8[] rgb) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Byte[]</ReturnType></ReturnValue><Parameters><Parameter Name="rgb" Type="System.Byte[]" /></Parameters><Docs><remarks><para>Note: This method is implemented in Mono but isn't supported in the Microsoft .NET framework. There are good reason for this:</para><list type="bullet"><item><term>Mono requires the method to implement the RSA Formatter and Deformatter classes.</term></item><item><term>Microsoft's CryptoAPI doesn't support direct RSA encryption/decryption.</term></item><item><term>You shouldn't be using them anyway!!! as this isn't the way to encrypt using RSA. You need to apply padding before encrypting (and remove it when decrypting). Not doing so is both dangerous (non secure) and very slow.</term></item></list></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>This method is not supported in the current version.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>The encrypted data.</para></returns><param name="rgb"><attribution license="cc4" from="Microsoft" modified="false" />The data to be encrypted. </param></Docs></Member><Member MemberName="ExportCspBlob"><MemberSignature Language="C#" Value="public byte[] ExportCspBlob (bool includePrivateParameters);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance unsigned int8[] ExportCspBlob(bool includePrivateParameters) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.Runtime.InteropServices.ComVisible(false)</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Byte[]</ReturnType></ReturnValue><Parameters><Parameter Name="includePrivateParameters" Type="System.Boolean" /></Parameters><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.Security.Cryptography.RSACryptoServiceProvider.ExportCspBlob(System.Boolean)" /> method returns a blob containing key information that is compatible with the unmanaged Microsoft Cryptographic API (CAPI).   </para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Exports a blob containing the key information associated with an <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> object.  </para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>A byte array containing the key information associated with an <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> object.</para></returns><param name="includePrivateParameters"><attribution license="cc4" from="Microsoft" modified="false" />true to include the private key; otherwise, false.</param></Docs></Member><Member MemberName="ExportParameters"><MemberSignature Language="C#" Value="public override System.Security.Cryptography.RSAParameters ExportParameters (bool includePrivateParameters);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance valuetype System.Security.Cryptography.RSAParameters ExportParameters(bool includePrivateParameters) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Security.Cryptography.RSAParameters</ReturnType></ReturnValue><Parameters><Parameter Name="includePrivateParameters" Type="System.Boolean" /></Parameters><Docs><remarks>You are responsable to zeroize the private key (<see cref="T:System.Security.Cryptography.RSAParameters" /> parameters <see cref="M:System.Security.Cryptography.RSAParameters.D" />, <see cref="M:System.Security.Cryptography.RSAParameters.P" />, <see cref="M:System.Security.Cryptography.RSAParameters.Q" />, <see cref="M:System.Security.Cryptography.RSAParameters.DP" />, <see cref="M:System.Security.Cryptography.RSAParameters.DQ" /> and <see cref="M:System.Security.Cryptography.RSAParameters.InverseQ" />) if you export it from the instance.</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Exports the <see cref="T:System.Security.Cryptography.RSAParameters" />.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>The parameters for <see cref="T:System.Security.Cryptography.RSA" />.</para></returns><param name="includePrivateParameters"><attribution license="cc4" from="Microsoft" modified="false" />true to include private parameters; otherwise, false. </param></Docs></Member><Member MemberName="Finalize"><MemberSignature Language="C#" Value="~RSACryptoServiceProvider ();" /><MemberSignature Language="ILAsm" Value=".method familyhidebysig virtual instance void Finalize() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters /><Docs><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member><Member MemberName="ImportCspBlob"><MemberSignature Language="C#" Value="public void ImportCspBlob (byte[] keyBlob);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void ImportCspBlob(unsigned int8[] keyBlob) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.Runtime.InteropServices.ComVisible(false)</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="keyBlob" Type="System.Byte[]" /></Parameters><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.Security.Cryptography.RSACryptoServiceProvider.ImportCspBlob(System.Byte[])" /> method initializes the key data of an <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> object using a blob that is compatible with the unmanaged Microsoft Cryptographic API (CAPI).</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Imports a blob that represents RSA key information.  </para></summary><param name="keyBlob"><attribution license="cc4" from="Microsoft" modified="false" />A byte array that represents an RSA key blob.</param></Docs></Member><Member MemberName="ImportParameters"><MemberSignature Language="C#" Value="public override void ImportParameters (System.Security.Cryptography.RSAParameters parameters);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance void ImportParameters(valuetype System.Security.Cryptography.RSAParameters parameters) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="parameters" Type="System.Security.Cryptography.RSAParameters" /></Parameters><Docs><remarks>Parameters D, P and Q are required to import an RSA private key. Parameters DP, DQ and InverseQ will be used for the Chinese Remainder Theorem (CRT) optimization if available.
</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Imports the specified <see cref="T:System.Security.Cryptography.RSAParameters" />.</para></summary><param name="parameters"><attribution license="cc4" from="Microsoft" modified="false" />The parameters for <see cref="T:System.Security.Cryptography.RSA" />. </param></Docs></Member><Member MemberName="KeyExchangeAlgorithm"><MemberSignature Language="C#" Value="public override string KeyExchangeAlgorithm { get; }" /><MemberSignature Language="ILAsm" Value=".property instance string KeyExchangeAlgorithm" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String</ReturnType></ReturnValue><Docs><value>RSA-PKCS1-KeyEx</value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This property indicates the name of the algorithm, not of the type. For example, RSA-PKCS1-KeyEx is a key exchange algorithm name.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets the name of the key exchange algorithm available with this implementation of <see cref="T:System.Security.Cryptography.RSA" />.</para></summary></Docs></Member><Member MemberName="KeySize"><MemberSignature Language="C#" Value="public override int KeySize { get; }" /><MemberSignature Language="ILAsm" Value=".property instance int32 KeySize" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Docs><value>The size (in bits) of the current key.</value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> supports key sizes from 384 bits to 16384 bits in increments of 8 bits if you have the Microsoft Enhanced Cryptographic Provider installed.  It supports key sizes from 384 bits to 512 bits in increments of 8 bits if you have the Microsoft Base Cryptographic Provider installed. </para><para>Valid key sizes are dependent on the cryptographic service provider (CSP) that is used by the <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> instance. Windows CSPs enable key sizes of 384 to 16384 bits for Windows versions prior to win81, and key sizes of 512 to 16384 bits for win81. For more information, see <see cref="http://msdn.microsoft.com/library/aa379941(v=vs.85).aspx">CryptGenKey</see> function in the Windows documentation.</para><para>The <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> class does not allow you to change key sizes using the <see cref="P:System.Security.Cryptography.RSACryptoServiceProvider.KeySize" /> property.  Any value written to this property will fail to update the property without error.  To change the key size, use one of the constructor overloads.   </para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets the size of the current key.</para></summary></Docs></Member><Member MemberName="PersistKeyInCsp"><MemberSignature Language="C#" Value="public bool PersistKeyInCsp { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance bool PersistKeyInCsp" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Docs><value>True if the key is persisted, false otherwise.</value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>Use this property to persist a key in a key container.</para><para>The <see cref="P:System.Security.Cryptography.RSACryptoServiceProvider.PersistKeyInCsp" /> property is automatically set to true when you specify a key container name in a <see cref="T:System.Security.Cryptography.CspParameters" /> object and use it to initialize an <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> object.  You can specify a container name using the <see cref="F:System.Security.Cryptography.CspParameters.KeyContainerName" /> field. </para><para>If you set the <see cref="P:System.Security.Cryptography.RSACryptoServiceProvider.PersistKeyInCsp" /> property to true without initializing the <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> object with a <see cref="T:System.Security.Cryptography.CspParameters" /> object, a random key container name prepended with "CLR" is created. </para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets a value indicating whether the key should be persisted in the cryptographic service provider (CSP).</para></summary></Docs></Member><Member MemberName="PublicOnly"><MemberSignature Language="C#" Value="public bool PublicOnly { get; }" /><MemberSignature Language="ILAsm" Value=".property instance bool PublicOnly" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.Runtime.InteropServices.ComVisible(false)</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Docs><value>To be added.</value><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> class can be initialized either with a public key only or with both a public and private key.  Use the <see cref="P:System.Security.Cryptography.RSACryptoServiceProvider.PublicOnly" /> property to determine whether the current instance contains only a public key or both a public and private key.    </para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets a value that indicates whether the <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> object contains only a public key.</para></summary></Docs></Member><Member MemberName="SignatureAlgorithm"><MemberSignature Language="C#" Value="public override string SignatureAlgorithm { get; }" /><MemberSignature Language="ILAsm" Value=".property instance string SignatureAlgorithm" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String</ReturnType></ReturnValue><Docs><value>http://www.w3.org/2000/09/xmldsig#rsa-sha1</value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This property is used in XML digital signature classes to indicate the algorithm URI. In this implementation, this property always returns http://www.w3.org/2000/09/xmldsig#rsa-sha1.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets the name of the signature algorithm available with this implementation of <see cref="T:System.Security.Cryptography.RSA" />.</para></summary></Docs></Member><Member MemberName="SignData"><MemberSignature Language="C#" Value="public byte[] SignData (byte[] buffer, object halg);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance unsigned int8[] SignData(unsigned int8[] buffer, object halg) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Byte[]</ReturnType></ReturnValue><Parameters><Parameter Name="buffer" Type="System.Byte[]" /><Parameter Name="halg" Type="System.Object" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This method creates a digital signature that is verified using the <see cref="M:System.Security.Cryptography.RSACryptoServiceProvider.VerifyData(System.Byte[],System.Object,System.Byte[])" /> method.</para><para>The <paramref name="halg" /> parameter can accept a <see cref="T:System.String" />, a <see cref="T:System.Security.Cryptography.HashAlgorithm" />, or a <see cref="T:System.Type" />.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Computes the hash value of the specified byte array using the specified hash algorithm, and signs the resulting hash value.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="T:System.Security.Cryptography.RSA" /> signature for the specified data.</para></returns><param name="buffer"><attribution license="cc4" from="Microsoft" modified="false" />The input data for which to compute the hash. </param><param name="halg"><attribution license="cc4" from="Microsoft" modified="false" />The hash algorithm to use to create the hash value. </param></Docs></Member><Member MemberName="SignData"><MemberSignature Language="C#" Value="public byte[] SignData (System.IO.Stream inputStream, object halg);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance unsigned int8[] SignData(class System.IO.Stream inputStream, object halg) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Byte[]</ReturnType></ReturnValue><Parameters><Parameter Name="inputStream" Type="System.IO.Stream" /><Parameter Name="halg" Type="System.Object" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <paramref name="halg" /> parameter can accept a <see cref="T:System.String" />, a <see cref="T:System.Security.Cryptography.HashAlgorithm" />, or a <see cref="T:System.Type" />.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Computes the hash value of the specified input stream using the specified hash algorithm, and signs the resulting hash value.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="T:System.Security.Cryptography.RSA" /> signature for the specified data.</para></returns><param name="inputStream"><attribution license="cc4" from="Microsoft" modified="false" />The input data for which to compute the hash. </param><param name="halg"><attribution license="cc4" from="Microsoft" modified="false" />The hash algorithm to use to create the hash value. </param></Docs></Member><Member MemberName="SignData"><MemberSignature Language="C#" Value="public byte[] SignData (byte[] buffer, int offset, int count, object halg);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance unsigned int8[] SignData(unsigned int8[] buffer, int32 offset, int32 count, object halg) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Byte[]</ReturnType></ReturnValue><Parameters><Parameter Name="buffer" Type="System.Byte[]" /><Parameter Name="offset" Type="System.Int32" /><Parameter Name="count" Type="System.Int32" /><Parameter Name="halg" Type="System.Object" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This method creates a digital signature that is verified using the <see cref="M:System.Security.Cryptography.RSACryptoServiceProvider.VerifyData(System.Byte[],System.Object,System.Byte[])" /> method.</para><para>The <paramref name="halg" /> parameter can accept a <see cref="T:System.String" />, a <see cref="T:System.Security.Cryptography.HashAlgorithm" />, or a <see cref="T:System.Type" />. The string value can be one of the following:</para><list type="bullet"><item><para>The object identifier (OID) friendly name of the hash algorithm to use, either a name registered in the crypto config file or one in the Crypto API OID table.</para></item><item><para>The OID value. The OID must be one recognized by the Crypto API.</para></item></list><para>For example, you could use SignData(new byte[5], "1.3.14.3.2.26") or SignData(new byte[5], "sha1"), or SignData(new byte[5], "SHA1").</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Computes the hash value of a subset of the specified byte array using the specified hash algorithm, and signs the resulting hash value.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="T:System.Security.Cryptography.RSA" /> signature for the specified data.</para></returns><param name="buffer"><attribution license="cc4" from="Microsoft" modified="false" />The input data for which to compute the hash. </param><param name="offset"><attribution license="cc4" from="Microsoft" modified="false" />The offset into the array from which to begin using data. </param><param name="count"><attribution license="cc4" from="Microsoft" modified="false" />The number of bytes in the array to use as data. </param><param name="halg"><attribution license="cc4" from="Microsoft" modified="false" />The hash algorithm to use to create the hash value. </param></Docs></Member><Member MemberName="SignHash"><MemberSignature Language="C#" Value="public byte[] SignHash (byte[] rgbHash, string str);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance unsigned int8[] SignHash(unsigned int8[] rgbHash, string str) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Byte[]</ReturnType></ReturnValue><Parameters><Parameter Name="rgbHash" Type="System.Byte[]" /><Parameter Name="str" Type="System.String" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This method creates a digital signature that is verified using the <see cref="M:System.Security.Cryptography.RSACryptoServiceProvider.VerifyHash(System.Byte[],System.String,System.Byte[])" /> method.</para><para>The valid hash algorithms are <see cref="T:System.Security.Cryptography.SHA1" /> and <see cref="T:System.Security.Cryptography.MD5" />. The algorithm identifier can be derived from the hash name by using the <see cref="M:System.Security.Cryptography.CryptoConfig.MapNameToOID(System.String)" /> method.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Computes the signature for the specified hash value by encrypting it with the private key.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="T:System.Security.Cryptography.RSA" /> signature for the specified hash value.</para></returns><param name="rgbHash"><attribution license="cc4" from="Microsoft" modified="false" />The hash value of the data to be signed. </param><param name="str"><attribution license="cc4" from="Microsoft" modified="false" />The hash algorithm identifier (OID) used to create the hash value of the data. </param></Docs></Member><Member MemberName="UseMachineKeyStore"><MemberSignature Language="C#" Value="public static bool UseMachineKeyStore { get; set; }" /><MemberSignature Language="ILAsm" Value=".property bool UseMachineKeyStore" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Docs><value>True if the machine key store is used by default, false otherwise.</value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>Setting this property to true is equivalent to passing the <see cref="F:System.Security.Cryptography.CspProviderFlags.UseMachineKeyStore" /> flag to a <see cref="T:System.Security.Cryptography.CspParameters" /> object. The <see cref="P:System.Security.Cryptography.RSACryptoServiceProvider.UseMachineKeyStore" /> property applies to all code in the current application domain, whereas the <see cref="T:System.Security.Cryptography.CspParameters" /> object applies only to classes that explicitly reference it. These settings are useful when impersonating or running under an account whose user profile is not loaded. Setting <see cref="P:System.Security.Cryptography.RSACryptoServiceProvider.UseMachineKeyStore" /> affects the key store location only if <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> is initialized with no parameters.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets a value indicating whether the key should be persisted in the computer's key store instead of the user profile store.</para></summary></Docs></Member><Member MemberName="VerifyData"><MemberSignature Language="C#" Value="public bool VerifyData (byte[] buffer, object halg, byte[] signature);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool VerifyData(unsigned int8[] buffer, object halg, unsigned int8[] signature) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters><Parameter Name="buffer" Type="System.Byte[]" /><Parameter Name="halg" Type="System.Object" /><Parameter Name="signature" Type="System.Byte[]" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This method verifies the <see cref="T:System.Security.Cryptography.RSA" /> digital signature produced by the <see cref="M:System.Security.Cryptography.RSACryptoServiceProvider.SignData(System.IO.Stream,System.Object)" /> method. The signature is verified by obtaining the hash value from the signature using the public key it was signed with, and comparing that value to the hash value of the provided data.</para><para>The <paramref name="halg" /> parameter can accept a <see cref="T:System.String" />, a <see cref="T:System.Security.Cryptography.HashAlgorithm" />, or a <see cref="T:System.Type" />.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Verifies that a digital signature is valid by determining the hash value in the signature using the provided public key and comparing it to the hash value of the provided data.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>true if the signature is valid; otherwise, false.</para></returns><param name="buffer"><attribution license="cc4" from="Microsoft" modified="false" />The data that was signed. </param><param name="halg"><attribution license="cc4" from="Microsoft" modified="false" />The name of the hash algorithm used to create the hash value of the data. </param><param name="signature"><attribution license="cc4" from="Microsoft" modified="false" />The signature data to be verified. </param></Docs></Member><Member MemberName="VerifyHash"><MemberSignature Language="C#" Value="public bool VerifyHash (byte[] rgbHash, string str, byte[] rgbSignature);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool VerifyHash(unsigned int8[] rgbHash, string str, unsigned int8[] rgbSignature) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters><Parameter Name="rgbHash" Type="System.Byte[]" /><Parameter Name="str" Type="System.String" /><Parameter Name="rgbSignature" Type="System.Byte[]" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This method verifies the <see cref="T:System.Security.Cryptography.RSA" /> digital signature produced by the <see cref="M:System.Security.Cryptography.RSACryptoServiceProvider.SignHash(System.Byte[],System.String)" /> method. The signature is verified by obtaining the hash value from the signature using the public key it was signed with, and comparing that value to the hash value of the provided data.</para><para>The valid hash algorithms are <see cref="T:System.Security.Cryptography.SHA1" /> and <see cref="T:System.Security.Cryptography.MD5" />. The algorithm identifier can be derived from the hash name by using the <see cref="M:System.Security.Cryptography.CryptoConfig.MapNameToOID(System.String)" /> method.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Verifies that a digital signature is valid by determining the hash value in the signature using the provided public key and comparing it to the provided hash value.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>true if the signature is valid; otherwise, false.</para></returns><param name="rgbHash"><attribution license="cc4" from="Microsoft" modified="false" />The hash value of the signed data. </param><param name="str"><attribution license="cc4" from="Microsoft" modified="false" />The hash algorithm identifier (OID) used to create the hash value of the data. </param><param name="rgbSignature"><attribution license="cc4" from="Microsoft" modified="false" />The signature data to be verified. </param></Docs></Member></Members></Type>