Convert .NET ECD CngKey/key pair into PEM file.
Install nuget package Ecd2Pem
:
nuget install Ecd2Pem
string pemString = EcdConverter.FromCngKey(cngKey);
and you’ll get:
-----BEGIN EC PARAMETERS-----
BggqhkjOPQMBBw==
-----END EC PARAMETERS-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIGjyyaEK0W+ErAsgeSEux7weYuR69Twn2aJSmz0CAsR7oAoGCCqGSM49AwEHoUQDQgAE
nu3lr+fdixqx7+4FSTfUWyIuwHlE1NzVHR+IkKLKqRGdQqAsy2GVmi99MI75ZbqyWGuXtpacBHjz
5uNTRpUJCQ==
-----END EC PRIVATE KEY-----
(The CngKey can/should be generated this way):
CngKey cngKey = CngKey.Create(CngAlgorithm.ECDiffieHellmanP256, null, new CngKeyCreationParameters
{
ExportPolicy = CngExportPolicies.AllowPlaintextExport,
});
string pemString = EcdConverter.FromPublicKey("RUNLMSAAAAAE4GoZ96sN5mEJjsrDndtDDg8wP5eJjz0IS/vTucWJEp1yJmdhLEaxJp4it5ZrBRBHvYWUbsA6WncRkwGp/oHZ")
And you’ll get:
-----BEGIN PUBLIC KEY-----
oUQDQgAEBOBqGferDeZhCY7Kw53bQw4PMD+XiY89CEv707nFiRKdciZnYSxGsSaeIreWawUQR72F
lG7AOlp3EZMBqf6B2Q==
-----END PUBLIC KEY-----