Using RSACryptoServiceProvider : RSA « Security « C# / CSharp Tutorial






using System;
using System.IO;
using System.Security.Cryptography;
using System.Collections.Generic;
using System.Text;

    class Program
    {
        static void Main(string[] args)
        {
            string verifiableMesage = "this is a test";
            SHA1Managed sha = new SHA1Managed();
            byte[] hashValue = sha.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(verifiableMesage));

            StreamReader sr = File.OpenText("Key.xml");
            string myKey = sr.ReadToEnd();

            RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
            rsa.FromXmlString(myKey);

            RSAPKCS1SignatureFormatter sigFormatter = new RSAPKCS1SignatureFormatter(rsa);
            sigFormatter.SetHashAlgorithm("SHA1");
            byte[] signedHash = sigFormatter.CreateSignature(hashValue);

            FileStream fs = new FileStream("signedHash.dat", FileMode.Create);
            fs.Write(signedHash, 0, signedHash.Length);
            fs.Close();
        }
    }








35.10.RSA
35.10.1.Asymmetric cryptography
35.10.2.Encrypt with RSACryptoServiceProvider
35.10.3.Using RSACryptoServiceProvider
35.10.4.Using RSAPKCS1SignatureDeformatter
35.10.5.RSACryptoServiceProvider reads from xml key
35.10.6.CspParameters and RSACryptoServiceProvider
35.10.7.Encrypt an XML document using an asymmetric key
35.10.8.Use RSAPKCS1SignatureFormatter to create a digital signature and then uses the RSAPKCS1SignatureDeformatter class to verify the signature.