public static X509Certificate2 NewX509Certificate2(byte[] rawData, string password, X509KeyStorageFlags keyStorageFlags, bool shouldValidatePfx)
{
string temporaryFileName = Path.GetTempFileName();
try
{
X509ContentType contentType = X509Certificate2.GetCertContentType(rawData);
File.WriteAllBytes(temporaryFileName, rawData);
return new X509Certificate2(temporaryFileName, password, keyStorageFlags);
}
finally
{
try
{
File.Delete(temporaryFileName);
}
catch (Exception)
{
// Not deleting the file is fine
}
}
}