RSAPKCS1SignatureDeformatter Class

 

Verifies an RSA PKCS #1 version 1.5 signature.

Namespace:   System.Security.Cryptography
Assembly:  mscorlib (in mscorlib.dll)

System.Object
  System.Security.Cryptography.AsymmetricSignatureDeformatter
    System.Security.Cryptography.RSAPKCS1SignatureDeformatter

[ComVisibleAttribute(true)]
public class RSAPKCS1SignatureDeformatter : AsymmetricSignatureDeformatter

NameDescription
System_CAPS_pubmethodRSAPKCS1SignatureDeformatter()

Initializes a new instance of the RSAPKCS1SignatureDeformatter class.

System_CAPS_pubmethodRSAPKCS1SignatureDeformatter(AsymmetricAlgorithm)

Initializes a new instance of the RSAPKCS1SignatureDeformatter class with the specified key.

NameDescription
System_CAPS_pubmethodEquals(Object)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_protmethodFinalize()

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_protmethodMemberwiseClone()

Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethodSetHashAlgorithm(String)

Sets the hash algorithm to use for verifying the signature.(Overrides AsymmetricSignatureDeformatter.SetHashAlgorithm(String).)

System_CAPS_pubmethodSetKey(AsymmetricAlgorithm)

Sets the public key to use for verifying the signature.(Overrides AsymmetricSignatureDeformatter.SetKey(AsymmetricAlgorithm).)

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

System_CAPS_pubmethodVerifySignature(Byte[], Byte[])

Verifies the RSA PKCS#1 signature for the specified data.(Overrides AsymmetricSignatureDeformatter.VerifySignature(Byte[], Byte[]).)

System_CAPS_pubmethodVerifySignature(HashAlgorithm, Byte[])

Verifies the signature from the specified hash value.(Inherited from AsymmetricSignatureDeformatter.)

This class is used to verify a digital signature made with the RSA algorithm.

Use RSAPKCS1SignatureFormatter to create digital signatures with the RSA algorithm.

The following example demonstrates how to use the VerifySignature method to verify a signature.

using System;
using System.Security.Cryptography;

class RSASample
{

    static void Main()
    {
        try
        {
            //Create a new instance of RSACryptoServiceProvider.
            using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
            {
                //The hash to sign.
                byte[] hash;
                using (SHA256 sha256 = SHA256.Create())
                {
                    byte[] data = new byte[] { 59, 4, 248, 102, 77, 97, 142, 201, 210, 12, 224, 93, 25, 41, 100, 197, 213, 134, 130, 135 };
                    hash = sha256.ComputeHash(data);
                }

                //Create an RSASignatureFormatter object and pass it the 
                //RSACryptoServiceProvider to transfer the key information.
                RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter(rsa);

                //Set the hash algorithm to SHA256.
                RSAFormatter.SetHashAlgorithm("SHA256");

                //Create a signature for HashValue and return it.
                byte[] signedHash = RSAFormatter.CreateSignature(hash);
                //Create an RSAPKCS1SignatureDeformatter object and pass it the  
                //RSACryptoServiceProvider to transfer the key information.
                RSAPKCS1SignatureDeformatter RSADeformatter = new RSAPKCS1SignatureDeformatter(rsa);
                RSADeformatter.SetHashAlgorithm("SHA256");
                //Verify the hash and display the results to the console. 
                if (RSADeformatter.VerifySignature(hash, signedHash))
                {
                    Console.WriteLine("The signature was verified.");
                }
                else
                {
                    Console.WriteLine("The signature was not verified.");
                }
            }

        }
        catch (CryptographicException e)
        {
            Console.WriteLine(e.Message);
        }
    }

}

.NET Framework
Available since 1.1
Windows Phone Silverlight
Available since 7.1

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: