/********************************************************************************
* Install and reference the following libraries:
* ----------------------------------------------
* BouncyCastle (NuGet)
* HtmlAgilityPack (NuGet)
* System.Globalization (.NET Framework)
* System.IO (.NET Framework)
********************************************************************************/
public static void Main(string[] args)
{
// Generate the RSA key pair, public and private
var keys = GenerateKeys(2048);
// Write the public RSA key
using(var textWriter = new StreamWriter("c:\\folder-name\\public.key"))
{
var writer = new Org.BouncyCastle.OpenSsl.PemWriter(textWriter);
writer.WriteObject(keys.Public);
writer.Writer.Flush();
}
// Write the private RSA key
using(var textWriter = new StreamWriter("c:\\folder-name\\private.key"))
{
var writer = new Org.BouncyCastle.OpenSsl.PemWriter(textWriter);
writer.WriteObject(keys.Private);
writer.Writer.Flush();
}
}
// Generates a cryptographcally strong RSA key pair.
public static AsymmetricCipherKeyPair GenerateKeys(int keySizeInBits)
{
var r = new RsaKeyPairGenerator();
r.Init(new KeyGenerationParameters(new SecureRandom(), keySizeInBits));
var keys = r.GenerateKeyPair();
return keys;
}
Comments