3

I am trying to use X509Certificate2.CreateFromCertFile() method in an ASP.NET Core application, but it seems like it's not supported for .NET Core.

Is there an alternative way of creating an X509Certificate2 object from a cert/pfx file?

Camilo Terevinto
  • 31,141
  • 6
  • 88
  • 120
faso
  • 679
  • 7
  • 25

1 Answers1

7

Maybe something like this?

public Certificate CreateFromCertFile()
{
    string cerFile = @"c:\cer.txt";
    string keyFile = @"c:\key.txt";

    var cert = new X509Certificate2(cerFile);
    cert.PrivateKey = CreateRSAFromFile(keyFile);

    return  cert;
}

private RSACryptoServiceProvider CreateRSAFromFile(string filename)
{
    byte[] pvk = null;
    using (var fs = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.Read))
    {
        pvk = new byte[fs.Length];
        fs.Read(pvk, 0, pvk.Length);
    }

    var rsa = new RSACryptoServiceProvider();
    rsa.ImportCspBlob(pvk);

    return rsa;
}
Stef Heyenrath
  • 9,335
  • 12
  • 66
  • 121