Skip to content

Instantly share code, notes, and snippets.

@djeikyb
Created September 28, 2023 22:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save djeikyb/fb7fe2fe18f334fa82d803aebbc7d740 to your computer and use it in GitHub Desktop.
Save djeikyb/fb7fe2fe18f334fa82d803aebbc7d740 to your computer and use it in GitHub Desktop.
public static (X509Certificate2, RSA) Read(string publicCert, string privateKeyPemTaggedOrNot)
{
var rsa = RSA.Create();
if (privateKeyPemTaggedOrNot.StartsWith("-----BEGIN RSA PRIVATE KEY-----"))
{
rsa.ImportFromPem(privateKeyPemTaggedOrNot);
}
else
{
var key = Convert.FromBase64String(privateKeyPemTaggedOrNot);
rsa.ImportRSAPrivateKey(key, out _);
}
X509Certificate2 cert;
if (publicCert.StartsWith("-----BEGIN CERTIFICATE-----"))
{
cert = X509Certificate2.CreateFromPem(publicCert, rsa.ExportRSAPrivateKeyPem());
}
else
{
var bytes = Convert.FromBase64String(publicCert);
cert = new X509Certificate2(bytes);
cert = cert.CopyWithPrivateKey(rsa);
}
return (cert, rsa);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment