Mega Code Archive

 
Categories / C# Tutorial / Security
 

Using RSAPKCS1SignatureDeformatter

using System; using System.IO; using System.Security; using System.Security.Cryptography; using System.Collections.Generic; using System.Text;     class Program     {         static void Main(string[] args)         {             string verifiableMesage = "this is a test";             string     wrongMessage = "this is another test";             SHA1Managed sha = new SHA1Managed();             byte[] verifiableMessageHash = sha.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(verifiableMesage));             byte[] wrongMessageHash = sha.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(wrongMessage));             FileStream fs = new FileStream("signedHash.dat", FileMode.Open);             byte[] fileHash = new byte[fs.Length];             fs.Read(fileHash, 0, (int)fs.Length);             fs.Close();             StreamReader sr = File.OpenText("myKey.xml");             string myKey = sr.ReadToEnd();             sr.Close();             RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();             rsa.FromXmlString(myKey);             RSAPKCS1SignatureDeformatter sigDeformatter = new RSAPKCS1SignatureDeformatter(rsa);             sigDeformatter.SetHashAlgorithm("SHA1");             Console.WriteLine(sigDeformatter.VerifySignature(verifiableMessageHash, fileHash));             Console.WriteLine(sigDeformatter.VerifySignature(wrongMessageHash, fileHash) == false);         }     }