Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

RSAPKCS1SignatureFormatter.CreateSignature Method (Byte[])

Creates the RSA PKCS #1 signature for the specified data.

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

public override byte[] CreateSignature(
	byte[] rgbHash
)

Parameters

rgbHash
Type: System.Byte[]

The data to be signed.

Return Value

Type: System.Byte[]
The digital signature for rgbHash.

ExceptionCondition
CryptographicUnexpectedOperationException

The key is null.

-or-

The hash algorithm is null.

ArgumentNullException

The rgbHash parameter is null.

You must specify a key and a hash algorithm before calling this method.

The following example demonstrates how to create a PKCS #1 version 1.5 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);
            }

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

}

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone Silverlight 8.1, Windows Phone Silverlight 8
Show:
© 2015 Microsoft