DSASignatureDeformatter.VerifySignature Method (Byte[], Byte[])

 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Verifies the Digital Signature Algorithm (DSA) signature on the data.

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

public override bool VerifySignature(
	byte[] rgbHash,
	byte[] rgbSignature
)

Parameters

rgbHash
Type: System.Byte[]

The data signed with rgbSignature.

rgbSignature
Type: System.Byte[]

The signature to be verified for rgbHash.

Return Value

Type: System.Boolean

true if the signature is valid for the data; otherwise, false.

Exception Condition
ArgumentNullException

rgbHash is null.

-or-

rgbSignature is null.

CryptographicUnexpectedOperationException

The DSA key is missing.

using System;
using System.Security.Cryptography;

class DSASample
{

	static void Main()
	{
		try
		{
			//Create a new instance of DSACryptoServiceProvider.
			DSACryptoServiceProvider DSA = new DSACryptoServiceProvider();

			//The hash to sign.
			byte[] Hash = {59,4,248,102,77,97,142,201,210,12,224,93,25,41,100,197,213,134,130,135};

			//Create an DSASignatureFormatter object and pass it the 
			//DSACryptoServiceProvider to transfer the key information.
			DSASignatureFormatter DSAFormatter = new DSASignatureFormatter(DSA);

			//Set the hash algorithm to SHA1.
			DSAFormatter.SetHashAlgorithm("SHA1");

			//Create a signature for HashValue and return it.
			byte[] SignedHash = DSAFormatter.CreateSignature(Hash);

			//Create an DSASignatureDeformatter object and pass it the 
			//DSACryptoServiceProvider to transfer the key information.
			DSASignatureDeformatter DSADeformatter = new DSASignatureDeformatter(DSA);

			//Verify the hash and display the results to the console.
			if(DSADeformatter.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
Return to top
Show: